--- /dev/null
+*.gem
+.bundle
+.ruby-version
+.jekyll-cache
+.sass-cache
+_site
+Gemfile.lock
+node_modules
--- /dev/null
+---
+layout: default
+title: 404
+permalink: /404
+nav_exclude: true
+search_exclude: true
+---
+
+<h1>Page not found</h1>
+
+<p>The page you requested could not be found. Try using the navigation {% if site.search_enabled != false %}or search {% endif %}to find what you're looking for or go to this <a href="{{ '/' | relative_url }}">site's home page</a>.</p>
--- /dev/null
+FROM ruby:2.7
+
+ENV LC_ALL C.UTF-8
+ENV LANG en_US.UTF-8
+ENV LANGUAGE en_US.UTF-8
+
+WORKDIR /usr/src/app
+
+COPY Gemfile just-the-docs.gemspec ./
+RUN gem install bundler && bundle install
+
+EXPOSE 4000
--- /dev/null
+source "https://rubygems.org"
+gemspec
+
+gem "webrick", "~> 1.7"
--- /dev/null
+PATH
+ remote: .
+ specs:
+ just-the-docs (0.4.0.rc3)
+ jekyll (>= 3.8.5)
+ jekyll-seo-tag (>= 2.0)
+ rake (>= 12.3.1)
+
+GEM
+ remote: https://rubygems.org/
+ specs:
+ actionpack (7.0.4)
+ actionview (= 7.0.4)
+ activesupport (= 7.0.4)
+ rack (~> 2.0, >= 2.2.0)
+ rack-test (>= 0.6.3)
+ rails-dom-testing (~> 2.0)
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
+ actionview (7.0.4)
+ activesupport (= 7.0.4)
+ builder (~> 3.1)
+ erubi (~> 1.4)
+ rails-dom-testing (~> 2.0)
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
+ activesupport (7.0.4)
+ concurrent-ruby (~> 1.0, >= 1.0.2)
+ i18n (>= 1.6, < 2)
+ minitest (>= 5.1)
+ tzinfo (~> 2.0)
+ addressable (2.8.1)
+ public_suffix (>= 2.0.2, < 6.0)
+ autoprefixer-rails (10.4.7.0)
+ execjs (~> 2)
+ bootstrap (4.3.1)
+ autoprefixer-rails (>= 9.1.0)
+ popper_js (>= 1.14.3, < 2)
+ sassc-rails (>= 2.0.0)
+ builder (3.2.4)
+ colorator (1.1.0)
+ concurrent-ruby (1.1.10)
+ crass (1.0.6)
+ em-websocket (0.5.3)
+ eventmachine (>= 0.12.9)
+ http_parser.rb (~> 0)
+ erubi (1.11.0)
+ eventmachine (1.2.7)
+ execjs (2.8.1)
+ ffi (1.15.5)
+ forwardable-extended (2.6.0)
+ http_parser.rb (0.8.0)
+ i18n (1.12.0)
+ concurrent-ruby (~> 1.0)
+ jekyll (4.3.0)
+ addressable (~> 2.4)
+ colorator (~> 1.0)
+ em-websocket (~> 0.5)
+ i18n (~> 1.0)
+ jekyll-sass-converter (>= 2.0, < 4.0)
+ jekyll-watch (~> 2.0)
+ kramdown (~> 2.3, >= 2.3.1)
+ kramdown-parser-gfm (~> 1.0)
+ liquid (~> 4.0)
+ mercenary (>= 0.3.6, < 0.5)
+ pathutil (~> 0.9)
+ rouge (>= 3.0, < 5.0)
+ safe_yaml (~> 1.0)
+ terminal-table (>= 1.8, < 4.0)
+ webrick (~> 1.7)
+ jekyll-sass-converter (2.2.0)
+ sassc (> 2.0.1, < 3.0)
+ jekyll-seo-tag (2.8.0)
+ jekyll (>= 3.8, < 5.0)
+ jekyll-watch (2.2.1)
+ listen (~> 3.0)
+ kramdown (2.4.0)
+ rexml
+ kramdown-parser-gfm (1.1.0)
+ kramdown (~> 2.0)
+ liquid (4.0.3)
+ listen (3.7.1)
+ rb-fsevent (~> 0.10, >= 0.10.3)
+ rb-inotify (~> 0.9, >= 0.9.10)
+ loofah (2.19.0)
+ crass (~> 1.0.2)
+ nokogiri (>= 1.5.9)
+ mercenary (0.4.0)
+ method_source (1.0.0)
+ minitest (5.16.3)
+ nokogiri (1.13.9-x86_64-linux)
+ racc (~> 1.4)
+ pathutil (0.16.2)
+ forwardable-extended (~> 2.6)
+ popper_js (1.16.1)
+ public_suffix (5.0.0)
+ racc (1.6.0)
+ rack (2.2.4)
+ rack-test (2.0.2)
+ rack (>= 1.3)
+ rails-dom-testing (2.0.3)
+ activesupport (>= 4.2.0)
+ nokogiri (>= 1.6)
+ rails-html-sanitizer (1.4.3)
+ loofah (~> 2.3)
+ railties (7.0.4)
+ actionpack (= 7.0.4)
+ activesupport (= 7.0.4)
+ method_source
+ rake (>= 12.2)
+ thor (~> 1.0)
+ zeitwerk (~> 2.5)
+ rake (13.0.6)
+ rb-fsevent (0.11.2)
+ rb-inotify (0.10.1)
+ ffi (~> 1.0)
+ rexml (3.2.5)
+ rouge (4.0.0)
+ safe_yaml (1.0.5)
+ sassc (2.4.0)
+ ffi (~> 1.9)
+ sassc-rails (2.1.2)
+ railties (>= 4.0.0)
+ sassc (>= 2.0)
+ sprockets (> 3.0)
+ sprockets-rails
+ tilt
+ sprockets (4.1.1)
+ concurrent-ruby (~> 1.0)
+ rack (> 1, < 3)
+ sprockets-rails (3.4.2)
+ actionpack (>= 5.2)
+ activesupport (>= 5.2)
+ sprockets (>= 3.0.0)
+ terminal-table (3.0.2)
+ unicode-display_width (>= 1.1.1, < 3)
+ thor (1.2.1)
+ tilt (2.0.11)
+ tzinfo (2.0.5)
+ concurrent-ruby (~> 1.0)
+ unicode-display_width (2.3.0)
+ webrick (1.7.0)
+ zeitwerk (2.6.1)
+
+PLATFORMS
+ x86_64-linux
+
+DEPENDENCIES
+ bootstrap (~> 4.3.1)
+ bundler (~> 2.3.5)
+ just-the-docs!
+ webrick (~> 1.7)
+
+BUNDLED WITH
+ 2.3.24
--- /dev/null
+The MIT License (MIT)
+
+Copyright (c) 2016 Patrick Marsceill
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
--- /dev/null
+Dir.glob('lib/tasks/*.rake').each {|r| import r}
--- /dev/null
+# Welcome to Jekyll!
+#
+# This config file is meant for settings that affect your whole site, values
+# which you are expected to set up once and rarely edit after that. If you find
+# yourself editing these this file very often, consider using Jekyll's data files
+# feature for the data you need to update frequently.
+#
+# For technical reasons, this file is *NOT* reloaded automatically when you use
+# 'jekyll serve'. If you change this file, please restart the server process.
+
+# Site settings
+# These are used to personalize your new site. If you look in the HTML files,
+# you will see them accessed via {{ site.title }}, {{ site.github_repo }}, and so on.
+# You can create any custom variable you would like, and they will be accessible
+# in the templates via {{ site.myvariable }}.
+title: Aurum
+description: A Jekyll theme for documentation
+baseurl: "/tizen/aurum" # the subpath of your site, e.g. /blog
+url: "https://pages.github.sec.samsung.net" # the base hostname & protocol for your site, e.g. http://example.com
+
+permalink: pretty
+
+exclude:
+ # from https://github.com/jekyll/jekyll/blob/master/lib/site_template/_config.yml:
+ - .sass-cache/
+ - .jekyll-cache/
+ - gemfiles/
+ - Gemfile
+ - Gemfile.lock
+ - node_modules/
+ - vendor/bundle/
+ - vendor/cache/
+ - vendor/gems/
+ - vendor/ruby/
+ # specific to the theme website:
+ - bin/
+ - lib/
+ - "*.gemspec"
+ - "*.gem"
+ - LICENSE.txt
+ - package.json
+ - package-lock.json
+ - Rakefile
+ - README.md
+
+# Set a path/url to a logo that will be displayed instead of the title
+#logo: "/assets/images/just-the-docs.png"
+
+# Enable or disable the site search
+# Supports true (default) or false
+search_enabled: true
+search:
+ # Split pages into sections that can be searched individually
+ # Supports 1 - 6, default: 2
+ heading_level: 2
+ # Maximum amount of previews per search result
+ # Default: 3
+ previews: 2
+ # Maximum amount of words to display before a matched word in the preview
+ # Default: 5
+ preview_words_before: 3
+ # Maximum amount of words to display after a matched word in the preview
+ # Default: 10
+ preview_words_after: 3
+ # Set the search token separator
+ # Default: /[\s\-/]+/
+ # Example: enable support for hyphenated search words
+ tokenizer_separator: /[\s/]+/
+ # Display the relative url in search results
+ # Supports true (default) or false
+ rel_url: true
+ # Enable or disable the search button that appears in the bottom right corner of every page
+ # Supports true or false (default)
+ button: false
+
+# To disable support for mermaid diagrams (https://mermaid-js.github.io/mermaid/),
+# comment out the `mermaid` and `version` keys below
+# By default, consuming the theme as a gem leaves mermaid disabled; it is opt-in
+mermaid:
+ # Version of mermaid library
+ # Pick an available version from https://cdn.jsdelivr.net/npm/mermaid/
+ version: "9.1.6"
+ # Put any additional configuration, such as setting the theme, in _includes/mermaid_config.js
+ # See also docs/ui-components/code
+
+# Enable or disable heading anchors
+heading_anchors: true
+
+# Aux links for the upper right navigation
+aux_links:
+ "Aurum on GitHub":
+ - "//github.sec.samsung.net/tizen/aurum"
+
+# Makes Aux links open in a new tab. Default is false
+aux_links_new_tab: false
+
+# Sort order for navigation links
+# nav_sort: case_insensitive # default, equivalent to nil
+nav_sort: case_sensitive # Capital letters sorted before lowercase
+
+# External navigation links
+nav_external_links:
+ - title: Aurum on GitHub
+ url: https://github.sec.samsung.net/tizen/aurum
+
+# Footer content
+# appears at the bottom of every page's main content
+
+# Back to top link
+back_to_top: true
+back_to_top_text: "Back to top"
+
+footer_content: "Copyright © 2017-2020 Patrick Marsceill. Distributed by an <a href=\"https://github.com/just-the-docs/just-the-docs/tree/main/LICENSE.txt\">MIT license.</a> <a href=\"https://www.netlify.com/\">This site is powered by Netlify.</a>"
+
+# Color scheme currently only supports "dark", "light"/nil (default), or a custom scheme that you define
+color_scheme: nil
+
+callouts_level: quiet # or loud
+callouts:
+ highlight:
+ color: yellow
+ important:
+ title: Important
+ color: blue
+ new:
+ title: New
+ color: green
+ note:
+ title: Note
+ color: purple
+ warning:
+ title: Warning
+ color: red
+
+plugins:
+ - jekyll-seo-tag
+
+kramdown:
+ syntax_highlighter_opts:
+ block:
+ line_numbers: false
+
+compress_html:
+ clippings: all
+ comments: all
+ endings: all
+ startings: []
+ blanklines: false
+ profile: false
+ # ignore:
+ # envs: all
--- /dev/null
+{%- comment -%}
+ {% include css/callouts.scss.liquid color_scheme = string %}
+ produces SCSS for all the callouts in site.callouts. For the "dark"
+ color scheme, the levels of the text and background colors are reversed.
+{%- endcomment -%}
+
+{%- assign callout_background_hue = "000" -%}
+{%- assign callout_color_hue = "300" -%}
+{%- if site.callouts_level == "loud" or include.color_scheme == "dark" and site.callouts_level != "quiet" -%}
+ {%- assign callout_background_hue = "300" -%}
+ {%- assign callout_color_hue = "000" -%}
+{%- endif -%}
+
+div.opaque {
+ background-color: $body-background-color;
+}
+
+{%- for callout in site.callouts %}
+
+{%- assign callout_opacity = callout[1].opacity | default: site.callouts_opacity | default: 0.2 -%}
+
+p.{{ callout[0] }}, blockquote.{{ callout[0] }} {
+ background: rgba(${{ callout[1].color }}-{{ callout_background_hue }}, {{ callout_opacity }});
+ border-left: $border-radius solid ${{ callout[1].color }}-{{ callout_color_hue }};
+ border-radius: $border-radius;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);
+ padding: .8rem;
+ {% if callout[1].title %}
+ &::before {
+ color: ${{ callout[1].color }}-{{ callout_color_hue }};
+ content: "{{ callout[1].title }}";
+ display: block;
+ font-weight: bold;
+ text-transform: uppercase;
+ font-size: .75em;
+ padding-bottom: .125rem;
+ }
+ {% endif %}
+ > .{{ callout[0] }}-title {
+ color: ${{ callout[1].color }}-{{ callout_color_hue }};
+ display: block;
+ font-weight: bold;
+ text-transform: uppercase;
+ font-size: .75em;
+ padding-bottom: .125rem;
+ }
+}
+
+p.{{ callout[0] }}-title, blockquote.{{ callout[0] }}-title {
+ background: rgba(${{ callout[1].color }}-{{ callout_background_hue }}, {{ callout_opacity }});
+ border-left: $border-radius solid ${{ callout[1].color }}-{{ callout_color_hue }};
+ border-radius: $border-radius;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);
+ padding: .8rem;
+ > p:first-child {
+ margin-top: 0;
+ margin-bottom: 0;
+ color: ${{ callout[1].color }}-{{ callout_color_hue }};
+ display: block;
+ font-weight: bold;
+ text-transform: uppercase;
+ font-size: .75em;
+ padding-bottom: .125rem;
+ }
+}
+
+blockquote.{{ callout[0] }} {
+ margin-left: 0;
+ margin-right: 0;
+
+ > p:first-child {
+ margin-top: 0;
+ }
+
+ > p:last-child {
+ margin-bottom: 0;
+ }
+}
+
+blockquote.{{ callout[0] }}-title {
+ margin-left: 0;
+ margin-right: 0;
+
+ > p:nth-child(2) {
+ margin-top: 0;
+ }
+
+ > p:last-child {
+ margin-bottom: 0;
+ }
+}
+
+{% endfor -%}
--- /dev/null
+@import "./custom/custom";
--- /dev/null
+{% if site.logo %}
+$logo: "{{ site.logo | relative_url }}";
+{% endif %}
+@import "./support/support";
+@import "./color_schemes/light";
+@import "./color_schemes/{{ include.color_scheme }}";
+@import "./modules";
+{% include css/callouts.scss.liquid color_scheme = include.color_scheme %}
+{% include css/custom.scss.liquid %}
--- /dev/null
+<link rel="shortcut icon" href="{{ 'favicon.ico' | relative_url }}" type="image/x-icon">
--- /dev/null
+{%- comment -%}
+This file can be used to fix the HTML produced by Jekyll for highlighted
+code with line numbers.
+
+It works with `{% highlight some_language linenos %}...{% endhighlight %}`
+and with the Kramdown option to add line numbers to fenced code.
+
+The implementation was derived from the workaround provided by
+Dmitry Hrabrov (DeXP) at
+https://github.com/penibelst/jekyll-compress-html/issues/71#issuecomment-188144901
+
+EXPLANATION
+
+The HTML produced by Rouge highlighting with lie numbers is of the form
+`code table`. Jekyll (<= 4.1.1) always wraps the highlighted HTML
+with `pre`. This wrapping is not only unnecessary, but also transforms
+the conforming HTML produced by Rouge to non-conforming HTML, which
+results in HTML validation error reports.
+
+The fix removes the outer `pre` tags whenever they contain the pattern
+`<table class="rouge-table">`.
+
+Apart from avoiding HTML validation errors, the fix allows the use of
+the [Jekyll layout for compressing HTML](http://jch.penibelst.de),
+which relies on `pre` tags not being nested, according to
+https://github.com/penibelst/jekyll-compress-html/issues/71#issuecomment-172069842
+
+USAGE
+
+(Any names can be used for `some_var` and `some_language`.)
+
+{% capture some_var %}
+{% highlight some_language linenos %}
+Some code
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=some_var %}
+
+For code fences:
+
+{% capture some_var %}
+```some_language
+Some code
+```
+{% endcapture %}
+{% assign some_var = some_var | markdownify %}
+{% include fix_linenos.html code=some_var %}
+
+CAVEATS
+
+The above does not work when `Some code` happens to contain the matched string
+`<table class="rouge-table">`.
+
+The use of this file overwrites the variable `fix_linenos_code` with `nil`.
+
+{%- endcomment -%}
+
+{% assign fix_linenos_code = include.code %}
+{% if fix_linenos_code contains '<table class="rouge-table">' %}
+ {% assign fix_linenos_code = fix_linenos_code | replace: '<pre class="highlight">', '<pre>' %}
+ {% assign fix_linenos_code = fix_linenos_code | replace: "<pre><code", "<code" %}
+ {% assign fix_linenos_code = fix_linenos_code | replace: "</code></pre>", "</code>" %}
+{% endif %}
+{{ fix_linenos_code }}
+{% assign fix_linenos_code = nil %}
--- /dev/null
+{%- if site.footer_content -%}
+ <p class="text-small text-grey-dk-100 mb-0">{{ site.footer_content }}</p>
+{%- endif -%}
--- /dev/null
+<head>
+ <meta charset="UTF-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=Edge">
+
+ {% unless site.plugins contains "jekyll-seo-tag" %}
+ <title>{{ page.title }} - {{ site.title }}</title>
+
+ {% if page.description %}
+ <meta name="Description" content="{{ page.description }}">
+ {% endif %}
+ {% endunless %}
+
+ {% include favicon.html %}
+
+ <link rel="stylesheet" href="{{ '/assets/css/just-the-docs-default.css' | relative_url }}">
+
+ {% if site.ga_tracking != nil %}
+ <script async src="https://www.googletagmanager.com/gtag/js?id={{ site.ga_tracking }}"></script>
+ <script>
+ window.dataLayer = window.dataLayer || [];
+ function gtag(){dataLayer.push(arguments);}
+ gtag('js', new Date());
+
+ gtag('config', '{{ site.ga_tracking }}'{% unless site.ga_tracking_anonymize_ip == nil %}, { 'anonymize_ip': true }{% endunless %});
+ </script>
+
+ {% endif %}
+
+ {% if site.search_enabled != false %}
+ <script src="{{ '/assets/js/vendor/lunr.min.js' | relative_url }}"></script>
+ {% endif %}
+
+ {% if site.mermaid %}
+ <script src="https://cdn.jsdelivr.net/npm/mermaid@{{ site.mermaid.version }}/dist/mermaid.min.js"></script>
+ {% endif %}
+
+ <script src="{{ '/assets/js/just-the-docs.js' | relative_url }}"></script>
+
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+
+ {% seo %}
+
+ {% include head_custom.html %}
+
+</head>
--- /dev/null
+<link rel="stylesheet" href="{{ '/assets/css/bootstrap.css' | relative_url }}">
+<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
+<script src="{{ '/assets/js/bootstrap.js' | relative_url }}"></script>
+
--- /dev/null
+<!-- Feather. MIT License: https://github.com/feathericons/feather/blob/master/LICENSE -->
+<symbol id="svg-external-link" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-external-link">
+ <title id="svg-external-link-title">(external link)</title>
+ <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line>
+</symbol>
--- /dev/null
+{%- comment -%}
+ The `nav_order` values of pages affect the order in which they are shown in
+ the navigation panel and in the automatically generated tables of contents.
+ Sibling pages with the same `nav_order` value may be shown in any order.
+ Sibling pages with no `nav_order` value are shown after all pages that have
+ explicit `nav_order` values, ordered by their `title` values.
+
+ The `nav_order` and `title` values can be numbers or strings. To avoid build
+ failures, we sort numbers and strings separately. We sort numbers by their
+ values, and strings lexicographically. The case-sensitivity of string sorting
+ is determined by the configuration setting of `nav_sort`. Pages with no `title`
+ value are excluded from the navigation.
+
+ Note: Numbers used as `title` or `nav_order` values should not be in quotes,
+ unless you intend them to be lexicographically ordered. Numbers are written
+ without spaces or thousands-separators. Negative numbers are preceded by `-`.
+ Floats are written with the integral and fractional parts separated by `.`.
+ (Bounds on the magnitude and precision are presumably the same as in Liquid.)
+{%- endcomment -%}
+
+{%- assign title_pages = include.pages
+ | where_exp: "item", "item.title != nil" -%}
+
+{%- comment -%}
+ A page with `nav_exclude: true` does not appear in the main navigation.
+ If it has a `parent`, it may appear in the parent's table of contents.
+ If it specifies `has_children: true`, it should appear in the breadcrumbs
+ of the child pages, but its order in relation to other pages is irrelevant.
+ Pages that never appear can be removed from the pages that need to be sorted.
+ This optimisation can be significant on a site with many pages.
+
+ In Jekyll 4, the pages to be sorted can be filtered by:
+
+ {%- assign title_pages = title_pages
+ | where_exp: "item", "item.nav_exclude != true or item.parent != nil" -%}
+
+ That filter is not allowed in Jekyll 3. The following iterative code gives the
+ same effect, but it is activated only when it will filter more than 50% of the
+ pages.
+{%- endcomment -%}
+
+{%- assign unsorted_pages = title_pages
+ | where_exp: "item", "item.parent == nil"
+ | where_exp: "item", "item.nav_exclude == true"-%}
+{%- assign title_pages_size = title_pages.size -%}
+{%- assign unsorted_pages_percent = unsorted_pages.size
+ | times: 100 | divided_by: title_pages_size -%}
+{%- if unsorted_pages_percent > 50 -%}
+ {%- assign sorted_pages = "" | split: "" -%}
+ {%- for item in title_pages -%}
+ {%- if item.nav_exclude != true or item.parent -%}
+ {%- assign sorted_pages = sorted_pages | push: item -%}
+ {%- endif -%}
+ {%- endfor -%}
+ {%- assign title_pages = sorted_pages -%}
+{%- endif -%}
+
+{%- assign nav_order_pages = title_pages
+ | where_exp: "item", "item.nav_order != nil" -%}
+{%- assign title_order_pages = title_pages
+ | where_exp: "item", "item.nav_order == nil" -%}
+
+{%- comment -%}
+ Divide the arrays of `nav_order_pages` and `title_order_pages` according to
+ the type of value.
+
+ The first character of the result of `jsonify` is `"` only for strings.
+ Grouping by a single character also ensures the number of groups is small.
+{%- endcomment -%}
+
+{%- assign nav_number_pages = "" | split: "" -%}
+{%- assign nav_string_pages = "" | split: "" -%}
+{%- assign nav_order_groups = nav_order_pages
+ | group_by_exp: "item", "item.nav_order | jsonify | slice: 0" -%}
+{%- for group in nav_order_groups -%}
+ {%- if group.name == '"' -%}
+ {%- assign nav_string_pages = group.items -%}
+ {%- else -%}
+ {%- assign nav_number_pages = nav_number_pages | concat: group.items -%}
+ {%- endif -%}
+{%- endfor -%}
+
+{%- unless nav_number_pages == empty -%}
+ {%- assign nav_number_pages = nav_number_pages | sort: "nav_order" -%}
+{%- endunless -%}
+
+{%- unless nav_string_pages == empty -%}
+ {%- if site.nav_sort == 'case_insensitive' -%}
+ {%- assign nav_string_pages = nav_string_pages | sort_natural: "nav_order" -%}
+ {%- else -%}
+ {%- assign nav_string_pages = nav_string_pages | sort: "nav_order" -%}
+ {%- endif -%}
+{%- endunless -%}
+
+{%- assign title_number_pages = "" | split: "" -%}
+{%- assign title_string_pages = "" | split: "" -%}
+{%- assign title_order_groups = title_order_pages
+ | group_by_exp: "item", "item.title | jsonify | slice: 0" -%}
+{%- for group in title_order_groups -%}
+ {%- if group.name == '"' -%}
+ {%- assign title_string_pages = group.items -%}
+ {%- else -%}
+ {%- assign title_number_pages = title_number_pages | concat: group.items -%}
+ {%- endif -%}
+{%- endfor -%}
+
+{%- unless title_number_pages == empty -%}
+ {%- assign title_number_pages = title_number_pages | sort: "title" -%}
+{%- endunless -%}
+
+{%- unless title_string_pages == empty -%}
+ {%- if site.nav_sort == 'case_insensitive' -%}
+ {%- assign title_string_pages = title_string_pages | sort_natural: "title" -%}
+ {%- else -%}
+ {%- assign title_string_pages = title_string_pages | sort: "title" -%}
+ {%- endif -%}
+{%- endunless -%}
+
+{%- assign pages_list = nav_number_pages | concat: nav_string_pages
+ | concat: title_number_pages | concat: title_string_pages -%}
+
+{%- assign first_level_pages = pages_list
+ | where_exp: "item", "item.parent == nil" -%}
+{%- assign second_level_pages = pages_list
+ | where_exp: "item", "item.parent != nil"
+ | where_exp: "item", "item.grand_parent == nil" -%}
+{%- assign third_level_pages = pages_list
+ | where_exp: "item", "item.grand_parent != nil" -%}
+
+{%- comment -%}
+ The order of sibling pages in `pages_list` determines the order of display of
+ links to them in lists of navigation links and in auto-generated TOCs.
+{%- endcomment -%}
+
+<ul class="nav-list">
+{%- for node in first_level_pages -%}
+ {%- unless node.nav_exclude -%}
+ <li class="nav-list-item{% if page.collection == include.key and page.url == node.url or page.parent == node.title or page.grand_parent == node.title %} active{% endif %}">
+ {%- if node.has_children -%}
+ <a href="#" class="nav-list-expander" aria-label="toggle links in {{ node.title }} category">
+ <svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg>
+ </a>
+ {%- endif -%}
+ <a href="{{ node.url | relative_url }}" class="nav-list-link{% if page.url == node.url %} active{% endif %}">{{ node.title }}</a>
+ {%- if node.has_children -%}
+ {%- assign children_list = second_level_pages
+ | where: "parent", node.title -%}
+ {%- if node.child_nav_order == 'desc' -%}
+ {%- assign children_list = children_list | reverse -%}
+ {%- endif -%}
+ <ul class="nav-list ">
+ {%- for child in children_list -%}
+ {%- unless child.nav_exclude -%}
+ <li class="nav-list-item {% if page.url == child.url or page.parent == child.title %} active{% endif %}">
+ {%- if child.has_children -%}
+ <a href="#" class="nav-list-expander" aria-label="toggle links in {{ child.title }} category">
+ <svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg>
+ </a>
+ {%- endif -%}
+ <a href="{{ child.url | relative_url }}" class="nav-list-link{% if page.url == child.url %} active{% endif %}">{{ child.title }}</a>
+ {%- if child.has_children -%}
+ {%- assign grand_children_list = third_level_pages
+ | where: "parent", child.title
+ | where: "grand_parent", node.title -%}
+ {%- if child.child_nav_order == 'desc' -%}
+ {%- assign grand_children_list = grand_children_list | reverse -%}
+ {%- endif -%}
+ <ul class="nav-list">
+ {%- for grand_child in grand_children_list -%}
+ {%- unless grand_child.nav_exclude -%}
+ <li class="nav-list-item {% if page.url == grand_child.url %} active{% endif %}">
+ <a href="{{ grand_child.url | relative_url }}" class="nav-list-link{% if page.url == grand_child.url %} active{% endif %}">{{ grand_child.title }}</a>
+ </li>
+ {%- endunless -%}
+ {%- endfor -%}
+ </ul>
+ {%- endif -%}
+ </li>
+ {%- endunless -%}
+ {%- endfor -%}
+ </ul>
+ {%- endif -%}
+ </li>
+ {%- endunless -%}
+{%- endfor -%}
+{%- unless include.key -%}
+ {%- assign nav_external_links = site.nav_external_links -%}
+ {%- for node in nav_external_links -%}
+ <li class="nav-list-item external">
+ <a href="{{ node.url | absolute_url }}" class="nav-list-link external">
+ {{ node.title }}
+ {% unless node.hide_icon %}<svg viewBox="0 0 24 24" aria-labelledby="svg-external-link-title"><use xlink:href="#svg-external-link"></use></svg>{% endunless %}
+ </a>
+ </li>
+ {%- endfor -%}
+{%- endunless -%}
+</ul>
+
+{%- comment -%}
+ `page.collection` is the name of the Jekyll collection that contains the page,
+ if any, and otherwise nil. Similarly for `include.key`.
+
+ If the current page is in the collection (if any) whose navigation is currently
+ being generated, the following code sets `first_level_url` to the URL used in
+ the page's top-level breadcrumb (if any), and `second_level_url` to that used
+ in the page's second-level breadcrumb (if any).
+
+ For pages with children, the code also sets `toc_list` to the list of child pages.
+{%- endcomment -%}
+
+{%- if page.collection == include.key -%}
+ {%- for node in first_level_pages -%}
+ {%- if page.grand_parent == node.title or page.parent == node.title and page.grand_parent == nil -%}
+ {%- assign first_level_url = node.url | relative_url -%}
+ {%- endif -%}
+ {%- if node.has_children -%}
+ {%- assign children_list = second_level_pages | where: "parent", node.title -%}
+ {%- for child in children_list -%}
+ {%- if child.has_children -%}
+ {%- if page.url == child.url or page.parent == child.title and page.grand_parent == child.parent -%}
+ {%- assign second_level_url = child.url | relative_url -%}
+ {%- endif -%}
+ {%- endif -%}
+ {%- endfor -%}
+ {%- endif -%}
+ {%- endfor -%}
+ {%- if page.has_children == true and page.has_toc != false -%}
+ {%- assign toc_list = pages_list
+ | where: "parent", page.title
+ | where_exp: "item", "item.grand_parent == page.parent" -%}
+ {%- if page.child_nav_order == "desc" -%}
+ {%- assign toc_list = toc_list | reverse -%}
+ {%- endif -%}
+ {%- endif -%}
+{%- endif -%}
--- /dev/null
+Search {{site.title}}
--- /dev/null
+{% if site.logo %}
+ <div class="site-logo"></div>
+{% else %}
+ {{ site.title }}
+{% endif %}
--- /dev/null
+<h2 class="text-delta">Table of contents</h2>
--- /dev/null
+{% capture headingsWorkspace %}
+ {% comment %}
+ Copyright (c) 2018 Vladimir "allejo" Jimenez
+
+ Permission is hereby granted, free of charge, to any person
+ obtaining a copy of this software and associated documentation
+ files (the "Software"), to deal in the Software without
+ restriction, including without limitation the rights to use,
+ copy, modify, merge, publish, distribute, sublicense, and/or sell
+ copies of the Software, and to permit persons to whom the
+ Software is furnished to do so, subject to the following
+ conditions:
+
+ The above copyright notice and this permission notice shall be
+ included in all copies or substantial portions of the Software.
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ OTHER DEALINGS IN THE SOFTWARE.
+ {% endcomment %}
+ {% comment %}
+ Version 1.0.7
+ https://github.com/allejo/jekyll-anchor-headings
+
+ "Be the pull request you wish to see in the world." ~Ben Balter
+
+ Usage:
+ {% include anchor_headings.html html=content anchorBody="#" %}
+
+ Parameters:
+ * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll
+
+ Optional Parameters:
+ * beforeHeading (bool) : false - Set to true if the anchor should be placed _before_ the heading's content
+ * anchorAttrs (string) : '' - Any custom HTML attributes that will be added to the `<a>` tag; you may NOT use `href`, `class` or `title`;
+ the `%heading%` and `%html_id%` placeholders are available
+ * anchorBody (string) : '' - The content that will be placed inside the anchor; the `%heading%` placeholder is available
+ * anchorClass (string) : '' - The class(es) that will be used for each anchor. Separate multiple classes with a space
+ * anchorTitle (string) : '' - The `title` attribute that will be used for anchors
+ * h_min (int) : 1 - The minimum header level to build an anchor for; any header lower than this value will be ignored
+ * h_max (int) : 6 - The maximum header level to build an anchor for; any header greater than this value will be ignored
+ * bodyPrefix (string) : '' - Anything that should be inserted inside of the heading tag _before_ its anchor and content
+ * bodySuffix (string) : '' - Anything that should be inserted inside of the heading tag _after_ its anchor and content
+
+ Output:
+ The original HTML with the addition of anchors inside of all of the h1-h6 headings.
+ {% endcomment %}
+
+ {% assign minHeader = include.h_min | default: 1 %}
+ {% assign maxHeader = include.h_max | default: 6 %}
+ {% assign beforeHeading = include.beforeHeading %}
+ {% assign nodes = include.html | split: '<h' %}
+
+ {% capture edited_headings %}{% endcapture %}
+
+ {% for _node in nodes %}
+ {% capture node %}{{ _node | strip }}{% endcapture %}
+
+ {% if node == "" %}
+ {% continue %}
+ {% endif %}
+
+ {% assign nextChar = node | replace: '"', '' | strip | slice: 0, 1 %}
+ {% assign headerLevel = nextChar | times: 1 %}
+
+ <!-- If the level is cast to 0, it means it's not a h1-h6 tag, so let's see if we need to fix it -->
+ {% if headerLevel == 0 %}
+ <!-- Split up the node based on closing angle brackets and get the first one. -->
+ {% assign firstChunk = node | split: '>' | first %}
+
+ <!-- If the first chunk does NOT contain a '<', that means we've broken another HTML tag that starts with 'h' -->
+ {% unless firstChunk contains '<' %}
+ {% capture node %}<h{{ node }}{% endcapture %}
+ {% endunless %}
+
+ {% capture edited_headings %}{{ edited_headings }}{{ node }}{% endcapture %}
+ {% continue %}
+ {% endif %}
+
+ {% capture _closingTag %}</h{{ headerLevel }}>{% endcapture %}
+ {% assign _workspace = node | split: _closingTag %}
+ {% assign _idWorkspace = _workspace[0] | split: 'id="' %}
+ {% assign _idWorkspace = _idWorkspace[1] | split: '"' %}
+ {% assign html_id = _idWorkspace[0] %}
+
+ {% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %}
+ {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %}
+
+ <!-- Build the anchor to inject for our heading -->
+ {% capture anchor %}{% endcapture %}
+
+ {% if html_id and headerLevel >= minHeader and headerLevel <= maxHeader %}
+ {% capture anchor %}href="#{{ html_id }}"{% endcapture %}
+
+ {% if include.anchorClass %}
+ {% capture anchor %}{{ anchor }} class="{{ include.anchorClass }}"{% endcapture %}
+ {% endif %}
+
+ {% if include.anchorTitle %}
+ {% capture anchor %}{{ anchor }} title="{{ include.anchorTitle | replace: '%heading%', header }}"{% endcapture %}
+ {% endif %}
+
+ {% if include.anchorAttrs %}
+ {% capture anchor %}{{ anchor }} {{ include.anchorAttrs | replace: '%heading%', header | replace: '%html_id%', html_id }}{% endcapture %}
+ {% endif %}
+
+ {% capture anchor %}<a {{ anchor }}>{{ include.anchorBody | replace: '%heading%', header | default: '' }}</a>{% endcapture %}
+
+ <!-- In order to prevent adding extra space after a heading, we'll let the 'anchor' value contain it -->
+ {% if beforeHeading %}
+ {% capture anchor %}{{ anchor }} {% endcapture %}
+ {% else %}
+ {% capture anchor %} {{ anchor }}{% endcapture %}
+ {% endif %}
+ {% endif %}
+
+ {% capture new_heading %}
+ <h{{ _hAttrToStrip }}
+ {{ include.bodyPrefix }}
+ {% if beforeHeading %}
+ {{ anchor }}{{ header }}
+ {% else %}
+ {{ header }}{{ anchor }}
+ {% endif %}
+ {{ include.bodySuffix }}
+ </h{{ headerLevel }}>
+ {% endcapture %}
+
+ <!--
+ If we have content after the `</hX>` tag, then we'll want to append that here so we don't lost any content.
+ -->
+ {% assign chunkCount = _workspace | size %}
+ {% if chunkCount > 1 %}
+ {% capture new_heading %}{{ new_heading }}{{ _workspace | last }}{% endcapture %}
+ {% endif %}
+
+ {% capture edited_headings %}{{ edited_headings }}{{ new_heading }}{% endcapture %}
+ {% endfor %}
+{% endcapture %}{% assign headingsWorkspace = '' %}{{ edited_headings | strip }}
--- /dev/null
+---
+layout: default
+---
+
+{{ content }}
--- /dev/null
+---
+layout: table_wrappers
+---
+
+<!DOCTYPE html>
+
+<html lang="{{ site.lang | default: 'en-US' }}">
+{% include head.html %}
+<body>
+ <a class="skip-to-main" href="#main-content">Skip to main content</a>
+ <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
+ <symbol id="svg-link" viewBox="0 0 24 24">
+ <title>Link</title>
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-link">
+ <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71"></path><path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71"></path>
+ </svg>
+ </symbol>
+ <symbol id="svg-search" viewBox="0 0 24 24">
+ <title>Search</title>
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-search">
+ <circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line>
+ </svg>
+ </symbol>
+ <symbol id="svg-menu" viewBox="0 0 24 24">
+ <title>Menu</title>
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu">
+ <line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line>
+ </svg>
+ </symbol>
+ <symbol id="svg-arrow-right" viewBox="0 0 24 24">
+ <title>Expand</title>
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-right">
+ <polyline points="9 18 15 12 9 6"></polyline>
+ </svg>
+ </symbol>
+ <symbol id="svg-doc" viewBox="0 0 24 24">
+ <title>Document</title>
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-file">
+ <path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z"></path><polyline points="13 2 13 9 20 9"></polyline>
+ </svg>
+ </symbol>
+ {% include icons/external_link.html %}
+ </svg>
+
+ <div class="side-bar">
+ <div class="site-header">
+ <a href="{{ '/' | relative_url }}" class="site-title lh-tight">{% include title.html %}</a>
+ <a href="#" id="menu-button" class="site-button">
+ <svg viewBox="0 0 24 24" class="icon"><use xlink:href="#svg-menu"></use></svg>
+ </a>
+ </div>
+ <nav aria-label="Main" id="site-nav" class="site-nav">
+ {% assign pages_top_size = site.html_pages
+ | where_exp:"item", "item.title != nil"
+ | where_exp:"item", "item.parent == nil"
+ | where_exp:"item", "item.nav_exclude != true"
+ | size %}
+ {% if pages_top_size > 0 %}
+ {% include nav.html pages=site.html_pages key=nil %}
+ {% endif %}
+ {% if site.just_the_docs.collections %}
+ {% assign collections_size = site.just_the_docs.collections | size %}
+ {% for collection_entry in site.just_the_docs.collections %}
+ {% assign collection_key = collection_entry[0] %}
+ {% assign collection_value = collection_entry[1] %}
+ {% assign collection = site[collection_key] %}
+ {% if collection_value.nav_exclude != true %}
+ {% if collections_size > 1 or pages_top_size > 0 %}
+ {% if collection_value.nav_fold == true %}
+ <ul class="nav-list nav-category-list">
+ <li class="nav-list-item{% if page.collection == collection_key %} active{% endif %}">
+ {%- if collection.size > 0 -%}
+ <a href="#" class="nav-list-expander"><svg viewBox="0 0 24 24"><use xlink:href="#svg-arrow-right"></use></svg></a>
+ {%- endif -%}
+ <div class="nav-category">{{ collection_value.name }}</div>
+ {% include nav.html pages=collection key=collection_key %}
+ </li>
+ </ul>
+ {% else %}
+ <div class="nav-category">{{ collection_value.name }}</div>
+ {% include nav.html pages=collection key=collection_key %}
+ {% endif %}
+ {% else %}
+ {% include nav.html pages=collection key=collection_key %}
+ {% endif %}
+ {% endif %}
+ {% endfor %}
+ {% endif %}
+ </nav>
+
+ {% capture nav_footer_custom %}
+ {%- include nav_footer_custom.html -%}
+ {% endcapture %}
+ {% if nav_footer_custom != "" %}
+ {{ nav_footer_custom }}
+ {% else %}
+ <footer class="site-footer">
+ This site uses <a href="https://github.com/just-the-docs/just-the-docs">Just the Docs</a>, a documentation theme for Jekyll.
+ </footer>
+ {% endif %}
+ </div>
+ <div class="main" id="top">
+ <div id="main-header" class="main-header">
+ {% if site.search_enabled != false %}
+
+ {% capture search_placeholder %}{% include search_placeholder_custom.html %}{% endcapture %}
+
+ <div class="search">
+ <div class="search-input-wrap">
+ <input type="text" id="search-input" class="search-input" tabindex="0" placeholder="{{ search_placeholder | strip_html | strip }}" aria-label="{{ search_placeholder | strip_html| strip }}" autocomplete="off">
+ <label for="search-input" class="search-label"><svg viewBox="0 0 24 24" class="search-icon"><use xlink:href="#svg-search"></use></svg></label>
+ </div>
+ <div id="search-results" class="search-results"></div>
+ </div>
+ {% else %}
+ <div></div>
+ {% endif %}
+ {% include header_custom.html %}
+ {% if site.aux_links %}
+ <nav aria-label="Auxiliary" class="aux-nav">
+ <ul class="aux-nav-list">
+ {% for link in site.aux_links %}
+ <li class="aux-nav-list-item">
+ <a href="{{ link.last }}" class="site-button"
+ {% if site.aux_links_new_tab %}
+ target="_blank" rel="noopener noreferrer"
+ {% endif %}
+ >
+ {{ link.first }}
+ </a>
+ </li>
+ {% endfor %}
+ </ul>
+ </nav>
+ {% endif %}
+ </div>
+ <div id="main-content-wrap" class="main-content-wrap">
+ {% unless page.url == "/" %}
+ {% if page.parent %}
+ <nav aria-label="Breadcrumb" class="breadcrumb-nav">
+ <ol class="breadcrumb-nav-list">
+ {% if page.grand_parent %}
+ <li class="breadcrumb-nav-list-item"><a href="{{ first_level_url }}">{{ page.grand_parent }}</a></li>
+ <li class="breadcrumb-nav-list-item"><a href="{{ second_level_url }}">{{ page.parent }}</a></li>
+ {% else %}
+ <li class="breadcrumb-nav-list-item"><a href="{{ first_level_url }}">{{ page.parent }}</a></li>
+ {% endif %}
+ <li class="breadcrumb-nav-list-item"><span>{{ page.title }}</span></li>
+ </ol>
+ </nav>
+ {% endif %}
+ {% endunless %}
+ <div id="main-content" class="main-content" role="main">
+ {% if site.heading_anchors != false %}
+ {% include vendor/anchor_headings.html html=content beforeHeading="true" anchorBody="<svg viewBox=\"0 0 16 16\" aria-hidden=\"true\"><use xlink:href=\"#svg-link\"></use></svg>" anchorClass="anchor-heading" anchorAttrs="aria-labelledby=\"%html_id%\"" %}
+ {% else %}
+ {{ content }}
+ {% endif %}
+
+ {% if page.has_children == true and page.has_toc != false %}
+ <hr>
+ {% include toc_heading_custom.html %}
+ <ul>
+ {% for child in toc_list %}
+ <li>
+ <a href="{{ child.url | relative_url }}">{{ child.title }}</a>{% if child.summary %} - {{ child.summary }}{% endif %}
+ </li>
+ {% endfor %}
+ </ul>
+ {% endif %}
+
+ {% capture footer_custom %}
+ {%- include footer_custom.html -%}
+ {% endcapture %}
+ {% if footer_custom != "" or site.last_edit_timestamp or site.gh_edit_link %}
+ <hr>
+ <footer>
+ {% if site.back_to_top %}
+ <p><a href="#top" id="back-to-top">{{ site.back_to_top_text }}</a></p>
+ {% endif %}
+
+ {{ footer_custom }}
+
+ {% if site.last_edit_timestamp or site.gh_edit_link %}
+ <div class="d-flex mt-2">
+ {% if site.last_edit_timestamp and site.last_edit_time_format and page.last_modified_date %}
+ <p class="text-small text-grey-dk-000 mb-0 mr-2">
+ Page last modified: <span class="d-inline-block">{{ page.last_modified_date | date: site.last_edit_time_format }}</span>.
+ </p>
+ {% endif %}
+ {% if
+ site.gh_edit_link and
+ site.gh_edit_link_text and
+ site.gh_edit_repository and
+ site.gh_edit_branch and
+ site.gh_edit_view_mode
+ %}
+ <p class="text-small text-grey-dk-000 mb-0">
+ <a href="{{ site.gh_edit_repository }}/{{ site.gh_edit_view_mode }}/{{ site.gh_edit_branch }}{% if site.gh_edit_source %}/{{ site.gh_edit_source }}{% endif %}{% if page.collection and site.collections_dir %}/{{ site.collections_dir }}{% endif %}/{{ page.path }}" id="edit-this-page">{{ site.gh_edit_link_text }}</a>
+ </p>
+ {% endif %}
+ </div>
+ {% endif %}
+ </footer>
+ {% endif %}
+
+ </div>
+ </div>
+
+ {% if site.search_enabled != false %}
+ {% if site.search.button %}
+ <a href="#" id="search-button" class="search-button">
+ <svg viewBox="0 0 24 24" class="icon"><use xlink:href="#svg-search"></use></svg>
+ </a>
+ {% endif %}
+
+ <div class="search-overlay"></div>
+ {% endif %}
+ </div>
+
+ {% if site.mermaid %}
+ <script>
+ var config = {% include mermaid_config.js %};
+ mermaid.initialize(config);
+ window.mermaid.init(undefined, document.querySelectorAll('.language-mermaid'));
+ </script>
+ {% endif %}
+</body>
+</html>
--- /dev/null
+---
+layout: default
+---
+
+{{ content }}
--- /dev/null
+---
+layout: default
+---
+
+{{ content }}
--- /dev/null
+---
+layout: default
+---
+
+{{ content }}
--- /dev/null
+---
+layout: vendor/compress
+---
+
+{% assign content_ = content | replace: '<table', '<div class="table-wrapper"><table' %}
+{% assign content_ = content_ | replace: '</table>', '</table></div>' %}
+{{ content_ }}
--- /dev/null
+---
+# Jekyll layout that compresses HTML
+# v3.1.0
+# http://jch.penibelst.de/
+# © 2014–2015 Anatol Broder
+# MIT License
+---
+
+{% capture _LINE_FEED %}
+{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment or site.compress_html.ignore.envs == "all" %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "</pre>" %}<pre{{ _pres.first }}</pre>{% endif %}{% unless _pre_before contains "</pre>" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}
--- /dev/null
+// Base element style overrides
+// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id
+
+* {
+ box-sizing: border-box;
+}
+
+::selection {
+ color: $white;
+ background: $link-color;
+}
+
+html {
+ @include fs-4;
+
+ scroll-behavior: smooth;
+}
+
+body {
+ font-family: $body-font-family;
+ font-size: inherit;
+ line-height: $body-line-height;
+ color: $body-text-color;
+ background-color: $body-background-color;
+ overflow-wrap: break-word;
+}
+
+ol,
+ul,
+dl,
+pre,
+address,
+blockquote,
+table,
+div,
+hr,
+form,
+fieldset,
+noscript .table-wrapper {
+ margin-top: 0;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+#toctitle {
+ margin-top: 0;
+ margin-bottom: 1em;
+ font-weight: 500;
+ line-height: $body-heading-line-height;
+ color: $body-heading-color;
+}
+
+p {
+ margin-top: 1em;
+ margin-bottom: 1em;
+}
+
+a {
+ color: $link-color;
+ text-decoration: none;
+}
+
+a:not([class]) {
+ text-decoration: underline;
+ text-decoration-color: $border-color;
+ text-underline-offset: 2px;
+
+ &:hover {
+ text-decoration-color: rgba($link-color, 0.45);
+ }
+}
+
+code {
+ font-family: $mono-font-family;
+ font-size: 0.75em;
+ line-height: $body-line-height;
+}
+
+figure,
+pre {
+ margin: 0;
+}
+
+li {
+ margin: 0.25em 0;
+}
+
+img {
+ max-width: 100%;
+ height: auto;
+}
+
+hr {
+ height: 1px;
+ padding: 0;
+ margin: $sp-6 0;
+ background-color: $border-color;
+ border: 0;
+}
+
+// adds a GitHub-style sidebar to blockquotes
+blockquote {
+ margin: 10px 0;
+
+ // resets user-agent stylesheets for blockquotes
+ margin-block-start: 0;
+ margin-inline-start: 0;
+ padding-left: 15px;
+ border-left: 3px solid $border-color;
+}
--- /dev/null
+// Buttons and things that look like buttons
+// stylelint-disable color-named
+
+.btn {
+ display: inline-block;
+ box-sizing: border-box;
+ padding-top: 0.3em;
+ padding-right: 1em;
+ padding-bottom: 0.3em;
+ padding-left: 1em;
+ margin: 0;
+ font-family: inherit;
+ font-size: inherit;
+ font-weight: 500;
+ line-height: 1.5;
+ color: $link-color;
+ text-decoration: none;
+ vertical-align: baseline;
+ cursor: pointer;
+ background-color: $base-button-color;
+ border-width: 0;
+ border-radius: $border-btn-radius;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);
+ appearance: none;
+
+ &:focus {
+ text-decoration: none;
+ outline: none;
+ box-shadow: 0 0 0 3px rgba(blue, 0.25);
+ }
+
+ &:focus:hover,
+ &.selected:focus {
+ box-shadow: 0 0 0 3px rgba(blue, 0.25);
+ }
+
+ &:hover,
+ &.zeroclipboard-is-hover {
+ color: darken($link-color, 2%);
+ }
+
+ &:hover,
+ &:active,
+ &.zeroclipboard-is-hover,
+ &.zeroclipboard-is-active {
+ text-decoration: none;
+ background-color: darken($base-button-color, 1%);
+ }
+
+ &:active,
+ &.selected,
+ &.zeroclipboard-is-active {
+ background-color: darken($base-button-color, 3%);
+ background-image: none;
+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);
+ }
+
+ &.selected:hover {
+ background-color: darken(#dcdcdc, 5%);
+ }
+
+ &:disabled,
+ &.disabled {
+ &,
+ &:hover {
+ color: rgba(102, 102, 102, 0.5);
+ cursor: default;
+ background-color: rgba(229, 229, 229, 0.5);
+ background-image: none;
+ box-shadow: none;
+ }
+ }
+}
+
+.btn-outline {
+ color: $link-color;
+ background: transparent;
+ box-shadow: inset 0 0 0 2px $grey-lt-300;
+
+ &:hover,
+ &:active,
+ &.zeroclipboard-is-hover,
+ &.zeroclipboard-is-active {
+ color: darken($link-color, 4%);
+ text-decoration: none;
+ background-color: transparent;
+ box-shadow: inset 0 0 0 3px $grey-lt-300;
+ }
+
+ &:focus {
+ text-decoration: none;
+ outline: none;
+ box-shadow: inset 0 0 0 2px $grey-dk-100, 0 0 0 3px rgba(blue, 0.25);
+ }
+
+ &:focus:hover,
+ &.selected:focus {
+ box-shadow: inset 0 0 0 2px $grey-dk-100;
+ }
+}
+
+.btn-primary {
+ @include btn-color($btn-primary-text-color, $btn-primary-color);
+}
+
+.btn-purple {
+ @include btn-color($white, $purple-100);
+}
+
+.btn-blue {
+ @include btn-color($white, $blue-100);
+}
+
+.btn-green {
+ @include btn-color($white, $green-100);
+}
+
+.btn-yellow {
+ @include btn-color($grey-dk-300, $yellow-000);
+}
--- /dev/null
+// Code and syntax highlighting
+// stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type, scss/comment-no-empty
+
+// {% raw %}
+
+code {
+ padding: 0.2em 0.15em;
+ font-weight: 400;
+ background-color: $code-background-color;
+ border: $border $border-color;
+ border-radius: $border-radius;
+}
+
+// Avoid appearance of dark border around visited code links in Safari
+a:visited code {
+ border-color: $border-color;
+}
+
+// Content structure for highlighted code blocks using fences or Liquid
+//
+// ```[LANG]...```, no kramdown line_numbers:
+// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code
+//
+// ```[LANG]...```, kramdown line_numbers = true:
+// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code
+// > div.table-wrapper > table.rouge-table > tbody > tr
+// > td.rouge-gutter.gl > pre.lineno
+// | td.rouge-code > pre
+//
+// {% highlight LANG %}...{% endhighlight %}:
+// figure.highlight > pre > code.language-LANG
+//
+// {% highlight LANG linenos %}...{% endhighlight %}:
+// figure.highlight > pre > code.language-LANG
+// > div.table-wrapper > table.rouge-table > tbody > tr
+// > td.gutter.gl > pre.lineno
+// | td.code > pre
+//
+// ----...---- (AsciiDoc)
+// div.listingblock > div.content > pre.rouge.highlight
+//
+// fix_linenos removes the outermost pre when it encloses table.rouge-table
+//
+// See docs/index-test.md for some tests.
+//
+// No kramdown line_numbers: fences and Liquid highlighting look the same.
+// Kramdown line_numbers = true: fences have a wider gutter than with Liquid?
+
+// ```[LANG]...```
+div.highlighter-rouge,
+div.listingblock > div.content {
+ padding: $sp-3;
+ margin-top: 0;
+ margin-bottom: $sp-3;
+ overflow-x: auto;
+ background-color: $code-background-color;
+ border-radius: $border-radius;
+ box-shadow: none;
+ -webkit-overflow-scrolling: touch;
+
+ div.highlight,
+ pre.highlight,
+ code {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ }
+}
+
+// {% highlight LANG %}...{% endhighlight %},
+// {% highlight LANG linenos %}...{% endhighlight %}:
+figure.highlight {
+ padding: $sp-3;
+ margin-top: 0;
+ margin-bottom: 0;//$sp-3;
+ overflow-x: auto;
+ background-color: $code-background-color;
+ border-radius: $border-radius;
+ box-shadow: none;
+ -webkit-overflow-scrolling: touch;
+
+ pre,
+ code {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ }
+}
+
+// ```[LANG]...```, kramdown line_numbers = true,
+// {% highlight LANG linenos %}...{% endhighlight %}:
+.highlight .table-wrapper {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ box-shadow: none;
+
+ td,
+ pre {
+ @include fs-4;
+
+ min-width: 0;
+ padding: 0;
+ background-color: $code-background-color;
+ border: 0;
+ }
+
+ td.gl {
+ width: 1em;
+ padding-right: $sp-3;
+ }
+
+ pre {
+ margin: 0;
+ line-height: 1.5;
+ }
+}
+
+//
+// Code examples (rendered)
+//
+
+.code-example,
+.listingblock > .title {
+ padding: $sp-3;
+ margin-bottom: $sp-3;
+ overflow: auto;
+ border: 1px solid $border-color;
+ border-radius: $border-radius;
+
+ + .highlighter-rouge,
+ + .sectionbody .listingblock,
+ + .content,
+ + figure.highlight {
+ position: relative;
+ margin-top: -$sp-4;
+ border-right: 1px solid $border-color;
+ border-bottom: 1px solid $border-color;
+ border-left: 1px solid $border-color;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+ }
+}
+
+// Mermaid diagram code blocks should be left unstyled.
+code.language-mermaid {
+ padding: 0;
+ background-color: inherit;
+ border: 0;
+}
+
+// {% endraw %}
--- /dev/null
+$body-background-color: $grey-dk-300;
+$sidebar-color: $grey-dk-300;
+$border-color: $grey-dk-200;
+$body-text-color: $grey-lt-300;
+$body-heading-color: $grey-lt-000;
+$nav-child-link-color: $grey-dk-000;
+$search-result-preview-color: $grey-dk-000;
+$link-color: $blue-000;
+$btn-primary-color: $yellow-000;
+$btn-primary-text-color: $grey-dk-300;
+$base-button-color: $grey-dk-250;
+$search-background-color: $grey-dk-250;
+$table-background-color: $grey-dk-250;
+$feedback-color: darken($sidebar-color, 3%);
+
+// The following highlight theme is more legible than that used for the light color scheme
+
+// @import "./vendor/OneDarkJekyll/syntax-one-dark";
+// $code-background-color: #282c34;
+
+@import "./vendor/OneDarkJekyll/syntax-one-dark-vivid";
+
+$code-background-color: #31343f;
+
+// @import "./vendor/OneDarkJekyll/syntax-firewatch";
+// $code-background-color: #282c34;
+
+// @import "./vendor/OneDarkJekyll/syntax-firewatch-green";
+// $code-background-color: #282c34;
--- /dev/null
+// Moved from _sass/code.scss
+
+.highlight .c {
+ color: #586e75;
+} // comment //
+.highlight .err {
+ color: #93a1a1;
+} // error //
+.highlight .g {
+ color: #93a1a1;
+} // generic //
+.highlight .k {
+ color: #859900;
+} // keyword //
+.highlight .l {
+ color: #93a1a1;
+} // literal //
+.highlight .o {
+ color: #859900;
+} // operator //
+.highlight .x {
+ color: #cb4b16;
+} // other //
+.highlight .p {
+ color: #93a1a1;
+} // punctuation //
+.highlight .cm {
+ color: #586e75;
+} // comment.multiline //
+.highlight .cp {
+ color: #859900;
+} // comment.preproc //
+.highlight .c1 {
+ color: #586e75;
+} // comment.single //
+.highlight .cs {
+ color: #859900;
+} // comment.special //
+.highlight .gd {
+ color: #2aa198;
+} // generic.deleted //
+.highlight .ge {
+ font-style: italic;
+ color: #93a1a1;
+} // generic.emph //
+.highlight .gr {
+ color: #dc322f;
+} // generic.error //
+.highlight .gh {
+ color: #cb4b16;
+} // generic.heading //
+.highlight .gi {
+ color: #859900;
+} // generic.inserted //
+.highlight .go {
+ color: #93a1a1;
+} // generic.output //
+.highlight .gp {
+ color: #93a1a1;
+} // generic.prompt //
+.highlight .gs {
+ font-weight: bold;
+ color: #93a1a1;
+} // generic.strong //
+.highlight .gu {
+ color: #cb4b16;
+} // generic.subheading //
+.highlight .gt {
+ color: #93a1a1;
+} // generic.traceback //
+.highlight .kc {
+ color: #cb4b16;
+} // keyword.constant //
+.highlight .kd {
+ color: #268bd2;
+} // keyword.declaration //
+.highlight .kn {
+ color: #859900;
+} // keyword.namespace //
+.highlight .kp {
+ color: #859900;
+} // keyword.pseudo //
+.highlight .kr {
+ color: #268bd2;
+} // keyword.reserved //
+.highlight .kt {
+ color: #dc322f;
+} // keyword.type //
+.highlight .ld {
+ color: #93a1a1;
+} // literal.date //
+.highlight .m {
+ color: #2aa198;
+} // literal.number //
+.highlight .s {
+ color: #2aa198;
+} // literal.string //
+.highlight .na {
+ color: #555;
+} // name.attribute //
+.highlight .nb {
+ color: #b58900;
+} // name.builtin //
+.highlight .nc {
+ color: #268bd2;
+} // name.class //
+.highlight .no {
+ color: #cb4b16;
+} // name.constant //
+.highlight .nd {
+ color: #268bd2;
+} // name.decorator //
+.highlight .ni {
+ color: #cb4b16;
+} // name.entity //
+.highlight .ne {
+ color: #cb4b16;
+} // name.exception //
+.highlight .nf {
+ color: #268bd2;
+} // name.function //
+.highlight .nl {
+ color: #555;
+} // name.label //
+.highlight .nn {
+ color: #93a1a1;
+} // name.namespace //
+.highlight .py {
+ color: #93a1a1;
+} // name.property //
+.highlight .nt {
+ color: #268bd2;
+} // name.tag //
+.highlight .nv {
+ color: #268bd2;
+} // name.variable //
+.highlight .ow {
+ color: #859900;
+} // operator.word //
+.highlight .w {
+ color: #93a1a1;
+} // text.whitespace //
+.highlight .mf {
+ color: #2aa198;
+} // literal.number.float //
+.highlight .mh {
+ color: #2aa198;
+} // literal.number.hex //
+.highlight .mi {
+ color: #2aa198;
+} // literal.number.integer //
+.highlight .mo {
+ color: #2aa198;
+} // literal.number.oct //
+.highlight .sb {
+ color: #586e75;
+} // literal.string.backtick //
+.highlight .sc {
+ color: #2aa198;
+} // literal.string.char //
+.highlight .sd {
+ color: #93a1a1;
+} // literal.string.doc //
+.highlight .s2 {
+ color: #2aa198;
+} // literal.string.double //
+.highlight .se {
+ color: #cb4b16;
+} // literal.string.escape //
+.highlight .sh {
+ color: #93a1a1;
+} // literal.string.heredoc //
+.highlight .si {
+ color: #2aa198;
+} // literal.string.interpol //
+.highlight .sx {
+ color: #2aa198;
+} // literal.string.other //
+.highlight .sr {
+ color: #dc322f;
+} // literal.string.regex //
+.highlight .s1 {
+ color: #2aa198;
+} // literal.string.single //
+.highlight .ss {
+ color: #2aa198;
+} // literal.string.symbol //
+.highlight .bp {
+ color: #268bd2;
+} // name.builtin.pseudo //
+.highlight .vc {
+ color: #268bd2;
+} // name.variable.class //
+.highlight .vg {
+ color: #268bd2;
+} // name.variable.global //
+.highlight .vi {
+ color: #268bd2;
+} // name.variable.instance //
+.highlight .il {
+ color: #2aa198;
+} // literal.number.integer.long //
+.highlight, .highlight .w {
+ color: #fbf1c7;
+ background-color: #282828;
+}
+.highlight .err {
+ color: #fb4934;
+ background-color: #282828;
+ font-weight: bold;
+}
+.highlight .c, .highlight .ch, .highlight .cd, .highlight .cm, .highlight .cpf, .highlight .c1, .highlight .cs {
+ color: #928374;
+ font-style: italic;
+}
+.highlight .cp {
+ color: #8ec07c;
+}
+.highlight .nt {
+ color: #fb4934;
+}
+.highlight .o, .highlight .ow {
+ color: #fbf1c7;
+}
+.highlight .p, .highlight .pi {
+ color: #fbf1c7;
+}
+.highlight .gi {
+ color: #b8bb26;
+ background-color: #282828;
+}
+.highlight .gd {
+ color: #fb4934;
+ background-color: #282828;
+}
+.highlight .gh {
+ color: #b8bb26;
+ font-weight: bold;
+}
+.highlight .k, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .kv {
+ color: #fb4934;
+}
+.highlight .kc {
+ color: #d3869b;
+}
+.highlight .kt {
+ color: #fabd2f;
+}
+.highlight .kd {
+ color: #fe8019;
+}
+.highlight .s, .highlight .sb, .highlight .sc, .highlight .dl, .highlight .sd, .highlight .s2, .highlight .sh, .highlight .sx, .highlight .s1 {
+ color: #b8bb26;
+ font-style: italic;
+}
+.highlight .si {
+ color: #b8bb26;
+ font-style: italic;
+}
+.highlight .sr {
+ color: #b8bb26;
+ font-style: italic;
+}
+.highlight .sa {
+ color: #fb4934;
+}
+.highlight .se {
+ color: #fe8019;
+}
+.highlight .nn {
+ color: #8ec07c;
+}
+.highlight .nc {
+ color: #8ec07c;
+}
+.highlight .no {
+ color: #d3869b;
+}
+.highlight .na {
+ color: #b8bb26;
+}
+.highlight .m, .highlight .mb, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .il, .highlight .mo, .highlight .mx {
+ color: #d3869b;
+}
+.highlight .ss {
+ color: #83a598;
+}
\ No newline at end of file
--- /dev/null
+@charset "UTF-8";
+
+// Styles for rendered markdown in the .main-content container
+// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity, selector-max-id
+
+.main-content {
+ line-height: $content-line-height;
+
+ ol,
+ ul,
+ dl,
+ pre,
+ address,
+ blockquote,
+ .table-wrapper {
+ margin-top: 0.5em;
+ }
+
+ a {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ ul,
+ ol {
+ padding-left: 1.5em;
+ }
+
+ li {
+ .highlight {
+ margin-top: $sp-1;
+ }
+ }
+
+ ol {
+ list-style-type: none;
+ counter-reset: step-counter;
+
+ > li {
+ position: relative;
+
+ &::before {
+ position: absolute;
+ top: 0.2em;
+ left: -1.6em;
+ color: $grey-dk-000;
+ content: counter(step-counter);
+ counter-increment: step-counter;
+ @include fs-3;
+
+ @include mq(sm) {
+ top: 0.11em;
+ }
+ }
+
+ ol {
+ counter-reset: sub-counter;
+
+ > li {
+ &::before {
+ content: counter(sub-counter, lower-alpha);
+ counter-increment: sub-counter;
+ }
+ }
+ }
+ }
+ }
+
+ ul {
+ list-style: none;
+
+ > li {
+ &::before {
+ position: absolute;
+ margin-left: -1.4em;
+ color: $grey-dk-000;
+ content: "•";
+ }
+ }
+ }
+
+ .task-list-item {
+ &::before {
+ content: "";
+ }
+ }
+
+ .task-list-item-checkbox {
+ margin-right: 0.6em;
+ margin-left: -1.4em;
+
+ // The same margin-left is used above for ul > li::before
+ }
+
+ hr + * {
+ margin-top: 0;
+ }
+
+ h1:first-of-type {
+ margin-top: 0.5em;
+ }
+
+ dl {
+ display: grid;
+ grid-template: auto / 10em 1fr;
+ }
+
+ dt,
+ dd {
+ margin: 0.25em 0;
+ }
+
+ dt {
+ grid-column: 1;
+ font-weight: 500;
+ text-align: right;
+
+ &::after {
+ content: ":";
+ }
+ }
+
+ dd {
+ grid-column: 2;
+ margin-bottom: 0;
+ margin-left: 1em;
+
+ blockquote,
+ div,
+ dl,
+ dt,
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6,
+ li,
+ ol,
+ p,
+ pre,
+ table,
+ ul,
+ .table-wrapper {
+ &:first-child {
+ margin-top: 0;
+ }
+ }
+ }
+
+ dd,
+ ol,
+ ul {
+ dl:first-child {
+ dt:first-child,
+ dd:nth-child(2) {
+ margin-top: 0;
+ }
+ }
+ }
+
+ .anchor-heading {
+ position: absolute;
+ right: -$sp-4;
+ width: $sp-5;
+ height: 100%;
+ padding-right: $sp-1;
+ padding-left: $sp-1;
+ overflow: visible;
+
+ @include mq(md) {
+ right: auto;
+ left: -$sp-5;
+ }
+
+ svg {
+ display: inline-block;
+ width: 100%;
+ height: 100%;
+ color: $link-color;
+ visibility: hidden;
+ }
+ }
+
+ .anchor-heading:hover,
+ .anchor-heading:focus,
+ h1:hover > .anchor-heading,
+ h2:hover > .anchor-heading,
+ h3:hover > .anchor-heading,
+ h4:hover > .anchor-heading,
+ h5:hover > .anchor-heading,
+ h6:hover > .anchor-heading {
+ svg {
+ visibility: visible;
+ }
+ }
+
+ summary {
+ cursor: pointer;
+ }
+
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6,
+ #toctitle {
+ position: relative;
+ margin-top: 1.5em;
+ margin-bottom: 0.25em;
+
+ + table,
+ + .table-wrapper,
+ + .code-example,
+ + .highlighter-rouge,
+ + .sectionbody .listingblock {
+ margin-top: 1em;
+ }
+
+ + p:not(.label) {
+ margin-top: 0;
+ }
+ }
+
+ > h1:first-child,
+ > h2:first-child,
+ > h3:first-child,
+ > h4:first-child,
+ > h5:first-child,
+ > h6:first-child,
+ > .sect1:first-child > h2,
+ > .sect2:first-child > h3,
+ > .sect3:first-child > h4,
+ > .sect4:first-child > h5,
+ > .sect5:first-child > h6 {
+ margin-top: $sp-2;
+ }
+}
--- /dev/null
+$pink-000: #f77ef1;
+$pink-100: #f967f1;
+$pink-200: #e94ee1;
+$pink-300: #dd2cd4;
+
+.remove:before {
+ content: none !important
+}
\ No newline at end of file
--- /dev/null
+// Labels (not the form kind)
+
+.label,
+.label-blue {
+ display: inline-block;
+ padding-top: 0.16em;
+ padding-right: 0.56em;
+ padding-bottom: 0.16em;
+ padding-left: 0.56em;
+ margin-right: $sp-2;
+ margin-left: $sp-2;
+ color: $white;
+ text-transform: uppercase;
+ vertical-align: middle;
+ background-color: $blue-100;
+ @include fs-2;
+
+ border-radius: 12px;
+}
+
+.label-green {
+ background-color: $green-200;
+}
+
+.label-purple {
+ background-color: $purple-100;
+}
+
+.label-red {
+ background-color: $red-200;
+}
+
+.label-yellow {
+ color: $grey-dk-200;
+ background-color: $yellow-200;
+}
--- /dev/null
+// The basic two column layout
+
+.side-bar {
+ z-index: 0;
+ display: flex;
+ flex-wrap: wrap;
+ background-color: $sidebar-color;
+
+ @include mq(md) {
+ flex-wrap: nowrap;
+ position: fixed;
+ width: $nav-width-md;
+ height: 100%;
+ flex-direction: column;
+ border-right: $border $border-color;
+ align-items: flex-end;
+ }
+
+ @include mq(lg) {
+ width: calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width});
+ min-width: $nav-width;
+ }
+}
+
+.main {
+ @include mq(md) {
+ position: relative;
+ max-width: $content-width;
+ margin-left: $nav-width-md;
+ }
+
+ @include mq(lg) {
+ margin-left: calc(
+ (100% - #{$nav-width + $content-width}) / 2 + #{$nav-width}
+ );
+ }
+}
+
+.main-content-wrap {
+ @include container;
+
+ padding-top: $gutter-spacing-sm;
+ padding-bottom: $gutter-spacing-sm;
+
+ @include mq(md) {
+ padding-top: $gutter-spacing;
+ padding-bottom: $gutter-spacing;
+ }
+}
+
+.main-header {
+ z-index: 0;
+ display: none;
+ background-color: $sidebar-color;
+
+ @include mq(md) {
+ display: flex;
+ justify-content: space-between;
+ height: $header-height;
+ background-color: $body-background-color;
+ border-bottom: $border $border-color;
+ }
+
+ &.nav-open {
+ display: block;
+
+ @include mq(md) {
+ display: flex;
+ }
+ }
+}
+
+.site-nav,
+.site-header,
+.site-footer {
+ width: 100%;
+
+ @include mq(lg) {
+ width: $nav-width;
+ }
+}
+
+.site-nav {
+ display: none;
+
+ &.nav-open {
+ display: block;
+ }
+
+ @include mq(md) {
+ display: block;
+ padding-top: $sp-8;
+ padding-bottom: $gutter-spacing-sm;
+ overflow-y: auto;
+ flex: 1 1 auto;
+ }
+}
+
+.site-header {
+ display: flex;
+ min-height: $header-height;
+ align-items: center;
+
+ @include mq(md) {
+ height: $header-height;
+ max-height: $header-height;
+ border-bottom: $border $border-color;
+ }
+}
+
+.site-title {
+ @include container;
+
+ flex-grow: 1;
+ display: flex;
+ height: 100%;
+ align-items: center;
+ padding-top: $sp-3;
+ padding-bottom: $sp-3;
+ @include fs-6;
+
+ @include mq(md) {
+ padding-top: $sp-2;
+ padding-bottom: $sp-2;
+ }
+}
+
+@if variable-exists(logo) {
+ .site-logo {
+ width: 100%;
+ height: 100%;
+ background-image: url($logo);
+ background-repeat: no-repeat;
+ background-position: left center;
+ background-size: contain;
+ }
+}
+
+.site-button {
+ display: flex;
+ height: 100%;
+ padding: $gutter-spacing-sm;
+ align-items: center;
+}
+
+@include mq(md) {
+ .site-header .site-button {
+ display: none;
+ }
+}
+
+.site-title:hover {
+ background-image: linear-gradient(
+ -90deg,
+ rgba($feedback-color, 1) 0%,
+ rgba($feedback-color, 0.8) 80%,
+ rgba($feedback-color, 0) 100%
+ );
+}
+
+.site-button:hover {
+ background-image: linear-gradient(
+ -90deg,
+ rgba($feedback-color, 1) 0%,
+ rgba($feedback-color, 0.8) 100%
+ );
+}
+
+// stylelint-disable selector-max-type
+
+body {
+ position: relative;
+ padding-bottom: $sp-10;
+ overflow-y: scroll;
+
+ @include mq(md) {
+ position: static;
+ padding-bottom: 0;
+ }
+}
+
+// stylelint-enable selector-max-type
+
+.site-footer {
+ @include container;
+
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ padding-top: $sp-4;
+ padding-bottom: $sp-4;
+ color: $grey-dk-000;
+ @include fs-2;
+
+ @include mq(md) {
+ position: static;
+ justify-self: end;
+ }
+}
+
+.icon {
+ width: $sp-5;
+ height: $sp-5;
+ color: $link-color;
+}
--- /dev/null
+// Import external dependencies
+@import "./vendor/normalize.scss/normalize";
+
+// Modules
+@import "./base";
+@import "./layout";
+@import "./content";
+@import "./navigation";
+@import "./typography";
+@import "./labels";
+@import "./buttons";
+@import "./search";
+@import "./tables";
+@import "./code";
+@import "./utilities/utilities";
+@import "./print";
+@import "./skiptomain";
--- /dev/null
+// Main nav, breadcrumb, etc...
+// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity
+
+.nav-list {
+ padding: 0;
+ margin-top: 0;
+ margin-bottom: 0;
+ list-style: none;
+
+ .nav-list-item {
+ @include fs-4;
+
+ position: relative;
+ margin: 0;
+
+ @include mq(md) {
+ @include fs-3;
+ }
+
+ .nav-list-link {
+ display: block;
+ min-height: $nav-list-item-height-sm;
+ padding-top: $sp-1;
+ padding-bottom: $sp-1;
+ line-height: #{$nav-list-item-height-sm - 2 * $sp-1};
+ @if $nav-list-expander-right {
+ padding-right: $nav-list-item-height-sm;
+ padding-left: $gutter-spacing-sm;
+ } @else {
+ padding-right: $gutter-spacing-sm;
+ padding-left: $nav-list-item-height-sm;
+ }
+
+ @include mq(md) {
+ min-height: $nav-list-item-height;
+ line-height: #{$nav-list-item-height - 2 * $sp-1};
+ @if $nav-list-expander-right {
+ padding-right: $nav-list-item-height;
+ padding-left: $gutter-spacing;
+ } @else {
+ padding-right: $gutter-spacing;
+ padding-left: $nav-list-item-height;
+ }
+ }
+
+ &.external > svg {
+ width: $sp-4;
+ height: $sp-4;
+ vertical-align: text-bottom;
+ }
+
+ &.active {
+ font-weight: 600;
+ text-decoration: none;
+ }
+
+ &:hover,
+ &.active {
+ background-image: linear-gradient(
+ -90deg,
+ rgba($feedback-color, 1) 0%,
+ rgba($feedback-color, 0.8) 80%,
+ rgba($feedback-color, 0) 100%
+ );
+ }
+ }
+
+ .nav-list-expander {
+ position: absolute;
+ @if $nav-list-expander-right {
+ right: 0;
+ }
+
+ width: $nav-list-item-height-sm;
+ height: $nav-list-item-height-sm;
+ padding-top: #{$nav-list-item-height-sm / 4};
+ padding-right: #{$nav-list-item-height-sm / 4};
+ padding-bottom: #{$nav-list-item-height-sm / 4};
+ padding-left: #{$nav-list-item-height-sm / 4};
+ color: $link-color;
+
+ @include mq(md) {
+ width: $nav-list-item-height;
+ height: $nav-list-item-height;
+ padding-top: #{$nav-list-item-height / 4};
+ padding-right: #{$nav-list-item-height / 4};
+ padding-bottom: #{$nav-list-item-height / 4};
+ padding-left: #{$nav-list-item-height / 4};
+ }
+
+ &:hover {
+ background-image: linear-gradient(
+ -90deg,
+ rgba($feedback-color, 1) 0%,
+ rgba($feedback-color, 0.8) 100%
+ );
+ }
+
+ @if $nav-list-expander-right {
+ svg {
+ transform: rotate(90deg);
+ }
+ }
+ }
+
+ > .nav-list {
+ display: none;
+ padding-left: $sp-3;
+ list-style: none;
+
+ .nav-list-item {
+ position: relative;
+
+ .nav-list-link {
+ color: $nav-child-link-color;
+ }
+
+ .nav-list-expander {
+ color: $nav-child-link-color;
+ }
+ }
+ }
+
+ &.active {
+ > .nav-list-expander svg {
+ @if $nav-list-expander-right {
+ transform: rotate(-90deg);
+ } @else {
+ transform: rotate(90deg);
+ }
+ }
+
+ > .nav-list {
+ display: block;
+ }
+ }
+ }
+}
+
+.nav-category {
+ padding-top: $sp-2;
+ padding-right: $gutter-spacing-sm;
+ padding-bottom: $sp-2;
+ padding-left: $gutter-spacing-sm;
+ font-weight: 600;
+ text-align: start;
+ text-transform: uppercase;
+ border-bottom: $border $border-color;
+ @include fs-2;
+
+ @include mq(md) {
+ padding-right: $gutter-spacing;
+ padding-left: $gutter-spacing;
+ margin-top: $gutter-spacing-sm;
+ text-align: start;
+
+ &:first-child {
+ margin-top: 0;
+ }
+ }
+}
+
+.nav-list.nav-category-list {
+ > .nav-list-item {
+ margin: 0;
+
+ > .nav-list {
+ padding: 0;
+
+ > .nav-list-item {
+ > .nav-list-link {
+ color: $link-color;
+ }
+
+ > .nav-list-expander {
+ color: $link-color;
+ }
+ }
+ }
+ }
+}
+
+// Aux nav
+
+.aux-nav {
+ height: 100%;
+ overflow-x: auto;
+ @include fs-2;
+
+ .aux-nav-list {
+ display: flex;
+ height: 100%;
+ padding: 0;
+ margin: 0;
+ list-style: none;
+ }
+
+ .aux-nav-list-item {
+ display: inline-block;
+ height: 100%;
+ padding: 0;
+ margin: 0;
+ }
+
+ @include mq(md) {
+ padding-right: $gutter-spacing-sm;
+ }
+}
+
+// Breadcrumb nav
+
+.breadcrumb-nav {
+ @include mq(md) {
+ margin-top: -$sp-4;
+ }
+}
+
+.breadcrumb-nav-list {
+ padding-left: 0;
+ margin-bottom: $sp-3;
+ list-style: none;
+}
+
+.breadcrumb-nav-list-item {
+ display: table-cell;
+ @include fs-2;
+
+ &::before {
+ display: none;
+ }
+
+ &::after {
+ display: inline-block;
+ margin-right: $sp-2;
+ margin-left: $sp-2;
+ color: $grey-dk-000;
+ content: "/";
+ }
+
+ &:last-child {
+ &::after {
+ content: "";
+ }
+ }
+}
--- /dev/null
+// stylelint-disable selector-max-specificity, selector-max-id, selector-max-type, selector-no-qualifying-type
+
+@media print {
+ .site-footer,
+ .site-button,
+ #edit-this-page,
+ #back-to-top,
+ .site-nav,
+ .main-header {
+ display: none !important;
+ }
+
+ .side-bar {
+ width: 100%;
+ height: auto;
+ border-right: 0 !important;
+ }
+
+ .site-header {
+ border-bottom: 1px solid $border-color;
+ }
+
+ .site-title {
+ font-size: $root-font-size !important;
+ font-weight: 700 !important;
+ }
+
+ .text-small {
+ font-size: 8pt !important;
+ }
+
+ pre.highlight {
+ border: 1px solid $border-color;
+ }
+
+ .main {
+ max-width: none;
+ margin-left: 0;
+ }
+}
--- /dev/null
+// Search input and autocomplete
+
+.search {
+ position: relative;
+ z-index: 2;
+ flex-grow: 1;
+ height: $sp-10;
+ padding: $sp-2;
+ transition: padding linear #{$transition-duration / 2};
+
+ @include mq(md) {
+ position: relative !important;
+ width: auto !important;
+ height: 100% !important;
+ padding: 0;
+ transition: none;
+ }
+}
+
+.search-input-wrap {
+ position: relative;
+ z-index: 1;
+ height: $sp-8;
+ overflow: hidden;
+ border-radius: $border-radius;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);
+ transition: height linear #{$transition-duration / 2};
+
+ @include mq(md) {
+ position: absolute;
+ width: 100%;
+ max-width: $search-results-width;
+ height: 100% !important;
+ border-radius: 0;
+ box-shadow: none;
+ transition: width ease $transition-duration;
+ }
+}
+
+.search-input {
+ position: absolute;
+ width: 100%;
+ height: 100%;
+ padding-top: $sp-2;
+ padding-right: $gutter-spacing-sm;
+ padding-bottom: $sp-2;
+ padding-left: #{$gutter-spacing-sm + $sp-5};
+ font-size: 16px;
+ color: $body-text-color;
+ background-color: $search-background-color;
+ border-top: 0;
+ border-right: 0;
+ border-bottom: 0;
+ border-left: 0;
+ border-radius: 0;
+
+ @include mq(md) {
+ padding-top: $gutter-spacing-sm;
+ padding-bottom: $gutter-spacing-sm;
+ padding-left: #{$gutter-spacing + $sp-5};
+ font-size: 14px;
+ background-color: $body-background-color;
+ transition: padding-left linear #{$transition-duration / 2};
+ }
+
+ &:focus {
+ outline: 0;
+
+ + .search-label .search-icon {
+ color: $link-color;
+ }
+ }
+}
+
+.search-label {
+ position: absolute;
+ display: flex;
+ height: 100%;
+ padding-left: $gutter-spacing-sm;
+
+ @include mq(md) {
+ padding-left: $gutter-spacing;
+ transition: padding-left linear #{$transition-duration / 2};
+ }
+
+ .search-icon {
+ width: #{$sp-4 * 1.2};
+ height: #{$sp-4 * 1.2};
+ align-self: center;
+ color: $grey-dk-000;
+ }
+}
+
+.search-results {
+ position: absolute;
+ left: 0;
+ display: none;
+ width: 100%;
+ max-height: calc(100% - #{$sp-10});
+ overflow-y: auto;
+ background-color: $search-background-color;
+ border-bottom-right-radius: $border-radius;
+ border-bottom-left-radius: $border-radius;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);
+
+ @include mq(md) {
+ top: 100%;
+ width: $search-results-width;
+ max-height: calc(100vh - 200%) !important;
+ }
+}
+
+.search-results-list {
+ padding-left: 0;
+ margin-bottom: $sp-1;
+ list-style: none;
+ @include fs-4;
+
+ @include mq(md) {
+ @include fs-3;
+ }
+}
+
+.search-results-list-item {
+ padding: 0;
+ margin: 0;
+}
+
+.search-result {
+ display: block;
+ padding-top: $sp-1;
+ padding-right: $sp-3;
+ padding-bottom: $sp-1;
+ padding-left: $sp-3;
+
+ &:hover,
+ &.active {
+ background-color: $feedback-color;
+ }
+}
+
+.search-result-title {
+ display: block;
+ padding-top: $sp-2;
+ padding-bottom: $sp-2;
+
+ @include mq(sm) {
+ display: inline-block;
+ width: 40%;
+ padding-right: $sp-2;
+ vertical-align: top;
+ }
+}
+
+.search-result-doc {
+ display: flex;
+ align-items: center;
+ word-wrap: break-word;
+
+ &.search-result-doc-parent {
+ opacity: 0.5;
+ @include fs-3;
+
+ @include mq(md) {
+ @include fs-2;
+ }
+ }
+
+ .search-result-icon {
+ width: $sp-4;
+ height: $sp-4;
+ margin-right: $sp-2;
+ color: $link-color;
+ flex-shrink: 0;
+ }
+
+ .search-result-doc-title {
+ overflow: auto;
+ }
+}
+
+.search-result-section {
+ margin-left: #{$sp-4 + $sp-2};
+ word-wrap: break-word;
+}
+
+.search-result-rel-url {
+ display: block;
+ margin-left: #{$sp-4 + $sp-2};
+ overflow: hidden;
+ color: $search-result-preview-color;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ @include fs-1;
+}
+
+.search-result-previews {
+ display: block;
+ padding-top: $sp-2;
+ padding-bottom: $sp-2;
+ padding-left: $sp-4;
+ margin-left: $sp-2;
+ color: $search-result-preview-color;
+ word-wrap: break-word;
+ border-left: $border;
+ border-left-color: $border-color;
+ @include fs-2;
+
+ @include mq(sm) {
+ display: inline-block;
+ width: 60%;
+ padding-left: $sp-2;
+ margin-left: 0;
+ vertical-align: top;
+ }
+}
+
+.search-result-preview + .search-result-preview {
+ margin-top: $sp-1;
+}
+
+.search-result-highlight {
+ font-weight: bold;
+}
+
+.search-no-result {
+ padding-top: $sp-2;
+ padding-right: $sp-3;
+ padding-bottom: $sp-2;
+ padding-left: $sp-3;
+ @include fs-3;
+}
+
+.search-button {
+ position: fixed;
+ right: $sp-4;
+ bottom: $sp-4;
+ display: flex;
+ width: $sp-9;
+ height: $sp-9;
+ background-color: $search-background-color;
+ border: 1px solid rgba($link-color, 0.3);
+ border-radius: #{$sp-9 / 2};
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);
+ align-items: center;
+ justify-content: center;
+}
+
+.search-overlay {
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1;
+ width: 0;
+ height: 0;
+ background-color: rgba(0, 0, 0, 0.3);
+ opacity: 0;
+ transition: opacity ease $transition-duration, width 0s $transition-duration,
+ height 0s $transition-duration;
+}
+
+.search-active {
+ .search {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ padding: 0;
+ }
+
+ .search-input-wrap {
+ height: $sp-10;
+ border-radius: 0;
+
+ @include mq(md) {
+ width: $search-results-width;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);
+ }
+ }
+
+ .search-input {
+ background-color: $search-background-color;
+
+ @include mq(md) {
+ padding-left: 2.3rem;
+ }
+ }
+
+ .search-label {
+ @include mq(md) {
+ padding-left: 0.6rem;
+ }
+ }
+
+ .search-results {
+ display: block;
+ }
+
+ .search-overlay {
+ width: 100%;
+ height: 100%;
+ opacity: 1;
+ transition: opacity ease $transition-duration, width 0s, height 0s;
+ }
+
+ @include mq(md) {
+ .main {
+ position: fixed;
+ right: 0;
+ left: 0;
+ }
+ }
+
+ .main-header {
+ padding-top: $sp-10;
+
+ @include mq(md) {
+ padding-top: 0;
+ }
+ }
+}
--- /dev/null
+// Skipnav
+// Skip to main content
+
+a.skip-to-main {
+ left: -999px;
+ position: absolute;
+ top: auto;
+ width: 1px;
+ height: 1px;
+ overflow: hidden;
+ z-index: -999;
+}
+
+a.skip-to-main:focus,
+a.skip-to-main:active {
+ color: $link-color;
+ background-color: $body-background-color;
+ left: auto;
+ top: auto;
+ width: 30%;
+ height: auto;
+ overflow: auto;
+ margin: 10px 35%;
+ padding: 5px;
+ border-radius: 15px;
+ border: 4px solid $btn-primary-color;
+ text-align: center;
+ font-size: 1.2em;
+ z-index: 999;
+}
--- /dev/null
+@function rem($size, $unit: "") {
+ $rem-size: $size / $root-font-size;
+
+ @if $unit == false {
+ @return #{$rem-size};
+ } @else {
+ @return #{$rem-size}rem;
+ }
+}
--- /dev/null
+// Typography
+
+$body-font-family: system-ui, -apple-system, blinkmacsystemfont, "Segoe UI",
+ roboto, "Helvetica Neue", arial, sans-serif !default;
+$mono-font-family: "SFMono-Regular", menlo, consolas, monospace !default;
+$root-font-size: 16px !default; // Base font-size for rems
+$body-line-height: 1.4 !default;
+$content-line-height: 1.6 !default;
+$body-heading-line-height: 1.25 !default;
+
+// Font size
+// `-sm` suffix is the size at the small (and above) media query
+
+$font-size-1: 9px !default;
+$font-size-1-sm: 10px !default;
+$font-size-2: 11px !default; // h4 - uppercased!, h6 not uppercased, text-small
+$font-size-3: 12px !default; // h5
+$font-size-4: 14px !default;
+$font-size-5: 16px !default; // h3
+$font-size-6: 18px !default; // h2
+$font-size-7: 24px !default;
+$font-size-8: 32px !default; // h1
+$font-size-9: 36px !default;
+$font-size-10: 42px !default;
+$font-size-10-sm: 48px !default;
+
+// Colors
+
+$white: #fff !default;
+$grey-dk-000: #959396 !default;
+$grey-dk-100: #5c5962 !default;
+$grey-dk-200: #44434d !default;
+$grey-dk-250: #302d36 !default;
+$grey-dk-300: #27262b !default;
+$grey-lt-000: #f5f6fa !default;
+$grey-lt-100: #eeebee !default;
+$grey-lt-200: #ecebed !default;
+$grey-lt-300: #e6e1e8 !default;
+$purple-000: #7253ed !default;
+$purple-100: #5e41d0 !default;
+$purple-200: #4e26af !default;
+$purple-300: #381885 !default;
+$blue-000: #1d9cd8 !default;
+$blue-100: #008bef !default;
+$blue-200: #264caf !default;
+$blue-300: #183385 !default;
+$green-000: #41d693 !default;
+$green-100: #11b584 !default;
+$green-200: #009c7b !default;
+$green-300: #026e57 !default;
+$yellow-000: #ffd700 !default;
+$yellow-100: #fadf50 !default;
+$yellow-200: #f7d12e !default;
+$yellow-300: #e7af06 !default;
+$red-000: #f77e7e !default;
+$red-100: #f96e65 !default;
+$red-200: #e94c4c !default;
+$red-300: #dd2e2e !default;
+$body-background-color: $white !default;
+$sidebar-color: $grey-lt-000 !default;
+$search-background-color: $white !default;
+$table-background-color: $white !default;
+$code-background-color: #282828!default;
+$feedback-color: darken($sidebar-color, 3%) !default;
+$body-text-color: $grey-dk-100 !default;
+$body-heading-color: $grey-dk-300 !default;
+$search-result-preview-color: $grey-dk-000 !default;
+$nav-child-link-color: $grey-dk-100 !default;
+$link-color: $blue-100 !default;
+$btn-primary-color: $blue-000;
+$btn-primary-text-color: $white !default;
+$base-button-color: #f7f7f7 !default;
+
+// Spacing
+
+$spacing-unit: 1rem; // 1rem == 16px
+
+$spacers: (
+ sp-0: 0,
+ sp-1: $spacing-unit * 0.25,
+ sp-2: $spacing-unit * 0.5,
+ sp-3: $spacing-unit * 0.75,
+ sp-4: $spacing-unit,
+ sp-5: $spacing-unit * 1.5,
+ sp-6: $spacing-unit * 2,
+ sp-7: $spacing-unit * 2.5,
+ sp-8: $spacing-unit * 3,
+ sp-9: $spacing-unit * 3.5,
+ sp-10: $spacing-unit * 4,
+) !default;
+$sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px
+$sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px
+$sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px
+$sp-4: map-get($spacers, sp-4) !default; // 1 rem == 16px
+$sp-5: map-get($spacers, sp-5) !default; // 1.5 rem == 24px
+$sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px
+$sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px
+$sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px
+$sp-9: map-get($spacers, sp-9) !default; // 3.5 rem == 56px
+$sp-10: map-get($spacers, sp-10) !default; // 4 rem == 64px
+
+// Borders
+
+$border: 1px solid !default;
+$border-radius: 4px !default;
+$border-btn-radius: 24px !default;
+$border-color: $grey-lt-100 !default;
+
+// Grid system
+
+$gutter-spacing: $sp-6 !default;
+$gutter-spacing-sm: $sp-4 !default;
+$nav-width: 264px !default;
+$nav-width-md: 248px !default;
+$nav-list-item-height: $sp-6 !default;
+$nav-list-item-height-sm: $sp-8 !default;
+$nav-list-expander-right: true;
+$content-width: 1000px !default;
+$header-height: 60px !default;
+$search-results-width: $content-width - $nav-width !default;
+$transition-duration: 400ms;
+
+// Media queries in pixels
+
+$media-queries: (
+ xs: 320px,
+ sm: 500px,
+ md: $content-width,
+ lg: $content-width + $nav-width,
+ xl: 1400px,
+) !default;
--- /dev/null
+// Colored button
+
+@mixin btn-color($fg, $bg) {
+ color: $fg;
+ background-color: $bg;
+
+ &:hover,
+ &.zeroclipboard-is-hover {
+ color: $fg;
+ background-color: darken($bg, 4%);
+ }
+
+ &:active,
+ &.selected,
+ &.zeroclipboard-is-active {
+ background-color: darken($bg, 5%);
+ background-image: none;
+ box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15);
+ }
+
+ &.selected:hover {
+ background-color: darken($bg, 10%);
+ }
+}
--- /dev/null
+// Media query
+
+// Media query mixin
+// Usage:
+// @include mq(md) {
+// ..medium and up styles
+// }
+@mixin mq($name) {
+ // Retrieves the value from the key
+ $value: map-get($media-queries, $name);
+
+ // If the key exists in the map
+ @if $value {
+ // Prints a media query based on the value
+ @media (min-width: rem($value)) {
+ @content;
+ }
+ } @else {
+ @warn "No value could be retrieved from `#{$media-query}`. "
+ + "Please make sure it is defined in `$media-queries` map.";
+ }
+}
+
+// Responsive container
+
+@mixin container {
+ padding-right: $gutter-spacing-sm;
+ padding-left: $gutter-spacing-sm;
+
+ @include mq(md) {
+ padding-right: $gutter-spacing;
+ padding-left: $gutter-spacing;
+ }
+}
--- /dev/null
+@mixin fs-1 {
+ font-size: $font-size-1 !important;
+
+ @include mq(sm) {
+ font-size: $font-size-1-sm !important;
+ }
+}
+
+@mixin fs-2 {
+ font-size: $font-size-2 !important;
+
+ @include mq(sm) {
+ font-size: $font-size-3 !important;
+ }
+}
+
+@mixin fs-3 {
+ font-size: $font-size-3 !important;
+
+ @include mq(sm) {
+ font-size: $font-size-4 !important;
+ }
+}
+
+@mixin fs-4 {
+ font-size: $font-size-4 !important;
+
+ @include mq(sm) {
+ font-size: $font-size-5 !important;
+ }
+}
+
+@mixin fs-5 {
+ font-size: $font-size-5 !important;
+
+ @include mq(sm) {
+ font-size: $font-size-6 !important;
+ }
+}
+
+@mixin fs-6 {
+ font-size: $font-size-6 !important;
+
+ @include mq(sm) {
+ font-size: $font-size-7 !important;
+ line-height: $body-heading-line-height;
+ }
+}
+
+@mixin fs-7 {
+ font-size: $font-size-7 !important;
+ line-height: $body-heading-line-height;
+
+ @include mq(sm) {
+ font-size: $font-size-8 !important;
+ }
+}
+
+@mixin fs-8 {
+ font-size: $font-size-8 !important;
+ line-height: $body-heading-line-height;
+
+ @include mq(sm) {
+ font-size: $font-size-9 !important;
+ }
+}
+
+@mixin fs-9 {
+ font-size: $font-size-9 !important;
+ line-height: $body-heading-line-height;
+
+ @include mq(sm) {
+ font-size: $font-size-10 !important;
+ }
+}
+
+@mixin fs-10 {
+ font-size: $font-size-10 !important;
+ line-height: $body-heading-line-height;
+
+ @include mq(sm) {
+ font-size: $font-size-10-sm !important;
+ }
+}
--- /dev/null
+@import "./layout";
+@import "./buttons";
+@import "./typography";
--- /dev/null
+@import "./variables";
+@import "./functions";
+@import "./mixins/mixins";
--- /dev/null
+// Tables
+// stylelint-disable max-nesting-depth, selector-no-type, selector-max-type
+
+.table-wrapper {
+ display: block;
+ width: 100%;
+ max-width: 100%;
+ margin-bottom: $sp-5;
+ overflow-x: auto;
+ border-radius: $border-radius;
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08);
+}
+
+table {
+ display: table;
+ min-width: 100%;
+ border-collapse: separate;
+}
+
+th,
+td {
+ @include fs-3;
+
+ min-width: 120px;
+ padding-top: $sp-2;
+ padding-right: $sp-3;
+ padding-bottom: $sp-2;
+ padding-left: $sp-3;
+ background-color: $table-background-color;
+ border-bottom: $border rgba($border-color, 0.5);
+ border-left: $border $border-color;
+
+ &:first-of-type {
+ border-left: 0;
+ }
+}
+
+tbody {
+ tr {
+ &:last-of-type {
+ th,
+ td {
+ border-bottom: 0;
+ }
+
+ td {
+ padding-bottom: $sp-3;
+ }
+ }
+ }
+}
+
+thead {
+ th {
+ border-bottom: $border $border-color;
+ }
+}
--- /dev/null
+// Typography
+
+// stylelint-disable selector-no-type, selector-max-type, selector-max-specificity, selector-max-id
+
+h1,
+.text-alpha {
+ @include fs-8;
+
+ font-weight: 300;
+}
+
+h2,
+.text-beta,
+#toctitle {
+ @include fs-6;
+}
+
+h3,
+.text-gamma {
+ @include fs-5;
+}
+
+h4,
+.text-delta {
+ @include fs-2;
+
+ font-weight: 400;
+ text-transform: uppercase;
+ letter-spacing: 0.1em;
+}
+
+h4 code {
+ text-transform: none;
+}
+
+h5,
+.text-epsilon {
+ @include fs-3;
+}
+
+h6,
+.text-zeta {
+ @include fs-2;
+}
+
+.text-small {
+ @include fs-2;
+}
+
+.text-mono {
+ font-family: $mono-font-family !important;
+}
+
+.text-left {
+ text-align: left !important;
+}
+
+.text-center {
+ text-align: center !important;
+}
+
+.text-right {
+ text-align: right !important;
+}
--- /dev/null
+// Utility classes for colors
+
+// Text colors
+
+.text-grey-dk-000 {
+ color: $grey-dk-000 !important;
+}
+
+.text-grey-dk-100 {
+ color: $grey-dk-100 !important;
+}
+
+.text-grey-dk-200 {
+ color: $grey-dk-200 !important;
+}
+
+.text-grey-dk-250 {
+ color: $grey-dk-250 !important;
+}
+
+.text-grey-dk-300 {
+ color: $grey-dk-300 !important;
+}
+
+.text-grey-lt-000 {
+ color: $grey-lt-000 !important;
+}
+
+.text-grey-lt-100 {
+ color: $grey-lt-100 !important;
+}
+
+.text-grey-lt-200 {
+ color: $grey-lt-200 !important;
+}
+
+.text-grey-lt-300 {
+ color: $grey-lt-300 !important;
+}
+
+.text-blue-000 {
+ color: $blue-000 !important;
+}
+
+.text-blue-100 {
+ color: $blue-100 !important;
+}
+
+.text-blue-200 {
+ color: $blue-200 !important;
+}
+
+.text-blue-300 {
+ color: $blue-300 !important;
+}
+
+.text-green-000 {
+ color: $green-000 !important;
+}
+
+.text-green-100 {
+ color: $green-100 !important;
+}
+
+.text-green-200 {
+ color: $green-200 !important;
+}
+
+.text-green-300 {
+ color: $green-300 !important;
+}
+
+.text-purple-000 {
+ color: $purple-000 !important;
+}
+
+.text-purple-100 {
+ color: $purple-100 !important;
+}
+
+.text-purple-200 {
+ color: $purple-200 !important;
+}
+
+.text-purple-300 {
+ color: $purple-300 !important;
+}
+
+.text-yellow-000 {
+ color: $yellow-000 !important;
+}
+
+.text-yellow-100 {
+ color: $yellow-100 !important;
+}
+
+.text-yellow-200 {
+ color: $yellow-200 !important;
+}
+
+.text-yellow-300 {
+ color: $yellow-300 !important;
+}
+
+.text-red-000 {
+ color: $red-000 !important;
+}
+
+.text-red-100 {
+ color: $red-100 !important;
+}
+
+.text-red-200 {
+ color: $red-200 !important;
+}
+
+.text-red-300 {
+ color: $red-300 !important;
+}
+
+// Background colors
+
+.bg-grey-dk-000 {
+ background-color: $grey-dk-000 !important;
+}
+
+.bg-grey-dk-100 {
+ background-color: $grey-dk-100 !important;
+}
+
+.bg-grey-dk-200 {
+ background-color: $grey-dk-200 !important;
+}
+
+.bg-grey-dk-250 {
+ background-color: $grey-dk-250 !important;
+}
+
+.bg-grey-dk-300 {
+ background-color: $grey-dk-300 !important;
+}
+
+.bg-grey-lt-000 {
+ background-color: $grey-lt-000 !important;
+}
+
+.bg-grey-lt-100 {
+ background-color: $grey-lt-100 !important;
+}
+
+.bg-grey-lt-200 {
+ background-color: $grey-lt-200 !important;
+}
+
+.bg-grey-lt-300 {
+ background-color: $grey-lt-300 !important;
+}
+
+.bg-blue-000 {
+ background-color: $blue-000 !important;
+}
+
+.bg-blue-100 {
+ background-color: $blue-100 !important;
+}
+
+.bg-blue-200 {
+ background-color: $blue-200 !important;
+}
+
+.bg-blue-300 {
+ background-color: $blue-300 !important;
+}
+
+.bg-green-000 {
+ background-color: $green-000 !important;
+}
+
+.bg-green-100 {
+ background-color: $green-100 !important;
+}
+
+.bg-green-200 {
+ background-color: $green-200 !important;
+}
+
+.bg-green-300 {
+ background-color: $green-300 !important;
+}
+
+.bg-purple-000 {
+ background-color: $purple-000 !important;
+}
+
+.bg-purple-100 {
+ background-color: $purple-100 !important;
+}
+
+.bg-purple-200 {
+ background-color: $purple-200 !important;
+}
+
+.bg-purple-300 {
+ background-color: $purple-300 !important;
+}
+
+.bg-yellow-000 {
+ background-color: $yellow-000 !important;
+}
+
+.bg-yellow-100 {
+ background-color: $yellow-100 !important;
+}
+
+.bg-yellow-200 {
+ background-color: $yellow-200 !important;
+}
+
+.bg-yellow-300 {
+ background-color: $yellow-300 !important;
+}
+
+.bg-red-000 {
+ background-color: $red-000 !important;
+}
+
+.bg-red-100 {
+ background-color: $red-100 !important;
+}
+
+.bg-red-200 {
+ background-color: $red-200 !important;
+}
+
+.bg-red-300 {
+ background-color: $red-300 !important;
+}
--- /dev/null
+// Utility classes for layout
+
+// Display
+
+.d-block {
+ display: block !important;
+}
+
+.d-flex {
+ display: flex !important;
+}
+
+.d-inline {
+ display: inline !important;
+}
+
+.d-inline-block {
+ display: inline-block !important;
+}
+
+.d-none {
+ display: none !important;
+}
+
+@each $media-query in map-keys($media-queries) {
+ @for $i from 1 through length($spacers) {
+ @include mq($media-query) {
+ $size: #{map-get($spacers, sp-#{$i - 1})};
+ $scale: #{$i - 1};
+
+ // .d-sm-block, .d-md-none, .d-lg-inline
+ .d-#{$media-query}-block {
+ display: block !important;
+ }
+ .d-#{$media-query}-flex {
+ display: flex !important;
+ }
+ .d-#{$media-query}-inline {
+ display: inline !important;
+ }
+ .d-#{$media-query}-inline-block {
+ display: inline-block !important;
+ }
+ .d-#{$media-query}-none {
+ display: none !important;
+ }
+ }
+ }
+}
+
+// Horizontal alignment
+
+.float-left {
+ float: left !important;
+}
+
+.float-right {
+ float: right !important;
+}
+
+.flex-justify-start {
+ justify-content: flex-start !important;
+}
+
+.flex-justify-end {
+ justify-content: flex-end !important;
+}
+
+.flex-justify-between {
+ justify-content: space-between !important;
+}
+
+.flex-justify-around {
+ justify-content: space-around !important;
+}
+
+// Vertical alignment
+
+.v-align-baseline {
+ vertical-align: baseline !important;
+}
+
+.v-align-bottom {
+ vertical-align: bottom !important;
+}
+
+.v-align-middle {
+ vertical-align: middle !important;
+}
+
+.v-align-text-bottom {
+ vertical-align: text-bottom !important;
+}
+
+.v-align-text-top {
+ vertical-align: text-top !important;
+}
+
+.v-align-top {
+ vertical-align: top !important;
+}
--- /dev/null
+// Utility classes for lists
+
+// stylelint-disable selector-max-type
+
+.list-style-none {
+ padding: 0 !important;
+ margin: 0 !important;
+ list-style: none !important;
+
+ li {
+ &::before {
+ display: none !important;
+ }
+ }
+}
--- /dev/null
+// Utility classes for margins and padding
+
+// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before
+
+// Margin spacer utilities
+
+.mx-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+}
+
+@for $i from 1 through length($spacers) {
+ $size: #{map-get($spacers, sp-#{$i - 1})};
+ $scale: #{$i - 1};
+
+ // .m-0, .m-1, .m-2...
+ .m-#{$scale} {
+ margin: #{$size} !important;
+ }
+ .mt-#{$scale} {
+ margin-top: #{$size} !important;
+ }
+ .mr-#{$scale} {
+ margin-right: #{$size} !important;
+ }
+ .mb-#{$scale} {
+ margin-bottom: #{$size} !important;
+ }
+ .ml-#{$scale} {
+ margin-left: #{$size} !important;
+ }
+
+ .mx-#{$scale} {
+ margin-right: #{$size} !important;
+ margin-left: #{$size} !important;
+ }
+
+ .my-#{$scale} {
+ margin-top: #{$size} !important;
+ margin-bottom: #{$size} !important;
+ }
+
+ .mxn-#{$scale} {
+ margin-right: -#{$size} !important;
+ margin-left: -#{$size} !important;
+ }
+ .mx-#{$scale}-auto {
+ margin-right: auto !important;
+ margin-left: auto !important;
+ }
+}
+
+@each $media-query in map-keys($media-queries) {
+ @for $i from 1 through length($spacers) {
+ @include mq($media-query) {
+ $size: #{map-get($spacers, sp-#{$i - 1})};
+ $scale: #{$i - 1};
+
+ // .m-sm-0, .m-md-1, .m-lg-2...
+ .m-#{$media-query}-#{$scale} {
+ margin: #{$size} !important;
+ }
+ .mt-#{$media-query}-#{$scale} {
+ margin-top: #{$size} !important;
+ }
+ .mr-#{$media-query}-#{$scale} {
+ margin-right: #{$size} !important;
+ }
+ .mb-#{$media-query}-#{$scale} {
+ margin-bottom: #{$size} !important;
+ }
+ .ml-#{$media-query}-#{$scale} {
+ margin-left: #{$size} !important;
+ }
+
+ .mx-#{$media-query}-#{$scale} {
+ margin-right: #{$size} !important;
+ margin-left: #{$size} !important;
+ }
+
+ .my-#{$media-query}-#{$scale} {
+ margin-top: #{$size} !important;
+ margin-bottom: #{$size} !important;
+ }
+
+ .mxn-#{$media-query}-#{$scale} {
+ margin-right: -#{$size} !important;
+ margin-left: -#{$size} !important;
+ }
+ }
+ }
+}
+
+// Padding spacer utilities
+
+@for $i from 1 through length($spacers) {
+ $size: #{map-get($spacers, sp-#{$i - 1})};
+ $scale: #{$i - 1};
+
+ // .p-0, .p-1, .p-2...
+ .p-#{$scale} {
+ padding: #{$size} !important;
+ }
+ .pt-#{$scale} {
+ padding-top: #{$size} !important;
+ }
+ .pr-#{$scale} {
+ padding-right: #{$size} !important;
+ }
+ .pb-#{$scale} {
+ padding-bottom: #{$size} !important;
+ }
+ .pl-#{$scale} {
+ padding-left: #{$size} !important;
+ }
+
+ .px-#{$scale} {
+ padding-right: #{$size} !important;
+ padding-left: #{$size} !important;
+ }
+
+ .py-#{$scale} {
+ padding-top: #{$size} !important;
+ padding-bottom: #{$size} !important;
+ }
+}
+
+@each $media-query in map-keys($media-queries) {
+ @include mq($media-query) {
+ @for $i from 1 through length($spacers) {
+ $size: #{map-get($spacers, sp-#{$i - 1})};
+ $scale: #{$i - 1};
+
+ // .p-sm-0, .p-md-1, .p-lg-2...
+ .p-#{$media-query}-#{$scale} {
+ padding: #{$size} !important;
+ }
+ .pt-#{$media-query}-#{$scale} {
+ padding-top: #{$size} !important;
+ }
+ .pr-#{$media-query}-#{$scale} {
+ padding-right: #{$size} !important;
+ }
+ .pb-#{$media-query}-#{$scale} {
+ padding-bottom: #{$size} !important;
+ }
+ .pl-#{$media-query}-#{$scale} {
+ padding-left: #{$size} !important;
+ }
+
+ .px-#{$media-query}-#{$scale} {
+ padding-right: #{$size} !important;
+ padding-left: #{$size} !important;
+ }
+
+ .py-#{$media-query}-#{$scale} {
+ padding-top: #{$size} !important;
+ padding-bottom: #{$size} !important;
+ }
+ }
+ }
+}
--- /dev/null
+// Utility classes for typography
+
+.fs-1 {
+ @include fs-1;
+}
+
+.fs-2 {
+ @include fs-2;
+}
+
+.fs-3 {
+ @include fs-3;
+}
+
+.fs-4 {
+ @include fs-4;
+}
+
+.fs-5 {
+ @include fs-5;
+}
+
+.fs-6 {
+ @include fs-6;
+}
+
+.fs-7 {
+ @include fs-7;
+}
+
+.fs-8 {
+ @include fs-8;
+}
+
+.fs-9 {
+ @include fs-9;
+}
+
+.fs-10 {
+ @include fs-10;
+}
+
+.fw-300 {
+ font-weight: 300 !important;
+}
+
+.fw-400 {
+ font-weight: 400 !important;
+}
+
+.fw-500 {
+ font-weight: 500 !important;
+}
+
+.fw-700 {
+ font-weight: 700 !important;
+}
+
+.lh-0 {
+ line-height: 0 !important;
+}
+
+.lh-default {
+ line-height: $body-line-height;
+}
+
+.lh-tight {
+ line-height: $body-heading-line-height;
+}
+
+.ls-5 {
+ letter-spacing: 0.05em !important;
+}
+
+.ls-10 {
+ letter-spacing: 0.1em !important;
+}
+
+.ls-0 {
+ letter-spacing: 0 !important;
+}
+
+.text-uppercase {
+ text-transform: uppercase !important;
+}
--- /dev/null
+@import "./colors";
+@import "./layout";
+@import "./typography";
+@import "./lists";
+@import "./spacing";
--- /dev/null
+MIT License
+
+Copyright (c) 2016 Mihály Gyöngyösi
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
--- /dev/null
+# OneDarkJekyll
+
+*Use Atom's One Dark syntax colors in your Jekyll powered blog!*
+
+It's LESS file which can be compiled to a - Pygments, Rouge compatible - stylesheet from Atom editor's One Dark syntax theme (and any theme based on it, for example One Dark Vivid, Firewatch, etc.).
+
+Download the stylesheet files or compile a new one from any Atom syntax theme which based on One Dark (the variable names in `colors.less` must match with One Dark's)
+
+## Create a new syntax stylesheet
+
+1. `npm install -g less less-plugin-clean-css`
+2. Clone this repository
+3. Download the `colors.css` file from the syntax theme's repository (for example https://github.com/atom/one-dark-syntax/blob/master/styles/colors.less in case of One-Dark)
+4. Put the previously downloaded file next to `syntax.less`
+5. Run `lessc syntax.less syntax.css --clean-css`
+6. Use the `syntax.css`
+
+It's not final and in case you find any error/improvement feel free to create a PR. :)
+
+----
+
+# UPDATES FOR USE IN JUST-THE-DOCS:
+
+1. Layout added in `*.css`
+2. Renamed `*.css` to `*.scss`
--- /dev/null
+// Config -----------------------------------
+@syntax-hue: 220;
+@syntax-saturation: 13%;
+@syntax-brightness: 18%;
+
+
+// Monochrome -----------------------------------
+@mono-1: hsl(@syntax-hue, 14%, 71%); // default text
+@mono-2: hsl(@syntax-hue, 9%, 55%);
+@mono-3: hsl(@syntax-hue, 10%, 40%);
+
+// Colors -----------------------------------
+@hue-1: hsl(187, 47%, 55%); // <-cyan
+@hue-2: hsl(207, 82%, 66%); // <-blue
+@hue-3: hsl(286, 60%, 67%); // <-purple
+@hue-4: hsl( 95, 38%, 62%); // <-green
+
+@hue-5: hsl(355, 65%, 65%); // <-red 1
+@hue-5-2: hsl( 5, 48%, 51%); // <-red 2
+
+@hue-6: hsl( 29, 54%, 61%); // <-orange 1
+@hue-6-2: hsl( 39, 67%, 69%); // <-orange 2
+
+
+// Base colors -----------------------------------
+@syntax-fg: @mono-1;
+@syntax-bg: hsl(@syntax-hue, @syntax-saturation, @syntax-brightness);
+@syntax-gutter: darken(@syntax-fg, 26%);
+@syntax-guide: fade(@syntax-fg, 15%);
+@syntax-accent: hsl(@syntax-hue, 100%, 66% );
\ No newline at end of file
--- /dev/null
+.highlight,
+pre.highlight {
+ background: #282c34;
+ color: #abb2bf;
+}
+.highlight pre {
+ background: #282c34;
+}
+.highlight .hll {
+ background: #282c34;
+}
+.highlight .c {
+ color: #5c6370;
+ font-style: italic;
+}
+.highlight .err {
+ color: #960050;
+ background-color: #1e0010;
+}
+.highlight .k {
+ color: #5ba473;
+}
+.highlight .l {
+ color: #c8ae9d;
+}
+.highlight .n {
+ color: #abb2bf;
+}
+.highlight .o {
+ color: #abb2bf;
+}
+.highlight .p {
+ color: #abb2bf;
+}
+.highlight .cm {
+ color: #5c6370;
+ font-style: italic;
+}
+.highlight .cp {
+ color: #5c6370;
+ font-style: italic;
+}
+.highlight .c1 {
+ color: #5c6370;
+ font-style: italic;
+}
+.highlight .cs {
+ color: #5c6370;
+ font-style: italic;
+}
+.highlight .ge {
+ font-style: italic;
+}
+.highlight .gs {
+ font-weight: 700;
+}
+.highlight .kc {
+ color: #5ba473;
+}
+.highlight .kd {
+ color: #5ba473;
+}
+.highlight .kn {
+ color: #5ba473;
+}
+.highlight .kp {
+ color: #5ba473;
+}
+.highlight .kr {
+ color: #5ba473;
+}
+.highlight .kt {
+ color: #5ba473;
+}
+.highlight .ld {
+ color: #c8ae9d;
+}
+.highlight .m {
+ color: #d19a66;
+}
+.highlight .s {
+ color: #c8ae9d;
+}
+.highlight .na {
+ color: #d19a66;
+}
+.highlight .nb {
+ color: #e5c07b;
+}
+.highlight .nc {
+ color: #e5c07b;
+}
+.highlight .no {
+ color: #e5c07b;
+}
+.highlight .nd {
+ color: #e5c07b;
+}
+.highlight .ni {
+ color: #e5c07b;
+}
+.highlight .ne {
+ color: #e5c07b;
+}
+.highlight .nf {
+ color: #abb2bf;
+}
+.highlight .nl {
+ color: #e5c07b;
+}
+.highlight .nn {
+ color: #abb2bf;
+}
+.highlight .nx {
+ color: #abb2bf;
+}
+.highlight .py {
+ color: #e5c07b;
+}
+.highlight .nt {
+ color: #77b181;
+}
+.highlight .nv {
+ color: #e5c07b;
+}
+.highlight .ow {
+ font-weight: 700;
+}
+.highlight .w {
+ color: #f8f8f2;
+}
+.highlight .mf {
+ color: #d19a66;
+}
+.highlight .mh {
+ color: #d19a66;
+}
+.highlight .mi {
+ color: #d19a66;
+}
+.highlight .mo {
+ color: #d19a66;
+}
+.highlight .sb {
+ color: #c8ae9d;
+}
+.highlight .sc {
+ color: #c8ae9d;
+}
+.highlight .sd {
+ color: #c8ae9d;
+}
+.highlight .s2 {
+ color: #c8ae9d;
+}
+.highlight .se {
+ color: #c8ae9d;
+}
+.highlight .sh {
+ color: #c8ae9d;
+}
+.highlight .si {
+ color: #c8ae9d;
+}
+.highlight .sx {
+ color: #c8ae9d;
+}
+.highlight .sr {
+ color: #56b6c2;
+}
+.highlight .s1 {
+ color: #c8ae9d;
+}
+.highlight .ss {
+ color: #56b6c2;
+}
+.highlight .bp {
+ color: #e5c07b;
+}
+.highlight .vc {
+ color: #e5c07b;
+}
+.highlight .vg {
+ color: #e5c07b;
+}
+.highlight .vi {
+ color: #77b181;
+}
+.highlight .il {
+ color: #d19a66;
+}
+.highlight .gu {
+ color: #75715e;
+}
+.highlight .gd {
+ color: #f92672;
+}
+.highlight .gi {
+ color: #a6e22e;
+}
--- /dev/null
+.highlight,
+pre.highlight {
+ background: #282c34;
+ color: #abb2bf;
+}
+.highlight pre {
+ background: #282c34;
+}
+.highlight .hll {
+ background: #282c34;
+}
+.highlight .c {
+ color: #5c6370;
+ font-style: italic;
+}
+.highlight .err {
+ color: #960050;
+ background-color: #1e0010;
+}
+.highlight .k {
+ color: #dd672c;
+}
+.highlight .l {
+ color: #c8ae9d;
+}
+.highlight .n {
+ color: #abb2bf;
+}
+.highlight .o {
+ color: #abb2bf;
+}
+.highlight .p {
+ color: #abb2bf;
+}
+.highlight .cm {
+ color: #5c6370;
+ font-style: italic;
+}
+.highlight .cp {
+ color: #5c6370;
+ font-style: italic;
+}
+.highlight .c1 {
+ color: #5c6370;
+ font-style: italic;
+}
+.highlight .cs {
+ color: #5c6370;
+ font-style: italic;
+}
+.highlight .ge {
+ font-style: italic;
+}
+.highlight .gs {
+ font-weight: 700;
+}
+.highlight .kc {
+ color: #dd672c;
+}
+.highlight .kd {
+ color: #dd672c;
+}
+.highlight .kn {
+ color: #dd672c;
+}
+.highlight .kp {
+ color: #dd672c;
+}
+.highlight .kr {
+ color: #dd672c;
+}
+.highlight .kt {
+ color: #dd672c;
+}
+.highlight .ld {
+ color: #c8ae9d;
+}
+.highlight .m {
+ color: #d19a66;
+}
+.highlight .s {
+ color: #c8ae9d;
+}
+.highlight .na {
+ color: #d19a66;
+}
+.highlight .nb {
+ color: #e5c07b;
+}
+.highlight .nc {
+ color: #e5c07b;
+}
+.highlight .no {
+ color: #e5c07b;
+}
+.highlight .nd {
+ color: #e5c07b;
+}
+.highlight .ni {
+ color: #e5c07b;
+}
+.highlight .ne {
+ color: #e5c07b;
+}
+.highlight .nf {
+ color: #abb2bf;
+}
+.highlight .nl {
+ color: #e5c07b;
+}
+.highlight .nn {
+ color: #abb2bf;
+}
+.highlight .nx {
+ color: #abb2bf;
+}
+.highlight .py {
+ color: #e5c07b;
+}
+.highlight .nt {
+ color: #e06c75;
+}
+.highlight .nv {
+ color: #e5c07b;
+}
+.highlight .ow {
+ font-weight: 700;
+}
+.highlight .w {
+ color: #f8f8f2;
+}
+.highlight .mf {
+ color: #d19a66;
+}
+.highlight .mh {
+ color: #d19a66;
+}
+.highlight .mi {
+ color: #d19a66;
+}
+.highlight .mo {
+ color: #d19a66;
+}
+.highlight .sb {
+ color: #c8ae9d;
+}
+.highlight .sc {
+ color: #c8ae9d;
+}
+.highlight .sd {
+ color: #c8ae9d;
+}
+.highlight .s2 {
+ color: #c8ae9d;
+}
+.highlight .se {
+ color: #c8ae9d;
+}
+.highlight .sh {
+ color: #c8ae9d;
+}
+.highlight .si {
+ color: #c8ae9d;
+}
+.highlight .sx {
+ color: #c8ae9d;
+}
+.highlight .sr {
+ color: #56b6c2;
+}
+.highlight .s1 {
+ color: #c8ae9d;
+}
+.highlight .ss {
+ color: #56b6c2;
+}
+.highlight .bp {
+ color: #e5c07b;
+}
+.highlight .vc {
+ color: #e5c07b;
+}
+.highlight .vg {
+ color: #e5c07b;
+}
+.highlight .vi {
+ color: #e06c75;
+}
+.highlight .il {
+ color: #d19a66;
+}
+.highlight .gu {
+ color: #75715e;
+}
+.highlight .gd {
+ color: #f92672;
+}
+.highlight .gi {
+ color: #a6e22e;
+}
--- /dev/null
+.highlight,
+pre.highlight {
+ background: #31343f;
+ color: #dee2f7;
+}
+.highlight pre {
+ background: #31343f;
+}
+.highlight .hll {
+ background: #31343f;
+}
+.highlight .c {
+ color: #63677e;
+ font-style: italic;
+}
+.highlight .err {
+ color: #960050;
+ background-color: #1e0010;
+}
+.highlight .k {
+ color: #e19ef5;
+}
+.highlight .l {
+ color: #a3eea0;
+}
+.highlight .n {
+ color: #dee2f7;
+}
+.highlight .o {
+ color: #dee2f7;
+}
+.highlight .p {
+ color: #dee2f7;
+}
+.highlight .cm {
+ color: #63677e;
+ font-style: italic;
+}
+.highlight .cp {
+ color: #63677e;
+ font-style: italic;
+}
+.highlight .c1 {
+ color: #63677e;
+ font-style: italic;
+}
+.highlight .cs {
+ color: #63677e;
+ font-style: italic;
+}
+.highlight .ge {
+ font-style: italic;
+}
+.highlight .gs {
+ font-weight: 700;
+}
+.highlight .kc {
+ color: #e19ef5;
+}
+.highlight .kd {
+ color: #e19ef5;
+}
+.highlight .kn {
+ color: #e19ef5;
+}
+.highlight .kp {
+ color: #e19ef5;
+}
+.highlight .kr {
+ color: #e19ef5;
+}
+.highlight .kt {
+ color: #e19ef5;
+}
+.highlight .ld {
+ color: #a3eea0;
+}
+.highlight .m {
+ color: #eddc96;
+}
+.highlight .s {
+ color: #a3eea0;
+}
+.highlight .na {
+ color: #eddc96;
+}
+.highlight .nb {
+ color: #fdce68;
+}
+.highlight .nc {
+ color: #fdce68;
+}
+.highlight .no {
+ color: #fdce68;
+}
+.highlight .nd {
+ color: #fdce68;
+}
+.highlight .ni {
+ color: #fdce68;
+}
+.highlight .ne {
+ color: #fdce68;
+}
+.highlight .nf {
+ color: #dee2f7;
+}
+.highlight .nl {
+ color: #fdce68;
+}
+.highlight .nn {
+ color: #dee2f7;
+}
+.highlight .nx {
+ color: #dee2f7;
+}
+.highlight .py {
+ color: #fdce68;
+}
+.highlight .nt {
+ color: #f9867b;
+}
+.highlight .nv {
+ color: #fdce68;
+}
+.highlight .ow {
+ font-weight: 700;
+}
+.highlight .w {
+ color: #f8f8f2;
+}
+.highlight .mf {
+ color: #eddc96;
+}
+.highlight .mh {
+ color: #eddc96;
+}
+.highlight .mi {
+ color: #eddc96;
+}
+.highlight .mo {
+ color: #eddc96;
+}
+.highlight .sb {
+ color: #a3eea0;
+}
+.highlight .sc {
+ color: #a3eea0;
+}
+.highlight .sd {
+ color: #a3eea0;
+}
+.highlight .s2 {
+ color: #a3eea0;
+}
+.highlight .se {
+ color: #a3eea0;
+}
+.highlight .sh {
+ color: #a3eea0;
+}
+.highlight .si {
+ color: #a3eea0;
+}
+.highlight .sx {
+ color: #a3eea0;
+}
+.highlight .sr {
+ color: #7be2f9;
+}
+.highlight .s1 {
+ color: #a3eea0;
+}
+.highlight .ss {
+ color: #7be2f9;
+}
+.highlight .bp {
+ color: #fdce68;
+}
+.highlight .vc {
+ color: #fdce68;
+}
+.highlight .vg {
+ color: #fdce68;
+}
+.highlight .vi {
+ color: #f9867b;
+}
+.highlight .il {
+ color: #eddc96;
+}
+.highlight .gu {
+ color: #75715e;
+}
+.highlight .gd {
+ color: #f92672;
+}
+.highlight .gi {
+ color: #a6e22e;
+}
--- /dev/null
+.highlight,
+pre.highlight {
+ background: #282c34;
+ color: #abb2bf;
+}
+.highlight pre {
+ background: #282c34;
+}
+.highlight .hll {
+ background: #282c34;
+}
+.highlight .c {
+ color: #5c6370;
+ font-style: italic;
+}
+.highlight .err {
+ color: #960050;
+ background-color: #1e0010;
+}
+.highlight .k {
+ color: #c678dd;
+}
+.highlight .l {
+ color: #98c379;
+}
+.highlight .n {
+ color: #abb2bf;
+}
+.highlight .o {
+ color: #abb2bf;
+}
+.highlight .p {
+ color: #abb2bf;
+}
+.highlight .cm {
+ color: #5c6370;
+ font-style: italic;
+}
+.highlight .cp {
+ color: #5c6370;
+ font-style: italic;
+}
+.highlight .c1 {
+ color: #5c6370;
+ font-style: italic;
+}
+.highlight .cs {
+ color: #5c6370;
+ font-style: italic;
+}
+.highlight .ge {
+ font-style: italic;
+}
+.highlight .gs {
+ font-weight: 700;
+}
+.highlight .kc {
+ color: #c678dd;
+}
+.highlight .kd {
+ color: #c678dd;
+}
+.highlight .kn {
+ color: #c678dd;
+}
+.highlight .kp {
+ color: #c678dd;
+}
+.highlight .kr {
+ color: #c678dd;
+}
+.highlight .kt {
+ color: #c678dd;
+}
+.highlight .ld {
+ color: #98c379;
+}
+.highlight .m {
+ color: #d19a66;
+}
+.highlight .s {
+ color: #98c379;
+}
+.highlight .na {
+ color: #d19a66;
+}
+.highlight .nb {
+ color: #e5c07b;
+}
+.highlight .nc {
+ color: #e5c07b;
+}
+.highlight .no {
+ color: #e5c07b;
+}
+.highlight .nd {
+ color: #e5c07b;
+}
+.highlight .ni {
+ color: #e5c07b;
+}
+.highlight .ne {
+ color: #e5c07b;
+}
+.highlight .nf {
+ color: #abb2bf;
+}
+.highlight .nl {
+ color: #e5c07b;
+}
+.highlight .nn {
+ color: #abb2bf;
+}
+.highlight .nx {
+ color: #abb2bf;
+}
+.highlight .py {
+ color: #e5c07b;
+}
+.highlight .nt {
+ color: #e06c75;
+}
+.highlight .nv {
+ color: #e5c07b;
+}
+.highlight .ow {
+ font-weight: 700;
+}
+.highlight .w {
+ color: #f8f8f2;
+}
+.highlight .mf {
+ color: #d19a66;
+}
+.highlight .mh {
+ color: #d19a66;
+}
+.highlight .mi {
+ color: #d19a66;
+}
+.highlight .mo {
+ color: #d19a66;
+}
+.highlight .sb {
+ color: #98c379;
+}
+.highlight .sc {
+ color: #98c379;
+}
+.highlight .sd {
+ color: #98c379;
+}
+.highlight .s2 {
+ color: #98c379;
+}
+.highlight .se {
+ color: #98c379;
+}
+.highlight .sh {
+ color: #98c379;
+}
+.highlight .si {
+ color: #98c379;
+}
+.highlight .sx {
+ color: #98c379;
+}
+.highlight .sr {
+ color: #56b6c2;
+}
+.highlight .s1 {
+ color: #98c379;
+}
+.highlight .ss {
+ color: #56b6c2;
+}
+.highlight .bp {
+ color: #e5c07b;
+}
+.highlight .vc {
+ color: #e5c07b;
+}
+.highlight .vg {
+ color: #e5c07b;
+}
+.highlight .vi {
+ color: #e06c75;
+}
+.highlight .il {
+ color: #d19a66;
+}
+.highlight .gu {
+ color: #75715e;
+}
+.highlight .gd {
+ color: #f92672;
+}
+.highlight .gi {
+ color: #a6e22e;
+}
--- /dev/null
+@import "colors.less";
+
+// Official Syntax Variables -----------------------------------
+
+// General colors
+@syntax-text-color: @syntax-fg;
+@syntax-cursor-color: @syntax-accent;
+@syntax-selection-color: lighten(@syntax-background-color, 10%);
+@syntax-selection-flash-color: @syntax-accent;
+@syntax-background-color: @syntax-bg;
+
+// Guide colors
+@syntax-wrap-guide-color: @syntax-guide;
+@syntax-indent-guide-color: @syntax-guide;
+@syntax-invisible-character-color: @syntax-guide;
+
+// For find and replace markers
+@syntax-result-marker-color: fade(@syntax-accent, 24%);
+@syntax-result-marker-color-selected: @syntax-accent;
+
+// Gutter colors
+@syntax-gutter-text-color: @syntax-gutter;
+@syntax-gutter-text-color-selected: @syntax-fg;
+@syntax-gutter-background-color: @syntax-bg; // unused
+@syntax-gutter-background-color-selected: lighten(@syntax-bg, 2%);
+
+// Git colors - For git diff info. i.e. in the gutter
+@syntax-color-renamed: hsl(208, 100%, 60%);
+@syntax-color-added: hsl(150, 60%, 54%);
+@syntax-color-modified: hsl(40, 60%, 70%);
+@syntax-color-removed: hsl(0, 70%, 60%);
+
+// For language entity colors
+@syntax-color-variable: @hue-5;
+@syntax-color-constant: @hue-6;
+@syntax-color-property: @syntax-fg;
+@syntax-color-value: @syntax-fg;
+@syntax-color-function: @hue-2;
+@syntax-color-method: @hue-2;
+@syntax-color-class: @hue-6-2;
+@syntax-color-keyword: @hue-3;
+@syntax-color-tag: @hue-5;
+@syntax-color-attribute: @hue-6;
+@syntax-color-import: @hue-3;
+@syntax-color-snippet: @hue-4;
+
+
+// Custom Syntax Variables -----------------------------------
+// Don't use in packages
+
+@syntax-cursor-line: hsla(@syntax-hue, 100%, 80%, .04); // needs to be semi-transparent to show search results
+
+@syntax-deprecated-fg: darken(@syntax-color-modified, 50%);
+@syntax-deprecated-bg: @syntax-color-modified;
+@syntax-illegal-fg: white;
+@syntax-illegal-bg: @syntax-color-removed;
\ No newline at end of file
--- /dev/null
+/*
+ LESS for Pygments
+*/
+
+@import "syntax-variables.less";
+
+pre.highlight,
+.highlight {
+ background: @syntax-bg;
+ color: @mono-1;
+}
+.highlight {
+ pre { background: @syntax-bg; }
+ .hll { background: @syntax-bg; }
+ .c { color: @mono-3; font-style: italic; } /* Comment */
+ .err { color: @syntax-illegal-fg; background-color: @syntax-illegal-bg; } /* Error */
+ .k { color: @hue-3; } /* Keyword */
+ .l { color: @hue-4; } /* Literal */
+ .n { color: @mono-1; } /* Name */
+ .o { color: @mono-1; } /* Operator */
+ .p { color: @mono-1; } /* Punctuation */
+ .cm { color: @mono-3; font-style: italic; } /* Comment.Multiline */
+ .cp { color: @mono-3; font-style: italic; } /* Comment.Preproc */
+ .c1 { color: @mono-3; font-style: italic; } /* Comment.Single */
+ .cs { color: @mono-3; font-style: italic; } /* Comment.Special */
+ .ge { font-style: italic } /* Generic.Emph */
+ .gs { font-weight: bold } /* Generic.Strong */
+ .kc { color: @hue-3; } /* Keyword.Constant */
+ .kd { color: @hue-3; } /* Keyword.Declaration */
+ .kn { color: @hue-3; } /* Keyword.Namespace */
+ .kp { color: @hue-3; } /* Keyword.Pseudo */
+ .kr { color: @hue-3; } /* Keyword.Reserved */
+ .kt { color: @hue-3; } /* Keyword.Type */
+ .ld { color: @hue-4; } /* Literal.Date */
+ .m { color: @hue-6; } /* Literal.Number */
+ .s { color: @hue-4; } /* Literal.String */
+ .na { color: @hue-6; } /* Name.Attribute */
+ .nb { color: @hue-6-2; } /* Name.Builtin */
+ .nc { color: @hue-6-2; } /* Name.Class */
+ .no { color: @hue-6-2; } /* Name.Constant */
+ .nd { color: @hue-6-2; } /* Name.Decorator */
+ .ni { color: @hue-6-2; } /* Name.Entity */
+ .ne { color: @hue-6-2; } /* Name.Exception */
+ .nf { color: @mono-1; } /* Name.Function */
+ .nl { color: @hue-6-2; } /* Name.Label */
+ .nn { color: @mono-1; } /* Name.Namespace */
+ .nx { color: @mono-1; } /* Name.Other */
+ .py { color: @hue-6-2; } /* Name.Property */
+ .nt { color: @hue-5; } /* Name.Tag */
+ .nv { color: @hue-6-2; } /* Name.Variable */
+ .ow { font-weight: bold; } /* Operator.Word */
+ .w { color: #f8f8f2 } /* Text.Whitespace */
+ .mf { color: @hue-6; } /* Literal.Number.Float */
+ .mh { color: @hue-6; } /* Literal.Number.Hex */
+ .mi { color: @hue-6; } /* Literal.Number.Integer */
+ .mo { color: @hue-6; } /* Literal.Number.Oct */
+ .sb { color: @hue-4; } /* Literal.String.Backtick */
+ .sc { color: @hue-4; } /* Literal.String.Char */
+ .sd { color: @hue-4; } /* Literal.String.Doc */
+ .s2 { color: @hue-4; } /* Literal.String.Double */
+ .se { color: @hue-4; } /* Literal.String.Escape */
+ .sh { color: @hue-4; } /* Literal.String.Heredoc */
+ .si { color: @hue-4; } /* Literal.String.Interpol */
+ .sx { color: @hue-4; } /* Literal.String.Other */
+ .sr { color: @hue-1; } /* Literal.String.Regex */
+ .s1 { color: @hue-4; } /* Literal.String.Single */
+ .ss { color: @hue-1; } /* Literal.String.Symbol */
+ .bp { color: @hue-6-2; } /* Name.Builtin.Pseudo */
+ .vc { color: @hue-6-2; } /* Name.Variable.Class */
+ .vg { color: @hue-6-2; } /* Name.Variable.Global */
+ .vi { color: @hue-5; } /* Name.Variable.Instance */
+ .il { color: @hue-6; } /* Literal.Number.Integer.Long */
+
+ .gh { } /* Generic Heading & Diff Header */
+ .gu { color: #75715e; } /* Generic.Subheading & Diff Unified/Comment? */
+ .gd { color: @syntax-color-removed; } /* Generic.Deleted & Diff Deleted */
+ .gi { color: @syntax-color-added; } /* Generic.Inserted & Diff Inserted */
+
+ ::selection { background-color: @syntax-selection-color; }
+
+ .language-json {
+ .w + .s2 { color: @hue-5; }
+ .kc { color: @hue-1; }
+ }
+
+ .language-python {
+ // python related modifications
+ }
+
+ .language-csharp {
+ // csharp related modifications
+ }
+}
--- /dev/null
+# normalize.scss
+
+Normalize.scss is an SCSS copy of [normalize.css](http://necolas.github.io/normalize.css), a customisable CSS file that makes browsers render all elements more consistently and in line with modern standards.
+
+The [normalize.scss fork](https://github.com/guerrero/normalize.scss) of [normalize.css](http://necolas.github.io/normalize.css) was archived in 2014, and has not been updated since v0.1.0.
+
+[View the normalize.css test file](http://necolas.github.io/normalize.css/latest/test.html)
--- /dev/null
+/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
+
+/* Document
+ ========================================================================== */
+
+/**
+ * 1. Correct the line height in all browsers.
+ * 2. Prevent adjustments of font size after orientation changes in iOS.
+ */
+
+html {
+ line-height: 1.15; /* 1 */
+ -webkit-text-size-adjust: 100%; /* 2 */
+}
+
+/* Sections
+ ========================================================================== */
+
+/**
+ * Remove the margin in all browsers.
+ */
+
+body {
+ margin: 0;
+}
+
+/**
+ * Render the `main` element consistently in IE.
+ */
+
+main {
+ display: block;
+}
+
+/**
+ * Correct the font size and margin on `h1` elements within `section` and
+ * `article` contexts in Chrome, Firefox, and Safari.
+ */
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+
+/* Grouping content
+ ========================================================================== */
+
+/**
+ * 1. Add the correct box sizing in Firefox.
+ * 2. Show the overflow in Edge and IE.
+ */
+
+hr {
+ box-sizing: content-box; /* 1 */
+ height: 0; /* 1 */
+ overflow: visible; /* 2 */
+}
+
+/**
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
+ */
+
+pre {
+ font-family: monospace, monospace; /* 1 */
+ font-size: 1em; /* 2 */
+}
+
+/* Text-level semantics
+ ========================================================================== */
+
+/**
+ * Remove the gray background on active links in IE 10.
+ */
+
+a {
+ background-color: transparent;
+}
+
+/**
+ * 1. Remove the bottom border in Chrome 57-
+ * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
+ */
+
+abbr[title] {
+ border-bottom: none; /* 1 */
+ text-decoration: underline; /* 2 */
+ text-decoration: underline dotted; /* 2 */
+}
+
+/**
+ * Add the correct font weight in Chrome, Edge, and Safari.
+ */
+
+b,
+strong {
+ font-weight: bolder;
+}
+
+/**
+ * 1. Correct the inheritance and scaling of font size in all browsers.
+ * 2. Correct the odd `em` font sizing in all browsers.
+ */
+
+code,
+kbd,
+samp {
+ font-family: monospace, monospace; /* 1 */
+ font-size: 1em; /* 2 */
+}
+
+/**
+ * Add the correct font size in all browsers.
+ */
+
+small {
+ font-size: 80%;
+}
+
+/**
+ * Prevent `sub` and `sup` elements from affecting the line height in
+ * all browsers.
+ */
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+
+sub {
+ bottom: -0.25em;
+}
+
+sup {
+ top: -0.5em;
+}
+
+/* Embedded content
+ ========================================================================== */
+
+/**
+ * Remove the border on images inside links in IE 10.
+ */
+
+img {
+ border-style: none;
+}
+
+/* Forms
+ ========================================================================== */
+
+/**
+ * 1. Change the font styles in all browsers.
+ * 2. Remove the margin in Firefox and Safari.
+ */
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ font-family: inherit; /* 1 */
+ font-size: 100%; /* 1 */
+ line-height: 1.15; /* 1 */
+ margin: 0; /* 2 */
+}
+
+/**
+ * Show the overflow in IE.
+ * 1. Show the overflow in Edge.
+ */
+
+button,
+input {
+ /* 1 */
+ overflow: visible;
+}
+
+/**
+ * Remove the inheritance of text transform in Edge, Firefox, and IE.
+ * 1. Remove the inheritance of text transform in Firefox.
+ */
+
+button,
+select {
+ /* 1 */
+ text-transform: none;
+}
+
+/**
+ * Correct the inability to style clickable types in iOS and Safari.
+ */
+
+button,
+[type="button"],
+[type="reset"],
+[type="submit"] {
+ -webkit-appearance: button;
+}
+
+/**
+ * Remove the inner border and padding in Firefox.
+ */
+
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+ border-style: none;
+ padding: 0;
+}
+
+/**
+ * Restore the focus styles unset by the previous rule.
+ */
+
+button:-moz-focusring,
+[type="button"]:-moz-focusring,
+[type="reset"]:-moz-focusring,
+[type="submit"]:-moz-focusring {
+ outline: 1px dotted ButtonText;
+}
+
+/**
+ * Correct the padding in Firefox.
+ */
+
+fieldset {
+ padding: 0.35em 0.75em 0.625em;
+}
+
+/**
+ * 1. Correct the text wrapping in Edge and IE.
+ * 2. Correct the color inheritance from `fieldset` elements in IE.
+ * 3. Remove the padding so developers are not caught out when they zero out
+ * `fieldset` elements in all browsers.
+ */
+
+legend {
+ box-sizing: border-box; /* 1 */
+ color: inherit; /* 2 */
+ display: table; /* 1 */
+ max-width: 100%; /* 1 */
+ padding: 0; /* 3 */
+ white-space: normal; /* 1 */
+}
+
+/**
+ * Add the correct vertical alignment in Chrome, Firefox, and Opera.
+ */
+
+progress {
+ vertical-align: baseline;
+}
+
+/**
+ * Remove the default vertical scrollbar in IE 10+.
+ */
+
+textarea {
+ overflow: auto;
+}
+
+/**
+ * 1. Add the correct box sizing in IE 10.
+ * 2. Remove the padding in IE 10.
+ */
+
+[type="checkbox"],
+[type="radio"] {
+ box-sizing: border-box; /* 1 */
+ padding: 0; /* 2 */
+}
+
+/**
+ * Correct the cursor style of increment and decrement buttons in Chrome.
+ */
+
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+/**
+ * 1. Correct the odd appearance in Chrome and Safari.
+ * 2. Correct the outline style in Safari.
+ */
+
+[type="search"] {
+ -webkit-appearance: textfield; /* 1 */
+ outline-offset: -2px; /* 2 */
+}
+
+/**
+ * Remove the inner padding in Chrome and Safari on macOS.
+ */
+
+[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+/**
+ * 1. Correct the inability to style clickable types in iOS and Safari.
+ * 2. Change font properties to `inherit` in Safari.
+ */
+
+::-webkit-file-upload-button {
+ -webkit-appearance: button; /* 1 */
+ font: inherit; /* 2 */
+}
+
+/* Interactive
+ ========================================================================== */
+
+/*
+ * Add the correct display in Edge, IE 10+, and Firefox.
+ */
+
+details {
+ display: block;
+}
+
+/*
+ * Add the correct display in all browsers.
+ */
+
+summary {
+ display: list-item;
+}
+
+/* Misc
+ ========================================================================== */
+
+/**
+ * Add the correct display in IE 10+.
+ */
+
+template {
+ display: none;
+}
+
+/**
+ * Add the correct display in IE 10.
+ */
+
+[hidden] {
+ display: none;
+}
--- /dev/null
+/*!
+ * Generated using the Bootstrap Customizer (https://getbootstrap.com/docs/3.4/customize/)
+ */
+/*!
+ * Bootstrap v3.4.1 (https://getbootstrap.com/)
+ * Copyright 2011-2019 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+.btn-default,
+.btn-primary,
+.btn-success,
+.btn-info,
+.btn-warning,
+.btn-danger {
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.btn-default:active,
+.btn-primary:active,
+.btn-success:active,
+.btn-info:active,
+.btn-warning:active,
+.btn-danger:active,
+.btn-default.active,
+.btn-primary.active,
+.btn-success.active,
+.btn-info.active,
+.btn-warning.active,
+.btn-danger.active {
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+.btn-default.disabled,
+.btn-primary.disabled,
+.btn-success.disabled,
+.btn-info.disabled,
+.btn-warning.disabled,
+.btn-danger.disabled,
+.btn-default[disabled],
+.btn-primary[disabled],
+.btn-success[disabled],
+.btn-info[disabled],
+.btn-warning[disabled],
+.btn-danger[disabled],
+fieldset[disabled] .btn-default,
+fieldset[disabled] .btn-primary,
+fieldset[disabled] .btn-success,
+fieldset[disabled] .btn-info,
+fieldset[disabled] .btn-warning,
+fieldset[disabled] .btn-danger {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.btn-default .badge,
+.btn-primary .badge,
+.btn-success .badge,
+.btn-info .badge,
+.btn-warning .badge,
+.btn-danger .badge {
+ text-shadow: none;
+}
+.btn:active,
+.btn.active {
+ background-image: none;
+}
+.btn-default {
+ background-image: -webkit-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);
+ background-image: -o-linear-gradient(top, #ffffff 0%, #e0e0e0 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#e0e0e0));
+ background-image: linear-gradient(to bottom, #ffffff 0%, #e0e0e0 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+ background-repeat: repeat-x;
+ border-color: #dbdbdb;
+ text-shadow: 0 1px 0 #fff;
+ border-color: #ccc;
+}
+.btn-default:hover,
+.btn-default:focus {
+ background-color: #e0e0e0;
+ background-position: 0 -15px;
+}
+.btn-default:active,
+.btn-default.active {
+ background-color: #e0e0e0;
+ border-color: #dbdbdb;
+}
+.btn-default.disabled,
+.btn-default[disabled],
+fieldset[disabled] .btn-default,
+.btn-default.disabled:hover,
+.btn-default[disabled]:hover,
+fieldset[disabled] .btn-default:hover,
+.btn-default.disabled:focus,
+.btn-default[disabled]:focus,
+fieldset[disabled] .btn-default:focus,
+.btn-default.disabled.focus,
+.btn-default[disabled].focus,
+fieldset[disabled] .btn-default.focus,
+.btn-default.disabled:active,
+.btn-default[disabled]:active,
+fieldset[disabled] .btn-default:active,
+.btn-default.disabled.active,
+.btn-default[disabled].active,
+fieldset[disabled] .btn-default.active {
+ background-color: #e0e0e0;
+ background-image: none;
+}
+.btn-primary {
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #265a88 100%);
+ background-image: -o-linear-gradient(top, #337ab7 0%, #265a88 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#265a88));
+ background-image: linear-gradient(to bottom, #337ab7 0%, #265a88 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+ background-repeat: repeat-x;
+ border-color: #245580;
+}
+.btn-primary:hover,
+.btn-primary:focus {
+ background-color: #265a88;
+ background-position: 0 -15px;
+}
+.btn-primary:active,
+.btn-primary.active {
+ background-color: #265a88;
+ border-color: #245580;
+}
+.btn-primary.disabled,
+.btn-primary[disabled],
+fieldset[disabled] .btn-primary,
+.btn-primary.disabled:hover,
+.btn-primary[disabled]:hover,
+fieldset[disabled] .btn-primary:hover,
+.btn-primary.disabled:focus,
+.btn-primary[disabled]:focus,
+fieldset[disabled] .btn-primary:focus,
+.btn-primary.disabled.focus,
+.btn-primary[disabled].focus,
+fieldset[disabled] .btn-primary.focus,
+.btn-primary.disabled:active,
+.btn-primary[disabled]:active,
+fieldset[disabled] .btn-primary:active,
+.btn-primary.disabled.active,
+.btn-primary[disabled].active,
+fieldset[disabled] .btn-primary.active {
+ background-color: #265a88;
+ background-image: none;
+}
+.btn-success {
+ background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
+ background-image: -o-linear-gradient(top, #5cb85c 0%, #419641 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#419641));
+ background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+ background-repeat: repeat-x;
+ border-color: #3e8f3e;
+}
+.btn-success:hover,
+.btn-success:focus {
+ background-color: #419641;
+ background-position: 0 -15px;
+}
+.btn-success:active,
+.btn-success.active {
+ background-color: #419641;
+ border-color: #3e8f3e;
+}
+.btn-success.disabled,
+.btn-success[disabled],
+fieldset[disabled] .btn-success,
+.btn-success.disabled:hover,
+.btn-success[disabled]:hover,
+fieldset[disabled] .btn-success:hover,
+.btn-success.disabled:focus,
+.btn-success[disabled]:focus,
+fieldset[disabled] .btn-success:focus,
+.btn-success.disabled.focus,
+.btn-success[disabled].focus,
+fieldset[disabled] .btn-success.focus,
+.btn-success.disabled:active,
+.btn-success[disabled]:active,
+fieldset[disabled] .btn-success:active,
+.btn-success.disabled.active,
+.btn-success[disabled].active,
+fieldset[disabled] .btn-success.active {
+ background-color: #419641;
+ background-image: none;
+}
+.btn-info {
+ background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
+ background-image: -o-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#2aabd2));
+ background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+ background-repeat: repeat-x;
+ border-color: #28a4c9;
+}
+.btn-info:hover,
+.btn-info:focus {
+ background-color: #2aabd2;
+ background-position: 0 -15px;
+}
+.btn-info:active,
+.btn-info.active {
+ background-color: #2aabd2;
+ border-color: #28a4c9;
+}
+.btn-info.disabled,
+.btn-info[disabled],
+fieldset[disabled] .btn-info,
+.btn-info.disabled:hover,
+.btn-info[disabled]:hover,
+fieldset[disabled] .btn-info:hover,
+.btn-info.disabled:focus,
+.btn-info[disabled]:focus,
+fieldset[disabled] .btn-info:focus,
+.btn-info.disabled.focus,
+.btn-info[disabled].focus,
+fieldset[disabled] .btn-info.focus,
+.btn-info.disabled:active,
+.btn-info[disabled]:active,
+fieldset[disabled] .btn-info:active,
+.btn-info.disabled.active,
+.btn-info[disabled].active,
+fieldset[disabled] .btn-info.active {
+ background-color: #2aabd2;
+ background-image: none;
+}
+.btn-warning {
+ background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
+ background-image: -o-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#eb9316));
+ background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+ background-repeat: repeat-x;
+ border-color: #e38d13;
+}
+.btn-warning:hover,
+.btn-warning:focus {
+ background-color: #eb9316;
+ background-position: 0 -15px;
+}
+.btn-warning:active,
+.btn-warning.active {
+ background-color: #eb9316;
+ border-color: #e38d13;
+}
+.btn-warning.disabled,
+.btn-warning[disabled],
+fieldset[disabled] .btn-warning,
+.btn-warning.disabled:hover,
+.btn-warning[disabled]:hover,
+fieldset[disabled] .btn-warning:hover,
+.btn-warning.disabled:focus,
+.btn-warning[disabled]:focus,
+fieldset[disabled] .btn-warning:focus,
+.btn-warning.disabled.focus,
+.btn-warning[disabled].focus,
+fieldset[disabled] .btn-warning.focus,
+.btn-warning.disabled:active,
+.btn-warning[disabled]:active,
+fieldset[disabled] .btn-warning:active,
+.btn-warning.disabled.active,
+.btn-warning[disabled].active,
+fieldset[disabled] .btn-warning.active {
+ background-color: #eb9316;
+ background-image: none;
+}
+.btn-danger {
+ background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
+ background-image: -o-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c12e2a));
+ background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+ background-repeat: repeat-x;
+ border-color: #b92c28;
+}
+.btn-danger:hover,
+.btn-danger:focus {
+ background-color: #c12e2a;
+ background-position: 0 -15px;
+}
+.btn-danger:active,
+.btn-danger.active {
+ background-color: #c12e2a;
+ border-color: #b92c28;
+}
+.btn-danger.disabled,
+.btn-danger[disabled],
+fieldset[disabled] .btn-danger,
+.btn-danger.disabled:hover,
+.btn-danger[disabled]:hover,
+fieldset[disabled] .btn-danger:hover,
+.btn-danger.disabled:focus,
+.btn-danger[disabled]:focus,
+fieldset[disabled] .btn-danger:focus,
+.btn-danger.disabled.focus,
+.btn-danger[disabled].focus,
+fieldset[disabled] .btn-danger.focus,
+.btn-danger.disabled:active,
+.btn-danger[disabled]:active,
+fieldset[disabled] .btn-danger:active,
+.btn-danger.disabled.active,
+.btn-danger[disabled].active,
+fieldset[disabled] .btn-danger.active {
+ background-color: #c12e2a;
+ background-image: none;
+}
+.thumbnail,
+.img-thumbnail {
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+}
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+ background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+ background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
+ background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
+ background-repeat: repeat-x;
+ background-color: #e8e8e8;
+}
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
+ background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
+ background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
+ background-repeat: repeat-x;
+ background-color: #2e6da4;
+}
+.navbar-default {
+ background-image: -webkit-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);
+ background-image: -o-linear-gradient(top, #ffffff 0%, #f8f8f8 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#f8f8f8));
+ background-image: linear-gradient(to bottom, #ffffff 0%, #f8f8f8 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.15), 0 1px 5px rgba(0, 0, 0, 0.075);
+}
+.navbar-default .navbar-nav > .open > a,
+.navbar-default .navbar-nav > .active > a {
+ background-image: -webkit-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
+ background-image: -o-linear-gradient(top, #dbdbdb 0%, #e2e2e2 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#dbdbdb), to(#e2e2e2));
+ background-image: linear-gradient(to bottom, #dbdbdb 0%, #e2e2e2 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);
+ background-repeat: repeat-x;
+ -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.075);
+}
+.navbar-brand,
+.navbar-nav > li > a {
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.25);
+}
+.navbar-inverse {
+ background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222222 100%);
+ background-image: -o-linear-gradient(top, #3c3c3c 0%, #222222 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#3c3c3c), to(#222222));
+ background-image: linear-gradient(to bottom, #3c3c3c 0%, #222222 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+ border-radius: 4px;
+}
+.navbar-inverse .navbar-nav > .open > a,
+.navbar-inverse .navbar-nav > .active > a {
+ background-image: -webkit-linear-gradient(top, #080808 0%, #0f0f0f 100%);
+ background-image: -o-linear-gradient(top, #080808 0%, #0f0f0f 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#080808), to(#0f0f0f));
+ background-image: linear-gradient(to bottom, #080808 0%, #0f0f0f 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);
+ background-repeat: repeat-x;
+ -webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
+ box-shadow: inset 0 3px 9px rgba(0, 0, 0, 0.25);
+}
+.navbar-inverse .navbar-brand,
+.navbar-inverse .navbar-nav > li > a {
+ text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+.navbar-static-top,
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ border-radius: 0;
+}
+@media (max-width: 767px) {
+ .navbar .navbar-nav .open .dropdown-menu > .active > a,
+ .navbar .navbar-nav .open .dropdown-menu > .active > a:hover,
+ .navbar .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #fff;
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
+ background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
+ background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
+ background-repeat: repeat-x;
+ }
+}
+.alert {
+ text-shadow: 0 1px 0 rgba(255, 255, 255, 0.2);
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.25), 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+.alert-success {
+ background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
+ background-image: -o-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#c8e5bc));
+ background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
+ background-repeat: repeat-x;
+ border-color: #b2dba1;
+}
+.alert-info {
+ background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
+ background-image: -o-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#b9def0));
+ background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
+ background-repeat: repeat-x;
+ border-color: #9acfea;
+}
+.alert-warning {
+ background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
+ background-image: -o-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#f8efc0));
+ background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
+ background-repeat: repeat-x;
+ border-color: #f5e79e;
+}
+.alert-danger {
+ background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
+ background-image: -o-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#e7c3c3));
+ background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
+ background-repeat: repeat-x;
+ border-color: #dca7a7;
+}
+.progress {
+ background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
+ background-image: -o-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#ebebeb), to(#f5f5f5));
+ background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
+ background-repeat: repeat-x;
+}
+.progress-bar {
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #286090 100%);
+ background-image: -o-linear-gradient(top, #337ab7 0%, #286090 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#286090));
+ background-image: linear-gradient(to bottom, #337ab7 0%, #286090 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);
+ background-repeat: repeat-x;
+}
+.progress-bar-success {
+ background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
+ background-image: -o-linear-gradient(top, #5cb85c 0%, #449d44 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5cb85c), to(#449d44));
+ background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
+ background-repeat: repeat-x;
+}
+.progress-bar-info {
+ background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
+ background-image: -o-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#5bc0de), to(#31b0d5));
+ background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
+ background-repeat: repeat-x;
+}
+.progress-bar-warning {
+ background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
+ background-image: -o-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f0ad4e), to(#ec971f));
+ background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
+ background-repeat: repeat-x;
+}
+.progress-bar-danger {
+ background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
+ background-image: -o-linear-gradient(top, #d9534f 0%, #c9302c 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9534f), to(#c9302c));
+ background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
+ background-repeat: repeat-x;
+}
+.progress-bar-striped {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+}
+.list-group {
+ border-radius: 4px;
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.075);
+}
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+ text-shadow: 0 -1px 0 #286090;
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #2b669a 100%);
+ background-image: -o-linear-gradient(top, #337ab7 0%, #2b669a 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2b669a));
+ background-image: linear-gradient(to bottom, #337ab7 0%, #2b669a 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);
+ background-repeat: repeat-x;
+ border-color: #2b669a;
+}
+.list-group-item.active .badge,
+.list-group-item.active:hover .badge,
+.list-group-item.active:focus .badge {
+ text-shadow: none;
+}
+.panel {
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
+}
+.panel-default > .panel-heading {
+ background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+ background-image: -o-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f5f5f5), to(#e8e8e8));
+ background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
+ background-repeat: repeat-x;
+}
+.panel-primary > .panel-heading {
+ background-image: -webkit-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
+ background-image: -o-linear-gradient(top, #337ab7 0%, #2e6da4 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#337ab7), to(#2e6da4));
+ background-image: linear-gradient(to bottom, #337ab7 0%, #2e6da4 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);
+ background-repeat: repeat-x;
+}
+.panel-success > .panel-heading {
+ background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
+ background-image: -o-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#dff0d8), to(#d0e9c6));
+ background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
+ background-repeat: repeat-x;
+}
+.panel-info > .panel-heading {
+ background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
+ background-image: -o-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#d9edf7), to(#c4e3f3));
+ background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
+ background-repeat: repeat-x;
+}
+.panel-warning > .panel-heading {
+ background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
+ background-image: -o-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#fcf8e3), to(#faf2cc));
+ background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
+ background-repeat: repeat-x;
+}
+.panel-danger > .panel-heading {
+ background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
+ background-image: -o-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#f2dede), to(#ebcccc));
+ background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
+ background-repeat: repeat-x;
+}
+.well {
+ background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
+ background-image: -o-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#e8e8e8), to(#f5f5f5));
+ background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
+ background-repeat: repeat-x;
+ border-color: #dcdcdc;
+ -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
+ box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.05), 0 1px 0 rgba(255, 255, 255, 0.1);
+}
--- /dev/null
+/*!
+ * Generated using the Bootstrap Customizer (https://getbootstrap.com/docs/3.4/customize/)
+ *//*!
+ * Bootstrap v3.4.1 (https://getbootstrap.com/)
+ * Copyright 2011-2019 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */.btn-default,.btn-primary,.btn-success,.btn-info,.btn-warning,.btn-danger{text-shadow:0 -1px 0 rgba(0,0,0,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 1px rgba(0,0,0,0.075)}.btn-default:active,.btn-primary:active,.btn-success:active,.btn-info:active,.btn-warning:active,.btn-danger:active,.btn-default.active,.btn-primary.active,.btn-success.active,.btn-info.active,.btn-warning.active,.btn-danger.active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-default.disabled,.btn-primary.disabled,.btn-success.disabled,.btn-info.disabled,.btn-warning.disabled,.btn-danger.disabled,.btn-default[disabled],.btn-primary[disabled],.btn-success[disabled],.btn-info[disabled],.btn-warning[disabled],.btn-danger[disabled],fieldset[disabled] .btn-default,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-info,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-danger{-webkit-box-shadow:none;box-shadow:none}.btn-default .badge,.btn-primary .badge,.btn-success .badge,.btn-info .badge,.btn-warning .badge,.btn-danger .badge{text-shadow:none}.btn:active,.btn.active{background-image:none}.btn-default{background-image:-webkit-linear-gradient(top, #fff 0, #e0e0e0 100%);background-image:-o-linear-gradient(top, #fff 0, #e0e0e0 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), to(#e0e0e0));background-image:linear-gradient(to bottom, #fff 0, #e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#dbdbdb;text-shadow:0 1px 0 #fff;border-color:#ccc}.btn-default:hover,.btn-default:focus{background-color:#e0e0e0;background-position:0 -15px}.btn-default:active,.btn-default.active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top, #337ab7 0, #265a88 100%);background-image:-o-linear-gradient(top, #337ab7 0, #265a88 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #337ab7), to(#265a88));background-image:linear-gradient(to bottom, #337ab7 0, #265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#245580}.btn-primary:hover,.btn-primary:focus{background-color:#265a88;background-position:0 -15px}.btn-primary:active,.btn-primary.active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top, #5cb85c 0, #419641 100%);background-image:-o-linear-gradient(top, #5cb85c 0, #419641 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #5cb85c), to(#419641));background-image:linear-gradient(to bottom, #5cb85c 0, #419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:hover,.btn-success:focus{background-color:#419641;background-position:0 -15px}.btn-success:active,.btn-success.active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top, #5bc0de 0, #2aabd2 100%);background-image:-o-linear-gradient(top, #5bc0de 0, #2aabd2 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #5bc0de), to(#2aabd2));background-image:linear-gradient(to bottom, #5bc0de 0, #2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:hover,.btn-info:focus{background-color:#2aabd2;background-position:0 -15px}.btn-info:active,.btn-info.active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top, #f0ad4e 0, #eb9316 100%);background-image:-o-linear-gradient(top, #f0ad4e 0, #eb9316 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #f0ad4e), to(#eb9316));background-image:linear-gradient(to bottom, #f0ad4e 0, #eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:hover,.btn-warning:focus{background-color:#eb9316;background-position:0 -15px}.btn-warning:active,.btn-warning.active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top, #d9534f 0, #c12e2a 100%);background-image:-o-linear-gradient(top, #d9534f 0, #c12e2a 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #d9534f), to(#c12e2a));background-image:linear-gradient(to bottom, #d9534f 0, #c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:hover,.btn-danger:focus{background-color:#c12e2a;background-position:0 -15px}.btn-danger:active,.btn-danger.active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#c12e2a;background-image:none}.thumbnail,.img-thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:-webkit-linear-gradient(top, #f5f5f5 0, #e8e8e8 100%);background-image:-o-linear-gradient(top, #f5f5f5 0, #e8e8e8 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #f5f5f5), to(#e8e8e8));background-image:linear-gradient(to bottom, #f5f5f5 0, #e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x;background-color:#e8e8e8}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{background-image:-webkit-linear-gradient(top, #337ab7 0, #2e6da4 100%);background-image:-o-linear-gradient(top, #337ab7 0, #2e6da4 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #337ab7), to(#2e6da4));background-image:linear-gradient(to bottom, #337ab7 0, #2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x;background-color:#2e6da4}.navbar-default{background-image:-webkit-linear-gradient(top, #fff 0, #f8f8f8 100%);background-image:-o-linear-gradient(top, #fff 0, #f8f8f8 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fff), to(#f8f8f8));background-image:linear-gradient(to bottom, #fff 0, #f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border-radius:4px;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15),0 1px 5px rgba(0,0,0,0.075)}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #dbdbdb 0, #e2e2e2 100%);background-image:-o-linear-gradient(top, #dbdbdb 0, #e2e2e2 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #dbdbdb), to(#e2e2e2));background-image:linear-gradient(to bottom, #dbdbdb 0, #e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.075);box-shadow:inset 0 3px 9px rgba(0,0,0,0.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,0.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top, #3c3c3c 0, #222 100%);background-image:-o-linear-gradient(top, #3c3c3c 0, #222 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #3c3c3c), to(#222));background-image:linear-gradient(to bottom, #3c3c3c 0, #222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);border-radius:4px}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.active>a{background-image:-webkit-linear-gradient(top, #080808 0, #0f0f0f 100%);background-image:-o-linear-gradient(top, #080808 0, #0f0f0f 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #080808), to(#0f0f0f));background-image:linear-gradient(to bottom, #080808 0, #0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,0.25);box-shadow:inset 0 3px 9px rgba(0,0,0,0.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,0.25)}.navbar-static-top,.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-image:-webkit-linear-gradient(top, #337ab7 0, #2e6da4 100%);background-image:-o-linear-gradient(top, #337ab7 0, #2e6da4 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #337ab7), to(#2e6da4));background-image:linear-gradient(to bottom, #337ab7 0, #2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,0.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05);box-shadow:inset 0 1px 0 rgba(255,255,255,0.25),0 1px 2px rgba(0,0,0,0.05)}.alert-success{background-image:-webkit-linear-gradient(top, #dff0d8 0, #c8e5bc 100%);background-image:-o-linear-gradient(top, #dff0d8 0, #c8e5bc 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #dff0d8), to(#c8e5bc));background-image:linear-gradient(to bottom, #dff0d8 0, #c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top, #d9edf7 0, #b9def0 100%);background-image:-o-linear-gradient(top, #d9edf7 0, #b9def0 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #d9edf7), to(#b9def0));background-image:linear-gradient(to bottom, #d9edf7 0, #b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top, #fcf8e3 0, #f8efc0 100%);background-image:-o-linear-gradient(top, #fcf8e3 0, #f8efc0 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fcf8e3), to(#f8efc0));background-image:linear-gradient(to bottom, #fcf8e3 0, #f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top, #f2dede 0, #e7c3c3 100%);background-image:-o-linear-gradient(top, #f2dede 0, #e7c3c3 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #f2dede), to(#e7c3c3));background-image:linear-gradient(to bottom, #f2dede 0, #e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top, #ebebeb 0, #f5f5f5 100%);background-image:-o-linear-gradient(top, #ebebeb 0, #f5f5f5 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #ebebeb), to(#f5f5f5));background-image:linear-gradient(to bottom, #ebebeb 0, #f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top, #337ab7 0, #286090 100%);background-image:-o-linear-gradient(top, #337ab7 0, #286090 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #337ab7), to(#286090));background-image:linear-gradient(to bottom, #337ab7 0, #286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top, #5cb85c 0, #449d44 100%);background-image:-o-linear-gradient(top, #5cb85c 0, #449d44 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #5cb85c), to(#449d44));background-image:linear-gradient(to bottom, #5cb85c 0, #449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top, #5bc0de 0, #31b0d5 100%);background-image:-o-linear-gradient(top, #5bc0de 0, #31b0d5 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #5bc0de), to(#31b0d5));background-image:linear-gradient(to bottom, #5bc0de 0, #31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top, #f0ad4e 0, #ec971f 100%);background-image:-o-linear-gradient(top, #f0ad4e 0, #ec971f 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #f0ad4e), to(#ec971f));background-image:linear-gradient(to bottom, #f0ad4e 0, #ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top, #d9534f 0, #c9302c 100%);background-image:-o-linear-gradient(top, #d9534f 0, #c9302c 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #d9534f), to(#c9302c));background-image:linear-gradient(to bottom, #d9534f 0, #c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.075);box-shadow:0 1px 2px rgba(0,0,0,0.075)}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top, #337ab7 0, #2b669a 100%);background-image:-o-linear-gradient(top, #337ab7 0, #2b669a 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #337ab7), to(#2b669a));background-image:linear-gradient(to bottom, #337ab7 0, #2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:hover .badge,.list-group-item.active:focus .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.05);box-shadow:0 1px 2px rgba(0,0,0,0.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top, #f5f5f5 0, #e8e8e8 100%);background-image:-o-linear-gradient(top, #f5f5f5 0, #e8e8e8 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #f5f5f5), to(#e8e8e8));background-image:linear-gradient(to bottom, #f5f5f5 0, #e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top, #337ab7 0, #2e6da4 100%);background-image:-o-linear-gradient(top, #337ab7 0, #2e6da4 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #337ab7), to(#2e6da4));background-image:linear-gradient(to bottom, #337ab7 0, #2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top, #dff0d8 0, #d0e9c6 100%);background-image:-o-linear-gradient(top, #dff0d8 0, #d0e9c6 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #dff0d8), to(#d0e9c6));background-image:linear-gradient(to bottom, #dff0d8 0, #d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top, #d9edf7 0, #c4e3f3 100%);background-image:-o-linear-gradient(top, #d9edf7 0, #c4e3f3 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #d9edf7), to(#c4e3f3));background-image:linear-gradient(to bottom, #d9edf7 0, #c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top, #fcf8e3 0, #faf2cc 100%);background-image:-o-linear-gradient(top, #fcf8e3 0, #faf2cc 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #fcf8e3), to(#faf2cc));background-image:linear-gradient(to bottom, #fcf8e3 0, #faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top, #f2dede 0, #ebcccc 100%);background-image:-o-linear-gradient(top, #f2dede 0, #ebcccc 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #f2dede), to(#ebcccc));background-image:linear-gradient(to bottom, #f2dede 0, #ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top, #e8e8e8 0, #f5f5f5 100%);background-image:-o-linear-gradient(top, #e8e8e8 0, #f5f5f5 100%);background-image:-webkit-gradient(linear, left top, left bottom, color-stop(0, #e8e8e8), to(#f5f5f5));background-image:linear-gradient(to bottom, #e8e8e8 0, #f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 3px rgba(0,0,0,0.05),0 1px 0 rgba(255,255,255,0.1)}
\ No newline at end of file
--- /dev/null
+/*!
+ * Generated using the Bootstrap Customizer (https://getbootstrap.com/docs/3.4/customize/)
+ */
+/*!
+ * Bootstrap v3.4.1 (https://getbootstrap.com/)
+ * Copyright 2011-2019 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
+html {
+ font-family: sans-serif;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%;
+}
+body {
+ margin: 0;
+}
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+audio,
+canvas,
+progress,
+video {
+ vertical-align: baseline;
+}
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+[hidden],
+template {
+ display: none;
+}
+a {
+ background-color: transparent;
+}
+a:active,
+a:hover {
+ outline: 0;
+}
+abbr[title] {
+ border-bottom: none;
+ text-decoration: underline;
+ text-decoration: underline dotted;
+}
+b,
+strong {
+ font-weight: bold;
+}
+dfn {
+ font-style: italic;
+}
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0;
+}
+mark {
+ background: #ff0;
+ color: #000;
+}
+small {
+ font-size: 80%;
+}
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline;
+}
+sup {
+ top: -0.5em;
+}
+sub {
+ bottom: -0.25em;
+}
+img {
+ border: 0;
+}
+svg:not(:root) {
+ overflow: hidden;
+}
+figure {
+ margin: 1em 40px;
+}
+hr {
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+ height: 0;
+}
+pre {
+ overflow: auto;
+}
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 16px;
+}
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit;
+ font: inherit;
+ margin: 0;
+}
+button {
+ overflow: visible;
+}
+button,
+select {
+ text-transform: none;
+}
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer;
+}
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0;
+}
+input {
+ line-height: normal;
+}
+input[type="checkbox"],
+input[type="radio"] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ padding: 0;
+}
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+input[type="search"] {
+ -webkit-appearance: textfield;
+ -webkit-box-sizing: content-box;
+ -moz-box-sizing: content-box;
+ box-sizing: content-box;
+}
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em;
+}
+legend {
+ border: 0;
+ padding: 0;
+}
+textarea {
+ overflow: auto;
+}
+optgroup {
+ font-weight: bold;
+}
+table {
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+td,
+* {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+*:before,
+*:after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+}
+html {
+ font-size: 10px;
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+body {
+ font-family: "MuseoSans-500","Malgun Gothic",Helvetica,Arial,sans-serif
+}
+input,
+button,
+select,
+textarea {
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+}
+a:hover,
+figure {
+ margin: 0;
+}
+img {
+ vertical-align: middle;
+}
+.img-responsive {
+ display: block;
+ max-width: 100%;
+ height: auto;
+}
+.img-rounded {
+ border-radius: 6px;
+}
+.img-thumbnail {
+ padding: 4px;
+ line-height: 1.42857143;
+ background-color: #ffffff;
+ border: 1px solid #dddddd;
+ border-radius: 4px;
+ -webkit-transition: all 0.2s ease-in-out;
+ -o-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+ display: inline-block;
+ max-width: 100%;
+ height: auto;
+}
+.img-circle {
+ border-radius: 50%;
+}
+hr {
+ margin-top: 20px;
+ margin-bottom: 20px;
+ border: 0;
+ border-top: 1px solid #eeeeee;
+}
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ margin: -1px;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0;
+}
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto;
+}
+[role="button"] {
+ cursor: pointer;
+}
+.nav {
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none;
+}
+.nav > li {
+ position: relative;
+ display: block;
+}
+.nav > li > a {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+}
+.nav > li > a:hover,
+.nav > li > a:focus {
+ text-decoration: none;
+ background-color: #eeeeee;
+}
+.nav > li.disabled > a {
+ color: #777777;
+}
+.nav > li.disabled > a:hover,
+.nav > li.disabled > a:focus {
+ color: #777777;
+ text-decoration: none;
+ cursor: not-allowed;
+ background-color: transparent;
+}
+.nav .open > a,
+.nav .open > a:hover,
+.nav .open > a:focus {
+ background-color: #eeeeee;
+ border-color: #337ab7;
+}
+.nav .nav-divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #e5e5e5;
+}
+.nav > li > a > img {
+ max-width: none;
+}
+.nav-tabs {
+ border-bottom: 1px solid #dddddd;
+}
+.nav-tabs > li {
+ float: left;
+ margin-bottom: -1px;
+}
+.nav-tabs > li > a {
+ margin-right: 2px;
+ line-height: 1.42857143;
+ border: 1px solid transparent;
+ border-radius: 4px 4px 0 0;
+}
+.nav-tabs > li > a:hover {
+ border-color: #eeeeee #eeeeee #dddddd;
+}
+.nav-tabs > li.active > a,
+.nav-tabs > li.active > a:hover,
+.nav-tabs > li.active > a:focus {
+ color: #555555;
+ cursor: default;
+ background-color: #ffffff;
+ border: 1px solid #dddddd;
+ border-bottom-color: transparent;
+}
+.nav-tabs.nav-justified {
+ width: 100%;
+ border-bottom: 0;
+}
+.nav-tabs.nav-justified > li {
+ float: none;
+}
+.nav-tabs.nav-justified > li > a {
+ margin-bottom: 5px;
+ text-align: center;
+}
+.nav-tabs.nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+}
+@media (min-width: 768px) {
+ .nav-tabs.nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+ .nav-tabs.nav-justified > li > a {
+ margin-bottom: 0;
+ }
+}
+.nav-tabs.nav-justified > li > a {
+ margin-right: 0;
+ border-radius: 4px;
+}
+.nav-tabs.nav-justified > .active > a,
+.nav-tabs.nav-justified > .active > a:hover,
+.nav-tabs.nav-justified > .active > a:focus {
+ border: 1px solid #dddddd;
+}
+@media (min-width: 768px) {
+ .nav-tabs.nav-justified > li > a {
+ border-bottom: 1px solid #dddddd;
+ border-radius: 4px 4px 0 0;
+ }
+ .nav-tabs.nav-justified > .active > a,
+ .nav-tabs.nav-justified > .active > a:hover,
+ .nav-tabs.nav-justified > .active > a:focus {
+ border-bottom-color: #ffffff;
+ }
+}
+.nav-pills > li {
+ float: left;
+}
+.nav-pills > li > a {
+ border-radius: 4px;
+}
+.nav-pills > li + li {
+ margin-left: 2px;
+}
+.nav-pills > li.active > a,
+.nav-pills > li.active > a:hover,
+.nav-pills > li.active > a:focus {
+ color: #ffffff;
+ background-color: #337ab7;
+}
+.nav-stacked > li {
+ float: none;
+}
+.nav-stacked > li + li {
+ margin-top: 2px;
+ margin-left: 0;
+}
+.nav-justified {
+ width: 100%;
+}
+.nav-justified > li {
+ float: none;
+}
+.nav-justified > li > a {
+ margin-bottom: 5px;
+ text-align: center;
+}
+.nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto;
+}
+@media (min-width: 768px) {
+ .nav-justified > li {
+ display: table-cell;
+ width: 1%;
+ }
+ .nav-justified > li > a {
+ margin-bottom: 0;
+ }
+}
+.nav-tabs-justified {
+ border-bottom: 0;
+}
+.nav-tabs-justified > li > a {
+ margin-right: 0;
+ border-radius: 4px;
+}
+.nav-tabs-justified > .active > a,
+.nav-tabs-justified > .active > a:hover,
+.nav-tabs-justified > .active > a:focus {
+ border: 1px solid #dddddd;
+}
+@media (min-width: 768px) {
+ .nav-tabs-justified > li > a {
+ border-bottom: 1px solid #dddddd;
+ border-radius: 4px 4px 0 0;
+ }
+ .nav-tabs-justified > .active > a,
+ .nav-tabs-justified > .active > a:hover,
+ .nav-tabs-justified > .active > a:focus {
+ border-bottom-color: #ffffff;
+ }
+}
+.tab-content > .tab-pane {
+ display: none;
+}
+.tab-content > .active {
+ display: block;
+}
+.nav-tabs .dropdown-menu {
+ margin-top: -1px;
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
+.clearfix:before,
+.clearfix:after,
+.nav:before,
+.nav:after {
+ display: table;
+ content: " ";
+}
+.clearfix:after,
+.nav:after {
+ clear: both;
+}
+.center-block {
+ display: block;
+ margin-right: auto;
+ margin-left: auto;
+}
+.pull-right {
+ float: right !important;
+}
+.pull-left {
+ float: left !important;
+}
+.hide {
+ display: none !important;
+}
+.show {
+ display: block !important;
+}
+.invisible {
+ visibility: hidden;
+}
+.text-hide {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+}
+.hidden {
+ display: none !important;
+}
+.affix {
+ position: fixed;
+}
--- /dev/null
+/*!
+ * Generated using the Bootstrap Customizer (https://getbootstrap.com/docs/3.4/customize/)
+ *//*!
+ * Bootstrap v3.4.1 (https://getbootstrap.com/)
+ * Copyright 2011-2019 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.clearfix:before,.clearfix:after,.nav:before,.nav:after{display:table;content:" "}.clearfix:after,.nav:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}
\ No newline at end of file
--- /dev/null
+---
+---
+{% include css/just-the-docs.scss.liquid color_scheme="dark" %}
--- /dev/null
+---
+---
+{% if site.color_scheme and site.color_scheme != "nil" %}
+ {% assign color_scheme = site.color_scheme %}
+{% else %}
+ {% assign color_scheme = "light" %}
+{% endif %}
+{% include css/just-the-docs.scss.liquid color_scheme=color_scheme %}
--- /dev/null
+---
+---
+{% include css/just-the-docs.scss.liquid color_scheme="light" %}
--- /dev/null
+<svg width="28" height="28" viewBox="0 0 28 28" xmlns="http://www.w3.org/2000/svg"><title>Search</title><g fill-rule="nonzero" fill="#959396"><path d="M17.332 20.735c-5.537 0-10-4.6-10-10.247 0-5.646 4.463-10.247 10-10.247 5.536 0 10 4.601 10 10.247s-4.464 10.247-10 10.247zm0-4c3.3 0 6-2.783 6-6.247 0-3.463-2.7-6.247-6-6.247s-6 2.784-6 6.247c0 3.464 2.7 6.247 6 6.247z"/><path d="M11.672 13.791L.192 25.271 3.02 28.1 14.5 16.62z"/></g></svg>
--- /dev/null
+/*!
+ * Generated using the Bootstrap Customizer (https://getbootstrap.com/docs/3.4/customize/)
+ */
+
+/*!
+ * Bootstrap v3.4.1 (https://getbootstrap.com/)
+ * Copyright 2011-2022 Twitter, Inc.
+ * Licensed under the MIT license
+ */
+
+if (typeof jQuery === 'undefined') {
+ throw new Error('Bootstrap\'s JavaScript requires jQuery')
+}
++function ($) {
+ 'use strict';
+ var version = $.fn.jquery.split(' ')[0].split('.')
+ if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1) || (version[0] > 3)) {
+ throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4')
+ }
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: tab.js v3.4.1
+ * https://getbootstrap.com/docs/3.4/javascript/#tabs
+ * ========================================================================
+ * Copyright 2011-2019 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+ 'use strict';
+
+ // TAB CLASS DEFINITION
+ // ====================
+
+ var Tab = function (element) {
+ // jscs:disable requireDollarBeforejQueryAssignment
+ this.element = $(element)
+ // jscs:enable requireDollarBeforejQueryAssignment
+ }
+
+ Tab.VERSION = '3.4.1'
+
+ Tab.TRANSITION_DURATION = 150
+
+ Tab.prototype.show = function () {
+ var $this = this.element
+ var $ul = $this.closest('ul:not(.dropdown-menu)')
+ var selector = $this.data('target')
+
+ if (!selector) {
+ selector = $this.attr('href')
+ selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
+ }
+
+ if ($this.parent('li').hasClass('active')) return
+
+ var $previous = $ul.find('.active:last a')
+ var hideEvent = $.Event('hide.bs.tab', {
+ relatedTarget: $this[0]
+ })
+ var showEvent = $.Event('show.bs.tab', {
+ relatedTarget: $previous[0]
+ })
+
+ $previous.trigger(hideEvent)
+ $this.trigger(showEvent)
+
+ if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) return
+
+ var $target = $(document).find(selector)
+
+ this.activate($this.closest('li'), $ul)
+ this.activate($target, $target.parent(), function () {
+ $previous.trigger({
+ type: 'hidden.bs.tab',
+ relatedTarget: $this[0]
+ })
+ $this.trigger({
+ type: 'shown.bs.tab',
+ relatedTarget: $previous[0]
+ })
+ })
+ }
+
+ Tab.prototype.activate = function (element, container, callback) {
+ var $active = container.find('> .active')
+ var transition = callback
+ && $.support.transition
+ && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
+
+ function next() {
+ $active
+ .removeClass('active')
+ .find('> .dropdown-menu > .active')
+ .removeClass('active')
+ .end()
+ .find('[data-toggle="tab"]')
+ .attr('aria-expanded', false)
+
+ element
+ .addClass('active')
+ .find('[data-toggle="tab"]')
+ .attr('aria-expanded', true)
+
+ if (transition) {
+ element[0].offsetWidth // reflow for transition
+ element.addClass('in')
+ } else {
+ element.removeClass('fade')
+ }
+
+ if (element.parent('.dropdown-menu').length) {
+ element
+ .closest('li.dropdown')
+ .addClass('active')
+ .end()
+ .find('[data-toggle="tab"]')
+ .attr('aria-expanded', true)
+ }
+
+ callback && callback()
+ }
+
+ $active.length && transition ?
+ $active
+ .one('bsTransitionEnd', next)
+ .emulateTransitionEnd(Tab.TRANSITION_DURATION) :
+ next()
+
+ $active.removeClass('in')
+ }
+
+
+ // TAB PLUGIN DEFINITION
+ // =====================
+
+ function Plugin(option) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.tab')
+
+ if (!data) $this.data('bs.tab', (data = new Tab(this)))
+ if (typeof option == 'string') data[option]()
+ })
+ }
+
+ var old = $.fn.tab
+
+ $.fn.tab = Plugin
+ $.fn.tab.Constructor = Tab
+
+
+ // TAB NO CONFLICT
+ // ===============
+
+ $.fn.tab.noConflict = function () {
+ $.fn.tab = old
+ return this
+ }
+
+
+ // TAB DATA-API
+ // ============
+
+ var clickHandler = function (e) {
+ e.preventDefault()
+ Plugin.call($(this), 'show')
+ }
+
+ $(document)
+ .on('click.bs.tab.data-api', '[data-toggle="tab"]', clickHandler)
+ .on('click.bs.tab.data-api', '[data-toggle="pill"]', clickHandler)
+
+}(jQuery);
+
+/* ========================================================================
+ * Bootstrap: scrollspy.js v3.4.1
+ * https://getbootstrap.com/docs/3.4/javascript/#scrollspy
+ * ========================================================================
+ * Copyright 2011-2019 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+ 'use strict';
+
+ // SCROLLSPY CLASS DEFINITION
+ // ==========================
+
+ function ScrollSpy(element, options) {
+ this.$body = $(document.body)
+ this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
+ this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
+ this.selector = (this.options.target || '') + ' .nav li > a'
+ this.offsets = []
+ this.targets = []
+ this.activeTarget = null
+ this.scrollHeight = 0
+
+ this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
+ this.refresh()
+ this.process()
+ }
+
+ ScrollSpy.VERSION = '3.4.1'
+
+ ScrollSpy.DEFAULTS = {
+ offset: 10
+ }
+
+ ScrollSpy.prototype.getScrollHeight = function () {
+ return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
+ }
+
+ ScrollSpy.prototype.refresh = function () {
+ var that = this
+ var offsetMethod = 'offset'
+ var offsetBase = 0
+
+ this.offsets = []
+ this.targets = []
+ this.scrollHeight = this.getScrollHeight()
+
+ if (!$.isWindow(this.$scrollElement[0])) {
+ offsetMethod = 'position'
+ offsetBase = this.$scrollElement.scrollTop()
+ }
+
+ this.$body
+ .find(this.selector)
+ .map(function () {
+ var $el = $(this)
+ var href = $el.data('target') || $el.attr('href')
+ var $href = /^#./.test(href) && $(href)
+
+ return ($href
+ && $href.length
+ && $href.is(':visible')
+ && [[$href[offsetMethod]().top + offsetBase, href]]) || null
+ })
+ .sort(function (a, b) { return a[0] - b[0] })
+ .each(function () {
+ that.offsets.push(this[0])
+ that.targets.push(this[1])
+ })
+ }
+
+ ScrollSpy.prototype.process = function () {
+ var scrollTop = this.$scrollElement.scrollTop() + this.options.offset
+ var scrollHeight = this.getScrollHeight()
+ var maxScroll = this.options.offset + scrollHeight - this.$scrollElement.height()
+ var offsets = this.offsets
+ var targets = this.targets
+ var activeTarget = this.activeTarget
+ var i
+
+ if (this.scrollHeight != scrollHeight) {
+ this.refresh()
+ }
+
+ if (scrollTop >= maxScroll) {
+ return activeTarget != (i = targets[targets.length - 1]) && this.activate(i)
+ }
+
+ if (activeTarget && scrollTop < offsets[0]) {
+ this.activeTarget = null
+ return this.clear()
+ }
+
+ for (i = offsets.length; i--;) {
+ activeTarget != targets[i]
+ && scrollTop >= offsets[i]
+ && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
+ && this.activate(targets[i])
+ }
+ }
+
+ ScrollSpy.prototype.activate = function (target) {
+ this.activeTarget = target
+
+ this.clear()
+
+ var selector = this.selector +
+ '[data-target="' + target + '"],' +
+ this.selector + '[href="' + target + '"]'
+
+ var active = $(selector)
+ .parents('li')
+ .addClass('active')
+
+ if (active.parent('.dropdown-menu').length) {
+ active = active
+ .closest('li.dropdown')
+ .addClass('active')
+ }
+
+ active.trigger('activate.bs.scrollspy')
+ }
+
+ ScrollSpy.prototype.clear = function () {
+ $(this.selector)
+ .parentsUntil(this.options.target, '.active')
+ .removeClass('active')
+ }
+
+
+ // SCROLLSPY PLUGIN DEFINITION
+ // ===========================
+
+ function Plugin(option) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.scrollspy')
+ var options = typeof option == 'object' && option
+
+ if (!data) $this.data('bs.scrollspy', (data = new ScrollSpy(this, options)))
+ if (typeof option == 'string') data[option]()
+ })
+ }
+
+ var old = $.fn.scrollspy
+
+ $.fn.scrollspy = Plugin
+ $.fn.scrollspy.Constructor = ScrollSpy
+
+
+ // SCROLLSPY NO CONFLICT
+ // =====================
+
+ $.fn.scrollspy.noConflict = function () {
+ $.fn.scrollspy = old
+ return this
+ }
+
+
+ // SCROLLSPY DATA-API
+ // ==================
+
+ $(window).on('load.bs.scrollspy.data-api', function () {
+ $('[data-spy="scroll"]').each(function () {
+ var $spy = $(this)
+ Plugin.call($spy, $spy.data())
+ })
+ })
+
+}(jQuery);
--- /dev/null
+/*!
+ * Generated using the Bootstrap Customizer (https://getbootstrap.com/docs/3.4/customize/)
+ */
+
+/*!
+ * Bootstrap v3.4.1 (https://getbootstrap.com/)
+ * Copyright 2011-2022 Twitter, Inc.
+ * Licensed under the MIT license
+ */
+
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(t){"use strict";var e=t.fn.jquery.split(" ")[0].split(".");if(e[0]<2&&e[1]<9||1==e[0]&&9==e[1]&&e[2]<1||e[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(t){"use strict";function e(e){return this.each(function(){var i=t(this),a=i.data("bs.tab");a||i.data("bs.tab",a=new s(this)),"string"==typeof e&&a[e]()})}var s=function(e){this.element=t(e)};s.VERSION="3.4.1",s.TRANSITION_DURATION=150,s.prototype.show=function(){var e=this.element,s=e.closest("ul:not(.dropdown-menu)"),i=e.data("target");if(i||(i=e.attr("href"),i=i&&i.replace(/.*(?=#[^\s]*$)/,"")),!e.parent("li").hasClass("active")){var a=s.find(".active:last a"),r=t.Event("hide.bs.tab",{relatedTarget:e[0]}),o=t.Event("show.bs.tab",{relatedTarget:a[0]});if(a.trigger(r),e.trigger(o),!o.isDefaultPrevented()&&!r.isDefaultPrevented()){var n=t(document).find(i);this.activate(e.closest("li"),s),this.activate(n,n.parent(),function(){a.trigger({type:"hidden.bs.tab",relatedTarget:e[0]}),e.trigger({type:"shown.bs.tab",relatedTarget:a[0]})})}}},s.prototype.activate=function(e,i,a){function r(){o.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),e.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),n?(e[0].offsetWidth,e.addClass("in")):e.removeClass("fade"),e.parent(".dropdown-menu").length&&e.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),a&&a()}var o=i.find("> .active"),n=a&&t.support.transition&&(o.length&&o.hasClass("fade")||!!i.find("> .fade").length);o.length&&n?o.one("bsTransitionEnd",r).emulateTransitionEnd(s.TRANSITION_DURATION):r(),o.removeClass("in")};var i=t.fn.tab;t.fn.tab=e,t.fn.tab.Constructor=s,t.fn.tab.noConflict=function(){return t.fn.tab=i,this};var a=function(s){s.preventDefault(),e.call(t(this),"show")};t(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',a).on("click.bs.tab.data-api",'[data-toggle="pill"]',a)}(jQuery),+function(t){"use strict";function e(s,i){this.$body=t(document.body),this.$scrollElement=t(t(s).is(document.body)?window:s),this.options=t.extend({},e.DEFAULTS,i),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",t.proxy(this.process,this)),this.refresh(),this.process()}function s(s){return this.each(function(){var i=t(this),a=i.data("bs.scrollspy"),r="object"==typeof s&&s;a||i.data("bs.scrollspy",a=new e(this,r)),"string"==typeof s&&a[s]()})}e.VERSION="3.4.1",e.DEFAULTS={offset:10},e.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},e.prototype.refresh=function(){var e=this,s="offset",i=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),t.isWindow(this.$scrollElement[0])||(s="position",i=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var e=t(this),a=e.data("target")||e.attr("href"),r=/^#./.test(a)&&t(a);return r&&r.length&&r.is(":visible")&&[[r[s]().top+i,a]]||null}).sort(function(t,e){return t[0]-e[0]}).each(function(){e.offsets.push(this[0]),e.targets.push(this[1])})},e.prototype.process=function(){var t,e=this.$scrollElement.scrollTop()+this.options.offset,s=this.getScrollHeight(),i=this.options.offset+s-this.$scrollElement.height(),a=this.offsets,r=this.targets,o=this.activeTarget;if(this.scrollHeight!=s&&this.refresh(),e>=i)return o!=(t=r[r.length-1])&&this.activate(t);if(o&&e<a[0])return this.activeTarget=null,this.clear();for(t=a.length;t--;)o!=r[t]&&e>=a[t]&&(void 0===a[t+1]||e<a[t+1])&&this.activate(r[t])},e.prototype.activate=function(e){this.activeTarget=e,this.clear();var s=this.selector+'[data-target="'+e+'"],'+this.selector+'[href="'+e+'"]',i=t(s).parents("li").addClass("active");i.parent(".dropdown-menu").length&&(i=i.closest("li.dropdown").addClass("active")),i.trigger("activate.bs.scrollspy")},e.prototype.clear=function(){t(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var i=t.fn.scrollspy;t.fn.scrollspy=s,t.fn.scrollspy.Constructor=e,t.fn.scrollspy.noConflict=function(){return t.fn.scrollspy=i,this},t(window).on("load.bs.scrollspy.data-api",function(){t('[data-spy="scroll"]').each(function(){var e=t(this);s.call(e,e.data())})})}(jQuery);
\ No newline at end of file
--- /dev/null
+---
+---
+(function (jtd, undefined) {
+
+// Event handling
+
+jtd.addEvent = function(el, type, handler) {
+ if (el.attachEvent) el.attachEvent('on'+type, handler); else el.addEventListener(type, handler);
+}
+jtd.removeEvent = function(el, type, handler) {
+ if (el.detachEvent) el.detachEvent('on'+type, handler); else el.removeEventListener(type, handler);
+}
+jtd.onReady = function(ready) {
+ // in case the document is already rendered
+ if (document.readyState!='loading') ready();
+ // modern browsers
+ else if (document.addEventListener) document.addEventListener('DOMContentLoaded', ready);
+ // IE <= 8
+ else document.attachEvent('onreadystatechange', function(){
+ if (document.readyState=='complete') ready();
+ });
+}
+
+// Show/hide mobile menu
+
+function initNav() {
+ jtd.addEvent(document, 'click', function(e){
+ var target = e.target;
+ while (target && !(target.classList && target.classList.contains('nav-list-expander'))) {
+ target = target.parentNode;
+ }
+ if (target) {
+ e.preventDefault();
+ target.parentNode.classList.toggle('active');
+ }
+ });
+
+ const siteNav = document.getElementById('site-nav');
+ const mainHeader = document.getElementById('main-header');
+ const menuButton = document.getElementById('menu-button');
+
+ jtd.addEvent(menuButton, 'click', function(e){
+ e.preventDefault();
+
+ if (menuButton.classList.toggle('nav-open')) {
+ siteNav.classList.add('nav-open');
+ mainHeader.classList.add('nav-open');
+ } else {
+ siteNav.classList.remove('nav-open');
+ mainHeader.classList.remove('nav-open');
+ }
+ });
+
+ {%- if site.search_enabled != false and site.search.button %}
+ const searchInput = document.getElementById('search-input');
+ const searchButton = document.getElementById('search-button');
+
+ jtd.addEvent(searchButton, 'click', function(e){
+ e.preventDefault();
+
+ mainHeader.classList.add('nav-open');
+ searchInput.focus();
+ });
+ {%- endif %}
+}
+
+{%- if site.search_enabled != false %}
+// Site search
+
+function initSearch() {
+ var request = new XMLHttpRequest();
+ request.open('GET', '{{ "assets/js/search-data.json" | relative_url }}', true);
+
+ request.onload = function(){
+ if (request.status >= 200 && request.status < 400) {
+ var docs = JSON.parse(request.responseText);
+
+ lunr.tokenizer.separator = {{ site.search.tokenizer_separator | default: site.search_tokenizer_separator | default: "/[\s\-/]+/" }}
+
+ var index = lunr(function(){
+ this.ref('id');
+ this.field('title', { boost: 200 });
+ this.field('content', { boost: 2 });
+ {%- if site.search.rel_url != false %}
+ this.field('relUrl');
+ {%- endif %}
+ this.metadataWhitelist = ['position']
+
+ for (var i in docs) {
+ this.add({
+ id: i,
+ title: docs[i].title,
+ content: docs[i].content,
+ {%- if site.search.rel_url != false %}
+ relUrl: docs[i].relUrl
+ {%- endif %}
+ });
+ }
+ });
+
+ searchLoaded(index, docs);
+ } else {
+ console.log('Error loading ajax request. Request status:' + request.status);
+ }
+ };
+
+ request.onerror = function(){
+ console.log('There was a connection error');
+ };
+
+ request.send();
+}
+
+function searchLoaded(index, docs) {
+ var index = index;
+ var docs = docs;
+ var searchInput = document.getElementById('search-input');
+ var searchResults = document.getElementById('search-results');
+ var mainHeader = document.getElementById('main-header');
+ var currentInput;
+ var currentSearchIndex = 0;
+
+ function showSearch() {
+ document.documentElement.classList.add('search-active');
+ }
+
+ function hideSearch() {
+ document.documentElement.classList.remove('search-active');
+ }
+
+ function update() {
+ currentSearchIndex++;
+
+ var input = searchInput.value;
+ if (input === '') {
+ hideSearch();
+ } else {
+ showSearch();
+ // scroll search input into view, workaround for iOS Safari
+ window.scroll(0, -1);
+ setTimeout(function(){ window.scroll(0, 0); }, 0);
+ }
+ if (input === currentInput) {
+ return;
+ }
+ currentInput = input;
+ searchResults.innerHTML = '';
+ if (input === '') {
+ return;
+ }
+
+ var results = index.query(function (query) {
+ var tokens = lunr.tokenizer(input)
+ query.term(tokens, {
+ boost: 10
+ });
+ query.term(tokens, {
+ wildcard: lunr.Query.wildcard.TRAILING
+ });
+ });
+
+ if ((results.length == 0) && (input.length > 2)) {
+ var tokens = lunr.tokenizer(input).filter(function(token, i) {
+ return token.str.length < 20;
+ })
+ if (tokens.length > 0) {
+ results = index.query(function (query) {
+ query.term(tokens, {
+ editDistance: Math.round(Math.sqrt(input.length / 2 - 1))
+ });
+ });
+ }
+ }
+
+ if (results.length == 0) {
+ var noResultsDiv = document.createElement('div');
+ noResultsDiv.classList.add('search-no-result');
+ noResultsDiv.innerText = 'No results found';
+ searchResults.appendChild(noResultsDiv);
+
+ } else {
+ var resultsList = document.createElement('ul');
+ resultsList.classList.add('search-results-list');
+ searchResults.appendChild(resultsList);
+
+ addResults(resultsList, results, 0, 10, 100, currentSearchIndex);
+ }
+
+ function addResults(resultsList, results, start, batchSize, batchMillis, searchIndex) {
+ if (searchIndex != currentSearchIndex) {
+ return;
+ }
+ for (var i = start; i < (start + batchSize); i++) {
+ if (i == results.length) {
+ return;
+ }
+ addResult(resultsList, results[i]);
+ }
+ setTimeout(function() {
+ addResults(resultsList, results, start + batchSize, batchSize, batchMillis, searchIndex);
+ }, batchMillis);
+ }
+
+ function addResult(resultsList, result) {
+ var doc = docs[result.ref];
+
+ var resultsListItem = document.createElement('li');
+ resultsListItem.classList.add('search-results-list-item');
+ resultsList.appendChild(resultsListItem);
+
+ var resultLink = document.createElement('a');
+ resultLink.classList.add('search-result');
+ resultLink.setAttribute('href', doc.url);
+ resultsListItem.appendChild(resultLink);
+
+ var resultTitle = document.createElement('div');
+ resultTitle.classList.add('search-result-title');
+ resultLink.appendChild(resultTitle);
+
+ var resultDoc = document.createElement('div');
+ resultDoc.classList.add('search-result-doc');
+ resultDoc.innerHTML = '<svg viewBox="0 0 24 24" class="search-result-icon"><use xlink:href="#svg-doc"></use></svg>';
+ resultTitle.appendChild(resultDoc);
+
+ var resultDocTitle = document.createElement('div');
+ resultDocTitle.classList.add('search-result-doc-title');
+ resultDocTitle.innerHTML = doc.doc;
+ resultDoc.appendChild(resultDocTitle);
+ var resultDocOrSection = resultDocTitle;
+
+ if (doc.doc != doc.title) {
+ resultDoc.classList.add('search-result-doc-parent');
+ var resultSection = document.createElement('div');
+ resultSection.classList.add('search-result-section');
+ resultSection.innerHTML = doc.title;
+ resultTitle.appendChild(resultSection);
+ resultDocOrSection = resultSection;
+ }
+
+ var metadata = result.matchData.metadata;
+ var titlePositions = [];
+ var contentPositions = [];
+ for (var j in metadata) {
+ var meta = metadata[j];
+ if (meta.title) {
+ var positions = meta.title.position;
+ for (var k in positions) {
+ titlePositions.push(positions[k]);
+ }
+ }
+ if (meta.content) {
+ var positions = meta.content.position;
+ for (var k in positions) {
+ var position = positions[k];
+ var previewStart = position[0];
+ var previewEnd = position[0] + position[1];
+ var ellipsesBefore = true;
+ var ellipsesAfter = true;
+ for (var k = 0; k < {{ site.search.preview_words_before | default: 5 }}; k++) {
+ var nextSpace = doc.content.lastIndexOf(' ', previewStart - 2);
+ var nextDot = doc.content.lastIndexOf('. ', previewStart - 2);
+ if ((nextDot >= 0) && (nextDot > nextSpace)) {
+ previewStart = nextDot + 1;
+ ellipsesBefore = false;
+ break;
+ }
+ if (nextSpace < 0) {
+ previewStart = 0;
+ ellipsesBefore = false;
+ break;
+ }
+ previewStart = nextSpace + 1;
+ }
+ for (var k = 0; k < {{ site.search.preview_words_after | default: 10 }}; k++) {
+ var nextSpace = doc.content.indexOf(' ', previewEnd + 1);
+ var nextDot = doc.content.indexOf('. ', previewEnd + 1);
+ if ((nextDot >= 0) && (nextDot < nextSpace)) {
+ previewEnd = nextDot;
+ ellipsesAfter = false;
+ break;
+ }
+ if (nextSpace < 0) {
+ previewEnd = doc.content.length;
+ ellipsesAfter = false;
+ break;
+ }
+ previewEnd = nextSpace;
+ }
+ contentPositions.push({
+ highlight: position,
+ previewStart: previewStart, previewEnd: previewEnd,
+ ellipsesBefore: ellipsesBefore, ellipsesAfter: ellipsesAfter
+ });
+ }
+ }
+ }
+
+ if (titlePositions.length > 0) {
+ titlePositions.sort(function(p1, p2){ return p1[0] - p2[0] });
+ resultDocOrSection.innerHTML = '';
+ addHighlightedText(resultDocOrSection, doc.title, 0, doc.title.length, titlePositions);
+ }
+
+ if (contentPositions.length > 0) {
+ contentPositions.sort(function(p1, p2){ return p1.highlight[0] - p2.highlight[0] });
+ var contentPosition = contentPositions[0];
+ var previewPosition = {
+ highlight: [contentPosition.highlight],
+ previewStart: contentPosition.previewStart, previewEnd: contentPosition.previewEnd,
+ ellipsesBefore: contentPosition.ellipsesBefore, ellipsesAfter: contentPosition.ellipsesAfter
+ };
+ var previewPositions = [previewPosition];
+ for (var j = 1; j < contentPositions.length; j++) {
+ contentPosition = contentPositions[j];
+ if (previewPosition.previewEnd < contentPosition.previewStart) {
+ previewPosition = {
+ highlight: [contentPosition.highlight],
+ previewStart: contentPosition.previewStart, previewEnd: contentPosition.previewEnd,
+ ellipsesBefore: contentPosition.ellipsesBefore, ellipsesAfter: contentPosition.ellipsesAfter
+ }
+ previewPositions.push(previewPosition);
+ } else {
+ previewPosition.highlight.push(contentPosition.highlight);
+ previewPosition.previewEnd = contentPosition.previewEnd;
+ previewPosition.ellipsesAfter = contentPosition.ellipsesAfter;
+ }
+ }
+
+ var resultPreviews = document.createElement('div');
+ resultPreviews.classList.add('search-result-previews');
+ resultLink.appendChild(resultPreviews);
+
+ var content = doc.content;
+ for (var j = 0; j < Math.min(previewPositions.length, {{ site.search.previews | default: 3 }}); j++) {
+ var position = previewPositions[j];
+
+ var resultPreview = document.createElement('div');
+ resultPreview.classList.add('search-result-preview');
+ resultPreviews.appendChild(resultPreview);
+
+ if (position.ellipsesBefore) {
+ resultPreview.appendChild(document.createTextNode('... '));
+ }
+ addHighlightedText(resultPreview, content, position.previewStart, position.previewEnd, position.highlight);
+ if (position.ellipsesAfter) {
+ resultPreview.appendChild(document.createTextNode(' ...'));
+ }
+ }
+ }
+
+ {%- if site.search.rel_url != false %}
+ var resultRelUrl = document.createElement('span');
+ resultRelUrl.classList.add('search-result-rel-url');
+ resultRelUrl.innerText = doc.relUrl;
+ resultTitle.appendChild(resultRelUrl);
+ {%- endif %}
+ }
+
+ function addHighlightedText(parent, text, start, end, positions) {
+ var index = start;
+ for (var i in positions) {
+ var position = positions[i];
+ var span = document.createElement('span');
+ span.innerHTML = text.substring(index, position[0]);
+ parent.appendChild(span);
+ index = position[0] + position[1];
+ var highlight = document.createElement('span');
+ highlight.classList.add('search-result-highlight');
+ highlight.innerHTML = text.substring(position[0], index);
+ parent.appendChild(highlight);
+ }
+ var span = document.createElement('span');
+ span.innerHTML = text.substring(index, end);
+ parent.appendChild(span);
+ }
+ }
+
+ jtd.addEvent(searchInput, 'focus', function(){
+ setTimeout(update, 0);
+ });
+
+ jtd.addEvent(searchInput, 'keyup', function(e){
+ switch (e.keyCode) {
+ case 27: // When esc key is pressed, hide the results and clear the field
+ searchInput.value = '';
+ break;
+ case 38: // arrow up
+ case 40: // arrow down
+ case 13: // enter
+ e.preventDefault();
+ return;
+ }
+ update();
+ });
+
+ jtd.addEvent(searchInput, 'keydown', function(e){
+ switch (e.keyCode) {
+ case 38: // arrow up
+ e.preventDefault();
+ var active = document.querySelector('.search-result.active');
+ if (active) {
+ active.classList.remove('active');
+ if (active.parentElement.previousSibling) {
+ var previous = active.parentElement.previousSibling.querySelector('.search-result');
+ previous.classList.add('active');
+ }
+ }
+ return;
+ case 40: // arrow down
+ e.preventDefault();
+ var active = document.querySelector('.search-result.active');
+ if (active) {
+ if (active.parentElement.nextSibling) {
+ var next = active.parentElement.nextSibling.querySelector('.search-result');
+ active.classList.remove('active');
+ next.classList.add('active');
+ }
+ } else {
+ var next = document.querySelector('.search-result');
+ if (next) {
+ next.classList.add('active');
+ }
+ }
+ return;
+ case 13: // enter
+ e.preventDefault();
+ var active = document.querySelector('.search-result.active');
+ if (active) {
+ active.click();
+ } else {
+ var first = document.querySelector('.search-result');
+ if (first) {
+ first.click();
+ }
+ }
+ return;
+ }
+ });
+
+ jtd.addEvent(document, 'click', function(e){
+ if (e.target != searchInput) {
+ hideSearch();
+ }
+ });
+}
+{%- endif %}
+
+// Switch theme
+
+jtd.getTheme = function() {
+ var cssFileHref = document.querySelector('[rel="stylesheet"]').getAttribute('href');
+ return cssFileHref.substring(cssFileHref.lastIndexOf('-') + 1, cssFileHref.length - 4);
+}
+
+jtd.setTheme = function(theme) {
+ var cssFile = document.querySelector('[rel="stylesheet"]');
+ cssFile.setAttribute('href', '{{ "assets/css/just-the-docs-" | relative_url }}' + theme + '.css');
+}
+
+// Scroll site-nav to ensure the link to the current page is visible
+
+function scrollNav() {
+ const href = document.location.pathname;
+ const siteNav = document.getElementById('site-nav');
+ const targetLink = siteNav.querySelector('a[href="' + href + '"], a[href="' + href + '/"]');
+ if(targetLink){
+ const rect = targetLink.getBoundingClientRect();
+ siteNav.scrollBy(0, rect.top - 3*rect.height);
+ }
+}
+
+// Document ready
+
+jtd.onReady(function(){
+ initNav();
+ {%- if site.search_enabled != false %}
+ initSearch();
+ {%- endif %}
+ scrollNav();
+});
+
+})(window.jtd = window.jtd || {});
+
+{% include js/custom.js %}
--- /dev/null
+/**
+ * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.6
+ * Copyright (C) 2019 Oliver Nightingale
+ * @license MIT
+ */
+!function(){var e=function(t){var r=new e.Builder;return r.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),r.searchPipeline.add(e.stemmer),t.call(r,r),r.build()};e.version="2.3.6",e.utils={},e.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),e.utils.asString=function(e){return void 0===e||null===e?"":e.toString()},e.utils.clone=function(e){if(null===e||void 0===e)return e;for(var t=Object.create(null),r=Object.keys(e),i=0;i<r.length;i++){var n=r[i],s=e[n];if(Array.isArray(s))t[n]=s.slice();else{if("string"!=typeof s&&"number"!=typeof s&&"boolean"!=typeof s)throw new TypeError("clone is not deep and does not support nested objects");t[n]=s}}return t},e.FieldRef=function(e,t,r){this.docRef=e,this.fieldName=t,this._stringValue=r},e.FieldRef.joiner="/",e.FieldRef.fromString=function(t){var r=t.indexOf(e.FieldRef.joiner);if(r===-1)throw"malformed field ref string";var i=t.slice(0,r),n=t.slice(r+1);return new e.FieldRef(n,i,t)},e.FieldRef.prototype.toString=function(){return void 0==this._stringValue&&(this._stringValue=this.fieldName+e.FieldRef.joiner+this.docRef),this._stringValue},e.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var t=0;t<this.length;t++)this.elements[e[t]]=!0}else this.length=0},e.Set.complete={intersect:function(e){return e},union:function(e){return e},contains:function(){return!0}},e.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},e.Set.prototype.contains=function(e){return!!this.elements[e]},e.Set.prototype.intersect=function(t){var r,i,n,s=[];if(t===e.Set.complete)return this;if(t===e.Set.empty)return t;this.length<t.length?(r=this,i=t):(r=t,i=this),n=Object.keys(r.elements);for(var o=0;o<n.length;o++){var a=n[o];a in i.elements&&s.push(a)}return new e.Set(s)},e.Set.prototype.union=function(t){return t===e.Set.complete?e.Set.complete:t===e.Set.empty?this:new e.Set(Object.keys(this.elements).concat(Object.keys(t.elements)))},e.idf=function(e,t){var r=0;for(var i in e)"_index"!=i&&(r+=Object.keys(e[i]).length);var n=(t-r+.5)/(r+.5);return Math.log(1+Math.abs(n))},e.Token=function(e,t){this.str=e||"",this.metadata=t||{}},e.Token.prototype.toString=function(){return this.str},e.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},e.Token.prototype.clone=function(t){return t=t||function(e){return e},new e.Token(t(this.str,this.metadata),this.metadata)},e.tokenizer=function(t,r){if(null==t||void 0==t)return[];if(Array.isArray(t))return t.map(function(t){return new e.Token(e.utils.asString(t).toLowerCase(),e.utils.clone(r))});for(var i=t.toString().trim().toLowerCase(),n=i.length,s=[],o=0,a=0;o<=n;o++){var u=i.charAt(o),l=o-a;if(u.match(e.tokenizer.separator)||o==n){if(l>0){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r<t;r++){for(var i=this._stack[r],n=[],s=0;s<e.length;s++){var o=i(e[s],s,e);if(void 0!==o&&""!==o)if(Array.isArray(o))for(var a=0;a<o.length;a++)n.push(o[a]);else n.push(o)}e=n}return e},e.Pipeline.prototype.runString=function(t,r){var i=new e.Token(t,r);return this.run([i]).map(function(e){return e.toString()})},e.Pipeline.prototype.reset=function(){this._stack=[]},e.Pipeline.prototype.toJSON=function(){return this._stack.map(function(t){return e.Pipeline.warnIfFunctionNotRegistered(t),t.label})},e.Vector=function(e){this._magnitude=0,this.elements=e||[]},e.Vector.prototype.positionForIndex=function(e){if(0==this.elements.length)return 0;for(var t=0,r=this.elements.length/2,i=r-t,n=Math.floor(i/2),s=this.elements[2*n];i>1&&(s<e&&(t=n),s>e&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:s<e?2*(n+1):void 0},e.Vector.prototype.insert=function(e,t){this.upsert(e,t,function(){throw"duplicate index"})},e.Vector.prototype.upsert=function(e,t,r){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=r(this.elements[i+1],t):this.elements.splice(i,0,e,t)},e.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,t=this.elements.length,r=1;r<t;r+=2){var i=this.elements[r];e+=i*i}return this._magnitude=Math.sqrt(e)},e.Vector.prototype.dot=function(e){for(var t=0,r=this.elements,i=e.elements,n=r.length,s=i.length,o=0,a=0,u=0,l=0;u<n&&l<s;)o=r[u],a=i[l],o<a?u+=2:o>a?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t<this.elements.length;t+=2,r++)e[r]=this.elements[t];return e},e.Vector.prototype.toJSON=function(){return this.elements},e.stemmer=function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},t={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},r="[^aeiou]",i="[aeiouy]",n=r+"[^aeiouy]*",s=i+"[aeiou]*",o="^("+n+")?"+s+n,a="^("+n+")?"+s+n+"("+s+")?$",u="^("+n+")?"+s+n+s+n,l="^("+n+")?"+i,c=new RegExp(o),h=new RegExp(u),d=new RegExp(a),f=new RegExp(l),p=/^(.+?)(ss|i)es$/,y=/^(.+?)([^s])s$/,m=/^(.+?)eed$/,v=/^(.+?)(ed|ing)$/,g=/.$/,x=/(at|bl|iz)$/,w=new RegExp("([^aeiouylsz])\\1$"),Q=new RegExp("^"+n+i+"[^aeiouwxy]$"),k=/^(.+?[^aeiou])y$/,S=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,E=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,L=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,b=/^(.+?)(s|t)(ion)$/,P=/^(.+?)e$/,T=/ll$/,O=new RegExp("^"+n+i+"[^aeiouwxy]$"),I=function(r){var i,n,s,o,a,u,l;if(r.length<3)return r;if(s=r.substr(0,1),"y"==s&&(r=s.toUpperCase()+r.substr(1)),o=p,a=y,o.test(r)?r=r.replace(o,"$1$2"):a.test(r)&&(r=r.replace(a,"$1$2")),o=m,a=v,o.test(r)){var I=o.exec(r);o=c,o.test(I[1])&&(o=g,r=r.replace(o,""))}else if(a.test(r)){var I=a.exec(r);i=I[1],a=f,a.test(i)&&(r=i,a=x,u=w,l=Q,a.test(r)?r+="e":u.test(r)?(o=g,r=r.replace(o,"")):l.test(r)&&(r+="e"))}if(o=k,o.test(r)){var I=o.exec(r);i=I[1],r=i+"i"}if(o=S,o.test(r)){var I=o.exec(r);i=I[1],n=I[2],o=c,o.test(i)&&(r=i+e[n])}if(o=E,o.test(r)){var I=o.exec(r);i=I[1],n=I[2],o=c,o.test(i)&&(r=i+t[n])}if(o=L,a=b,o.test(r)){var I=o.exec(r);i=I[1],o=h,o.test(i)&&(r=i)}else if(a.test(r)){var I=a.exec(r);i=I[1]+I[2],a=h,a.test(i)&&(r=i)}if(o=P,o.test(r)){var I=o.exec(r);i=I[1],o=h,a=d,u=O,(o.test(i)||a.test(i)&&!u.test(i))&&(r=i)}return o=T,a=h,o.test(r)&&a.test(r)&&(o=g,r=r.replace(o,"")),"y"==s&&(r=s.toLowerCase()+r.substr(1)),r};return function(e){return e.update(I)}}(),e.Pipeline.registerFunction(e.stemmer,"stemmer"),e.generateStopWordFilter=function(e){var t=e.reduce(function(e,t){return e[t]=t,e},{});return function(e){if(e&&t[e.toString()]!==e.toString())return e}},e.stopWordFilter=e.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","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","where","which","while","who","whom","why","will","with","would","yet","you","your"]),e.Pipeline.registerFunction(e.stopWordFilter,"stopWordFilter"),e.trimmer=function(e){return e.update(function(e){return e.replace(/^\W+/,"").replace(/\W+$/,"")})},e.Pipeline.registerFunction(e.trimmer,"trimmer"),e.TokenSet=function(){this["final"]=!1,this.edges={},this.id=e.TokenSet._nextId,e.TokenSet._nextId+=1},e.TokenSet._nextId=1,e.TokenSet.fromArray=function(t){for(var r=new e.TokenSet.Builder,i=0,n=t.length;i<n;i++)r.insert(t[i]);return r.finish(),r.root},e.TokenSet.fromClause=function(t){return"editDistance"in t?e.TokenSet.fromFuzzyString(t.term,t.editDistance):e.TokenSet.fromString(t.term)},e.TokenSet.fromFuzzyString=function(t,r){for(var i=new e.TokenSet,n=[{node:i,editsRemaining:r,str:t}];n.length;){var s=n.pop();if(s.str.length>0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n<s;n++){var o=t[n],a=n==s-1;if("*"==o)r.edges[o]=r,r["final"]=a;else{var u=new e.TokenSet;u["final"]=a,r.edges[o]=u,r=u}}return i},e.TokenSet.prototype.toArray=function(){for(var e=[],t=[{prefix:"",node:this}];t.length;){var r=t.pop(),i=Object.keys(r.node.edges),n=i.length;r.node["final"]&&(r.prefix.charAt(0),e.push(r.prefix));for(var s=0;s<n;s++){var o=i[s];t.push({prefix:r.prefix.concat(o),node:r.node.edges[o]})}}return e},e.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this["final"]?"1":"0",t=Object.keys(this.edges).sort(),r=t.length,i=0;i<r;i++){var n=t[i],s=this.edges[n];e=e+n+s.id}return e},e.TokenSet.prototype.intersect=function(t){for(var r=new e.TokenSet,i=void 0,n=[{qNode:t,output:r,node:this}];n.length;){i=n.pop();for(var s=Object.keys(i.qNode.edges),o=s.length,a=Object.keys(i.node.edges),u=a.length,l=0;l<o;l++)for(var c=s[l],h=0;h<u;h++){var d=a[h];if(d==c||"*"==c){var f=i.node.edges[d],p=i.qNode.edges[c],y=f["final"]&&p["final"],m=void 0;d in i.output.edges?(m=i.output.edges[d],m["final"]=m["final"]||y):(m=new e.TokenSet,m["final"]=y,i.output.edges[d]=m),n.push({qNode:p,output:m,node:f})}}}return r},e.TokenSet.Builder=function(){this.previousWord="",this.root=new e.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},e.TokenSet.Builder.prototype.insert=function(t){var r,i=0;if(t<this.previousWord)throw new Error("Out of order word insertion");for(var n=0;n<t.length&&n<this.previousWord.length&&t[n]==this.previousWord[n];n++)i++;this.minimize(i),r=0==this.uncheckedNodes.length?this.root:this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var n=i;n<t.length;n++){var s=new e.TokenSet,o=t[n];r.edges[o]=s,this.uncheckedNodes.push({parent:r,"char":o,child:s}),r=s}r["final"]=!0,this.previousWord=t},e.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},e.TokenSet.Builder.prototype.minimize=function(e){for(var t=this.uncheckedNodes.length-1;t>=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u<this.fields.length;u++)n[this.fields[u]]=new e.Vector;t.call(r,r);for(var u=0;u<r.clauses.length;u++){var l=r.clauses[u],c=null,h=e.Set.complete;c=l.usePipeline?this.pipeline.runString(l.term,{fields:l.fields}):[l.term];for(var d=0;d<c.length;d++){var f=c[d];l.term=f;var p=e.TokenSet.fromClause(l),y=this.tokenSet.intersect(p).toArray();if(0===y.length&&l.presence===e.Query.presence.REQUIRED){for(var m=0;m<l.fields.length;m++){var v=l.fields[m];o[v]=e.Set.empty}break}for(var g=0;g<y.length;g++)for(var x=y[g],w=this.invertedIndex[x],Q=w._index,m=0;m<l.fields.length;m++){var v=l.fields[m],k=w[v],S=Object.keys(k),E=x+"/"+v,L=new e.Set(S);if(l.presence==e.Query.presence.REQUIRED&&(h=h.union(L),void 0===o[v]&&(o[v]=e.Set.complete)),l.presence!=e.Query.presence.PROHIBITED){if(n[v].upsert(Q,l.boost,function(e,t){return e+t}),!s[E]){for(var b=0;b<S.length;b++){var P,T=S[b],O=new e.FieldRef(T,v),I=k[T];void 0===(P=i[O])?i[O]=new e.MatchData(x,v,I):P.add(x,v,I)}s[E]=!0}}else void 0===a[v]&&(a[v]=e.Set.empty),a[v]=a[v].union(L)}}if(l.presence===e.Query.presence.REQUIRED)for(var m=0;m<l.fields.length;m++){var v=l.fields[m];o[v]=o[v].intersect(h)}}for(var R=e.Set.complete,F=e.Set.empty,u=0;u<this.fields.length;u++){var v=this.fields[u];o[v]&&(R=R.intersect(o[v])),a[v]&&(F=F.union(a[v]))}var C=Object.keys(i),N=[],_=Object.create(null);if(r.isNegated()){C=Object.keys(this.fieldVectors);for(var u=0;u<C.length;u++){var O=C[u],j=e.FieldRef.fromString(O);i[O]=new e.MatchData}}for(var u=0;u<C.length;u++){var j=e.FieldRef.fromString(C[u]),D=j.docRef;if(R.contains(D)&&!F.contains(D)){var A,B=this.fieldVectors[j],V=n[j.fieldName].similarity(B);if(void 0!==(A=_[D]))A.score+=V,A.matchData.combine(i[j]);else{var z={ref:D,score:V,matchData:i[j]};_[D]=z,N.push(z)}}}return N.sort(function(e,t){return t.score-e.score})},e.Index.prototype.toJSON=function(){var t=Object.keys(this.invertedIndex).sort().map(function(e){return[e,this.invertedIndex[e]]},this),r=Object.keys(this.fieldVectors).map(function(e){return[e,this.fieldVectors[e].toJSON()]},this);return{version:e.version,fields:this.fields,fieldVectors:r,invertedIndex:t,pipeline:this.pipeline.toJSON()}},e.Index.load=function(t){var r={},i={},n=t.fieldVectors,s=Object.create(null),o=t.invertedIndex,a=new e.TokenSet.Builder,u=e.Pipeline.load(t.pipeline);t.version!=e.version&&e.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+e.version+"' does not match serialized index '"+t.version+"'");for(var l=0;l<n.length;l++){var c=n[l],h=c[0],d=c[1];i[h]=new e.Vector(d)}for(var l=0;l<o.length;l++){var c=o[l],f=c[0],p=c[1];a.insert(f),s[f]=p}return a.finish(),r.fields=t.fields,r.fieldVectors=i,r.invertedIndex=s,r.tokenSet=a.root,r.pipeline=u,new e.Index(r)},e.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=e.tokenizer,this.pipeline=new e.Pipeline,this.searchPipeline=new e.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},e.Builder.prototype.ref=function(e){this._ref=e},e.Builder.prototype.field=function(e,t){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=t||{}},e.Builder.prototype.b=function(e){e<0?this._b=0:e>1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s<n.length;s++){var o=n[s],a=this._fields[o].extractor,u=a?a(t):t[o],l=this.tokenizer(u,{fields:[o]}),c=this.pipeline.run(l),h=new e.FieldRef(i,o),d=Object.create(null);this.fieldTermFrequencies[h]=d,this.fieldLengths[h]=0,this.fieldLengths[h]+=c.length;for(var f=0;f<c.length;f++){var p=c[f];if(void 0==d[p]&&(d[p]=0),d[p]+=1,void 0==this.invertedIndex[p]){var y=Object.create(null);y._index=this.termIndex,this.termIndex+=1;for(var m=0;m<n.length;m++)y[n[m]]=Object.create(null);this.invertedIndex[p]=y}void 0==this.invertedIndex[p][o][i]&&(this.invertedIndex[p][o][i]=Object.create(null));for(var v=0;v<this.metadataWhitelist.length;v++){var g=this.metadataWhitelist[v],x=p.metadata[g];void 0==this.invertedIndex[p][o][i][g]&&(this.invertedIndex[p][o][i][g]=[]),this.invertedIndex[p][o][i][g].push(x)}}}},e.Builder.prototype.calculateAverageFieldLengths=function(){for(var t=Object.keys(this.fieldLengths),r=t.length,i={},n={},s=0;s<r;s++){var o=e.FieldRef.fromString(t[s]),a=o.fieldName;n[a]||(n[a]=0),n[a]+=1,i[a]||(i[a]=0),i[a]+=this.fieldLengths[o]}for(var u=Object.keys(this._fields),s=0;s<u.length;s++){var l=u[s];i[l]=i[l]/n[l]}this.averageFieldLength=i},e.Builder.prototype.createFieldVectors=function(){for(var t={},r=Object.keys(this.fieldTermFrequencies),i=r.length,n=Object.create(null),s=0;s<i;s++){for(var o=e.FieldRef.fromString(r[s]),a=o.fieldName,u=this.fieldLengths[o],l=new e.Vector,c=this.fieldTermFrequencies[o],h=Object.keys(c),d=h.length,f=this._fields[a].boost||1,p=this._documents[o.docRef].boost||1,y=0;y<d;y++){var m,v,g,x=h[y],w=c[x],Q=this.invertedIndex[x]._index;void 0===n[x]?(m=e.idf(this.invertedIndex[x],this.documentCount),n[x]=m):m=n[x],v=m*((this._k1+1)*w)/(this._k1*(1-this._b+this._b*(u/this.averageFieldLength[a]))+w),v*=f,v*=p,g=Math.round(1e3*v)/1e3,l.insert(Q,g)}t[o]=l}this.fieldVectors=t},e.Builder.prototype.createTokenSet=function(){this.tokenSet=e.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},e.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new e.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},e.Builder.prototype.use=function(e){var t=Array.prototype.slice.call(arguments,1);t.unshift(this),e.apply(this,t)},e.MatchData=function(e,t,r){for(var i=Object.create(null),n=Object.keys(r||{}),s=0;s<n.length;s++){var o=n[s];i[o]=r[o].slice()}this.metadata=Object.create(null),void 0!==e&&(this.metadata[e]=Object.create(null),this.metadata[e][t]=i)},e.MatchData.prototype.combine=function(e){for(var t=Object.keys(e.metadata),r=0;r<t.length;r++){var i=t[r],n=Object.keys(e.metadata[i]);void 0==this.metadata[i]&&(this.metadata[i]=Object.create(null));for(var s=0;s<n.length;s++){var o=n[s],a=Object.keys(e.metadata[i][o]);void 0==this.metadata[i][o]&&(this.metadata[i][o]=Object.create(null));for(var u=0;u<a.length;u++){var l=a[u];void 0==this.metadata[i][o][l]?this.metadata[i][o][l]=e.metadata[i][o][l]:this.metadata[i][o][l]=this.metadata[i][o][l].concat(e.metadata[i][o][l])}}}},e.MatchData.prototype.add=function(e,t,r){if(!(e in this.metadata))return this.metadata[e]=Object.create(null),void(this.metadata[e][t]=r);if(!(t in this.metadata[e]))return void(this.metadata[e][t]=r);for(var i=Object.keys(r),n=0;n<i.length;n++){var s=i[n];s in this.metadata[e][t]?this.metadata[e][t][s]=this.metadata[e][t][s].concat(r[s]):this.metadata[e][t][s]=r[s]}},e.Query=function(e){this.clauses=[],this.allFields=e},e.Query.wildcard=new String("*"),e.Query.wildcard.NONE=0,e.Query.wildcard.LEADING=1,e.Query.wildcard.TRAILING=2,e.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},e.Query.prototype.clause=function(t){return"fields"in t||(t.fields=this.allFields),"boost"in t||(t.boost=1),"usePipeline"in t||(t.usePipeline=!0),"wildcard"in t||(t.wildcard=e.Query.wildcard.NONE),t.wildcard&e.Query.wildcard.LEADING&&t.term.charAt(0)!=e.Query.wildcard&&(t.term="*"+t.term),t.wildcard&e.Query.wildcard.TRAILING&&t.term.slice(-1)!=e.Query.wildcard&&(t.term=""+t.term+"*"),"presence"in t||(t.presence=e.Query.presence.OPTIONAL),this.clauses.push(t),this},e.Query.prototype.isNegated=function(){for(var t=0;t<this.clauses.length;t++)if(this.clauses[t].presence!=e.Query.presence.PROHIBITED)return!1;return!0},e.Query.prototype.term=function(t,r){if(Array.isArray(t))return t.forEach(function(t){this.term(t,e.utils.clone(r))},this),this;var i=r||{};return i.term=t.toString(),this.clause(i),this},e.QueryParseError=function(e,t,r){this.name="QueryParseError",this.message=e,this.start=t,this.end=r},e.QueryParseError.prototype=new Error,e.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},e.QueryLexer.prototype.run=function(){for(var t=e.QueryLexer.lexText;t;)t=t(this)},e.QueryLexer.prototype.sliceString=function(){for(var e=[],t=this.start,r=this.pos,i=0;i<this.escapeCharPositions.length;i++)r=this.escapeCharPositions[i],e.push(this.str.slice(t,r)),t=r+1;return e.push(this.str.slice(t,this.pos)),this.escapeCharPositions.length=0,e.join("")},e.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},e.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},e.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos<this.length},e.QueryLexer.EOS="EOS",e.QueryLexer.FIELD="FIELD",e.QueryLexer.TERM="TERM",e.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",e.QueryLexer.BOOST="BOOST",e.QueryLexer.PRESENCE="PRESENCE",e.QueryLexer.lexField=function(t){return t.backup(),t.emit(e.QueryLexer.FIELD),t.ignore(),e.QueryLexer.lexText},e.QueryLexer.lexTerm=function(t){if(t.width()>1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}();
--- /dev/null
+---
+permalink: /assets/js/search-data.json
+---
+{
+{%- assign i = 0 -%}
+{%- assign pages_array = "" | split: "" -%}
+{%- assign pages_array = pages_array | push: site.html_pages -%}
+{%- if site.just_the_docs.collections -%}
+ {%- for collection_entry in site.just_the_docs.collections -%}
+ {%- assign collection_key = collection_entry[0] -%}
+ {%- assign collection_value = collection_entry[1] -%}
+ {%- assign collection = site[collection_key] -%}
+ {%- if collection_value.search_exclude != true -%}
+ {%- assign pages_array = pages_array | push: collection -%}
+ {%- endif -%}
+ {%- endfor -%}
+{%- endif -%}
+{%- for pages in pages_array -%}
+ {%- for page in pages -%}
+ {%- if page.title and page.search_exclude != true -%}
+ {%- assign page_content = page.content -%}
+ {%- assign heading_level = site.search.heading_level | default: 2 -%}
+ {%- for j in (2..heading_level) -%}
+ {%- assign tag = '<h' | append: j -%}
+ {%- assign closing_tag = '</h' | append: j -%}
+ {%- assign page_content = page_content | replace: tag, '<h1' | replace: closing_tag, '</h1' -%}
+ {%- endfor -%}
+ {%- assign parts = page_content | split: '<h1' -%}
+ {%- assign title_found = false -%}
+ {%- for part in parts offset: 1 -%}
+ {%- assign titleAndContent = part | split: '</h1>' -%}
+ {%- assign title = titleAndContent[0] | replace_first: '>', '<h1>' | split: '<h1>' -%}
+ {%- assign title = title[1] | strip_html -%}
+ {%- assign content = titleAndContent[1] -%}
+ {%- assign url = page.url -%}
+ {%- if title == page.title and parts[0] == '' -%}
+ {%- assign title_found = true -%}
+ {%- else -%}
+ {%- assign id = titleAndContent[0] -%}
+ {%- assign id = id | split: 'id="' -%}
+ {%- if id.size == 2 -%}
+ {%- assign id = id[1] -%}
+ {%- assign id = id | split: '"' -%}
+ {%- assign id = id[0] -%}
+ {%- capture url -%}{{ url | append: '#' | append: id }}{%- endcapture -%}
+ {%- endif -%}
+ {%- endif -%}
+ {%- unless i == 0 -%},{%- endunless -%}
+ "{{ i }}": {
+ "doc": {{ page.title | jsonify }},
+ "title": {{ title | jsonify }},
+ "content": {{ content | replace: '</h', ' . </h' | replace: '<hr', ' . <hr' | replace: '</p', ' . </p' | replace: '<ul', ' . <ul' | replace: '</ul', ' . </ul' | replace: '<ol', ' . <ol' | replace: '</ol', ' . </ol' | replace: '</tr', ' . </tr' | replace: '<li', ' | <li' | replace: '</li', ' | </li' | replace: '</td', ' | </td' | replace: '<td', ' | <td' | replace: '</th', ' | </th' | replace: '<th', ' | <th' | strip_html | remove: 'Table of contents' | normalize_whitespace | replace: '. . .', '.' | replace: '. .', '.' | replace: '| |', '|' | append: ' ' | jsonify }},
+ "url": "{{ url | relative_url }}",
+ "relUrl": "{{ url }}"
+ }
+ {%- assign i = i | plus: 1 -%}
+ {%- endfor -%}
+ {%- unless title_found -%}
+ {%- unless i == 0 -%},{%- endunless -%}
+ "{{ i }}": {
+ "doc": {{ page.title | jsonify }},
+ "title": {{ page.title | jsonify }},
+ "content": {{ parts[0] | replace: '</h', ' . </h' | replace: '<hr', ' . <hr' | replace: '</p', ' . </p' | replace: '<ul', ' . <ul' | replace: '</ul', ' . </ul' | replace: '<ol', ' . <ol' | replace: '</ol', ' . </ol' | replace: '</tr', ' . </tr' | replace: '<li', ' | <li' | replace: '</li', ' | </li' | replace: '</td', ' | </td' | replace: '<td', ' | <td' | replace: '</th', ' | </th' | replace: '<th', ' | <th' | strip_html | remove: 'Table of contents' | normalize_whitespace | replace: '. . .', '.' | replace: '. .', '.' | replace: '| |', '|' | append: ' ' | jsonify }},
+ "url": "{{ page.url | relative_url }}",
+ "relUrl": "{{ page.url }}"
+ }
+ {%- assign i = i | plus: 1 -%}
+ {%- endunless -%}
+ {%- endif -%}
+ {%- endfor -%}
+{%- endfor %}
+}
--- /dev/null
+#!/usr/bin/env ruby
+
+gem_dir = File.expand_path("..",File.dirname(__FILE__))
+$LOAD_PATH.unshift gem_dir # Look in gem directory for resources first.
+exec_type = ARGV[0]
+
+if exec_type == 'rake' then
+ require 'rake'
+ require 'pp'
+ pwd=Dir.pwd
+ Dir.chdir(gem_dir) # We'll load rakefile from the gem's dir.
+ Rake.application.init
+ Rake.application.load_rakefile
+ Dir.chdir(pwd) # Revert to original pwd for any path args passed to task.
+ Rake.application.invoke_task(ARGV[1])
+end
--- /dev/null
+version: "3.5"
+
+services:
+ jekyll:
+ build:
+ context: ./
+ ports:
+ - 4000:4000
+ volumes:
+ - .:/usr/src/app
+ stdin_open: true
+ tty: true
+ command: bundle exec jekyll serve -H 0.0.0.0 -t
+
--- /dev/null
+---
+layout: default
+title: Application Control
+has_children: true
+permalink: /docs/commands/application/
+parent: Commands
+---
+# Application Control
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Close App
+parent: Application Control
+grand_parent: Commands
+nav_order: 5
+---
+# Close App
+Close application
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.closeApp(ReqCloseApp(packageName='packageName'))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.closeApp({ packageName : 'EFL-Border-Sample' }, (err, response) => {
+ if (err) console.log(err);
+ else console.log(response);
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ closeApp
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqCloseApp{
+ string packageName = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspCloseApp{
+ RspStatus status = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Get Active App Toolkit Name
+parent: Application Control
+grand_parent: Commands
+nav_order: 7
+---
+# Get Active App Tookit Name
+Get the toolkit name of active application
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.getActiveAppToolkitName(ReqGetActiveAppToolkitName())
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.getActiveAppToolkitName({}, (err, response) => {
+ if (err) console.log(err);
+ else console.log(response);
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ getActiveToolkitName
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqGetActiveAppToolkitName {
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspGetActiveAppToolkitName {
+ RspStatus status = 1;
+ string toolkitName = 2;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Get App Info
+parent: Application Control
+grand_parent: Commands
+nav_order: 6
+---
+# Get App Info
+Get application info
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.getAppInfo(ReqGetAppInfo(packageName='packageName'))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.getAppInfo({ packageName : 'packageName' }, (err, response) => {
+ if (err) console.log(err);
+ else console.log(response);
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ getAppInfo
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqGetAppInfo{
+ string packageName = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspGetAppInfo {
+ RspStatus status = 1;
+ bool isInstalled = 2;
+ bool isRunning = 3;
+ bool isFocused = 4;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Install App
+parent: Application Control
+grand_parent: Commands
+nav_order: 2
+---
+# Install App
+Install application
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+def get_file_chunks(filename):
+ CHUNK_SIZE = 1024 * 1024
+ with open(filename, 'rb') as f:
+ while True:
+ piece = f.read(CHUNK_SIZE)
+ if len(piece) == 0:
+ return
+ yield ReqInstallApp(package = piece)
+
+tpkPath = './app.tpk'
+tpkFile = get_file_chunks(tpkPath)
+response = stub.installApp(tpkFile)
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+let call = stub.installApp((err, response) => {
+ if (err) console.log(err);
+ else console.log(response);
+});
+
+let tpk = fs.createReadStream('app.tpk');
+tpk.on('data', (chunk) => {
+ call.write({ package: chunk });
+}).on('end', () => {
+ call.end();
+})
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ installApp
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqInstallApp{
+ bytes package = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspInstallApp{
+ RspStatus status = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
+
--- /dev/null
+---
+layout: default
+title: Launch App
+parent: Application Control
+grand_parent: Commands
+nav_order: 4
+---
+# Launch App
+Launch application
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.launchApp(ReqLaunchApp(packageName='packageName'))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.launchApp({ packageName : 'packageName' }, (err, response) => {
+ if (err) console.log(err);
+ else console.log(response);
+})
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+{% capture code %}
+{% highlight java linenos %}
+
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ launchApp
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqLaunchApp{
+ string packageName = 1;
+ repeated LaunchData data = 2;
+}
+message LaunchData {
+ string key = 1;
+ string value = 2;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspLaunchApp{
+ RspStatus status = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Remove App
+parent: Application Control
+grand_parent: Commands
+nav_order: 3
+---
+# Remove App
+Remove application
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.removeApp(ReqRemoveApp(packageName='packageName'))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.removeApp({ packageName : 'org.tizen.example.NUITizenGallery' }, (err, response) => {
+ if (err) console.log(err);
+ else console.log(response);
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ removeApp
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqRemoveApp{
+ string packageName = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspRemoveApp{
+ RspStatus status = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Commands
+nav_order: 4
+has_children: true
+permalink: /docs/commands/
+---
+# Commands
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Click
+parent: Device Control
+grand_parent: Commands
+nav_order: 19
+---
+# Click
+Generate click event
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.click(ReqClick(type = 'COORD', coordination = Point(x = 100, y = 100)))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.click({ type: 'COORD', coordination: { x: 100, y: 100 } }, (err, response) => {
+ if (err) console.log(err);
+ else console.log(response);
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ click
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqClick{
+ enum RequestType {
+ ELEMENTID = 0;
+ COORD = 1;
+ ATSPI = 2;
+ }
+ RequestType type = 1;
+ oneof params {
+ string elementId = 2;
+ Point coordination = 3;
+ }
+}
+message Point {
+ int32 x = 1;
+ int32 y = 2;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspClick{
+ RspStatus status = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Device Control
+has_children: true
+permalink: /docs/commands/device/
+parent: Commands
+---
+# Device Control
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Flick
+parent: Device Control
+grand_parent: Commands
+nav_order: 24
+---
+# Flick
+Generate flick event
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.flick(ReqFlick(startPoint=Point(x=10, y=500), endPoint=Point(x=10, y=200), durationMs=150))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.flick({ startPoint: { x: 100, y: 500 }, endPoint: { x: 100, y: 100 } }, (err, response) => {
+ if (err) console.log(err);
+ else console.log(response);
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ flick
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqFlick {
+ Point startPoint = 1;
+ Point endPoint = 2;
+ int32 durationMs = 3;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspFlick {
+ RspStatus status = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Get Device Time
+parent: Device Control
+grand_parent: Commands
+nav_order: 6
+---
+# Get Device Time
+Generate click event
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.getDeviceTime(ReqGetDeviceTime(type = 'WALLCLOCK'))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight javascript linenos %}
+stub.getDeviceTime({ type: 'SYSTEM' }, (err, response) => {
+ if (err) console.log(err);
+ else console.log(response);
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ getDeviceTime
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqGetDeviceTime{
+ enum TimeType {
+ WALLCLOCK= 0;
+ SYSTEM = 1;
+ }
+ TimeType type = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspGetDeviceTime{
+ RspStatus status = 1;
+ int64 timestampUTC = 2;
+ string localeDatetime = 3;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Get Screen Size
+parent: Device Control
+grand_parent: Commands
+nav_order: 6
+---
+# Get Screen Size
+Get screen size
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.getScreenSize(ReqGetScreenSize())
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.getScreenSize({}, (err, response) => {
+ if (err) console.log(err);
+ else console.log(response);
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ getDeviceTime
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqGetScreenSize {
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspGetScreenSize {
+ RspStatus status = 1;
+ Rect size = 2;
+}
+message Rect {
+ int32 x = 1;
+ int32 y = 2;
+ int32 width = 3;
+ int32 height = 4;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Long Click
+parent: Device Control
+grand_parent: Commands
+nav_order: 20
+---
+# Long Click
+Generate longclick (500ms) event
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.longClick(ReqClick(type = 'COORD', coordination = Point(x = 100, y = 100)))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.longClick({ type: 'COORD', coordination: { x: 100, y: 100 } }, (err, response) => {
+ if (err) console.log(err);
+ else console.log(response);
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ longClick
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqClick{
+ enum RequestType {
+ ELEMENTID = 0;
+ COORD = 1;
+ ATSPI = 2;
+ }
+ RequestType type = 1;
+ oneof params {
+ string elementId = 2;
+ Point coordination = 3;
+ }
+}
+message Point {
+ int32 x = 1;
+ int32 y = 2;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspClick{
+ RspStatus status = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Send Key
+parent: Device Control
+grand_parent: Commands
+nav_order: 18
+---
+# Send Key
+Generate key event
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.sendKey(ReqKey(type = 'XF86', actionType = 'STROKE', XF86keyCode = 'Left'))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.sendKey({ type: 'XF86', actionType: 'STROKE', XF86keyCode: 'Return'}, (err, response) => {
+ if (err) console.log(err);
+ else console.log(response);
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ flick
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqKey {
+ enum KeyType {
+ BACK = 0;
+ MENU = 1;
+ HOME = 2;
+ VOLUP = 3;
+ VOLDOWN = 4;
+ POWER = 5;
+ XF86 = 7;
+ WHEELUP = 8;
+ WHEELDOWN = 9;
+ }
+ enum KeyActionType {
+ STROKE = 0;
+ LONG_STROKE = 1;
+ PRESS = 2;
+ RELEASE = 3;
+ REPEAT = 4;
+ }
+ KeyType type = 1;
+ KeyActionType actionType = 2;
+ string XF86keyCode = 3;
+ int32 durationMs = 4;
+ int32 intervalMs = 5;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspKey {
+ RspStatus status = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Take Screenshot
+parent: Device Control
+grand_parent: Commands
+nav_order: 7
+---
+# Take Screenshot
+Take screenshot
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.takeScreenshot(ReqTakeScreenshot())
+image = open("screenshot.png", "wb")
+for r in response:
+ image.write(r.image)
+image.close()
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+let result = stub.takeScreenshot()
+result.on('error', (err) => {
+ console.log(err);
+});
+result.on('data', (response) => {
+ fs.writeFileSync('screenshot.png', response.image);
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ takeScreenshot
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqTakeScreenshot {
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspTakeScreenshot {
+ bytes image = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Touch Down
+parent: Device Control
+grand_parent: Commands
+nav_order: 21
+---
+# Touch Down
+Generate touch down event
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.touchDown(ReqTouchDown(coordination = Point(x = 100, y = 100)))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.touchDown({ coordination: { x: 100, y: 100 } }, (err, response) => {
+ if (err) console.log(err);
+ else console.log(response);
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ touchDown
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqTouchDown {
+ Point coordination = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspTouchDown {
+ RspStatus status = 1;
+ int32 seqId = 2;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Touch Move
+parent: Device Control
+grand_parent: Commands
+nav_order: 22
+---
+# Touch Move
+Generate touch move event
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.touchDown(ReqTouchDown(coordination = Point(x = 100, y = 100)))
+response2 = stub.touchMove(ReqTouchMove(seqId=response.seqId, coordination = Point(x = 100,y = 500)))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.touchDown({ coordination: { x: 100, y: 100 } }, (err, response) => {
+ if (err) console.log(err);
+ else
+ {
+ console.log(response);
+ stub.touchMove({ seqId: response.seqId, coordination: { x: 100, y: 500 } }, (err2, response2) => {
+ if (err2) console.log(err2);
+ else console.log(response2);
+ });
+ }
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ touchMove
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqTouchMove {
+ int32 seqId = 1;
+ Point coordination = 2;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspTouchMove {
+ RspStatus status = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Touch Up
+parent: Device Control
+grand_parent: Commands
+nav_order: 23
+---
+# Touch Up
+Generate touch up event
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.touchDown(ReqTouchDown(coordination = Point(x = 100, y = 100)))
+response2 = stub.touchUp(ReqTouchUp(seqId=response.seqId, coordination = Point(x = 100,y = 100)))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.touchDown({ coordination: { x: 100, y: 100 } }, (err, response) => {
+ if (err) console.log(err);
+ else
+ {
+ console.log(response);
+ stub.touchUp({ seqId: response.seqId, coordination: { x: 100, y: 100 } }, (err2, response2) => {
+ if (err2) console.log(err2);
+ else console.log(response2);
+ });
+ }
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ touchUp
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqTouchUp {
+ int32 seqId = 1;
+ Point coordination = 2;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspTouchUp {
+ RspStatus status = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Kill Server
+nav_order: 1
+nav_exclude: true
+---
+# Kill Server
+Terminate the org.tizen.aurum-bootstrap process
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Javascript</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight ruby linenos %}
+response = stub.killServer(ReqEmpty())
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight ruby linenos %}
+stub.killServer( { }, function (err, response) {
+ if (err) {
+ // process error
+ } else {
+ // process response
+ }
+})
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+ </div>
+</div>
+
--- /dev/null
+---
+layout: default
+title: Action And Wait Event
+parent: UI Object Control
+grand_parent: Commands
+nav_order: 25
+---
+# Action And Wait Event
+Do action and wait event
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.actionAndWaitEvent(ReqActionAndWaitEvent(type = 'KEY',
+ XF86keyCode = 'Down',
+ eventType = 'EVENT_STATE_CHANGED_FOCUSED',
+ timeoutMs=500))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.actionAndWaitEvent({ type: 'KEY', XF86keyCode: 'Down',
+ eventType: 'EVENT_STATE_CHANGED_FOCUSED',
+ timeoutMs: 500 }, (err, response) => {
+ if (err) console.log(err);
+ else console.log(response);
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ actionAndWaitEvent
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqActionAndWaitEvent {
+ enum ActionType{
+ CLICK = 0;
+ KEY = 1;
+ FOCUS = 2;
+ }
+ enum EventType {
+ EVENT_WINDOW_ACTIVATE = 0;
+ EVENT_WINDOW_DEACTIVATE = 1;
+ EVENT_STATE_CHANGED_FOCUSED = 2;
+ }
+ ActionType type = 1;
+ oneof params {
+ string elementId = 2;
+ string XF86keyCode = 3;
+ }
+ EventType eventType = 4;
+ int32 timeoutMs = 5;
+ string packageName = 6;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspActionAndWaitEvent {
+ RspStatus status = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Clear
+parent: UI Object Control
+grand_parent: Commands
+nav_order: 14
+---
+# Clear
+Clear value of the object
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+element = stub.findElement(ReqFindElement(widgetType = 'TextField'))
+response = stub.clear(ReqClear(elementId = element.element.elementId))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.findElement({ widgetType: 'TextField' }, (err, element) => {
+ if (err) console.log(err);
+ else
+ {
+ console.log(element);
+ stub.clear({ elementId: element.element.elementId }, (err2, response) => {
+ if (err2) console.log(err2);
+ else console.log(response);
+ });
+ }
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ clear
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqClear {
+ string elementId = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspClear {
+ RspStatus status = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Dump Object Tree
+parent: UI Object Control
+grand_parent: Commands
+nav_order: 10
+---
+# Dump Object Tree
+Generate click event
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+ element = stub.findElement(ReqFindElement(maxDepth = 1, isShowing = True))
+ response = stub.dumpObjectTree(ReqDumpObjectTree(elementId = element.element.elementId))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.findElement({ maxDepth: 1, isShowing: true }, (err, element) => {
+ if (err) console.log(err);
+ else
+ {
+ console.log(element);
+ stub.dumpObjectTree({ elementId: element.element.elementId }, (err2, response) => {
+ if (err2) console.log(err2);
+ else console.log(response);
+ });
+ }
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ dumpObjectTree
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqDumpObjectTree {
+ string elementId = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspDumpObjectTree {
+ RspStatus status = 1;
+ repeated Element roots = 2;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Find Element
+parent: UI Object Control
+grand_parent: Commands
+nav_order: 8
+---
+# Find Element
+If an object that satisfies a specific condition is searched on the screen and found, the object is returned
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.findElement(ReqFindElement(isClickable=True))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.findElement({ widgetType: "TextField" }, (err, response) => {
+ if (err) console.log(err);
+ else console.log(response);
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+
+<details markdown="block">
+<summary>Expand</summary>
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ findElement
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqFindElement {
+ oneof _elementid {
+ string elementId = 1;
+ }
+
+ oneof _automationid {
+ string automationId = 2;
+ }
+
+ oneof _textfield {
+ string textField = 3;
+ }
+
+ oneof _widgettype {
+ string widgetType = 4;
+ }
+
+ oneof _widgetstyle {
+ string widgetStyle = 5;
+ }
+
+ oneof _ischecked {
+ bool isChecked = 6;
+ }
+
+ oneof _ischeckable {
+ bool isCheckable= 7;
+ }
+
+ oneof _isclickable {
+ bool isClickable = 8;
+ }
+
+ oneof _isenabled {
+ bool isEnabled = 9;
+ }
+
+ oneof _isfocused {
+ bool isFocused = 10;
+ }
+
+ oneof _isfocusable {
+ bool isFocusable = 11;
+ }
+
+ oneof _isscrollable {
+ bool isScrollable = 12;
+ }
+
+ oneof _isselected {
+ bool isSelected = 13;
+ }
+
+ oneof _isshowing {
+ bool isShowing = 14;
+ }
+
+ oneof _isactive {
+ bool isActive = 15;
+ }
+
+ oneof _mindepth {
+ int32 minDepth = 16;
+ }
+
+ oneof _maxdepth {
+ int32 maxDepth = 17;
+ }
+
+ oneof _packagename {
+ string packageName = 18;
+ }
+
+ oneof _textpartialmatch {
+ string textPartialMatch = 19;
+ }
+
+ oneof _xpath {
+ string xpath = 20;
+ }
+
+ oneof _ocrtext {
+ string ocrText = 21;
+ }
+
+ oneof _geometry {
+ Rect geometry = 22;
+ }
+ oneof _isvisible {
+ bool isVisible = 23;
+ }
+
+ oneof _isselectable {
+ bool isSelectable = 24;
+ }
+
+ oneof _ishighlightable {
+ bool isHighlightable = 25;
+ }
+
+ repeated ReqFindElement children = 26;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspFindElement {
+ RspStatus status = 1;
+ Element element = 2;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
+</details>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Find Elements
+parent: UI Object Control
+grand_parent: Commands
+nav_order: 9
+---
+# Find Elements
+If objects that satisfies a specific condition are searched on the screen and found, the objects are returned
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.findElements(ReqFindElements(isClickable=True))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.findElements({ isClickable: true }, (err, response) => {
+ if (err) console.log(err);
+ else console.log(response);
+})
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+
+<details markdown="block">
+<summary>Expand</summary>
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ findElements
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqFindElements {
+ oneof _elementid {
+ string elementId = 1;
+ }
+
+ oneof _automationid {
+ string automationId = 2;
+ }
+
+ oneof _textfield {
+ string textField = 3;
+ }
+
+ oneof _widgettype {
+ string widgetType = 4;
+ }
+
+ oneof _widgetstyle {
+ string widgetStyle = 5;
+ }
+
+ oneof _ischecked {
+ bool isChecked = 6;
+ }
+
+ oneof _ischeckable {
+ bool isCheckable= 7;
+ }
+
+ oneof _isclickable {
+ bool isClickable = 8;
+ }
+
+ oneof _isenabled {
+ bool isEnabled = 9;
+ }
+
+ oneof _isfocused {
+ bool isFocused = 10;
+ }
+
+ oneof _isfocusable {
+ bool isFocusable = 11;
+ }
+
+ oneof _isscrollable {
+ bool isScrollable = 12;
+ }
+
+ oneof _isselected {
+ bool isSelected = 13;
+ }
+
+ oneof _isshowing {
+ bool isShowing = 14;
+ }
+
+ oneof _isactive {
+ bool isActive = 15;
+ }
+
+ oneof _mindepth {
+ int32 minDepth = 16;
+ }
+
+ oneof _maxdepth {
+ int32 maxDepth = 17;
+ }
+
+ oneof _packagename {
+ string packageName = 18;
+ }
+
+ oneof _textpartialmatch {
+ string textPartialMatch = 19;
+ }
+
+ oneof _xpath {
+ string xpath = 20;
+ }
+
+ oneof _ocrtext {
+ string ocrText = 21;
+ }
+
+ oneof _geometry {
+ Rect geometry = 22;
+ }
+
+ oneof _isvisible {
+ bool isVisible = 23;
+ }
+
+ oneof _isselectable {
+ bool isSelectable = 24;
+ }
+
+ oneof _ishighlightable {
+ bool isHighlightable = 25;
+ }
+
+ repeated ReqFindElements children = 26;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspFindElements {
+ RspStatus status = 1;
+ repeated Element elements = 2;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
+</details>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Get Attribute
+parent: UI Object Control
+grand_parent: Commands
+nav_order: 11
+---
+# Get Attribute
+Get attribute of the object## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+element = stub.findElement(ReqFindElement(maxDepth = 1, isShowing = True))
+responses = stub.getAttribute(ReqGetAttribute(elementId = element.element.elementId, attribute = 'SHOWING'))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.findElement({ maxDepth: 1, isShowing: true }, (err, element) => {
+ if (err) console.log(err);
+ else
+ {
+ console.log(element);
+ stub.getAttribute({ elementId: element.element.elementId, attribute: 'SHOWING' }, (err2, response) => {
+ if (err2) console.log(err2);
+ else console.log(response);
+ });
+ }
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ getAttribute
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqGetAttribute {
+ enum RequestType {
+ VISIBLE = 0;
+ FOCUSABLE = 1;
+ FOCUSED = 2;
+ ENABLED = 3;
+ CLICKABLE = 4;
+ SCROLLABLE = 5;
+ CHECKABLE = 6;
+ CHECKED = 7;
+ SELECTED = 8;
+ SELECTABLE = 9;
+ SHOWING = 10;
+ ACTIVE = 11;
+ }
+ string elementId = 1;
+ RequestType attribute = 2;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspGetAttribute {
+ RspStatus status = 1;
+ bool boolValue = 2;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Get Size
+parent: UI Object Control
+grand_parent: Commands
+nav_order: 15
+---
+# Get Size
+Get geometry of the object
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+element = stub.findElement(ReqFindElement(maxDepth = 1, isShowing = True))
+responses = stub.getSize(ReqGetSize(type = 'SCREEN', elementId = element.element.elementId))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.findElement({ maxDepth: 1, isShowing: true }, (err, element) => {
+ if (err) console.log(err);
+ else
+ {
+ console.log(element);
+ stub.getSize({ type: 'SCREEN', elementId: element.element.elementId }, (err2, response) => {
+ if (err2) console.log(err2);
+ else console.log(response);
+ });
+ }
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ getSize
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqGetSize {
+ enum CoordType {
+ SCREEN = 0;
+ WINDOW = 1;
+ }
+ CoordType type = 1;
+ string elementId = 2;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspGetSize {
+ RspStatus status = 1;
+ Rect size = 2;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Get Text Min Bounding Rect
+parent: UI Object Control
+grand_parent: Commands
+nav_order: 16
+---
+# Get Text Min Bounding Rect
+Get the minium bounding rect size of text
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+element = stub.findElement(ReqFindElement(widgetType = 'TextLabel'))
+response = stub.getTextMinBoundingRect(ReqGetTextMinBoundingRect(elementId = element.element.elementId))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.findElement({ widgetType: 'TextLabel' }, (err, element) => {
+ if (err) console.log(err);
+ else
+ {
+ console.log(element);
+ stub.getTextMinBoundingRect({ elementId: element.element.elementId }, (err2, response) => {
+ if (err2) console.log(err2);
+ else console.log(response);
+ });
+ }
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ getTextMinBoundingRect
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqGetTextMinBoundingRect {
+ string elementId = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspGetTextMinBoundingRect {
+ RspStatus status = 1;
+ Rect size = 2;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Get Value
+parent: UI Object Control
+grand_parent: Commands
+nav_order: 12
+---
+# Get Value
+Get the value of the object
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+element = stub.findElement(ReqFindElement(widgetType = 'TextField'))
+response = stub.getValue(ReqGetValue(elementId=element.element.elementId, type = 'STRING'))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.findElement({ widgetType: 'TextField' }, (err, element) => {
+ if (err) console.log(err);
+ else
+ {
+ console.log(element);
+ stub.getValue({ elementId: element.element.elementId, type: 'STRING' }, (err2, response) => {
+ if (err2) console.log(err2);
+ else console.log(response);
+ });
+ }
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ getValue
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqGetValue {
+ string elementId = 1;
+ ParamType type = 2;
+}
+
+enum ParamType {
+ STRING = 0;
+ INT = 1;
+ DOUBLE = 2;
+ BOOL = 3;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspGetValue {
+ RspStatus status = 1;
+ ParamType type = 2;
+ oneof params {
+ string stringValue = 3;
+ int32 intValue = 4;
+ double doubleValue = 5;
+ bool boolValue = 6;
+ }
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Set Focus
+parent: UI Object Control
+grand_parent: Commands
+nav_order: 17
+---
+# Set Focus
+Set focus to specific UI Object
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+element = stub.findElement(ReqFindElement(isFocusable = True, isShowing = True))
+responses = stub.setFocus(ReqSetFocus(elementId = element.element.elementId))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.findElement({ isFocusable:true, isShowing: true }, (err, element) => {
+ if (err) console.log(err);
+ else
+ {
+ console.log(element);
+ stub.setFocus({ elementId: element.element.elementId }, (err2, response) => {
+ if (err2) console.log(err2);
+ else console.log(response);
+ });
+ }
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ setFocus
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqSetFocus {
+ string elementId = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspSetFocus {
+ RspStatus status = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Set Timeout
+parent: UI Object Control
+grand_parent: Commands
+nav_order: 18
+---
+# Set Timeout
+Set Timeout
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+response = stub.setTimeout(ReqSetTimeout(timeout = 5000))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.setTimeout({ timeout: 5000 }, (err, response) => {
+ if (err) console.log(err);
+ else console.log(response);
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ setTimeout
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqSetTimeout {
+ int32 timeout = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspSetTimeout {
+ RspStatus status = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Set Value
+parent: UI Object Control
+grand_parent: Commands
+nav_order: 13
+---
+# Set Value
+Set the value of the object
+## Example Usage
+<ul class="nav nav-tabs">
+ <li class="nav-item remove active">
+ <a class="nav-link active" data-toggle="tab" id="python-tab" data-target="#python-tab-pane">Python</a>
+ </li>
+ <li class="nav-item remove">
+ <a class="nav-link" data-toggle="tab" id="js-tab" data-target="#js-tab-pane">Node</a>
+ </li>
+ <li class="nav-item remove" style="display:none">
+ <a class="nav-link" data-toggle="tab" id="java-tab" data-target="#java-tab-pane">Java</a>
+ </li>
+</ul>
+<div class="tab-content">
+ <div class="tab-pane fade active" id="python-tab-pane">
+{% capture code %}
+{% highlight python linenos %}
+element = stub.findElement(ReqFindElement(widgetType = 'TextField'))
+response = stub.setValue(ReqSetValue(elementId = element.element.elementId, stringValue = 'Test'))
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="js-tab-pane">
+{% capture code %}
+{% highlight js linenos %}
+stub.findElement({ widgetType: 'TextField' }, (err, element) => {
+ if (err) console.log(err);
+ else
+ {
+ console.log(element);
+ stub.setValue({ elementId: element.element.elementId, stringValue: 'Test' }, (err2, response) => {
+ if (err2) console.log(err2);
+ else console.log(response);
+ });
+ }
+});
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </div>
+ <div class="tab-pane fade" id="java-tab-pane">
+
+ </div>
+</div>
+
+## Proto Definition
+<table>
+ <thead>
+ <tr>
+ <th style="text-align: left">
+ Name
+ </th>
+ <th style="text-align: left">
+ Requirement
+ </th>
+ <th style="text-align: left">
+ Response
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td style="text-align: left">
+ setValue
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message ReqSetValue {
+ string elementId = 1;
+ ParamType type = 2;
+ oneof params {
+ string stringValue = 3;
+ int32 intValue = 4;
+ double doubleValue = 5;
+ bool boolValue = 6;
+ }
+}
+
+enum ParamType {
+ STRING = 0;
+ INT = 1;
+ DOUBLE = 2;
+ BOOL = 3;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ <td style="text-align: left">
+{% capture code %}
+{% highlight ruby %}
+message RspSetValue {
+ RspStatus status = 1;
+}
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+ </td>
+ </tr>
+ </tbody>
+</table>
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: UI Object Control
+has_children: true
+permalink: /docs/commands/uiobject/
+parent: Commands
+---
+# UI Object Control
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Getting Started
+nav_order: 3
+has_children: true
+permalink: docs/gettingstarted/
+---
+# Getting Started
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Java
+nav_order: 33
+nav_exclude: true
+---
+
+# Quick Start
+{: .fs-8 }
+
+This guide gets you started with Aurum in Java with a simple working example.
+{: .fs-5 .fw-300 }
+
+## Prerequisites
+- JDK version 7 or higher
+
+## Download the example
+```bash
+# Clone the repository to get the example code:
+$ git clone -b tizen git://git.tizen.org/platform/core/uifw/aurum
+# Navigate to the Java example:
+$ cd aurum/examples/java
+# Install the example's dependencies
+$ npm install
+```
+
+## Download the aurum.proto
+From the examples/node directory:
+```bash
+$ curl -L -O https://github.sec.samsung.net/pages/tizen/aurum/protocol/aurum.proto
+```
+
+## What’s next
+- Explore the [API reference](/docs/commands/).
+- The Aurum [issue tracker](https://github.sec.samsung.net/tizen/aurum/issues) - let the Aurum maintainers know here if you think you've found a bug
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Node
+parent: Getting Started
+nav_order: 32
+---
+
+# Quick Start
+{: .fs-8 }
+
+This guide gets you started with Aurum in Node with a simple working example.
+{: .fs-5 .fw-300 }
+
+## Prerequisites
+- Node version 8.13.0 or higher
+
+## Download the example
+```bash
+# Clone the repository to get the example code:
+$ git clone -b tizen git://git.tizen.org/platform/core/uifw/aurum
+# Navigate to the Node example:
+$ cd aurum/examples/node
+# Install the example's dependencies
+$ npm install
+```
+
+## Download the aurum.proto
+From the examples/node directory:
+```bash
+$ curl -L -O https://github.sec.samsung.net/pages/tizen/aurum/protocol/aurum.proto
+```
+
+## Connect to target
+```bash
+$ sdb shell app_launcher -s org.tizen.aurum-bootstrap
+$ sdb forward tcp:50051 tcp:50051
+```
+
+## Run a Aurum example
+From the examples/node directory:
+```bash
+$ node helloworld.js
+```
+Congratulations! You’ve just run a UI automation test application with Aurum.
+
+## Introduce an example code
+{% capture code %}
+{% highlight js linenos %}
+import * as grpc from "@grpc/grpc-js";
+import * as protoLoader from "@grpc/proto-loader";
+
+let PROTO_PATH = "./aurum.proto";
+let packageDefinition = protoLoader.loadSync(PROTO_PATH, {
+ keepCase: true,
+ longs: String,
+ enums: String,
+ defaults: true,
+ oneofs: true
+});
+
+let aurum = grpc.loadPackageDefinition(packageDefinition).aurum;
+
+function main () {
+ let stub = new aurum.Bootstrap(
+ "localhost:50051",
+ grpc.credentials.createInsecure()
+ );
+// If you have a proxy problem, use the below code instead of the above code.
+// grpc.credentials.createInsecure(),
+// { 'grpc.enable_http_proxy': 0 },
+//);
+
+ stub.getDeviceTime({ type: 'SYSTEM' }, (err, response) => {
+ if (err) {
+ console.log(err);
+ } else {
+ console.log(response);
+ }
+ });
+
+ stub.close()
+}
+
+main();
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+
+## What’s next
+- Explore the [API reference](/tizen/aurum/docs/commands/).
+- The Aurum [issue tracker](https://github.sec.samsung.net/tizen/aurum/issues) - let the Aurum maintainers know here if you think you've found a bug
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Python
+parent: Getting Started
+nav_order: 31
+---
+
+# Quick Start
+{: .fs-8 }
+
+This guide gets you started with Aurum in Python with a simple working example.
+{: .fs-5 .fw-300 }
+
+## Prerequisites
+- Python 3.5 or higher
+- pip version 9.0.1 or higher
+
+If necessary, upgrade your version of pip:
+```bash
+$ python3 -m pip install --upgrade pip
+```
+If you cannot upgrade pip due to a system-owned installation, you can run the example in a venv:
+```bash
+$ python3 -m venv v
+$ source v/bin/activate
+```
+
+## Install gRPC and gRPC tools
+```bash
+$ pip install grpcio grpcio-tools
+```
+
+## Download the example
+```bash
+# Clone the repository to get the example code:
+$ git clone -b tizen git://git.tizen.org/platform/core/uifw/aurum
+# Navigate to the Python example:
+$ cd aurum/examples/python
+```
+
+## Generate gRPC code from aurum.proto
+From the examples/python directory:
+```bash
+$ curl -L -O https://github.sec.samsung.net/pages/tizen/aurum/protocol/aurum.proto
+$ python3 -m grpc_tools.protoc --python_out=. --grpc_python_out=. --proto_path=. aurum.proto
+```
+
+## Connect to target
+```bash
+$ sdb shell app_launcher -s org.tizen.aurum-bootstrap
+$ sdb forward tcp:50051 tcp:50051
+```
+
+## Run a Aurum example
+From the examples/python directory:
+```bash
+$ python3 helloworld.py
+```
+Congratulations! You’ve just run a UI automation test application with Aurum.
+
+## Introduce an example code
+{% capture code %}
+{% highlight python linenos %}
+import grpc
+from aurum_pb2 import *
+from aurum_pb2_grpc import BootstrapStub
+
+def run():
+ with grpc.insecure_channel('localhost:50051') as channel:
+# If you have a proxy problem, use the below code instead of the above code.
+# with grpc.insecure_channel('localhost:50051', options=(('grpc.enable_http_proxy', 0),)) as channel:
+ stub = BootstrapStub(channel)
+ getDeviceTime(stub)
+
+def getDeviceTime(stub):
+ response = stub.getDeviceTime(ReqGetDeviceTime(type='SYSTEM'))
+ print(response)
+
+if __name__ == '__main__':
+ run()
+{% endhighlight %}
+{% endcapture %}
+{% include fix_linenos.html code=code %}
+{% assign code = nil %}
+
+## What’s next
+- Explore the [API reference](/tizen/aurum/docs/commands/).
+- The Aurum [issue tracker](https://github.sec.samsung.net/tizen/aurum/issues) - let the Aurum maintainers know here if you think you've found a bug
\ No newline at end of file
--- /dev/null
+---
+layout: default
+title: Introduction
+nav_order: 2
+---
+
+# Introducing Aurum
+{: .fs-9 }
+
+- Aurum is a UI automation framework without UI Toolkit dependency.
+
+ Provides Commands to interact with the device UI by simulation user actions and introspection of the screen content.
+
+ It relies on the platform accessibility APIs to introspect the screen.
+
+- User can use the IDL defined in Proto to create an automation app or script in a variety of languages without a language dependency.
+
+![image](https://media.github.sec.samsung.net/user/39889/files/ff684061-8bee-4a3f-855e-48ac38a5089a)
+
+Please refer [grpc](https://grpc.io/) and [proto buffers](https://developers.google.com/protocol-buffers) for more information
--- /dev/null
+---
+layout: default
+title: Home
+nav_order: 1
+description: "Aurum is a UI automation framework without UI Toolkit dependency."
+permalink: /
+---
+
+# Aurum
+{: .fs-9 }
+
+Aurum is a UI automation framework without UI Toolkit dependency.
+{: .fs-6 .fw-300 }
+
+[Learn more](/tizen/aurum/docs/introduction){: .btn .btn-primary .fs-5 .mb-4 .mb-md-0 .mr-2 }
+
+Get started now!
+{: .fs-6 .fw-300 }
+
+[Python](/tizen/aurum/docs/gettingstarted/python){: .btn .btn-primary .fs-5 .mb-4 .mb-md-0 .mr-2 } [Node](/tizen/aurum/docs/gettingstarted/node){: .btn .btn-primary .fs-5 .mb-4 .mb-md-0 .mr-2 }
+---
+
+### License
+
+Aurum is distributed by an [Apache License](https://github.sec.samsung.net/tizen/aurum/blob/tizen/COPYING).
\ No newline at end of file
--- /dev/null
+# coding: utf-8
+
+Gem::Specification.new do |spec|
+ spec.name = "just-the-docs"
+ spec.version = "0.4.0.rc3"
+ spec.authors = ["Patrick Marsceill", "Matthew Wang"]
+ spec.email = ["patrick.marsceill@gmail.com", "matt@matthewwang.me"]
+
+ spec.summary = %q{A modern, highly customizable, and responsive Jekyll theme for documention with built-in search.}
+ spec.homepage = "https://github.com/just-the-docs/just-the-docs"
+ spec.license = "MIT"
+ spec.metadata = {
+ "bug_tracker_uri" => "https://github.com/just-the-docs/just-the-docs/issues",
+ "changelog_uri" => "https://github.com/just-the-docs/just-the-docs/blob/main/CHANGELOG.md",
+ "documentation_uri" => "https://just-the-docs.github.io/just-the-docs/",
+ "source_code_uri" => "https://github.com/just-the-docs/just-the-docs",
+ }
+
+ spec.files = `git ls-files -z`.split("\x0").select { |f| f.match(%r{^(assets|bin|_layouts|_includes|lib|Rakefile|_sass|LICENSE|README|CHANGELOG|favicon)}i) }
+ spec.executables << 'just-the-docs'
+
+ spec.add_development_dependency "bundler", "~> 2.3.5"
+ spec.add_runtime_dependency "jekyll", ">= 3.8.5"
+ spec.add_runtime_dependency "jekyll-seo-tag", ">= 2.0"
+ spec.add_runtime_dependency "rake", ">= 12.3.1"
+end
--- /dev/null
+namespace :search do
+ desc 'Generate the files needed for search functionality'
+ task :init do
+ puts 'Creating search data json file...'
+ mkdir_p 'assets/js'
+ touch 'assets/js/zzzz-search-data.json'
+ puts 'Done.'
+ puts 'Generating content...'
+
+ File.open('assets/js/zzzz-search-data.json', 'w') do |f|
+ f.puts '---
+permalink: /assets/js/search-data.json
+---
+{
+{%- assign i = 0 -%}
+{%- assign pages_array = "" | split: "" -%}
+{%- assign pages_array = pages_array | push: site.html_pages -%}
+{%- if site.just_the_docs.collections -%}
+ {%- for collection_entry in site.just_the_docs.collections -%}
+ {%- assign collection_key = collection_entry[0] -%}
+ {%- assign collection_value = collection_entry[1] -%}
+ {%- assign collection = site[collection_key] -%}
+ {%- if collection_value.search_exclude != true -%}
+ {%- assign pages_array = pages_array | push: collection -%}
+ {%- endif -%}
+ {%- endfor -%}
+{%- endif -%}
+{%- for pages in pages_array -%}
+ {%- for page in pages -%}
+ {%- if page.title and page.search_exclude != true -%}
+ {%- assign page_content = page.content -%}
+ {%- assign heading_level = site.search.heading_level | default: 2 -%}
+ {%- for j in (2..heading_level) -%}
+ {%- assign tag = \'<h\' | append: j -%}
+ {%- assign closing_tag = \'</h\' | append: j -%}
+ {%- assign page_content = page_content | replace: tag, \'<h1\' | replace: closing_tag, \'</h1\' -%}
+ {%- endfor -%}
+ {%- assign parts = page_content | split: \'<h1\' -%}
+ {%- assign title_found = false -%}
+ {%- for part in parts offset: 1 -%}
+ {%- assign titleAndContent = part | split: \'</h1>\' -%}
+ {%- assign title = titleAndContent[0] | replace_first: \'>\', \'<h1>\' | split: \'<h1>\' -%}
+ {%- assign title = title[1] | strip_html -%}
+ {%- assign content = titleAndContent[1] -%}
+ {%- assign url = page.url -%}
+ {%- if title == page.title and parts[0] == \'\' -%}
+ {%- assign title_found = true -%}
+ {%- else -%}
+ {%- assign id = titleAndContent[0] -%}
+ {%- assign id = id | split: \'id="\' -%}
+ {%- if id.size == 2 -%}
+ {%- assign id = id[1] -%}
+ {%- assign id = id | split: \'"\' -%}
+ {%- assign id = id[0] -%}
+ {%- capture url -%}{{ url | append: \'#\' | append: id }}{%- endcapture -%}
+ {%- endif -%}
+ {%- endif -%}
+ {%- unless i == 0 -%},{%- endunless -%}
+ "{{ i }}": {
+ "doc": {{ page.title | jsonify }},
+ "title": {{ title | jsonify }},
+ "content": {{ content | replace: \'</h\', \' . </h\' | replace: \'<hr\', \' . <hr\' | replace: \'</p\', \' . </p\' | replace: \'<ul\', \' . <ul\' | replace: \'</ul\', \' . </ul\' | replace: \'<ol\', \' . <ol\' | replace: \'</ol\', \' . </ol\' | replace: \'</tr\', \' . </tr\' | replace: \'<li\', \' | <li\' | replace: \'</li\', \' | </li\' | replace: \'</td\', \' | </td\' | replace: \'<td\', \' | <td\' | replace: \'</th\', \' | </th\' | replace: \'<th\', \' | <th\' | strip_html | remove: \'Table of contents\' | normalize_whitespace | replace: \'. . .\', \'.\' | replace: \'. .\', \'.\' | replace: \'| |\', \'|\' | append: \' \' | jsonify }},
+ "url": "{{ url | relative_url }}",
+ "relUrl": "{{ url }}"
+ }
+ {%- assign i = i | plus: 1 -%}
+ {%- endfor -%}
+ {%- unless title_found -%}
+ {%- unless i == 0 -%},{%- endunless -%}
+ "{{ i }}": {
+ "doc": {{ page.title | jsonify }},
+ "title": {{ page.title | jsonify }},
+ "content": {{ parts[0] | replace: \'</h\', \' . </h\' | replace: \'<hr\', \' . <hr\' | replace: \'</p\', \' . </p\' | replace: \'<ul\', \' . <ul\' | replace: \'</ul\', \' . </ul\' | replace: \'<ol\', \' . <ol\' | replace: \'</ol\', \' . </ol\' | replace: \'</tr\', \' . </tr\' | replace: \'<li\', \' | <li\' | replace: \'</li\', \' | </li\' | replace: \'</td\', \' | </td\' | replace: \'<td\', \' | <td\' | replace: \'</th\', \' | </th\' | replace: \'<th\', \' | <th\' | strip_html | remove: \'Table of contents\' | normalize_whitespace | replace: \'. . .\', \'.\' | replace: \'. .\', \'.\' | replace: \'| |\', \'|\' | append: \' \' | jsonify }},
+ "url": "{{ page.url | relative_url }}",
+ "relUrl": "{{ page.url }}"
+ }
+ {%- assign i = i | plus: 1 -%}
+ {%- endunless -%}
+ {%- endif -%}
+ {%- endfor -%}
+{%- endfor %}
+}'
+ end
+ puts 'Done.'
+ end
+end
--- /dev/null
+{
+ "name": "Aurum Pages",
+ "version": "0.0.1",
+ "lockfileVersion": 2,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "just-the-docs",
+ "version": "0.3.3",
+ "license": "MIT",
+ "devDependencies": {
+ "prettier": "^2.7.1",
+ "stylelint": "^14.14.0",
+ "stylelint-config-prettier-scss": "0.0.1",
+ "stylelint-config-standard-scss": "^5.0.0",
+ "stylelint-prettier": "^2.0.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
+ "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/highlight": "^7.16.7"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
+ "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==",
+ "dev": true,
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/highlight": {
+ "version": "7.17.9",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz",
+ "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.16.7",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@csstools/selector-specificity": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz",
+ "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==",
+ "dev": true,
+ "engines": {
+ "node": "^12 || ^14 || >=16"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ },
+ "peerDependencies": {
+ "postcss": "^8.2",
+ "postcss-selector-parser": "^6.0.10"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@types/minimist": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
+ "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==",
+ "dev": true
+ },
+ "node_modules/@types/normalize-package-data": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
+ "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
+ "dev": true
+ },
+ "node_modules/@types/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+ "dev": true
+ },
+ "node_modules/ajv": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "dev": true,
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
+ "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
+ "dev": true
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/brace-expansion/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ },
+ "node_modules/braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "dependencies": {
+ "fill-range": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camelcase-keys": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
+ "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^5.3.1",
+ "map-obj": "^4.0.0",
+ "quick-lru": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "node_modules/colord": {
+ "version": "2.9.3",
+ "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
+ "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==",
+ "dev": true
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "node_modules/cosmiconfig": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
+ "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/css-functions-list": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz",
+ "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.22"
+ }
+ },
+ "node_modules/cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true,
+ "bin": {
+ "cssesc": "bin/cssesc"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decamelize-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
+ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=",
+ "dev": true,
+ "dependencies": {
+ "decamelize": "^1.1.0",
+ "map-obj": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/decamelize-keys/node_modules/map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "dependencies": {
+ "path-type": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
+ },
+ "node_modules/fast-diff": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
+ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
+ "dev": true
+ },
+ "node_modules/fast-glob": {
+ "version": "3.2.12",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "dev": true,
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fastest-levenshtein": {
+ "version": "1.0.16",
+ "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
+ "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4.9.1"
+ }
+ },
+ "node_modules/fastq": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
+ "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
+ "dev": true,
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "dependencies": {
+ "flat-cache": "^3.0.4"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "dependencies": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ },
+ "engines": {
+ "node": "^10.12.0 || >=12.0.0"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz",
+ "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
+ "dev": true
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "node_modules/glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+ "dev": true,
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/global-modules": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
+ "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
+ "dev": true,
+ "dependencies": {
+ "global-prefix": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/global-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
+ "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+ "dev": true,
+ "dependencies": {
+ "ini": "^1.3.5",
+ "kind-of": "^6.0.2",
+ "which": "^1.3.1"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
+ "dependencies": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/globjoin": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz",
+ "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=",
+ "dev": true
+ },
+ "node_modules/hard-rejection": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
+ "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "dependencies": {
+ "function-bind": "^1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/hosted-git-info": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/html-tags": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz",
+ "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ignore": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
+ "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/import-fresh/node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/import-lazy": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
+ "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "node_modules/ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "dev": true
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "node_modules/is-core-module": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz",
+ "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
+ "dev": true,
+ "dependencies": {
+ "has": "^1.0.3"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true
+ },
+ "node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/known-css-properties": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz",
+ "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==",
+ "dev": true
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true
+ },
+ "node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true
+ },
+ "node_modules/lodash.truncate": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
+ "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
+ "dev": true
+ },
+ "node_modules/lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "dependencies": {
+ "yallist": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/map-obj": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
+ "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/mathml-tag-names": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz",
+ "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==",
+ "dev": true,
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/wooorm"
+ }
+ },
+ "node_modules/meow": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
+ "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/minimist": "^1.2.0",
+ "camelcase-keys": "^6.2.2",
+ "decamelize": "^1.2.0",
+ "decamelize-keys": "^1.1.0",
+ "hard-rejection": "^2.1.0",
+ "minimist-options": "4.1.0",
+ "normalize-package-data": "^3.0.0",
+ "read-pkg-up": "^7.0.1",
+ "redent": "^3.0.0",
+ "trim-newlines": "^3.0.0",
+ "type-fest": "^0.18.0",
+ "yargs-parser": "^20.2.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
+ "dependencies": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/min-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
+ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist-options": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
+ "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
+ "dev": true,
+ "dependencies": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0",
+ "kind-of": "^6.0.3"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "dev": true,
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/normalize-package-data": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
+ "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
+ "dev": true,
+ "dependencies": {
+ "hosted-git-info": "^4.0.1",
+ "is-core-module": "^2.5.0",
+ "semver": "^7.3.4",
+ "validate-npm-package-license": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "node_modules/path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
+ },
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.4.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz",
+ "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ }
+ ],
+ "dependencies": {
+ "nanoid": "^3.3.4",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/postcss-media-query-parser": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
+ "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=",
+ "dev": true
+ },
+ "node_modules/postcss-resolve-nested-selector": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz",
+ "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=",
+ "dev": true
+ },
+ "node_modules/postcss-safe-parser": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz",
+ "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ "peerDependencies": {
+ "postcss": "^8.3.3"
+ }
+ },
+ "node_modules/postcss-scss": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.4.tgz",
+ "integrity": "sha512-aBBbVyzA8b3hUL0MGrpydxxXKXFZc5Eqva0Q3V9qsBOLEMsjb6w49WfpsoWzpEgcqJGW4t7Rio8WXVU9Gd8vWg==",
+ "dev": true,
+ "engines": {
+ "node": ">=12.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ "peerDependencies": {
+ "postcss": "^8.3.3"
+ }
+ },
+ "node_modules/postcss-selector-parser": {
+ "version": "6.0.10",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
+ "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
+ "dev": true,
+ "dependencies": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true
+ },
+ "node_modules/prettier": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
+ "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
+ "dev": true,
+ "bin": {
+ "prettier": "bin-prettier.js"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "dev": true,
+ "dependencies": {
+ "fast-diff": "^1.1.2"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
+ "node_modules/quick-lru": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
+ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "dependencies": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "dev": true,
+ "dependencies": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/read-pkg-up/node_modules/type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/read-pkg/node_modules/hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+ "dev": true
+ },
+ "node_modules/read-pkg/node_modules/normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "dependencies": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "node_modules/read-pkg/node_modules/semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true,
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/read-pkg/node_modules/type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/redent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+ "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "dev": true,
+ "dependencies": {
+ "indent-string": "^4.0.0",
+ "strip-indent": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
+ "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
+ "dev": true,
+ "dependencies": {
+ "is-core-module": "^2.8.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true,
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "dev": true,
+ "dependencies": {
+ "lru-cache": "^6.0.0"
+ },
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "dev": true
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ },
+ "node_modules/source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/spdx-correct": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
+ "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+ "dev": true,
+ "dependencies": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-exceptions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+ "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+ "dev": true
+ },
+ "node_modules/spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "dependencies": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "node_modules/spdx-license-ids": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz",
+ "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==",
+ "dev": true
+ },
+ "node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-indent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "dev": true,
+ "dependencies": {
+ "min-indent": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/style-search": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
+ "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=",
+ "dev": true
+ },
+ "node_modules/stylelint": {
+ "version": "14.14.0",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.14.0.tgz",
+ "integrity": "sha512-yUI+4xXfPHVnueYddSQ/e1GuEA/2wVhWQbGj16AmWLtQJtn28lVxfS4b0CsWyVRPgd3Auzi0NXOthIEUhtQmmA==",
+ "dev": true,
+ "dependencies": {
+ "@csstools/selector-specificity": "^2.0.2",
+ "balanced-match": "^2.0.0",
+ "colord": "^2.9.3",
+ "cosmiconfig": "^7.0.1",
+ "css-functions-list": "^3.1.0",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.2.12",
+ "fastest-levenshtein": "^1.0.16",
+ "file-entry-cache": "^6.0.1",
+ "global-modules": "^2.0.0",
+ "globby": "^11.1.0",
+ "globjoin": "^0.1.4",
+ "html-tags": "^3.2.0",
+ "ignore": "^5.2.0",
+ "import-lazy": "^4.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-plain-object": "^5.0.0",
+ "known-css-properties": "^0.25.0",
+ "mathml-tag-names": "^2.1.3",
+ "meow": "^9.0.0",
+ "micromatch": "^4.0.5",
+ "normalize-path": "^3.0.0",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.4.17",
+ "postcss-media-query-parser": "^0.2.3",
+ "postcss-resolve-nested-selector": "^0.1.1",
+ "postcss-safe-parser": "^6.0.0",
+ "postcss-selector-parser": "^6.0.10",
+ "postcss-value-parser": "^4.2.0",
+ "resolve-from": "^5.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "style-search": "^0.1.0",
+ "supports-hyperlinks": "^2.3.0",
+ "svg-tags": "^1.0.0",
+ "table": "^6.8.0",
+ "v8-compile-cache": "^2.3.0",
+ "write-file-atomic": "^4.0.2"
+ },
+ "bin": {
+ "stylelint": "bin/stylelint.js"
+ },
+ "engines": {
+ "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/stylelint"
+ }
+ },
+ "node_modules/stylelint-config-prettier": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz",
+ "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==",
+ "dev": true,
+ "bin": {
+ "stylelint-config-prettier": "bin/check.js",
+ "stylelint-config-prettier-check": "bin/check.js"
+ },
+ "engines": {
+ "node": ">= 12"
+ },
+ "peerDependencies": {
+ "stylelint": ">=11.0.0"
+ }
+ },
+ "node_modules/stylelint-config-prettier-scss": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/stylelint-config-prettier-scss/-/stylelint-config-prettier-scss-0.0.1.tgz",
+ "integrity": "sha512-lBAYG9xYOh2LeWEPC/64xeUxwOTnQ8nDyBijQoWoJb10/bMGrUwnokpt8jegGck2Vbtxh6XGwH63z5qBcVHreQ==",
+ "dev": true,
+ "dependencies": {
+ "stylelint-config-prettier": ">=9.0.3"
+ },
+ "bin": {
+ "stylelint-config-prettier-scss": "bin/check.js",
+ "stylelint-config-prettier-scss-check": "bin/check.js"
+ },
+ "engines": {
+ "node": ">= 12"
+ },
+ "peerDependencies": {
+ "stylelint": ">=11.0.0"
+ }
+ },
+ "node_modules/stylelint-config-recommended": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-8.0.0.tgz",
+ "integrity": "sha512-IK6dWvE000+xBv9jbnHOnBq01gt6HGVB2ZTsot+QsMpe82doDQ9hvplxfv4YnpEuUwVGGd9y6nbaAnhrjcxhZQ==",
+ "dev": true,
+ "peerDependencies": {
+ "stylelint": "^14.8.0"
+ }
+ },
+ "node_modules/stylelint-config-recommended-scss": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-7.0.0.tgz",
+ "integrity": "sha512-rGz1J4rMAyJkvoJW4hZasuQBB7y9KIrShb20l9DVEKKZSEi1HAy0vuNlR8HyCKy/jveb/BdaQFcoiYnmx4HoiA==",
+ "dev": true,
+ "dependencies": {
+ "postcss-scss": "^4.0.2",
+ "stylelint-config-recommended": "^8.0.0",
+ "stylelint-scss": "^4.0.0"
+ },
+ "peerDependencies": {
+ "stylelint": "^14.4.0"
+ }
+ },
+ "node_modules/stylelint-config-standard": {
+ "version": "26.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-26.0.0.tgz",
+ "integrity": "sha512-hUuB7LaaqM8abvkOO84wh5oYSkpXgTzHu2Zza6e7mY+aOmpNTjoFBRxSLlzY0uAOMWEFx0OMKzr+reG1BUtcqQ==",
+ "dev": true,
+ "dependencies": {
+ "stylelint-config-recommended": "^8.0.0"
+ },
+ "peerDependencies": {
+ "stylelint": "^14.9.0"
+ }
+ },
+ "node_modules/stylelint-config-standard-scss": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-5.0.0.tgz",
+ "integrity": "sha512-zoXLibojHZYPFjtkc4STZtAJ2yGTq3Bb4MYO0oiyO6f/vNxDKRcSDZYoqN260Gv2eD5niQIr1/kr5SXlFj9kcQ==",
+ "dev": true,
+ "dependencies": {
+ "stylelint-config-recommended-scss": "^7.0.0",
+ "stylelint-config-standard": "^26.0.0"
+ },
+ "peerDependencies": {
+ "stylelint": "^14.9.0"
+ }
+ },
+ "node_modules/stylelint-prettier": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-prettier/-/stylelint-prettier-2.0.0.tgz",
+ "integrity": "sha512-jvT3G+9lopkeB0ARmDPszyfaOnvnIF+30QCjZxyt7E6fynI1T9mOKgYDNb9bXX17M7PXMZaX3j/26wqakjp1tw==",
+ "dev": true,
+ "dependencies": {
+ "prettier-linter-helpers": "^1.0.0"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "peerDependencies": {
+ "prettier": ">=2.0.0",
+ "stylelint": ">=14.0.0"
+ }
+ },
+ "node_modules/stylelint-scss": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.3.0.tgz",
+ "integrity": "sha512-GvSaKCA3tipzZHoz+nNO7S02ZqOsdBzMiCx9poSmLlb3tdJlGddEX/8QzCOD8O7GQan9bjsvLMsO5xiw6IhhIQ==",
+ "dev": true,
+ "dependencies": {
+ "lodash": "^4.17.21",
+ "postcss-media-query-parser": "^0.2.3",
+ "postcss-resolve-nested-selector": "^0.1.1",
+ "postcss-selector-parser": "^6.0.6",
+ "postcss-value-parser": "^4.1.0"
+ },
+ "peerDependencies": {
+ "stylelint": "^14.5.1"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/supports-hyperlinks": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
+ "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0",
+ "supports-color": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-hyperlinks/node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-hyperlinks/node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/svg-tags": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",
+ "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=",
+ "dev": true
+ },
+ "node_modules/table": {
+ "version": "6.8.0",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz",
+ "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==",
+ "dev": true,
+ "dependencies": {
+ "ajv": "^8.0.1",
+ "lodash.truncate": "^4.4.2",
+ "slice-ansi": "^4.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/trim-newlines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
+ "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.18.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
+ "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "node_modules/v8-compile-cache": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
+ "dev": true
+ },
+ "node_modules/validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "dependencies": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "node_modules/write-file-atomic": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
+ "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
+ "dev": true,
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.7"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "node_modules/yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
+ }
+ },
+ "dependencies": {
+ "@babel/code-frame": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
+ "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
+ "dev": true,
+ "requires": {
+ "@babel/highlight": "^7.16.7"
+ }
+ },
+ "@babel/helper-validator-identifier": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
+ "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==",
+ "dev": true
+ },
+ "@babel/highlight": {
+ "version": "7.17.9",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.9.tgz",
+ "integrity": "sha512-J9PfEKCbFIv2X5bjTMiZu6Vf341N05QIY+d6FvVKynkG1S7G0j3I0QoRtWIrXhZ+/Nlb5Q0MzqL7TokEJ5BNHg==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-validator-identifier": "^7.16.7",
+ "chalk": "^2.0.0",
+ "js-tokens": "^4.0.0"
+ }
+ },
+ "@csstools/selector-specificity": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz",
+ "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==",
+ "dev": true,
+ "requires": {}
+ },
+ "@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ }
+ },
+ "@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true
+ },
+ "@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ }
+ },
+ "@types/minimist": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz",
+ "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==",
+ "dev": true
+ },
+ "@types/normalize-package-data": {
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
+ "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
+ "dev": true
+ },
+ "@types/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+ "dev": true
+ },
+ "ajv": {
+ "version": "8.11.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true
+ },
+ "ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^1.9.0"
+ }
+ },
+ "array-union": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz",
+ "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==",
+ "dev": true
+ },
+ "arrify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
+ "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
+ "dev": true
+ },
+ "astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true
+ },
+ "balanced-match": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz",
+ "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
+ "dev": true
+ },
+ "brace-expansion": {
+ "version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+ "dev": true,
+ "requires": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ },
+ "dependencies": {
+ "balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true
+ }
+ }
+ },
+ "braces": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
+ "dev": true,
+ "requires": {
+ "fill-range": "^7.0.1"
+ }
+ },
+ "callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "dev": true
+ },
+ "camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
+ },
+ "camelcase-keys": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz",
+ "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.3.1",
+ "map-obj": "^4.0.0",
+ "quick-lru": "^4.0.1"
+ }
+ },
+ "chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ }
+ },
+ "color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dev": true,
+ "requires": {
+ "color-name": "1.1.3"
+ }
+ },
+ "color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
+ "dev": true
+ },
+ "colord": {
+ "version": "2.9.3",
+ "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz",
+ "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==",
+ "dev": true
+ },
+ "concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
+ "dev": true
+ },
+ "cosmiconfig": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
+ "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
+ "dev": true,
+ "requires": {
+ "@types/parse-json": "^4.0.0",
+ "import-fresh": "^3.2.1",
+ "parse-json": "^5.0.0",
+ "path-type": "^4.0.0",
+ "yaml": "^1.10.0"
+ }
+ },
+ "css-functions-list": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz",
+ "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==",
+ "dev": true
+ },
+ "cssesc": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
+ "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
+ "dev": true
+ },
+ "debug": {
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+ "dev": true,
+ "requires": {
+ "ms": "2.1.2"
+ }
+ },
+ "decamelize": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+ "dev": true
+ },
+ "decamelize-keys": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz",
+ "integrity": "sha1-0XGoeTMlKAfrPLYdwcFEXQeN8tk=",
+ "dev": true,
+ "requires": {
+ "decamelize": "^1.1.0",
+ "map-obj": "^1.0.0"
+ },
+ "dependencies": {
+ "map-obj": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
+ "integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
+ "dev": true
+ }
+ }
+ },
+ "dir-glob": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+ "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==",
+ "dev": true,
+ "requires": {
+ "path-type": "^4.0.0"
+ }
+ },
+ "emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
+ "fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true
+ },
+ "fast-diff": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
+ "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
+ "dev": true
+ },
+ "fast-glob": {
+ "version": "3.2.12",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz",
+ "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==",
+ "dev": true,
+ "requires": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.4"
+ }
+ },
+ "fastest-levenshtein": {
+ "version": "1.0.16",
+ "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz",
+ "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==",
+ "dev": true
+ },
+ "fastq": {
+ "version": "1.13.0",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
+ "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
+ "dev": true,
+ "requires": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "file-entry-cache": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
+ "dev": true,
+ "requires": {
+ "flat-cache": "^3.0.4"
+ }
+ },
+ "fill-range": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
+ "dev": true,
+ "requires": {
+ "to-regex-range": "^5.0.1"
+ }
+ },
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "flat-cache": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
+ "dev": true,
+ "requires": {
+ "flatted": "^3.1.0",
+ "rimraf": "^3.0.2"
+ }
+ },
+ "flatted": {
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz",
+ "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
+ "dev": true
+ },
+ "fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
+ "dev": true
+ },
+ "function-bind": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+ "dev": true
+ },
+ "glob": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
+ "dev": true,
+ "requires": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ }
+ },
+ "glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "requires": {
+ "is-glob": "^4.0.1"
+ }
+ },
+ "global-modules": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
+ "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==",
+ "dev": true,
+ "requires": {
+ "global-prefix": "^3.0.0"
+ }
+ },
+ "global-prefix": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz",
+ "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==",
+ "dev": true,
+ "requires": {
+ "ini": "^1.3.5",
+ "kind-of": "^6.0.2",
+ "which": "^1.3.1"
+ }
+ },
+ "globby": {
+ "version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
+ "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==",
+ "dev": true,
+ "requires": {
+ "array-union": "^2.1.0",
+ "dir-glob": "^3.0.1",
+ "fast-glob": "^3.2.9",
+ "ignore": "^5.2.0",
+ "merge2": "^1.4.1",
+ "slash": "^3.0.0"
+ }
+ },
+ "globjoin": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz",
+ "integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=",
+ "dev": true
+ },
+ "hard-rejection": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz",
+ "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==",
+ "dev": true
+ },
+ "has": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+ "dev": true,
+ "requires": {
+ "function-bind": "^1.1.1"
+ }
+ },
+ "has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "dev": true
+ },
+ "hosted-git-info": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "html-tags": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz",
+ "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==",
+ "dev": true
+ },
+ "ignore": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
+ "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
+ "dev": true
+ },
+ "import-fresh": {
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
+ "dev": true,
+ "requires": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "dependencies": {
+ "resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true
+ }
+ }
+ },
+ "import-lazy": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz",
+ "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==",
+ "dev": true
+ },
+ "imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "dev": true
+ },
+ "indent-string": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
+ "dev": true
+ },
+ "inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+ "dev": true,
+ "requires": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "dev": true
+ },
+ "ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "dev": true
+ },
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
+ "dev": true
+ },
+ "is-core-module": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz",
+ "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "dev": true
+ },
+ "is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "requires": {
+ "is-extglob": "^2.1.1"
+ }
+ },
+ "is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "dev": true
+ },
+ "is-plain-obj": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz",
+ "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=",
+ "dev": true
+ },
+ "is-plain-object": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz",
+ "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==",
+ "dev": true
+ },
+ "isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
+ "dev": true
+ },
+ "js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "dev": true
+ },
+ "json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
+ },
+ "json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true
+ },
+ "kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true
+ },
+ "known-css-properties": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz",
+ "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==",
+ "dev": true
+ },
+ "lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true
+ },
+ "lodash.truncate": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
+ "integrity": "sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=",
+ "dev": true
+ },
+ "lru-cache": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
+ "dev": true,
+ "requires": {
+ "yallist": "^4.0.0"
+ }
+ },
+ "map-obj": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz",
+ "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==",
+ "dev": true
+ },
+ "mathml-tag-names": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz",
+ "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==",
+ "dev": true
+ },
+ "meow": {
+ "version": "9.0.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz",
+ "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==",
+ "dev": true,
+ "requires": {
+ "@types/minimist": "^1.2.0",
+ "camelcase-keys": "^6.2.2",
+ "decamelize": "^1.2.0",
+ "decamelize-keys": "^1.1.0",
+ "hard-rejection": "^2.1.0",
+ "minimist-options": "4.1.0",
+ "normalize-package-data": "^3.0.0",
+ "read-pkg-up": "^7.0.1",
+ "redent": "^3.0.0",
+ "trim-newlines": "^3.0.0",
+ "type-fest": "^0.18.0",
+ "yargs-parser": "^20.2.3"
+ }
+ },
+ "merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true
+ },
+ "micromatch": {
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
+ "dev": true,
+ "requires": {
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
+ }
+ },
+ "min-indent": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
+ "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
+ "dev": true
+ },
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
+ "minimist-options": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz",
+ "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==",
+ "dev": true,
+ "requires": {
+ "arrify": "^1.0.1",
+ "is-plain-obj": "^1.1.0",
+ "kind-of": "^6.0.3"
+ }
+ },
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
+ "dev": true
+ },
+ "nanoid": {
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "dev": true
+ },
+ "normalize-package-data": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz",
+ "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^4.0.1",
+ "is-core-module": "^2.5.0",
+ "semver": "^7.3.4",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "dev": true
+ },
+ "once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+ "dev": true,
+ "requires": {
+ "wrappy": "1"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "requires": {
+ "callsites": "^3.0.0"
+ }
+ },
+ "parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "dev": true,
+ "requires": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ }
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ },
+ "path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "dev": true
+ },
+ "path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
+ },
+ "path-type": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
+ "dev": true
+ },
+ "picocolors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
+ "dev": true
+ },
+ "picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true
+ },
+ "postcss": {
+ "version": "8.4.18",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz",
+ "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==",
+ "dev": true,
+ "requires": {
+ "nanoid": "^3.3.4",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
+ }
+ },
+ "postcss-media-query-parser": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
+ "integrity": "sha1-J7Ocb02U+Bsac7j3Y1HGCeXO8kQ=",
+ "dev": true
+ },
+ "postcss-resolve-nested-selector": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz",
+ "integrity": "sha1-Kcy8fDfe36wwTp//C/FZaz9qDk4=",
+ "dev": true
+ },
+ "postcss-safe-parser": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz",
+ "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "postcss-scss": {
+ "version": "4.0.4",
+ "resolved": "https://registry.npmjs.org/postcss-scss/-/postcss-scss-4.0.4.tgz",
+ "integrity": "sha512-aBBbVyzA8b3hUL0MGrpydxxXKXFZc5Eqva0Q3V9qsBOLEMsjb6w49WfpsoWzpEgcqJGW4t7Rio8WXVU9Gd8vWg==",
+ "dev": true,
+ "requires": {}
+ },
+ "postcss-selector-parser": {
+ "version": "6.0.10",
+ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
+ "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
+ "dev": true,
+ "requires": {
+ "cssesc": "^3.0.0",
+ "util-deprecate": "^1.0.2"
+ }
+ },
+ "postcss-value-parser": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz",
+ "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==",
+ "dev": true
+ },
+ "prettier": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
+ "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
+ "dev": true
+ },
+ "prettier-linter-helpers": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
+ "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
+ "dev": true,
+ "requires": {
+ "fast-diff": "^1.1.2"
+ }
+ },
+ "punycode": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+ "dev": true
+ },
+ "queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true
+ },
+ "quick-lru": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz",
+ "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==",
+ "dev": true
+ },
+ "read-pkg": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
+ "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
+ "dev": true,
+ "requires": {
+ "@types/normalize-package-data": "^2.4.0",
+ "normalize-package-data": "^2.5.0",
+ "parse-json": "^5.0.0",
+ "type-fest": "^0.6.0"
+ },
+ "dependencies": {
+ "hosted-git-info": {
+ "version": "2.8.9",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
+ "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
+ "dev": true
+ },
+ "normalize-package-data": {
+ "version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
+ "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
+ "dev": true,
+ "requires": {
+ "hosted-git-info": "^2.1.4",
+ "resolve": "^1.10.0",
+ "semver": "2 || 3 || 4 || 5",
+ "validate-npm-package-license": "^3.0.1"
+ }
+ },
+ "semver": {
+ "version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+ "dev": true
+ },
+ "type-fest": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
+ "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
+ "dev": true
+ }
+ }
+ },
+ "read-pkg-up": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
+ "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
+ "dev": true,
+ "requires": {
+ "find-up": "^4.1.0",
+ "read-pkg": "^5.2.0",
+ "type-fest": "^0.8.1"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
+ "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
+ "dev": true
+ }
+ }
+ },
+ "redent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz",
+ "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==",
+ "dev": true,
+ "requires": {
+ "indent-string": "^4.0.0",
+ "strip-indent": "^3.0.0"
+ }
+ },
+ "require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "dev": true
+ },
+ "resolve": {
+ "version": "1.22.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
+ "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
+ "dev": true,
+ "requires": {
+ "is-core-module": "^2.8.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ }
+ },
+ "resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "dev": true
+ },
+ "reusify": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
+ "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
+ "dev": true
+ },
+ "rimraf": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+ "dev": true,
+ "requires": {
+ "glob": "^7.1.3"
+ }
+ },
+ "run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "requires": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "semver": {
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "dev": true,
+ "requires": {
+ "lru-cache": "^6.0.0"
+ }
+ },
+ "signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "dev": true
+ },
+ "slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "dev": true
+ },
+ "slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "dependencies": {
+ "ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "requires": {
+ "color-convert": "^2.0.1"
+ }
+ },
+ "color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "dev": true,
+ "requires": {
+ "color-name": "~1.1.4"
+ }
+ },
+ "color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
+ }
+ }
+ },
+ "source-map-js": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
+ "dev": true
+ },
+ "spdx-correct": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
+ "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
+ "dev": true,
+ "requires": {
+ "spdx-expression-parse": "^3.0.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-exceptions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
+ "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
+ "dev": true
+ },
+ "spdx-expression-parse": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
+ "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
+ "dev": true,
+ "requires": {
+ "spdx-exceptions": "^2.1.0",
+ "spdx-license-ids": "^3.0.0"
+ }
+ },
+ "spdx-license-ids": {
+ "version": "3.0.11",
+ "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz",
+ "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "requires": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^5.0.1"
+ }
+ },
+ "strip-indent": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
+ "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
+ "dev": true,
+ "requires": {
+ "min-indent": "^1.0.0"
+ }
+ },
+ "style-search": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz",
+ "integrity": "sha1-eVjHk+R+MuB9K1yv5cC/jhLneQI=",
+ "dev": true
+ },
+ "stylelint": {
+ "version": "14.14.0",
+ "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.14.0.tgz",
+ "integrity": "sha512-yUI+4xXfPHVnueYddSQ/e1GuEA/2wVhWQbGj16AmWLtQJtn28lVxfS4b0CsWyVRPgd3Auzi0NXOthIEUhtQmmA==",
+ "dev": true,
+ "requires": {
+ "@csstools/selector-specificity": "^2.0.2",
+ "balanced-match": "^2.0.0",
+ "colord": "^2.9.3",
+ "cosmiconfig": "^7.0.1",
+ "css-functions-list": "^3.1.0",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.2.12",
+ "fastest-levenshtein": "^1.0.16",
+ "file-entry-cache": "^6.0.1",
+ "global-modules": "^2.0.0",
+ "globby": "^11.1.0",
+ "globjoin": "^0.1.4",
+ "html-tags": "^3.2.0",
+ "ignore": "^5.2.0",
+ "import-lazy": "^4.0.0",
+ "imurmurhash": "^0.1.4",
+ "is-plain-object": "^5.0.0",
+ "known-css-properties": "^0.25.0",
+ "mathml-tag-names": "^2.1.3",
+ "meow": "^9.0.0",
+ "micromatch": "^4.0.5",
+ "normalize-path": "^3.0.0",
+ "picocolors": "^1.0.0",
+ "postcss": "^8.4.17",
+ "postcss-media-query-parser": "^0.2.3",
+ "postcss-resolve-nested-selector": "^0.1.1",
+ "postcss-safe-parser": "^6.0.0",
+ "postcss-selector-parser": "^6.0.10",
+ "postcss-value-parser": "^4.2.0",
+ "resolve-from": "^5.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1",
+ "style-search": "^0.1.0",
+ "supports-hyperlinks": "^2.3.0",
+ "svg-tags": "^1.0.0",
+ "table": "^6.8.0",
+ "v8-compile-cache": "^2.3.0",
+ "write-file-atomic": "^4.0.2"
+ }
+ },
+ "stylelint-config-prettier": {
+ "version": "9.0.3",
+ "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz",
+ "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==",
+ "dev": true,
+ "requires": {}
+ },
+ "stylelint-config-prettier-scss": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/stylelint-config-prettier-scss/-/stylelint-config-prettier-scss-0.0.1.tgz",
+ "integrity": "sha512-lBAYG9xYOh2LeWEPC/64xeUxwOTnQ8nDyBijQoWoJb10/bMGrUwnokpt8jegGck2Vbtxh6XGwH63z5qBcVHreQ==",
+ "dev": true,
+ "requires": {
+ "stylelint-config-prettier": ">=9.0.3"
+ }
+ },
+ "stylelint-config-recommended": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-8.0.0.tgz",
+ "integrity": "sha512-IK6dWvE000+xBv9jbnHOnBq01gt6HGVB2ZTsot+QsMpe82doDQ9hvplxfv4YnpEuUwVGGd9y6nbaAnhrjcxhZQ==",
+ "dev": true,
+ "requires": {}
+ },
+ "stylelint-config-recommended-scss": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-7.0.0.tgz",
+ "integrity": "sha512-rGz1J4rMAyJkvoJW4hZasuQBB7y9KIrShb20l9DVEKKZSEi1HAy0vuNlR8HyCKy/jveb/BdaQFcoiYnmx4HoiA==",
+ "dev": true,
+ "requires": {
+ "postcss-scss": "^4.0.2",
+ "stylelint-config-recommended": "^8.0.0",
+ "stylelint-scss": "^4.0.0"
+ }
+ },
+ "stylelint-config-standard": {
+ "version": "26.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-26.0.0.tgz",
+ "integrity": "sha512-hUuB7LaaqM8abvkOO84wh5oYSkpXgTzHu2Zza6e7mY+aOmpNTjoFBRxSLlzY0uAOMWEFx0OMKzr+reG1BUtcqQ==",
+ "dev": true,
+ "requires": {
+ "stylelint-config-recommended": "^8.0.0"
+ }
+ },
+ "stylelint-config-standard-scss": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-config-standard-scss/-/stylelint-config-standard-scss-5.0.0.tgz",
+ "integrity": "sha512-zoXLibojHZYPFjtkc4STZtAJ2yGTq3Bb4MYO0oiyO6f/vNxDKRcSDZYoqN260Gv2eD5niQIr1/kr5SXlFj9kcQ==",
+ "dev": true,
+ "requires": {
+ "stylelint-config-recommended-scss": "^7.0.0",
+ "stylelint-config-standard": "^26.0.0"
+ }
+ },
+ "stylelint-prettier": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/stylelint-prettier/-/stylelint-prettier-2.0.0.tgz",
+ "integrity": "sha512-jvT3G+9lopkeB0ARmDPszyfaOnvnIF+30QCjZxyt7E6fynI1T9mOKgYDNb9bXX17M7PXMZaX3j/26wqakjp1tw==",
+ "dev": true,
+ "requires": {
+ "prettier-linter-helpers": "^1.0.0"
+ }
+ },
+ "stylelint-scss": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-4.3.0.tgz",
+ "integrity": "sha512-GvSaKCA3tipzZHoz+nNO7S02ZqOsdBzMiCx9poSmLlb3tdJlGddEX/8QzCOD8O7GQan9bjsvLMsO5xiw6IhhIQ==",
+ "dev": true,
+ "requires": {
+ "lodash": "^4.17.21",
+ "postcss-media-query-parser": "^0.2.3",
+ "postcss-resolve-nested-selector": "^0.1.1",
+ "postcss-selector-parser": "^6.0.6",
+ "postcss-value-parser": "^4.1.0"
+ }
+ },
+ "supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^3.0.0"
+ }
+ },
+ "supports-hyperlinks": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz",
+ "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0",
+ "supports-color": "^7.0.0"
+ },
+ "dependencies": {
+ "has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "dev": true
+ },
+ "supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "dev": true,
+ "requires": {
+ "has-flag": "^4.0.0"
+ }
+ }
+ }
+ },
+ "supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true
+ },
+ "svg-tags": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz",
+ "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=",
+ "dev": true
+ },
+ "table": {
+ "version": "6.8.0",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz",
+ "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==",
+ "dev": true,
+ "requires": {
+ "ajv": "^8.0.1",
+ "lodash.truncate": "^4.4.2",
+ "slice-ansi": "^4.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
+ }
+ },
+ "to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "dev": true,
+ "requires": {
+ "is-number": "^7.0.0"
+ }
+ },
+ "trim-newlines": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz",
+ "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==",
+ "dev": true
+ },
+ "type-fest": {
+ "version": "0.18.1",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz",
+ "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==",
+ "dev": true
+ },
+ "uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "util-deprecate": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
+ "dev": true
+ },
+ "v8-compile-cache": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
+ "dev": true
+ },
+ "validate-npm-package-license": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
+ "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
+ "dev": true,
+ "requires": {
+ "spdx-correct": "^3.0.0",
+ "spdx-expression-parse": "^3.0.0"
+ }
+ },
+ "which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "requires": {
+ "isexe": "^2.0.0"
+ }
+ },
+ "wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
+ "dev": true
+ },
+ "write-file-atomic": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
+ "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
+ "dev": true,
+ "requires": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.7"
+ }
+ },
+ "yallist": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
+ },
+ "yaml": {
+ "version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
+ "dev": true
+ },
+ "yargs-parser": {
+ "version": "20.2.9",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+ "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+ "dev": true
+ }
+ }
+}
--- /dev/null
+{
+ "name": "Aurum Pages",
+ "version": "0.0.1",
+ "description": "Aurum is a UI automation framework without UI Toolkit dependency.",
+ "repository": "https://github.sec.samsung.net/tizen/aurum",
+ "license": "Apache",
+ "devDependencies": {
+ "prettier": "^2.7.1",
+ "stylelint": "^14.14.0",
+ "stylelint-config-prettier-scss": "0.0.1",
+ "stylelint-config-standard-scss": "^5.0.0",
+ "stylelint-prettier": "^2.0.0"
+ },
+ "scripts": {
+ "test": "stylelint '**/*.scss'",
+ "format": "prettier --write '**/*.{scss,js,json}'",
+ "stylelint-check": "stylelint-config-prettier-check"
+ }
+}
--- /dev/null
+syntax = "proto3";
+package aurum;
+
+/**
+ * @page protocol Protocol
+ * Here is a page with some descriptions about protocol explained
+ */
+service Bootstrap {
+ rpc killServer(ReqEmpty) returns (RspEmpty) {}
+ rpc findElement(ReqFindElement) returns (RspFindElement) {}
+ rpc getValue(ReqGetValue) returns (RspGetValue) {}
+ rpc setValue(ReqSetValue) returns (RspSetValue) {}
+ rpc getSize(ReqGetSize) returns (RspGetSize) {}
+ rpc clear(ReqClear) returns (RspClear) {}
+ rpc getAttribute(ReqGetAttribute) returns (RspGetAttribute) {}
+ rpc click(ReqClick) returns (RspClick) {}
+ rpc longClick(ReqClick) returns (RspClick) {}
+ rpc flick(ReqFlick) returns (RspFlick) {}
+ rpc touchDown(ReqTouchDown) returns (RspTouchDown) {}
+ rpc touchMove(ReqTouchMove) returns (RspTouchMove) {}
+ rpc touchUp(ReqTouchUp) returns (RspTouchUp) {}
+ rpc installApp(stream ReqInstallApp) returns (RspInstallApp) {}
+ rpc removeApp(ReqRemoveApp) returns (RspRemoveApp) {}
+ rpc getAppInfo(ReqGetAppInfo) returns (RspGetAppInfo) {}
+ rpc launchApp(ReqLaunchApp) returns (RspLaunchApp) {}
+ rpc closeApp(ReqCloseApp) returns (RspCloseApp) {}
+ rpc getDeviceTime(ReqGetDeviceTime) returns (RspGetDeviceTime) {}
+ rpc getLocation(ReqGetLocation) returns (RspGetLocation) {}
+ rpc sendKey(ReqKey) returns (RspKey) {}
+ rpc takeScreenshot(ReqTakeScreenshot) returns (stream RspTakeScreenshot) {}
+ rpc dumpObjectTree(ReqDumpObjectTree) returns (RspDumpObjectTree) {}
+ rpc getScreenSize(ReqGetScreenSize) returns (RspGetScreenSize) {}
+ rpc actionAndWaitEvent(ReqActionAndWaitEvent) returns (RspActionAndWaitEvent) {}
+ rpc setFocus(ReqSetFocus) returns (RspSetFocus) {}
+ rpc findElements(ReqFindElements) returns (RspFindElements) {}
+ rpc getActiveAppToolkitName(ReqGetActiveAppToolkitName) returns (RspGetActiveAppToolkitName) {}
+ rpc enableScreenAnalyzer(ReqEnableScreenAnalyzer) returns (RspEnableScreenAnalyzer) {}
+ rpc getTextMinBoundingRect(ReqGetTextMinBoundingRect) returns (RspGetTextMinBoundingRect) {}
+ rpc setTimeout(ReqSetTimeout) returns (RspSetTimeout) {}
+}
+
+// ------------------------------------ //
+
+enum RspStatus {
+ OK = 0;
+ NA = 1;
+ ERROR = 2;
+}
+
+enum ParamType {
+ STRING = 0;
+ INT = 1;
+ DOUBLE = 2;
+ BOOL = 3;
+}
+
+message Element {
+ string elementId = 1;
+ repeated Element child = 2;
+
+ Rect geometry = 3;
+ Rect windowRelativeGeometry = 4;
+
+ string widgetType = 5;
+ string widgetStyle = 6;
+
+ string text = 7;
+ string xpath = 8;
+ string ocrText = 9;
+ string automationId = 10;
+ string package = 11;
+ string role = 12;
+ string toolkit = 13;
+
+ bool isChecked = 14;
+ bool isCheckable = 15;
+ bool isClickable = 16;
+ bool isEnabled = 17;
+ bool isFocused = 18;
+ bool isFocusable = 19;
+ bool isScrollable = 20;
+ bool isSelected = 21;
+ bool isShowing = 22;
+ bool isActive = 23;
+ bool isVisible = 24;
+ bool isSelectable = 25;
+ bool isHighlightable = 26;
+
+ double minValue = 27;
+ double maxValue = 28;
+ double value = 29;
+ double increment = 30;
+}
+
+message Point {
+ int32 x = 1;
+ int32 y = 2;
+}
+
+message Rect {
+ int32 x = 1;
+ int32 y = 2;
+ int32 width = 3;
+ int32 height = 4;
+}
+
+message LaunchData {
+ string key = 1;
+ string value = 2;
+}
+
+// ------------------------------------ //
+
+message ReqFindElement {
+ oneof _elementid {
+ string elementId = 1;
+ }
+
+ oneof _automationid {
+ string automationId = 2;
+ }
+
+ oneof _textfield {
+ string textField = 3;
+ }
+
+ oneof _widgettype {
+ string widgetType = 4;
+ }
+
+ oneof _widgetstyle {
+ string widgetStyle = 5;
+ }
+
+ oneof _ischecked {
+ bool isChecked = 6;
+ }
+
+ oneof _ischeckable {
+ bool isCheckable= 7;
+ }
+
+ oneof _isclickable {
+ bool isClickable = 8;
+ }
+
+ oneof _isenabled {
+ bool isEnabled = 9;
+ }
+
+ oneof _isfocused {
+ bool isFocused = 10;
+ }
+
+ oneof _isfocusable {
+ bool isFocusable = 11;
+ }
+
+ oneof _isscrollable {
+ bool isScrollable = 12;
+ }
+
+ oneof _isselected {
+ bool isSelected = 13;
+ }
+
+ oneof _isshowing {
+ bool isShowing = 14;
+ }
+
+ oneof _isactive {
+ bool isActive = 15;
+ }
+
+ oneof _mindepth {
+ int32 minDepth = 16;
+ }
+
+ oneof _maxdepth {
+ int32 maxDepth = 17;
+ }
+
+ oneof _packagename {
+ string packageName = 18;
+ }
+
+ oneof _textpartialmatch {
+ string textPartialMatch = 19;
+ }
+
+ oneof _xpath {
+ string xpath = 20;
+ }
+
+ oneof _ocrtext {
+ string ocrText = 21;
+ }
+
+ oneof _geometry {
+ Rect geometry = 22;
+ }
+ oneof _isvisible {
+ bool isVisible = 23;
+ }
+
+ oneof _isselectable {
+ bool isSelectable = 24;
+ }
+
+ oneof _ishighlightable {
+ bool isHighlightable = 25;
+ }
+
+ repeated ReqFindElement children = 26;
+}
+
+message RspFindElement {
+ RspStatus status = 1;
+ Element element = 2;
+}
+
+message ReqFindElements {
+ oneof _elementid {
+ string elementId = 1;
+ }
+
+ oneof _automationid {
+ string automationId = 2;
+ }
+
+ oneof _textfield {
+ string textField = 3;
+ }
+
+ oneof _widgettype {
+ string widgetType = 4;
+ }
+
+ oneof _widgetstyle {
+ string widgetStyle = 5;
+ }
+
+ oneof _ischecked {
+ bool isChecked = 6;
+ }
+
+ oneof _ischeckable {
+ bool isCheckable= 7;
+ }
+
+ oneof _isclickable {
+ bool isClickable = 8;
+ }
+
+ oneof _isenabled {
+ bool isEnabled = 9;
+ }
+
+ oneof _isfocused {
+ bool isFocused = 10;
+ }
+
+ oneof _isfocusable {
+ bool isFocusable = 11;
+ }
+
+ oneof _isscrollable {
+ bool isScrollable = 12;
+ }
+
+ oneof _isselected {
+ bool isSelected = 13;
+ }
+
+ oneof _isshowing {
+ bool isShowing = 14;
+ }
+
+ oneof _isactive {
+ bool isActive = 15;
+ }
+
+ oneof _mindepth {
+ int32 minDepth = 16;
+ }
+
+ oneof _maxdepth {
+ int32 maxDepth = 17;
+ }
+
+ oneof _packagename {
+ string packageName = 18;
+ }
+
+ oneof _textpartialmatch {
+ string textPartialMatch = 19;
+ }
+
+ oneof _xpath {
+ string xpath = 20;
+ }
+
+ oneof _ocrtext {
+ string ocrText = 21;
+ }
+
+ oneof _geometry {
+ Rect geometry = 22;
+ }
+
+ oneof _isvisible {
+ bool isVisible = 23;
+ }
+
+ oneof _isselectable {
+ bool isSelectable = 24;
+ }
+
+ oneof _ishighlightable {
+ bool isHighlightable = 25;
+ }
+
+ repeated ReqFindElements children = 26;
+}
+
+message RspFindElements {
+ RspStatus status = 1;
+ repeated Element elements = 2;
+}
+
+// ------------------------------------ //
+
+message ReqGetValue {
+ string elementId = 1;
+ ParamType type = 2;
+ // TODO : text, widgetstyle, widgettype, automationid
+}
+message RspGetValue {
+ RspStatus status = 1;
+ ParamType type = 2;
+ oneof params {
+ string stringValue = 3;
+ int32 intValue = 4;
+ double doubleValue = 5;
+ bool boolValue = 6;
+ }
+}
+
+message ReqSetValue {
+ string elementId = 1;
+ ParamType type = 2;
+ oneof params {
+ string stringValue = 3;
+ int32 intValue = 4;
+ double doubleValue = 5;
+ bool boolValue = 6;
+ }
+}
+message RspSetValue {
+ RspStatus status = 1;
+}
+
+message ReqGetSize{
+ enum CoordType {
+ SCREEN = 0;
+ WINDOW = 1;
+ }
+ CoordType type = 1;
+ string elementId = 2;
+}
+
+message RspGetSize{
+ RspStatus status = 1;
+ Rect size = 2;
+}
+
+message ReqClear{
+ string elementId = 1;
+}
+message RspClear{
+ RspStatus status = 1;
+}
+
+message ReqGetAttribute {
+ enum RequestType {
+ VISIBLE = 0;
+ FOCUSABLE = 1;
+ FOCUSED = 2;
+ ENABLED = 3;
+ CLICKABLE = 4;
+ SCROLLABLE = 5;
+ CHECKABLE = 6;
+ CHECKED = 7;
+ SELECTED = 8;
+ SELECTABLE = 9;
+ SHOWING = 10;
+ ACTIVE = 11;
+ }
+ string elementId = 1;
+ RequestType attribute = 2;
+}
+message RspGetAttribute {
+ RspStatus status = 1;
+ bool boolValue = 2;
+}
+
+// ------------------------------------ //
+
+message ReqClick{
+ enum RequestType {
+ ELEMENTID = 0;
+ COORD = 1;
+ ATSPI = 2;
+ }
+ RequestType type = 1;
+ oneof params {
+ string elementId = 2;
+ Point coordination = 3;
+ }
+}
+message RspClick{
+ RspStatus status = 1;
+}
+
+message ReqFlick{
+ Point startPoint = 1;
+ Point endPoint = 2;
+ int32 durationMs = 3;
+}
+message RspFlick{
+ RspStatus status = 1;
+}
+
+message ReqTouchDown{
+ Point coordination = 1;
+}
+message RspTouchDown{
+ RspStatus status = 1;
+ int32 seqId = 2;
+}
+
+message ReqTouchMove{
+ int32 seqId = 1;
+ Point coordination = 2;
+}
+message RspTouchMove{
+ RspStatus status = 1;
+}
+
+message ReqTouchUp{
+ int32 seqId = 1;
+ Point coordination = 2;
+}
+message RspTouchUp{
+ RspStatus status = 1;
+}
+
+// ------------------------------------ //
+
+message ReqInstallApp{
+ bytes package = 1;
+}
+message RspInstallApp{
+ RspStatus status = 1;
+}
+
+message ReqRemoveApp{
+ string packageName = 1;
+}
+message RspRemoveApp{
+ RspStatus status = 1;
+}
+
+message ReqGetAppInfo{
+ string packageName = 1;
+}
+message RspGetAppInfo {
+ RspStatus status = 1;
+ bool isInstalled = 2;
+ bool isRunning = 3;
+ bool isFocused = 4;
+}
+
+message ReqLaunchApp{
+ string packageName = 1;
+ repeated LaunchData data = 2;
+}
+message RspLaunchApp{
+ RspStatus status = 1;
+}
+
+message ReqCloseApp{
+ string packageName = 1;
+}
+message RspCloseApp{
+ RspStatus status = 1;
+}
+
+// ------------------------------------ //
+
+message ReqGetDeviceTime{
+ enum TimeType {
+ WALLCLOCK= 0;
+ SYSTEM = 1;
+ }
+ TimeType type = 1;
+}
+message RspGetDeviceTime{
+ RspStatus status = 1;
+ int64 timestampUTC = 2;
+ string localeDatetime = 3;
+}
+
+message ReqGetLocation{
+}
+message RspGetLocation{
+ RspStatus status = 1;
+ double alt = 2;
+ double lat = 3;
+}
+
+message ReqKey{
+ enum KeyType{
+ BACK = 0;
+ MENU = 1;
+ HOME = 2;
+ VOLUP = 3;
+ VOLDOWN = 4;
+ POWER = 5;
+ XF86 = 7;
+ WHEELUP = 8;
+ WHEELDOWN = 9;
+ }
+ enum KeyActionType{
+ STROKE = 0;
+ LONG_STROKE = 1;
+ PRESS = 2;
+ RELEASE = 3;
+ REPEAT = 4;
+ }
+ KeyType type = 1;
+ KeyActionType actionType = 2;
+ string XF86keyCode = 3;
+ int32 durationMs = 4;
+ int32 intervalMs = 5;
+}
+message RspKey{
+ RspStatus status = 1;
+}
+
+message ReqTakeScreenshot{
+}
+message RspTakeScreenshot{
+ bytes image = 1;
+}
+
+// ------------------------------------ //
+
+message ReqEmpty {
+}
+message RspEmpty {
+}
+
+// ------------------------------------ //
+
+message ReqDumpObjectTree {
+ string elementId = 1;
+}
+
+message RspDumpObjectTree {
+ RspStatus status = 1;
+ repeated Element roots = 2;
+}
+
+message ReqGetScreenSize {
+}
+
+message RspGetScreenSize {
+ RspStatus status = 1;
+ Rect size = 2;
+}
+
+message ReqActionAndWaitEvent {
+ enum ActionType{
+ CLICK = 0;
+ KEY = 1;
+ FOCUS = 2;
+ }
+ enum EventType {
+ EVENT_WINDOW_ACTIVATE = 0;
+ EVENT_WINDOW_DEACTIVATE = 1;
+ EVENT_STATE_CHANGED_FOCUSED = 2;
+ }
+ ActionType type = 1;
+ oneof params {
+ string elementId = 2;
+ string XF86keyCode = 3;
+ }
+ EventType eventType = 4;
+ int32 timeoutMs = 5;
+ string packageName = 6;
+}
+
+message RspActionAndWaitEvent {
+ RspStatus status = 1;
+}
+
+message ReqSetFocus {
+ string elementId = 1;
+}
+
+message RspSetFocus {
+ RspStatus status = 1;
+}
+
+message ReqGetActiveAppToolkitName {
+}
+
+message RspGetActiveAppToolkitName {
+ RspStatus status = 1;
+ string toolkitName = 2;
+}
+
+message ReqEnableScreenAnalyzer {
+ bool enable = 1;
+ string serverIp = 2;
+}
+
+message RspEnableScreenAnalyzer {
+ RspStatus status = 1;
+}
+
+message ReqGetTextMinBoundingRect {
+ string elementId = 1;
+}
+
+message RspGetTextMinBoundingRect {
+ RspStatus status = 1;
+ Rect size = 2;
+}
+
+message ReqSetTimeout {
+ int32 timeout = 1;
+}
+
+message RspSetTimeout {
+ RspStatus status = 1;
+}