diff --git a/.appveyor.yml b/.appveyor.yml
deleted file mode 100644
index 575abc2..0000000
--- a/.appveyor.yml
+++ /dev/null
@@ -1,91 +0,0 @@
-build: false
-clone_folder: c:\projects\wmi-scripting
-
-init:
-  - SET COMPOSER_NO_INTERACTION=1
-  - SET ANSICON=121x90 (121x90)
-  - REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Command Processor" /v DelayedExpansion /t REG_DWORD /d 1 /f
-
-environment:
-  DEPLOY_DOCS: "false"
-  matrix:
-    - PHP_VERSION: "7.1.25"
-      PHP_DIR: "php71"
-      XDEBUG: "https://xdebug.org/files/php_xdebug-2.8.0beta1-7.1-vc14-nts-x86_64.dll"
-
-    - PHP_VERSION: "7.2.20"
-      PHP_DIR: "php72"
-      XDEBUG: "https://xdebug.org/files/php_xdebug-2.8.0beta1-7.2-vc15-nts-x86_64.dll"
-
-    - PHP_VERSION: "7.3.8"
-      PHP_DIR: "php73"
-      XDEBUG: "https://xdebug.org/files/php_xdebug-2.8.0beta1-7.3-vc15-nts-x86_64.dll"
-      DEPLOY_DOCS: "true"
-
-matrix:
-  fast_finish: true
-
-cache:
-  - composer.phar
-  - ocular.phar
-  - node_modules -> package.json
-  - c:\projects\wmi-scripting\vendor -> composer.json
-  - c:\tools\%PHP_DIR%
-
-install:
-  - SET PATH=c:\tools\%PHP_DIR%;%PATH%
-  - IF NOT EXIST c:\tools\%PHP_DIR%\php.exe (
-        cinst -y php -i --version %PHP_VERSION% &&
-        cd c:\tools\%PHP_DIR% &&
-        echo extension_dir=ext >> c:\tools\%PHP_DIR%\php.ini &&
-        echo extension=php_openssl.dll >> c:\tools\%PHP_DIR%\php.ini &&
-        echo extension=php_curl.dll >> c:\tools\%PHP_DIR%\php.ini &&
-        echo extension=php_mbstring.dll >> c:\tools\%PHP_DIR%\php.ini &&
-        echo extension=php_pdo_mysql.dll >> c:\tools\%PHP_DIR%\php.ini &&
-        echo extension=php_pdo_sqlite.dll >> c:\tools\%PHP_DIR%\php.ini &&
-        echo extension=php_fileinfo.dll >> c:\tools\%PHP_DIR%\php.ini &&
-        echo extension=php_gd2.dll >> c:\tools\%PHP_DIR%\php.ini &&
-        echo extension=php_ftp.dll >> c:\tools\%PHP_DIR%\php.ini &&
-        echo extension=php_com_dotnet.dll >> c:\tools\%PHP_DIR%\php.ini &&
-        echo memory_limit=256M >> c:\tools\%PHP_DIR%\php.ini &&
-        echo curl.cainfo=C:\tools\cacert.pem >> c:\tools\%PHP_DIR%\php.ini
-    )
-  - cd c:\tools
-  - appveyor DownloadFile https://curl.haxx.se/ca/cacert.pem
-
-  - cd c:\projects\wmi-scripting
-
-  - IF "%DEPLOY_DOCS%" == "true" (
-      powershell -command "&{
-        $fileContent = \"-----BEGIN RSA PRIVATE KEY-----`n\";
-        $fileContent += $env:priv_key.Replace(' ', \"`n\");
-        $fileContent += \"`n-----END RSA PRIVATE KEY-----`n\";
-        Set-Content $env:userprofile\.ssh\id_rsa $fileContent }" &&
-      git submodule update --init --recursive &&
-      git config --global user.email "%GIT_EMAIL%" &&
-      git config --global user.name "%GIT_USER%" &&
-      yarn install &&
-      yarn docs:deploy:windows:ci
-    )
-
-  - IF NOT EXIST composer.phar (appveyor DownloadFile https://github.com/composer/composer/releases/download/1.9.0/composer.phar)
-  - php composer.phar self-update
-  - php composer.phar update --no-interaction --prefer-dist --no-suggest --ansi --no-progress
-
-before_test:
-  - IF NOT EXIST c:\tools\%PHP_DIR%\ext\xdebug.dll (appveyor DownloadFile %XDEBUG% -Filename c:\tools\%PHP_DIR%\ext\xdebug.dll)
-  - copy /Y c:\tools\%PHP_DIR%\php.ini c:\tools\%PHP_DIR%\php.ini.base
-  - echo zend_extension=xdebug.dll >> c:\tools\%PHP_DIR%\php.ini
-
-test_script:
-  - SET X=0
-  - vendor\bin\phpunit --coverage-clover coverage.clover --configuration phpunit.xml --log-junit junit-results.xml || SET X=!errorlevel!
-  - exit %X%
-
-after_test:
-  - ps: |
-      $wc = New-Object 'System.Net.WebClient'
-      $wc.UploadFile("https://ci.appveyor.com/api/testresults/junit/$($env:APPVEYOR_JOB_ID)", (Resolve-Path .\junit-results.xml))
-  - copy /Y c:\tools\%PHP_DIR%\php.ini.base c:\tools\%PHP_DIR%\php.ini
-  - IF NOT EXIST ocular.phar (appveyor DownloadFile https://github.com/scrutinizer-ci/ocular/releases/download/1.6.0/ocular.phar)
-  - php ocular.phar code-coverage:upload --format=php-clover coverage.clover
\ No newline at end of file
diff --git a/.gitattributes b/.gitattributes
deleted file mode 100644
index 9f444a4..0000000
--- a/.gitattributes
+++ /dev/null
@@ -1 +0,0 @@
-tests/ export-ignore
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 269a8a8..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-/.idea
-/vendor
-/node_modules
-.phpunit.result.cache
-composer.lock
-docs/.vuepress/.temp
-/test.php
\ No newline at end of file
diff --git a/.scrutinizer.yml b/.scrutinizer.yml
deleted file mode 100644
index 59d9d17..0000000
--- a/.scrutinizer.yml
+++ /dev/null
@@ -1,152 +0,0 @@
-tools:
-  external_code_coverage:
-    timeout: 300
-    runs: 1
-
-build:
-  dependencies:
-    override:
-      - command: composer install --ignore-platform-reqs --no-interaction --prefer-dist --no-suggest
-  nodes:
-    analysis:
-      project_setup:
-        override:
-          - 'true'
-      tests:
-        override:
-          - vendor/bin/phpunit --configuration phpunit.xml --exclude-group uses_real_com
-          - php-scrutinizer-run
-
-filter:
-  excluded_paths:
-    - 'tests/*'
-
-checks:
-  php:
-    excluded_dependencies:
-      - ext-com_dotnet
-      - com_dotnet
-
-coding_style:
-  php:
-    indentation:
-      general:
-        use_tabs: false
-        size: 4
-      switch:
-        indent_case: true
-    spaces:
-      general:
-        linefeed_character: newline
-      before_parentheses:
-        function_declaration: false
-        closure_definition: true
-        function_call: false
-        if: true
-        for: true
-        while: true
-        switch: true
-        catch: true
-        array_initializer: false
-      around_operators:
-        assignment: true
-        logical: true
-        equality: true
-        relational: true
-        bitwise: true
-        additive: true
-        multiplicative: true
-        shift: true
-        unary_additive: false
-        concatenation: true
-        negation: false
-      before_left_brace:
-        class: true
-        function: true
-        if: true
-        else: true
-        for: true
-        while: true
-        do: true
-        switch: true
-        try: true
-        catch: true
-        finally: true
-      before_keywords:
-        else: true
-        while: true
-        catch: true
-        finally: true
-      within:
-        brackets: false
-        array_initializer: false
-        grouping: false
-        function_call: false
-        function_declaration: false
-        if: false
-        for: false
-        while: false
-        switch: false
-        catch: false
-        type_cast: false
-      ternary_operator:
-        before_condition: true
-        after_condition: true
-        before_alternative: true
-        after_alternative: true
-        in_short_version: false
-      other:
-        before_comma: false
-        after_comma: true
-        before_semicolon: false
-        after_semicolon: true
-        after_type_cast: true
-    braces:
-      classes_functions:
-        class: undefined
-        function: undefined
-        closure: undefined
-      if:
-        opening: undefined
-        always: true
-        else_on_new_line: false
-      for:
-        opening: undefined
-        always: true
-      while:
-        opening: undefined
-        always: true
-      do_while:
-        opening: undefined
-        always: true
-        while_on_new_line: false
-      switch:
-        opening: undefined
-      try:
-        opening: undefined
-        catch_on_new_line: false
-        finally_on_new_line: false
-    upper_lower_casing:
-      keywords:
-        general: undefined
-      constants:
-        true_false_null: undefined
-
-#filter:
-#  excluded_paths:
-#    - tests/*
-#
-#build:
-#  dependencies:
-#    override:
-#      -
-#        command: composer install --ignore-platform-reqs --no-interaction --prefer-dist --no-suggest
-#  tests:
-#    override:
-#      - command: vendor/bin/phpunit --configuration phpunit.xml --exclude-group uses_real_com
-#      - php-scrutinizer-run
-#  nodes:
-#    analysis:
-#      tests:
-#        override:
-#          - php-scrutinizer-run
\ No newline at end of file
diff --git a/.styleci.yml b/.styleci.yml
deleted file mode 100644
index f664926..0000000
--- a/.styleci.yml
+++ /dev/null
@@ -1,18 +0,0 @@
-preset: recommended
-
-finder:
-  not-name:
-    - BiosCharacteristics.php
-  exclude:
-    - "tests"
-
-enabled:
-  - length_ordered_imports
-  - concat_with_spaces
-  - pre_increment
-
-disabled:
-  - alpha_ordered_imports
-  - concat_without_spaces
-  - post_increment
-  - simplified_null_return
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 8ee022c..0000000
--- a/.travis.yml
+++ /dev/null
@@ -1,62 +0,0 @@
-matrix:
-  fast_finish: true
-  include:
-    - os: windows
-      language: sh
-      env:
-        - PHP_VERSION=7.1.25
-        - PHP_DIR=php71
-        - XDEBUG=https://xdebug.org/files/php_xdebug-2.8.0beta1-7.1-vc14-nts-x86_64.dll
-    - os: windows
-      language: sh
-      env:
-        - PHP_VERSION=7.2.20
-        - PHP_DIR=php72
-        - XDEBUG=https://xdebug.org/files/php_xdebug-2.8.0beta1-7.2-vc15-nts-x86_64.dll
-    - os: windows
-      language: sh
-      env:
-        - PHP_VERSION=7.3.8
-        - PHP_DIR=php73
-        - XDEBUG=https://xdebug.org/files/php_xdebug-2.8.0beta1-7.3-vc15-nts-x86_64.dll
-
-cache:
-  directories:
-    # Common cache directories
-    - vendor
-
-    # Cache PHP and Composer install
-    - /c/tools/$PHP_DIR
-    - /c/ProgramData/ComposerSetup/bin
-
-before_install:
-  # Install PHP, Configure INI, and setup PATH
-  - if [[ ! -f "/c/tools/$PHP_DIR/php.ini" ]]; then choco install php --version $PHP_VERSION -y; ./bin/ci/setup_php.sh;  fi
-  - export PATH=/c/tools/$PHP_DIR:$PATH;
-
-  # Download CA Bundle
-  - travis_retry wget https://curl.haxx.se/ca/cacert.pem -O /c/tools/cacert.pem -q;
-
-  # Install Composer and modify PATH
-  - if [[ ! -f "/c/ProgramData/ComposerSetup/bin/composer.bat" ]]; then choco install composer -i;  fi
-  - export PATH=/c/ProgramData/ComposerSetup/bin:$PATH;
-
-  # Make sure composer is up-to-date
-  - travis_retry composer self-update
-
-install:
-  - travis_retry composer update --no-interaction --prefer-dist --no-suggest --ansi --no-progress
-
-before_script:
-  # Download appropriate XDebug and modify configuration
-  - travis_retry wget $XDEBUG -O /c/tools/$PHP_DIR/ext/xdebug.dll -q;
-  - ./bin/ci/start_xdebug.sh;
-
-script: ./vendor/bin/phpunit --coverage-clover /c/tools/coverage.clover --configuration phpunit.xml
-
-# Remove XDebug from INI before cache
-before_cache: ./bin/ci/stop_xdebug.sh;
-
-#after_script:
-#  - travis_retry wget https://github.com/scrutinizer-ci/ocular/releases/download/1.6.0/ocular.phar -q;
-#  - php ocular.phar code-coverage:upload --format=php-clover /c/tools/coverage.clover
diff --git a/404.html b/404.html
new file mode 100644
index 0000000..b7baf74
--- /dev/null
+++ b/404.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1">
+    <title>WMI Scripting</title>
+    <meta name="description" content="WMI Scripting and Querying made easy.">
+    <link rel="icon" href="/wmi-scripting/wmi-squares.png">
+    
+    <link rel="preload" href="/wmi-scripting/assets/css/0.styles.69febe6e.css" as="style"><link rel="preload" href="/wmi-scripting/assets/js/app.fbd390b3.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/5.4bd79ff2.js" as="script"><link rel="prefetch" href="/wmi-scripting/assets/js/10.26623230.js"><link rel="prefetch" href="/wmi-scripting/assets/js/11.045108de.js"><link rel="prefetch" href="/wmi-scripting/assets/js/12.6a6b2ef0.js"><link rel="prefetch" href="/wmi-scripting/assets/js/2.bbe9884b.js"><link rel="prefetch" href="/wmi-scripting/assets/js/3.30bc9dac.js"><link rel="prefetch" href="/wmi-scripting/assets/js/4.b2559bf1.js"><link rel="prefetch" href="/wmi-scripting/assets/js/6.5ba71b34.js"><link rel="prefetch" href="/wmi-scripting/assets/js/7.7458681b.js"><link rel="prefetch" href="/wmi-scripting/assets/js/8.25d2004c.js"><link rel="prefetch" href="/wmi-scripting/assets/js/9.2d3c2ea0.js">
+    <link rel="stylesheet" href="/wmi-scripting/assets/css/0.styles.69febe6e.css">
+  </head>
+  <body>
+    <div id="app" data-server-rendered="true"><div class="theme-container"><div class="theme-default-content"><h1>404</h1> <blockquote>There's nothing here.</blockquote> <a href="/wmi-scripting/" class="router-link-active">Take me home.</a></div></div><div class="global-ui"></div></div>
+    <script src="/wmi-scripting/assets/js/app.fbd390b3.js" defer></script><script src="/wmi-scripting/assets/js/5.4bd79ff2.js" defer></script>
+  </body>
+</html>
diff --git a/LICENSE.md b/LICENSE.md
deleted file mode 100644
index 9e12feb..0000000
--- a/LICENSE.md
+++ /dev/null
@@ -1,21 +0,0 @@
-MIT License
-
-Copyright (c) 2019 Joe Springe
-
-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.
diff --git a/README.md b/README.md
deleted file mode 100644
index 681243c..0000000
--- a/README.md
+++ /dev/null
@@ -1,49 +0,0 @@
-<h1 align="center">WMI Scripting</h1>
-
-<p align="center">
-    <a href="https://ci.appveyor.com/project/jspringe/wmi-scripting/branch/master"><img src="https://ci.appveyor.com/api/projects/status/github/phpwintools/wmi-scripting?svg=true&branch=master&passingText=Master%20-%20Passing&failingText=Master%20-%20Failing&pendingText=Master%20-%20Testing" alt="AppVeyor Build Status"></a>
-    <a href="https://scrutinizer-ci.com/g/phpwintools/wmi-scripting/?branch=master"><img src="https://scrutinizer-ci.com/g/phpwintools/wmi-scripting/badges/quality-score.png?b=master" alt="Scrutinizer"></a>
-    <img src="https://scrutinizer-ci.com/g/phpwintools/wmi-scripting/badges/coverage.png?b=master" alt="Code Coverage">
-    <a href="https://packagist.org/packages/phpwintools/wmi-scripting"><img src="https://poser.pugx.org/phpwintools/wmi-scripting/v/stable.svg" alt="Latest Stable Version"></a>
-    <a href="https://packagist.org/packages/phpwintools/wmi-scripting"><img src="https://poser.pugx.org/phpwintools/wmi-scripting/v/unstable.svg" alt="Latest Unstable Version"></a>
-    <a href="https://packagist.org/packages/phpwintools/wmi-scripting"><img src="https://img.shields.io/github/license/phpwintools/wmi-scripting" alt="License"></a>
-</p>
-
-### Current Version: 0.1.1-alpha
-
-This is currently under heavy development and no release candidate has be marked at this point.
-You are free to use this in production with relatively low-risk as the library itself is fully functional,
-and is READ-ONLY so there should be no side-effects from its usage.
-
-### [Documentation (WIP)](https://phpwintools.github.io/wmi-scripting/)
-
-### Install
-
-`composer require phpwintools/wmi-scripting`
-
-### Basic Usage
-
-Basic usage is to call `::query($connection = null)` on an available model from
-https://github.com/phpwintools/wmi-scripting/tree/master/src/WmiScripting/Models.
-
-    PhpWinTools\WmiScripting\Models\LoggedOnUser::query()->get();
-
-This returns a collection of logged on users from the default connection (this is local by configuration).
-The `ModelCollection` extends https://github.com/tightenco/collect / [Laravel Collections](https://laravel.com/docs/5.8/collections).
-
-You can also instantiate `Scripting`:
-
-    $scripting = new PhpWinTools\WmiScripting\Scripting;
-    $scripting->addConnection('remote', PhpWinTools\WmiScripting\Connection::simple('server', 'user', 'password'));
-    $scripting->query('remote')->loggedOnUser()->get();
-
-Whether you use `$scripting->query($connection = null)->modelName()` or `::query($connection = null)` you are dropped into a basic query
-builder which currently only allows `select` and `where` clauses. If there are any subject matter experts who would like
-to guide me on how this query builder should look please contact me.
-
-#### Testing
-
-This is still an area that is under development.
-
-You can call `Scripting::fake($testCase)->win32Model($class_name);` to create a fake for testing without
-actually creating a real connection to a WMI service.
\ No newline at end of file
diff --git a/assets/css/0.styles.69febe6e.css b/assets/css/0.styles.69febe6e.css
new file mode 100644
index 0000000..1524ad0
--- /dev/null
+++ b/assets/css/0.styles.69febe6e.css
@@ -0,0 +1 @@
+#nprogress{pointer-events:none}#nprogress .bar{background:#3eaf7c;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #3eaf7c,0 0 5px #3eaf7c;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border-color:#3eaf7c transparent transparent #3eaf7c;border-style:solid;border-width:2px;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.icon.outbound{color:#aaa;display:inline-block;vertical-align:middle;position:relative;top:-1px}.home{padding:3.6rem 2rem 0;max-width:960px;margin:0 auto;display:block}.home .hero{text-align:center}.home .hero img{max-width:100%;max-height:280px;display:block;margin:3rem auto 1.5rem}.home .hero h1{font-size:3rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.8rem auto}.home .hero .description{max-width:35rem;font-size:1.6rem;line-height:1.3;color:#6a8bad}.home .hero .action-button{display:inline-block;font-size:1.2rem;color:#fff;background-color:#3eaf7c;padding:.8rem 1.6rem;border-radius:4px;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #389d70}.home .hero .action-button:hover{background-color:#4abf8a}.home .features{border-top:1px solid #eaecef;padding:1.2rem 0;margin-top:2.5rem;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:stretch;justify-content:space-between}.home .feature{flex-grow:1;flex-basis:30%;max-width:30%}.home .feature h2{font-size:1.4rem;font-weight:500;border-bottom:none;padding-bottom:0;color:#3a5169}.home .feature p{color:#4e6e8e}.home .footer{padding:2.5rem;border-top:1px solid #eaecef;text-align:center;color:#4e6e8e}@media (max-width:719px){.home .features{flex-direction:column}.home .feature{max-width:100%;padding:0 2.5rem}}@media (max-width:419px){.home{padding-left:1.5rem;padding-right:1.5rem}.home .hero img{max-height:210px;margin:2rem auto 1.2rem}.home .hero h1{font-size:2rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.2rem auto}.home .hero .description{font-size:1.2rem}.home .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home .feature h2{font-size:1.25rem}}.search-box{display:inline-block;position:relative;margin-right:1rem}.search-box input{cursor:text;width:10rem;height:2rem;color:#4e6e8e;display:inline-block;border:1px solid #cfd4db;border-radius:2rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;transition:all .2s ease;background:#fff url(/wmi-scripting/assets/img/search.83621669.svg) .6rem .5rem no-repeat;background-size:1rem}.search-box input:focus{cursor:auto;border-color:#3eaf7c}.search-box .suggestions{background:#fff;width:20rem;position:absolute;top:1.5rem;border:1px solid #cfd4db;border-radius:6px;padding:.4rem;list-style-type:none}.search-box .suggestions.align-right{right:0}.search-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.search-box .suggestion a{white-space:normal;color:#5d82a6}.search-box .suggestion a .page-title{font-weight:600}.search-box .suggestion a .header{font-size:.9em;margin-left:.25em}.search-box .suggestion.focused{background-color:#f3f4f5}.search-box .suggestion.focused a{color:#3eaf7c}@media (max-width:959px){.search-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.search-box input:focus{cursor:text;left:0;width:10rem}}@media (-ms-high-contrast:none){.search-box input{height:2rem}}@media (max-width:959px) and (min-width:719px){.search-box .suggestions{left:0}}@media (max-width:719px){.search-box{margin-right:0}.search-box input{left:1rem}.search-box .suggestions{right:0}}@media (max-width:419px){.search-box .suggestions{width:calc(100vw - 4rem)}.search-box input:focus{width:8rem}}.sidebar-button{cursor:pointer;display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (max-width:719px){.sidebar-button{display:block}}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title{display:block}.dropdown-wrapper .dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid #eee;padding:.45rem 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#3eaf7c}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #3eaf7c;border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .nav-dropdown{transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:719px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper .dropdown-title .arrow{border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #ccc;border-bottom:0}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:#fff;padding:.6rem 0;border:1px solid;border-color:#ddd #ddd #ccc;text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.nav-links{display:inline-block}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#3eaf7c}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:719px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:719px){.nav-links a.router-link-active,.nav-links a:hover{color:#2c3e50}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #46bd87}}.navbar{padding:.7rem 1.5rem;line-height:2.2rem}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:2.2rem;min-width:2.2rem;margin-right:.8rem;vertical-align:top}.navbar .site-name{font-size:1.3rem;font-weight:600;color:#2c3e50;position:relative}.navbar .links{padding-left:1.5rem;box-sizing:border-box;background-color:#fff;white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:.7rem;display:flex}.navbar .links .search-box{flex:0 0 auto;vertical-align:top}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}}.page-edit,.page-nav{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-edit,.page-nav{padding:2rem}}@media (max-width:419px){.page-edit,.page-nav{padding:1.5rem}}.page{padding-bottom:2rem;display:block}.page-edit{padding-top:1rem;padding-bottom:1rem;overflow:auto}.page-edit .edit-link{display:inline-block}.page-edit .edit-link a{color:#4e6e8e;margin-right:.25rem}.page-edit .last-updated{float:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:#4e6e8e}.page-edit .last-updated .time{font-weight:400;color:#aaa}.footer{font-size:.9em;color:#4e6e8e}.page-nav{padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid #eaecef;padding-top:1rem;overflow:auto}.page-nav .next{float:right}@media (max-width:719px){.page-edit .edit-link{margin-bottom:.5rem}.page-edit .last-updated{font-size:.8em;float:none;text-align:left}}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading:not(.clickable){cursor:auto;color:inherit}.sidebar-group.is-sub-group{padding-left:0}.sidebar-group.is-sub-group>.sidebar-heading{font-size:.95em;line-height:1.4;font-weight:400;padding-left:2rem}.sidebar-group.is-sub-group>.sidebar-heading:not(.clickable){opacity:.5}.sidebar-group.is-sub-group>.sidebar-group-items{padding-left:1rem}.sidebar-group.is-sub-group>.sidebar-group-items>li>.sidebar-link{font-size:.95em;border-left:none}.sidebar-group.depth-2>.sidebar-heading{border-left:none}.sidebar-heading{color:#2c3e50;transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:.35rem 1.5rem .35rem 1.25rem;width:100%;box-sizing:border-box;margin:0;border-left:.25rem solid transparent}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading.clickable.active{font-weight:600;color:#3eaf7c;border-left-color:#3eaf7c}.sidebar-heading.clickable:hover{color:#3eaf7c}.sidebar-group-items{transition:height .1s ease-out;font-size:.95em;overflow:hidden}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}a.sidebar-link{font-size:1em;font-weight:400;display:inline-block;color:#2c3e50;border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;box-sizing:border-box}a.sidebar-link:hover{color:#3eaf7c}a.sidebar-link.active{font-weight:600;color:#3eaf7c;border-left-color:#3eaf7c}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .nav-links{display:none;border-bottom:1px solid #eaecef;padding:.5rem 0 .75rem}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar>.sidebar-links{padding:1.5rem 0}.sidebar>.sidebar-links>li>a.sidebar-link{font-size:1.1em;line-height:1.7;font-weight:700}.sidebar>.sidebar-links>li:not(:first-child){margin-top:.75rem}@media (max-width:719px){.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar>.sidebar-links{padding:1rem 0}}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}.theme-default-content code{color:#476582;padding:.25rem .5rem;margin:0;font-size:.85em;background-color:rgba(27,31,35,.05);border-radius:3px}.theme-default-content code .token.deleted{color:#ec5975}.theme-default-content code .token.inserted{color:#3eaf7c}.theme-default-content pre,.theme-default-content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#232525;border-radius:6px;overflow:auto}.theme-default-content pre[class*=language-] code,.theme-default-content pre code{color:#cbd4dd;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:#232525;border-radius:6px}div[class*=language-] .highlight-lines{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.66)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative;z-index:1}div[class*=language-]:before{position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:hsla(0,0%,100%,.4)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:3.5rem;height:100%;background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode pre{padding-left:4.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:3.5rem;text-align:center;color:hsla(0,0%,100%,.3);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number,div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:3.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid rgba(0,0,0,.66);background-color:#232525}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-docker]:before{content:"docker"}div[class~=language-dockerfile]:before{content:"dockerfile"}div[class~=language-makefile]:before{content:"makefile"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}div[class~=language-php] .token.keyword{color:#eb7513}div[class~=language-php] .token.variable{color:#9b6cb4}div[class~=language-php] .token.comment{font-style:italic;color:#5aa448}div[class~=language-php] .token.string{color:#689050}div[class~=language-php] .token.class-name,div[class~=language-php] .token.operator{color:#cbd4dd}div[class~=language-php]:before{content:"php"}.custom-block .custom-block-title{font-weight:600;margin-bottom:-.4rem}.custom-block.danger,.custom-block.tip,.custom-block.warning{padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-block.tip{background-color:#f3f5f7;border-color:#42b983}.custom-block.warning{background-color:rgba(255,229,100,.3);border-color:#e7c000;color:#6b5900}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:#2c3e50}.custom-block.danger{background-color:#ffe6e6;border-color:#c00;color:#4d0000}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:#2c3e50}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-bottom:6px solid #ccc}.arrow.down,.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent}.arrow.down{border-top:6px solid #ccc}.arrow.right{border-left:6px solid #ccc}.arrow.left,.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.arrow.left{border-right:6px solid #ccc}.theme-default-content:not(.custom){max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.theme-default-content:not(.custom){padding:2rem}}@media (max-width:419px){.theme-default-content:not(.custom){padding:1.5rem}}.table-of-contents .badge{vertical-align:middle}body,html{padding:0;margin:0;background-color:#fff}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;color:#2c3e50}.page{padding-left:20rem}.navbar{z-index:20;right:0;height:3.6rem;background-color:#fff;box-sizing:border-box;border-bottom:1px solid #eaecef}.navbar,.sidebar-mask{position:fixed;top:0;left:0}.sidebar-mask{z-index:9;width:100vw;height:100vh;display:none}.sidebar{font-size:16px;background-color:#fff;width:20rem;position:fixed;z-index:10;margin:0;top:3.6rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid #eaecef;overflow-y:auto}.theme-default-content:not(.custom)>:first-child{margin-top:3.6rem}.theme-default-content:not(.custom) a:hover{text-decoration:underline}.theme-default-content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.theme-default-content:not(.custom) img{max-width:100%}.theme-default-content.custom{padding:0;margin:0}.theme-default-content.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#3eaf7c}p a code{font-weight:400}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd;border-radius:.15rem;padding:0 .15em}blockquote{font-size:1rem;color:#999;border-left:.2rem solid #dfe2e5;margin:1rem 0;padding:.25rem 0 .25rem 1rem}blockquote>p{margin:0}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}.theme-default-content:not(.custom)>h1,.theme-default-content:not(.custom)>h2,.theme-default-content:not(.custom)>h3,.theme-default-content:not(.custom)>h4,.theme-default-content:not(.custom)>h5,.theme-default-content:not(.custom)>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.theme-default-content:not(.custom)>h1:first-child,.theme-default-content:not(.custom)>h2:first-child,.theme-default-content:not(.custom)>h3:first-child,.theme-default-content:not(.custom)>h4:first-child,.theme-default-content:not(.custom)>h5:first-child,.theme-default-content:not(.custom)>h6:first-child{margin-top:-1.5rem;margin-bottom:1rem}.theme-default-content:not(.custom)>h1:first-child+.custom-block,.theme-default-content:not(.custom)>h1:first-child+p,.theme-default-content:not(.custom)>h1:first-child+pre,.theme-default-content:not(.custom)>h2:first-child+.custom-block,.theme-default-content:not(.custom)>h2:first-child+p,.theme-default-content:not(.custom)>h2:first-child+pre,.theme-default-content:not(.custom)>h3:first-child+.custom-block,.theme-default-content:not(.custom)>h3:first-child+p,.theme-default-content:not(.custom)>h3:first-child+pre,.theme-default-content:not(.custom)>h4:first-child+.custom-block,.theme-default-content:not(.custom)>h4:first-child+p,.theme-default-content:not(.custom)>h4:first-child+pre,.theme-default-content:not(.custom)>h5:first-child+.custom-block,.theme-default-content:not(.custom)>h5:first-child+p,.theme-default-content:not(.custom)>h5:first-child+pre,.theme-default-content:not(.custom)>h6:first-child+.custom-block,.theme-default-content:not(.custom)>h6:first-child+p,.theme-default-content:not(.custom)>h6:first-child+pre{margin-top:2rem}h1:hover .header-anchor,h2:hover .header-anchor,h3:hover .header-anchor,h4:hover .header-anchor,h5:hover .header-anchor,h6:hover .header-anchor{opacity:1}h1{font-size:2.2rem}h2{font-size:1.65rem;padding-bottom:.3rem;border-bottom:1px solid #eaecef}h3{font-size:1.35rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:1.7}hr{border:0;border-top:1px solid #eaecef}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto}tr{border-top:1px solid #dfe2e5}tr:nth-child(2n){background-color:#f6f8fa}td,th{border:1px solid #dfe2e5;padding:.6em 1em}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .theme-default-content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}@media (max-width:959px){.sidebar{font-size:15px;width:16.4rem}.page{padding-left:16.4rem}}@media (max-width:719px){.sidebar{top:0;padding-top:3.6rem;transform:translateX(-100%);transition:transform .2s ease}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:419px){h1{font-size:1.9rem}.theme-default-content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}.badge[data-v-76652c5d]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff}.badge.green[data-v-76652c5d],.badge.tip[data-v-76652c5d],.badge[data-v-76652c5d]{background-color:#42b983}.badge.error[data-v-76652c5d]{background-color:#da5961}.badge.warn[data-v-76652c5d],.badge.warning[data-v-76652c5d],.badge.yellow[data-v-76652c5d]{background-color:#e7c000}.badge+.badge[data-v-76652c5d]{margin-left:5px}
\ No newline at end of file
diff --git a/docs/.vuepress/dist/assets/img/search.83621669.svg b/assets/img/search.83621669.svg
similarity index 100%
rename from docs/.vuepress/dist/assets/img/search.83621669.svg
rename to assets/img/search.83621669.svg
diff --git a/assets/js/10.26623230.js b/assets/js/10.26623230.js
new file mode 100644
index 0000000..fc105c8
--- /dev/null
+++ b/assets/js/10.26623230.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{207:function(e,t,o){"use strict";o.r(t);var r=o(0),n=Object(r.a)({},function(){var e=this,t=e.$createElement,o=e._self._c||t;return o("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[o("h1",{attrs:{id:"how-it-works"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#how-it-works","aria-hidden":"true"}},[e._v("#")]),e._v(" How It Works")]),e._v(" "),o("p",[e._v("The basic goal of this library is to make querying information from Windows systems on your network as easy as possible.\nThis is accomplished by adopting an active record approach similar to\n"),o("a",{attrs:{href:"https://laravel.com/docs/5.8/eloquent",target:"_blank",rel:"noopener noreferrer"}},[e._v("Laravel's Eloquent"),o("OutboundLink")],1),e._v(".")]),e._v(" "),o("p",[e._v("The WMI Scripting library consists of models that represent the\n"),o("a",{attrs:{href:"https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-provider",target:"_blank",rel:"noopener noreferrer"}},[e._v("WMI Win32 Provider classes"),o("OutboundLink")],1),e._v("\nand a basic query builder using "),o("a",{attrs:{href:"https://docs.microsoft.com/en-us/windows/win32/wmisdk/querying-with-wql",target:"_blank",rel:"noopener noreferrer"}},[e._v("WQL"),o("OutboundLink")],1),e._v("\nas it's target language.")]),e._v(" "),o("p",[e._v("I also take advantage of "),o("a",{attrs:{href:"https://laravel.com/docs/5.8/collections",target:"_blank",rel:"noopener noreferrer"}},[e._v("Laravel's Collections"),o("OutboundLink")],1),e._v(" via the extraction done by\n"),o("a",{attrs:{href:"https://github.com/tightenco/collect",target:"_blank",rel:"noopener noreferrer"}},[e._v("TightenCo"),o("OutboundLink")],1),e._v(", so you are not bound directly to the Laravel framework. Anytime you\nquery a model you will get back an instance of "),o("code",[e._v("ModelCollection")]),e._v(" which extends Laravel's "),o("code",[e._v("Collection")]),e._v(". This allows for\nfluent access to this data: "),o("code",[e._v("$modelCollection->map->getAttribute('name);")]),e._v(" returns a collection of only the model names.")]),e._v(" "),o("p",[e._v("The Win32Models extend either another Win32 model, or more likely, a\n"),o("a",{attrs:{href:"https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cimwin32-wmi-providers",target:"_blank",rel:"noopener noreferrer"}},[e._v("CIM"),o("OutboundLink")],1),e._v(" object. This follows the way\nthat Win32 models are composed.")]),e._v(" "),o("h2",{attrs:{id:"todo"}},[o("a",{staticClass:"header-anchor",attrs:{href:"#todo","aria-hidden":"true"}},[e._v("#")]),e._v(" Todo")]),e._v(" "),o("p",[e._v("I'm still working through the API and some of the core code to make this library as clean and resilient as possible.\nThe current wish list consists of at least the following:")]),e._v(" "),o("ul",[o("li",[e._v("Near 100% test coverage")]),e._v(" "),o("li",[e._v("Expand testing system")]),e._v(" "),o("li",[e._v("Event system")])])])},[],!1,null,null,null);t.default=n.exports}}]);
\ No newline at end of file
diff --git a/assets/js/11.045108de.js b/assets/js/11.045108de.js
new file mode 100644
index 0000000..4ba4889
--- /dev/null
+++ b/assets/js/11.045108de.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{203:function(t,s,a){"use strict";a.r(s);var n=a(0),e=Object(n.a)({},function(){var t=this,s=t.$createElement,a=t._self._c||s;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("div",{staticClass:"features"},[a("div",{staticClass:"feature"},[a("h2",[t._v("Active Record Querying")]),t._v(" "),a("p")]),t._v(" "),a("div",{staticClass:"feature"},[a("h2",[t._v("Easily Testable")]),t._v(" "),a("p")]),t._v(" "),a("div",{staticClass:"feature"},[a("h2",[t._v("Simple API")]),t._v(" "),a("p")])]),t._v(" "),a("h2",{attrs:{id:"quick-start"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#quick-start","aria-hidden":"true"}},[t._v("#")]),t._v(" Quick Start")]),t._v(" "),a("h3",{attrs:{id:"install"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#install","aria-hidden":"true"}},[t._v("#")]),t._v(" Install")]),t._v(" "),a("div",{staticClass:"warning custom-block"},[a("h4",{attrs:{id:"requirements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#requirements","aria-hidden":"true"}},[t._v("#")]),t._v(" REQUIREMENTS")]),t._v(" "),a("p",[t._v(">= PHP 7.1")]),t._v(" "),a("p",[t._v("Windows and the "),a("code",[t._v("com_dotnet")]),t._v(" extension enabled (available in every "),a("a",{attrs:{href:"https://windows.php.net/download/",target:"_blank",rel:"noopener noreferrer"}},[a("code",[t._v("Windows PHP")]),a("OutboundLink")],1),t._v(" release).")])]),t._v(" "),a("div",{staticClass:"language-sh line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[t._v("composer require phpwintools/wmi-scripting\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br")])]),a("h3",{attrs:{id:"connections-with-instantiation"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#connections-with-instantiation","aria-hidden":"true"}},[t._v("#")]),t._v(" Connections with instantiation")]),t._v(" "),a("div",{staticClass:"language-php line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-php"}},[a("code",[a("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$scripting")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Scripting")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// These connections can be called by name.")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$scripting")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addConnection")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'server1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" Connection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("simple")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'server1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'user'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'password'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$scripting")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("addConnection")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'server2'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" Connection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("simple")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'server2'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'user'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'password'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$scripting")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("query")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'server2'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("loggedOnUser")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// This will set 'server1' as the default connection.")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$scripting")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("setDefaultConnection")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'server1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// If no connection is referenced then the default connection will be used.")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$scripting")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("query")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("loggedOnUser")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br"),a("span",{staticClass:"line-number"},[t._v("2")]),a("br"),a("span",{staticClass:"line-number"},[t._v("3")]),a("br"),a("span",{staticClass:"line-number"},[t._v("4")]),a("br"),a("span",{staticClass:"line-number"},[t._v("5")]),a("br"),a("span",{staticClass:"line-number"},[t._v("6")]),a("br"),a("span",{staticClass:"line-number"},[t._v("7")]),a("br"),a("span",{staticClass:"line-number"},[t._v("8")]),a("br"),a("span",{staticClass:"line-number"},[t._v("9")]),a("br"),a("span",{staticClass:"line-number"},[t._v("10")]),a("br"),a("span",{staticClass:"line-number"},[t._v("11")]),a("br"),a("span",{staticClass:"line-number"},[t._v("12")]),a("br"),a("span",{staticClass:"line-number"},[t._v("13")]),a("br")])]),a("h3",{attrs:{id:"connections-with-static-calls"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#connections-with-static-calls","aria-hidden":"true"}},[t._v("#")]),t._v(" Connections with static calls")]),t._v(" "),a("div",{staticClass:"language-php line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-php"}},[a("code",[t._v("LoggedOnUser"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("query")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Connection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("simple")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'server1'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'user'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'password'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br")])])])},[],!1,null,null,null);s.default=e.exports}}]);
\ No newline at end of file
diff --git a/assets/js/12.6a6b2ef0.js b/assets/js/12.6a6b2ef0.js
new file mode 100644
index 0000000..8dc2986
--- /dev/null
+++ b/assets/js/12.6a6b2ef0.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{9:function(n,w,o){}}]);
\ No newline at end of file
diff --git a/assets/js/2.bbe9884b.js b/assets/js/2.bbe9884b.js
new file mode 100644
index 0000000..756a4a5
--- /dev/null
+++ b/assets/js/2.bbe9884b.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[2],[,,,,,,,,,,function(t,n,r){var e=r(42)("wks"),o=r(43),i=r(12).Symbol,u="function"==typeof i;(t.exports=function(t){return e[t]||(e[t]=u&&i[t]||(u?i:o)("Symbol."+t))}).store=e},function(t,n,r){var e=r(12),o=r(31),i=r(16),u=r(25),c=r(46),s=function(t,n,r){var a,f,l,p,v=t&s.F,h=t&s.G,g=t&s.S,y=t&s.P,d=t&s.B,x=h?e:g?e[n]||(e[n]={}):(e[n]||{}).prototype,b=h?o:o[n]||(o[n]={}),S=b.prototype||(b.prototype={});for(a in h&&(r=n),r)l=((f=!v&&x&&void 0!==x[a])?x:r)[a],p=d&&f?c(l,e):y&&"function"==typeof l?c(Function.call,l):l,x&&u(x,a,l,t&s.U),b[a]!=l&&i(b,a,p),y&&S[a]!=l&&(S[a]=l)};e.core=o,s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,t.exports=s},function(t,n){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(t,n,r){var e=r(17);t.exports=function(t){if(!e(t))throw TypeError(t+" is not an object!");return t}},function(t,n){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,n,r){var e=r(101)("wks"),o=r(102),i=r(21).Symbol,u="function"==typeof i;(t.exports=function(t){return e[t]||(e[t]=u&&i[t]||(u?i:o)("Symbol."+t))}).store=e},function(t,n,r){var e=r(24),o=r(44);t.exports=r(18)?function(t,n,r){return e.f(t,n,o(1,r))}:function(t,n,r){return t[n]=r,t}},function(t,n){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,n,r){t.exports=!r(14)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},,function(t,n){t.exports=function(t){if(null==t)throw TypeError("Can't call method on  "+t);return t}},function(t,n){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(t,n){var r=t.exports={version:"2.6.9"};"number"==typeof __e&&(__e=r)},function(t,n){t.exports={}},function(t,n,r){var e=r(13),o=r(79),i=r(81),u=Object.defineProperty;n.f=r(18)?Object.defineProperty:function(t,n,r){if(e(t),n=i(n,!0),e(r),o)try{return u(t,n,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[n]=r.value),t}},function(t,n,r){var e=r(12),o=r(16),i=r(26),u=r(43)("src"),c=r(113),s=(""+c).split("toString");r(31).inspectSource=function(t){return c.call(t)},(t.exports=function(t,n,r,c){var a="function"==typeof r;a&&(i(r,"name")||o(r,"name",n)),t[n]!==r&&(a&&(i(r,u)||o(r,u,t[n]?""+t[n]:s.join(String(n)))),t===e?t[n]=r:c?t[n]?t[n]=r:o(t,n,r):(delete t[n],o(t,n,r)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[u]||c.call(this)})},function(t,n){var r={}.hasOwnProperty;t.exports=function(t,n){return r.call(t,n)}},function(t,n,r){var e=r(34),o=Math.min;t.exports=function(t){return t>0?o(e(t),9007199254740991):0}},function(t,n,r){var e=r(46),o=r(82),i=r(35),u=r(27),c=r(121);t.exports=function(t,n){var r=1==t,s=2==t,a=3==t,f=4==t,l=6==t,p=5==t||l,v=n||c;return function(n,c,h){for(var g,y,d=i(n),x=o(d),b=e(c,h,3),S=u(x.length),m=0,w=r?v(n,S):s?v(n,0):void 0;S>m;m++)if((p||m in x)&&(y=b(g=x[m],m,d),t))if(r)w[m]=y;else if(y)switch(t){case 3:return!0;case 5:return g;case 6:return m;case 2:w.push(g)}else if(f)return!1;return l?-1:a||f?f:w}}},function(t,n,r){"use strict";var e=r(14);t.exports=function(t,n){return!!t&&e(function(){n?t.call(null,function(){},1):t.call(null)})}},function(t,n,r){var e=r(37),o=r(62);t.exports=r(39)?function(t,n,r){return e.f(t,n,o(1,r))}:function(t,n,r){return t[n]=r,t}},function(t,n){var r=t.exports={version:"2.6.9"};"number"==typeof __e&&(__e=r)},function(t,n,r){var e=r(82),o=r(20);t.exports=function(t){return e(o(t))}},function(t,n){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},function(t,n){var r=Math.ceil,e=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?e:r)(t)}},function(t,n,r){var e=r(20);t.exports=function(t){return Object(e(t))}},function(t,n,r){"use strict";var e=r(11),o=r(28)(3);e(e.P+e.F*!r(29)([].some,!0),"Array",{some:function(t){return o(this,t,arguments[1])}})},function(t,n,r){var e=r(38),o=r(148),i=r(149),u=Object.defineProperty;n.f=r(39)?Object.defineProperty:function(t,n,r){if(e(t),n=i(n,!0),e(r),o)try{return u(t,n,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[n]=r.value),t}},function(t,n,r){var e=r(61);t.exports=function(t){if(!e(t))throw TypeError(t+" is not an object!");return t}},function(t,n,r){t.exports=!r(95)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,n){var r={}.hasOwnProperty;t.exports=function(t,n){return r.call(t,n)}},function(t,n,r){for(var e=r(110),o=r(47),i=r(25),u=r(12),c=r(16),s=r(45),a=r(10),f=a("iterator"),l=a("toStringTag"),p=s.Array,v={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},h=o(v),g=0;g<h.length;g++){var y,d=h[g],x=v[d],b=u[d],S=b&&b.prototype;if(S&&(S[f]||c(S,f,p),S[l]||c(S,l,d),s[d]=p,x))for(y in e)S[y]||i(S,y,e[y],!0)}},function(t,n,r){var e=r(31),o=r(12),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,n){return i[t]||(i[t]=void 0!==n?n:{})})("versions",[]).push({version:e.version,mode:r(78)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,n){var r=0,e=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++r+e).toString(36))}},function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},function(t,n){t.exports={}},function(t,n,r){var e=r(83);t.exports=function(t,n,r){if(e(t),void 0===n)return t;switch(r){case 1:return function(r){return t.call(n,r)};case 2:return function(r,e){return t.call(n,r,e)};case 3:return function(r,e,o){return t.call(n,r,e,o)}}return function(){return t.apply(n,arguments)}}},function(t,n,r){var e=r(84),o=r(49);t.exports=Object.keys||function(t){return e(t,o)}},function(t,n,r){var e=r(42)("keys"),o=r(43);t.exports=function(t){return e[t]||(e[t]=o(t))}},function(t,n){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,n,r){"use strict";var e=r(11),o=r(28)(1);e(e.P+e.F*!r(29)([].map,!0),"Array",{map:function(t){return o(this,t,arguments[1])}})},function(t,n,r){"use strict";var e=r(128)(!0);t.exports=function(t,n,r){return n+(r?e(t,n).length:1)}},function(t,n,r){"use strict";var e=r(129),o=RegExp.prototype.exec;t.exports=function(t,n){var r=t.exec;if("function"==typeof r){var i=r.call(t,n);if("object"!=typeof i)throw new TypeError("RegExp exec method returned something other than an Object or null");return i}if("RegExp"!==e(t))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(t,n)}},function(t,n,r){"use strict";var e,o,i=r(93),u=RegExp.prototype.exec,c=String.prototype.replace,s=u,a=(e=/a/,o=/b*/g,u.call(e,"a"),u.call(o,"a"),0!==e.lastIndex||0!==o.lastIndex),f=void 0!==/()??/.exec("")[1];(a||f)&&(s=function(t){var n,r,e,o,s=this;return f&&(r=new RegExp("^"+s.source+"$(?!\\s)",i.call(s))),a&&(n=s.lastIndex),e=u.call(s,t),a&&e&&(s.lastIndex=s.global?e.index+e[0].length:n),f&&e&&e.length>1&&c.call(e[0],r,function(){for(o=1;o<arguments.length-2;o++)void 0===arguments[o]&&(e[o]=void 0)}),e}),t.exports=s},function(t,n,r){"use strict";r(130);var e=r(25),o=r(16),i=r(14),u=r(20),c=r(10),s=r(53),a=c("species"),f=!i(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}),l=function(){var t=/(?:)/,n=t.exec;t.exec=function(){return n.apply(this,arguments)};var r="ab".split(t);return 2===r.length&&"a"===r[0]&&"b"===r[1]}();t.exports=function(t,n,r){var p=c(t),v=!i(function(){var n={};return n[p]=function(){return 7},7!=""[t](n)}),h=v?!i(function(){var n=!1,r=/a/;return r.exec=function(){return n=!0,null},"split"===t&&(r.constructor={},r.constructor[a]=function(){return r}),r[p](""),!n}):void 0;if(!v||!h||"replace"===t&&!f||"split"===t&&!l){var g=/./[p],y=r(u,p,""[t],function(t,n,r,e,o){return n.exec===s?v&&!o?{done:!0,value:g.call(n,r,e)}:{done:!0,value:t.call(r,n,e)}:{done:!1}}),d=y[0],x=y[1];e(String.prototype,t,d),o(RegExp.prototype,p,2==n?function(t,n){return x.call(t,this,n)}:function(t){return x.call(t,this)})}}},function(t,n,r){"use strict";var e=r(13),o=r(27),i=r(51),u=r(52);r(54)("match",1,function(t,n,r,c){return[function(r){var e=t(this),o=null==r?void 0:r[n];return void 0!==o?o.call(r,e):new RegExp(r)[n](String(e))},function(t){var n=c(r,t,this);if(n.done)return n.value;var s=e(t),a=String(this);if(!s.global)return u(s,a);var f=s.unicode;s.lastIndex=0;for(var l,p=[],v=0;null!==(l=u(s,a));){var h=String(l[0]);p[v]=h,""===h&&(s.lastIndex=i(a,o(s.lastIndex),f)),v++}return 0===v?null:p}]})},function(t,n,r){"use strict";var e=r(13),o=r(35),i=r(27),u=r(34),c=r(51),s=r(52),a=Math.max,f=Math.min,l=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,v=/\$([$&`']|\d\d?)/g;r(54)("replace",2,function(t,n,r,h){return[function(e,o){var i=t(this),u=null==e?void 0:e[n];return void 0!==u?u.call(e,i,o):r.call(String(i),e,o)},function(t,n){var o=h(r,t,this,n);if(o.done)return o.value;var l=e(t),p=String(this),v="function"==typeof n;v||(n=String(n));var y=l.global;if(y){var d=l.unicode;l.lastIndex=0}for(var x=[];;){var b=s(l,p);if(null===b)break;if(x.push(b),!y)break;""===String(b[0])&&(l.lastIndex=c(p,i(l.lastIndex),d))}for(var S,m="",w=0,O=0;O<x.length;O++){b=x[O];for(var _=String(b[0]),j=a(f(u(b.index),p.length),0),A=[],L=1;L<b.length;L++)A.push(void 0===(S=b[L])?S:String(S));var P=b.groups;if(v){var k=[_].concat(A,j,p);void 0!==P&&k.push(P);var E=String(n.apply(void 0,k))}else E=g(_,p,j,A,P,n);j>=w&&(m+=p.slice(w,j)+E,w=j+_.length)}return m+p.slice(w)}];function g(t,n,e,i,u,c){var s=e+t.length,a=i.length,f=v;return void 0!==u&&(u=o(u),f=p),r.call(c,f,function(r,o){var c;switch(o.charAt(0)){case"$":return"$";case"&":return t;case"`":return n.slice(0,e);case"'":return n.slice(s);case"<":c=u[o.slice(1,-1)];break;default:var f=+o;if(0===f)return r;if(f>a){var p=l(f/10);return 0===p?r:p<=a?void 0===i[p-1]?o.charAt(1):i[p-1]+o.charAt(1):r}c=i[f-1]}return void 0===c?"":c})}})},,function(t,n,r){},,function(t,n,r){var e=r(21),o=r(22),i=r(94),u=r(30),c=r(40),s=function(t,n,r){var a,f,l,p=t&s.F,v=t&s.G,h=t&s.S,g=t&s.P,y=t&s.B,d=t&s.W,x=v?o:o[n]||(o[n]={}),b=x.prototype,S=v?e:h?e[n]:(e[n]||{}).prototype;for(a in v&&(r=n),r)(f=!p&&S&&void 0!==S[a])&&c(x,a)||(l=f?S[a]:r[a],x[a]=v&&"function"!=typeof S[a]?r[a]:y&&f?i(l,e):d&&S[a]==l?function(t){var n=function(n,r,e){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(n);case 2:return new t(n,r)}return new t(n,r,e)}return t.apply(this,arguments)};return n.prototype=t.prototype,n}(l):g&&"function"==typeof l?i(Function.call,l):l,g&&((x.virtual||(x.virtual={}))[a]=l,t&s.R&&b&&!b[a]&&u(b,a,l)))};s.F=1,s.G=2,s.S=4,s.P=8,s.B=16,s.W=32,s.U=64,s.R=128,t.exports=s},function(t,n){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,n){t.exports=function(t,n){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:n}}},function(t,n){var r={}.toString;t.exports=function(t){return r.call(t).slice(8,-1)}},function(t,n){var r=Math.ceil,e=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?e:r)(t)}},function(t,n){t.exports=function(t){if(null==t)throw TypeError("Can't call method on  "+t);return t}},function(t,n,r){var e=r(160),o=r(65);t.exports=function(t){return e(o(t))}},function(t,n,r){var e=r(101)("keys"),o=r(102);t.exports=function(t){return e[t]||(e[t]=o(t))}},,,,,,,,,,function(t,n,r){var e=r(10)("unscopables"),o=Array.prototype;null==o[e]&&r(16)(o,e,{}),t.exports=function(t){o[e][t]=!0}},function(t,n){t.exports=!1},function(t,n,r){t.exports=!r(18)&&!r(14)(function(){return 7!=Object.defineProperty(r(80)("div"),"a",{get:function(){return 7}}).a})},function(t,n,r){var e=r(17),o=r(12).document,i=e(o)&&e(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,n,r){var e=r(17);t.exports=function(t,n){if(!e(t))return t;var r,o;if(n&&"function"==typeof(r=t.toString)&&!e(o=r.call(t)))return o;if("function"==typeof(r=t.valueOf)&&!e(o=r.call(t)))return o;if(!n&&"function"==typeof(r=t.toString)&&!e(o=r.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,n,r){var e=r(33);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==e(t)?t.split(""):Object(t)}},function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,n,r){var e=r(26),o=r(32),i=r(85)(!1),u=r(48)("IE_PROTO");t.exports=function(t,n){var r,c=o(t),s=0,a=[];for(r in c)r!=u&&e(c,r)&&a.push(r);for(;n.length>s;)e(c,r=n[s++])&&(~i(a,r)||a.push(r));return a}},function(t,n,r){var e=r(32),o=r(27),i=r(117);t.exports=function(t){return function(n,r,u){var c,s=e(n),a=o(s.length),f=i(u,a);if(t&&r!=r){for(;a>f;)if((c=s[f++])!=c)return!0}else for(;a>f;f++)if((t||f in s)&&s[f]===r)return t||f||0;return!t&&-1}}},function(t,n,r){var e=r(24).f,o=r(26),i=r(10)("toStringTag");t.exports=function(t,n,r){t&&!o(t=r?t:t.prototype,i)&&e(t,i,{configurable:!0,value:n})}},function(t,n,r){var e=r(35),o=r(47);r(120)("keys",function(){return function(t){return o(e(t))}})},function(t,n,r){var e=r(33);t.exports=Array.isArray||function(t){return"Array"==e(t)}},function(t,n,r){"use strict";var e=r(11),o=r(85)(!1),i=[].indexOf,u=!!i&&1/[1].indexOf(1,-0)<0;e(e.P+e.F*(u||!r(29)(i)),"Array",{indexOf:function(t){return u?i.apply(this,arguments)||0:o(this,t,arguments[1])}})},function(t,n,r){var e=r(11);e(e.S,"Array",{isArray:r(88)})},function(t,n,r){"use strict";var e=r(11),o=r(28)(2);e(e.P+e.F*!r(29)([].filter,!0),"Array",{filter:function(t){return o(this,t,arguments[1])}})},function(t,n,r){var e=r(17),o=r(33),i=r(10)("match");t.exports=function(t){var n;return e(t)&&(void 0!==(n=t[i])?!!n:"RegExp"==o(t))}},function(t,n,r){"use strict";var e=r(13);t.exports=function(){var t=e(this),n="";return t.global&&(n+="g"),t.ignoreCase&&(n+="i"),t.multiline&&(n+="m"),t.unicode&&(n+="u"),t.sticky&&(n+="y"),n}},function(t,n,r){var e=r(147);t.exports=function(t,n,r){if(e(t),void 0===n)return t;switch(r){case 1:return function(r){return t.call(n,r)};case 2:return function(r,e){return t.call(n,r,e)};case 3:return function(r,e,o){return t.call(n,r,e,o)}}return function(){return t.apply(n,arguments)}}},function(t,n){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,n,r){var e=r(61),o=r(21).document,i=e(o)&&e(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},function(t,n,r){"use strict";var e=r(153)(!0);r(98)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,n=this._t,r=this._i;return r>=n.length?{value:void 0,done:!0}:(t=e(n,r),this._i+=t.length,{value:t,done:!1})})},function(t,n,r){"use strict";var e=r(99),o=r(60),i=r(154),u=r(30),c=r(23),s=r(155),a=r(104),f=r(164),l=r(15)("iterator"),p=!([].keys&&"next"in[].keys()),v=function(){return this};t.exports=function(t,n,r,h,g,y,d){s(r,n,h);var x,b,S,m=function(t){if(!p&&t in j)return j[t];switch(t){case"keys":case"values":return function(){return new r(this,t)}}return function(){return new r(this,t)}},w=n+" Iterator",O="values"==g,_=!1,j=t.prototype,A=j[l]||j["@@iterator"]||g&&j[g],L=A||m(g),P=g?O?m("entries"):L:void 0,k="Array"==n&&j.entries||A;if(k&&(S=f(k.call(new t)))!==Object.prototype&&S.next&&(a(S,w,!0),e||"function"==typeof S[l]||u(S,l,v)),O&&A&&"values"!==A.name&&(_=!0,L=function(){return A.call(this)}),e&&!d||!p&&!_&&j[l]||u(j,l,L),c[n]=L,c[w]=v,g)if(x={values:O?L:m("values"),keys:y?L:m("keys"),entries:P},d)for(b in x)b in j||i(j,b,x[b]);else o(o.P+o.F*(p||_),n,x);return x}},function(t,n){t.exports=!0},function(t,n,r){var e=r(64),o=Math.min;t.exports=function(t){return t>0?o(e(t),9007199254740991):0}},function(t,n,r){var e=r(22),o=r(21),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,n){return i[t]||(i[t]=void 0!==n?n:{})})("versions",[]).push({version:e.version,mode:r(99)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,n){var r=0,e=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++r+e).toString(36))}},function(t,n){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,n,r){var e=r(37).f,o=r(40),i=r(15)("toStringTag");t.exports=function(t,n,r){t&&!o(t=r?t:t.prototype,i)&&e(t,i,{configurable:!0,value:n})}},function(t,n,r){var e=r(65);t.exports=function(t){return Object(e(t))}},function(t,n,r){var e=r(63),o=r(15)("toStringTag"),i="Arguments"==e(function(){return arguments}());t.exports=function(t){var n,r,u;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,n){try{return t[n]}catch(t){}}(n=Object(t),o))?r:i?e(n):"Object"==(u=e(n))&&"function"==typeof n.callee?"Arguments":u}},function(t,n,r){var e=r(184).Symbol;t.exports=e},,,function(t,n,r){"use strict";var e=r(77),o=r(111),i=r(45),u=r(32);t.exports=r(112)(Array,"Array",function(t,n){this._t=u(t),this._i=0,this._k=n},function(){var t=this._t,n=this._k,r=this._i++;return!t||r>=t.length?(this._t=void 0,o(1)):o(0,"keys"==n?r:"values"==n?t[r]:[r,t[r]])},"values"),i.Arguments=i.Array,e("keys"),e("values"),e("entries")},function(t,n){t.exports=function(t,n){return{value:n,done:!!t}}},function(t,n,r){"use strict";var e=r(78),o=r(11),i=r(25),u=r(16),c=r(45),s=r(114),a=r(86),f=r(119),l=r(10)("iterator"),p=!([].keys&&"next"in[].keys()),v=function(){return this};t.exports=function(t,n,r,h,g,y,d){s(r,n,h);var x,b,S,m=function(t){if(!p&&t in j)return j[t];switch(t){case"keys":case"values":return function(){return new r(this,t)}}return function(){return new r(this,t)}},w=n+" Iterator",O="values"==g,_=!1,j=t.prototype,A=j[l]||j["@@iterator"]||g&&j[g],L=A||m(g),P=g?O?m("entries"):L:void 0,k="Array"==n&&j.entries||A;if(k&&(S=f(k.call(new t)))!==Object.prototype&&S.next&&(a(S,w,!0),e||"function"==typeof S[l]||u(S,l,v)),O&&A&&"values"!==A.name&&(_=!0,L=function(){return A.call(this)}),e&&!d||!p&&!_&&j[l]||u(j,l,L),c[n]=L,c[w]=v,g)if(x={values:O?L:m("values"),keys:y?L:m("keys"),entries:P},d)for(b in x)b in j||i(j,b,x[b]);else o(o.P+o.F*(p||_),n,x);return x}},function(t,n,r){t.exports=r(42)("native-function-to-string",Function.toString)},function(t,n,r){"use strict";var e=r(115),o=r(44),i=r(86),u={};r(16)(u,r(10)("iterator"),function(){return this}),t.exports=function(t,n,r){t.prototype=e(u,{next:o(1,r)}),i(t,n+" Iterator")}},function(t,n,r){var e=r(13),o=r(116),i=r(49),u=r(48)("IE_PROTO"),c=function(){},s=function(){var t,n=r(80)("iframe"),e=i.length;for(n.style.display="none",r(118).appendChild(n),n.src="javascript:",(t=n.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),s=t.F;e--;)delete s.prototype[i[e]];return s()};t.exports=Object.create||function(t,n){var r;return null!==t?(c.prototype=e(t),r=new c,c.prototype=null,r[u]=t):r=s(),void 0===n?r:o(r,n)}},function(t,n,r){var e=r(24),o=r(13),i=r(47);t.exports=r(18)?Object.defineProperties:function(t,n){o(t);for(var r,u=i(n),c=u.length,s=0;c>s;)e.f(t,r=u[s++],n[r]);return t}},function(t,n,r){var e=r(34),o=Math.max,i=Math.min;t.exports=function(t,n){return(t=e(t))<0?o(t+n,0):i(t,n)}},function(t,n,r){var e=r(12).document;t.exports=e&&e.documentElement},function(t,n,r){var e=r(26),o=r(35),i=r(48)("IE_PROTO"),u=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),e(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},function(t,n,r){var e=r(11),o=r(31),i=r(14);t.exports=function(t,n){var r=(o.Object||{})[t]||Object[t],u={};u[t]=n(r),e(e.S+e.F*i(function(){r(1)}),"Object",u)}},function(t,n,r){var e=r(122);t.exports=function(t,n){return new(e(t))(n)}},function(t,n,r){var e=r(17),o=r(88),i=r(10)("species");t.exports=function(t){var n;return o(t)&&("function"!=typeof(n=t.constructor)||n!==Array&&!o(n.prototype)||(n=void 0),e(n)&&null===(n=n[i])&&(n=void 0)),void 0===n?Array:n}},function(t,n,r){"use strict";r(124)("link",function(t){return function(n){return t(this,"a","href",n)}})},function(t,n,r){var e=r(11),o=r(14),i=r(20),u=/"/g,c=function(t,n,r,e){var o=String(i(t)),c="<"+n;return""!==r&&(c+=" "+r+'="'+String(e).replace(u,"&quot;")+'"'),c+">"+o+"</"+n+">"};t.exports=function(t,n){var r={};r[t]=n(c),e(e.P+e.F*o(function(){var n=""[t]('"');return n!==n.toLowerCase()||n.split('"').length>3}),"String",r)}},function(t,n,r){"use strict";var e=r(11),o=r(28)(0),i=r(29)([].forEach,!0);e(e.P+e.F*!i,"Array",{forEach:function(t){return o(this,t,arguments[1])}})},function(t,n,r){"use strict";var e=r(92),o=r(13),i=r(127),u=r(51),c=r(27),s=r(52),a=r(53),f=r(14),l=Math.min,p=[].push,v=!f(function(){RegExp(4294967295,"y")});r(54)("split",2,function(t,n,r,f){var h;return h="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(t,n){var o=String(this);if(void 0===t&&0===n)return[];if(!e(t))return r.call(o,t,n);for(var i,u,c,s=[],f=(t.ignoreCase?"i":"")+(t.multiline?"m":"")+(t.unicode?"u":"")+(t.sticky?"y":""),l=0,v=void 0===n?4294967295:n>>>0,h=new RegExp(t.source,f+"g");(i=a.call(h,o))&&!((u=h.lastIndex)>l&&(s.push(o.slice(l,i.index)),i.length>1&&i.index<o.length&&p.apply(s,i.slice(1)),c=i[0].length,l=u,s.length>=v));)h.lastIndex===i.index&&h.lastIndex++;return l===o.length?!c&&h.test("")||s.push(""):s.push(o.slice(l)),s.length>v?s.slice(0,v):s}:"0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:r.call(this,t,n)}:r,[function(r,e){var o=t(this),i=null==r?void 0:r[n];return void 0!==i?i.call(r,o,e):h.call(String(o),r,e)},function(t,n){var e=f(h,t,this,n,h!==r);if(e.done)return e.value;var a=o(t),p=String(this),g=i(a,RegExp),y=a.unicode,d=(a.ignoreCase?"i":"")+(a.multiline?"m":"")+(a.unicode?"u":"")+(v?"y":"g"),x=new g(v?a:"^(?:"+a.source+")",d),b=void 0===n?4294967295:n>>>0;if(0===b)return[];if(0===p.length)return null===s(x,p)?[p]:[];for(var S=0,m=0,w=[];m<p.length;){x.lastIndex=v?m:0;var O,_=s(x,v?p:p.slice(m));if(null===_||(O=l(c(x.lastIndex+(v?0:m)),p.length))===S)m=u(p,m,y);else{if(w.push(p.slice(S,m)),w.length===b)return w;for(var j=1;j<=_.length-1;j++)if(w.push(_[j]),w.length===b)return w;m=S=O}}return w.push(p.slice(S)),w}]})},function(t,n,r){var e=r(13),o=r(83),i=r(10)("species");t.exports=function(t,n){var r,u=e(t).constructor;return void 0===u||null==(r=e(u)[i])?n:o(r)}},function(t,n,r){var e=r(34),o=r(20);t.exports=function(t){return function(n,r){var i,u,c=String(o(n)),s=e(r),a=c.length;return s<0||s>=a?t?"":void 0:(i=c.charCodeAt(s))<55296||i>56319||s+1===a||(u=c.charCodeAt(s+1))<56320||u>57343?t?c.charAt(s):i:t?c.slice(s,s+2):u-56320+(i-55296<<10)+65536}}},function(t,n,r){var e=r(33),o=r(10)("toStringTag"),i="Arguments"==e(function(){return arguments}());t.exports=function(t){var n,r,u;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,n){try{return t[n]}catch(t){}}(n=Object(t),o))?r:i?e(n):"Object"==(u=e(n))&&"function"==typeof n.callee?"Arguments":u}},function(t,n,r){"use strict";var e=r(53);r(11)({target:"RegExp",proto:!0,forced:e!==/./.exec},{exec:e})},,function(t,n,r){"use strict";r(133)("trim",function(t){return function(){return t(this,3)}})},function(t,n,r){var e=r(11),o=r(20),i=r(14),u=r(134),c="["+u+"]",s=RegExp("^"+c+c+"*"),a=RegExp(c+c+"*$"),f=function(t,n,r){var o={},c=i(function(){return!!u[t]()||"​"!="​"[t]()}),s=o[t]=c?n(l):u[t];r&&(o[r]=s),e(e.P+e.F*c,"String",o)},l=f.trim=function(t,n){return t=String(o(t)),1&n&&(t=t.replace(s,"")),2&n&&(t=t.replace(a,"")),t};t.exports=f},function(t,n){t.exports="\t\n\v\f\r   ᠎             　\u2028\u2029\ufeff"},function(t,n,r){"use strict";var e=r(58);r.n(e).a},,function(t,n,r){var e=r(12),o=r(138),i=r(24).f,u=r(142).f,c=r(92),s=r(93),a=e.RegExp,f=a,l=a.prototype,p=/a/g,v=/a/g,h=new a(p)!==p;if(r(18)&&(!h||r(14)(function(){return v[r(10)("match")]=!1,a(p)!=p||a(v)==v||"/a/i"!=a(p,"i")}))){a=function(t,n){var r=this instanceof a,e=c(t),i=void 0===n;return!r&&e&&t.constructor===a&&i?t:o(h?new f(e&&!i?t.source:t,n):f((e=t instanceof a)?t.source:t,e&&i?s.call(t):n),r?this:l,a)};for(var g=function(t){t in a||i(a,t,{configurable:!0,get:function(){return f[t]},set:function(n){f[t]=n}})},y=u(f),d=0;y.length>d;)g(y[d++]);l.constructor=a,a.prototype=l,r(25)(e,"RegExp",a)}r(143)("RegExp")},function(t,n,r){var e=r(17),o=r(139).set;t.exports=function(t,n,r){var i,u=n.constructor;return u!==r&&"function"==typeof u&&(i=u.prototype)!==r.prototype&&e(i)&&o&&o(t,i),t}},function(t,n,r){var e=r(17),o=r(13),i=function(t,n){if(o(t),!e(n)&&null!==n)throw TypeError(n+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,n,e){try{(e=r(46)(Function.call,r(140).f(Object.prototype,"__proto__").set,2))(t,[]),n=!(t instanceof Array)}catch(t){n=!0}return function(t,r){return i(t,r),n?t.__proto__=r:e(t,r),t}}({},!1):void 0),check:i}},function(t,n,r){var e=r(141),o=r(44),i=r(32),u=r(81),c=r(26),s=r(79),a=Object.getOwnPropertyDescriptor;n.f=r(18)?a:function(t,n){if(t=i(t),n=u(n,!0),s)try{return a(t,n)}catch(t){}if(c(t,n))return o(!e.f.call(t,n),t[n])}},function(t,n){n.f={}.propertyIsEnumerable},function(t,n,r){var e=r(84),o=r(49).concat("length","prototype");n.f=Object.getOwnPropertyNames||function(t){return e(t,o)}},function(t,n,r){"use strict";var e=r(12),o=r(24),i=r(18),u=r(10)("species");t.exports=function(t){var n=e[t];i&&n&&!n[u]&&o.f(n,u,{configurable:!0,get:function(){return this}})}},function(t,n,r){t.exports=r(145)},function(t,n,r){r(146),t.exports=r(22).Array.isArray},function(t,n,r){var e=r(60);e(e.S,"Array",{isArray:r(150)})},function(t,n){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,n,r){t.exports=!r(39)&&!r(95)(function(){return 7!=Object.defineProperty(r(96)("div"),"a",{get:function(){return 7}}).a})},function(t,n,r){var e=r(61);t.exports=function(t,n){if(!e(t))return t;var r,o;if(n&&"function"==typeof(r=t.toString)&&!e(o=r.call(t)))return o;if("function"==typeof(r=t.valueOf)&&!e(o=r.call(t)))return o;if(!n&&"function"==typeof(r=t.toString)&&!e(o=r.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},function(t,n,r){var e=r(63);t.exports=Array.isArray||function(t){return"Array"==e(t)}},function(t,n,r){t.exports=r(152)},function(t,n,r){r(97),r(165),t.exports=r(22).Array.from},function(t,n,r){var e=r(64),o=r(65);t.exports=function(t){return function(n,r){var i,u,c=String(o(n)),s=e(r),a=c.length;return s<0||s>=a?t?"":void 0:(i=c.charCodeAt(s))<55296||i>56319||s+1===a||(u=c.charCodeAt(s+1))<56320||u>57343?t?c.charAt(s):i:t?c.slice(s,s+2):u-56320+(i-55296<<10)+65536}}},function(t,n,r){t.exports=r(30)},function(t,n,r){"use strict";var e=r(156),o=r(62),i=r(104),u={};r(30)(u,r(15)("iterator"),function(){return this}),t.exports=function(t,n,r){t.prototype=e(u,{next:o(1,r)}),i(t,n+" Iterator")}},function(t,n,r){var e=r(38),o=r(157),i=r(103),u=r(67)("IE_PROTO"),c=function(){},s=function(){var t,n=r(96)("iframe"),e=i.length;for(n.style.display="none",r(163).appendChild(n),n.src="javascript:",(t=n.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),s=t.F;e--;)delete s.prototype[i[e]];return s()};t.exports=Object.create||function(t,n){var r;return null!==t?(c.prototype=e(t),r=new c,c.prototype=null,r[u]=t):r=s(),void 0===n?r:o(r,n)}},function(t,n,r){var e=r(37),o=r(38),i=r(158);t.exports=r(39)?Object.defineProperties:function(t,n){o(t);for(var r,u=i(n),c=u.length,s=0;c>s;)e.f(t,r=u[s++],n[r]);return t}},function(t,n,r){var e=r(159),o=r(103);t.exports=Object.keys||function(t){return e(t,o)}},function(t,n,r){var e=r(40),o=r(66),i=r(161)(!1),u=r(67)("IE_PROTO");t.exports=function(t,n){var r,c=o(t),s=0,a=[];for(r in c)r!=u&&e(c,r)&&a.push(r);for(;n.length>s;)e(c,r=n[s++])&&(~i(a,r)||a.push(r));return a}},function(t,n,r){var e=r(63);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==e(t)?t.split(""):Object(t)}},function(t,n,r){var e=r(66),o=r(100),i=r(162);t.exports=function(t){return function(n,r,u){var c,s=e(n),a=o(s.length),f=i(u,a);if(t&&r!=r){for(;a>f;)if((c=s[f++])!=c)return!0}else for(;a>f;f++)if((t||f in s)&&s[f]===r)return t||f||0;return!t&&-1}}},function(t,n,r){var e=r(64),o=Math.max,i=Math.min;t.exports=function(t,n){return(t=e(t))<0?o(t+n,0):i(t,n)}},function(t,n,r){var e=r(21).document;t.exports=e&&e.documentElement},function(t,n,r){var e=r(40),o=r(105),i=r(67)("IE_PROTO"),u=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),e(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?u:null}},function(t,n,r){"use strict";var e=r(94),o=r(60),i=r(105),u=r(166),c=r(167),s=r(100),a=r(168),f=r(169);o(o.S+o.F*!r(170)(function(t){Array.from(t)}),"Array",{from:function(t){var n,r,o,l,p=i(t),v="function"==typeof this?this:Array,h=arguments.length,g=h>1?arguments[1]:void 0,y=void 0!==g,d=0,x=f(p);if(y&&(g=e(g,h>2?arguments[2]:void 0,2)),null==x||v==Array&&c(x))for(r=new v(n=s(p.length));n>d;d++)a(r,d,y?g(p[d],d):p[d]);else for(l=x.call(p),r=new v;!(o=l.next()).done;d++)a(r,d,y?u(l,g,[o.value,d],!0):o.value);return r.length=d,r}})},function(t,n,r){var e=r(38);t.exports=function(t,n,r,o){try{return o?n(e(r)[0],r[1]):n(r)}catch(n){var i=t.return;throw void 0!==i&&e(i.call(t)),n}}},function(t,n,r){var e=r(23),o=r(15)("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(e.Array===t||i[o]===t)}},function(t,n,r){"use strict";var e=r(37),o=r(62);t.exports=function(t,n,r){n in t?e.f(t,n,o(0,r)):t[n]=r}},function(t,n,r){var e=r(106),o=r(15)("iterator"),i=r(23);t.exports=r(22).getIteratorMethod=function(t){if(null!=t)return t[o]||t["@@iterator"]||i[e(t)]}},function(t,n,r){var e=r(15)("iterator"),o=!1;try{var i=[7][e]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(t){}t.exports=function(t,n){if(!n&&!o)return!1;var r=!1;try{var i=[7],u=i[e]();u.next=function(){return{done:r=!0}},i[e]=function(){return u},t(i)}catch(t){}return r}},function(t,n,r){t.exports=r(172)},function(t,n,r){r(173),r(97),t.exports=r(177)},function(t,n,r){r(174);for(var e=r(21),o=r(30),i=r(23),u=r(15)("toStringTag"),c="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),s=0;s<c.length;s++){var a=c[s],f=e[a],l=f&&f.prototype;l&&!l[u]&&o(l,u,a),i[a]=i.Array}},function(t,n,r){"use strict";var e=r(175),o=r(176),i=r(23),u=r(66);t.exports=r(98)(Array,"Array",function(t,n){this._t=u(t),this._i=0,this._k=n},function(){var t=this._t,n=this._k,r=this._i++;return!t||r>=t.length?(this._t=void 0,o(1)):o(0,"keys"==n?r:"values"==n?t[r]:[r,t[r]])},"values"),i.Arguments=i.Array,e("keys"),e("values"),e("entries")},function(t,n){t.exports=function(){}},function(t,n){t.exports=function(t,n){return{value:n,done:!!t}}},function(t,n,r){var e=r(106),o=r(15)("iterator"),i=r(23);t.exports=r(22).isIterable=function(t){var n=Object(t);return void 0!==n[o]||"@@iterator"in n||i.hasOwnProperty(e(n))}},,,,,function(t,n,r){var e=r(183),o=r(188),i=r(189),u="[object String]";t.exports=function(t){return"string"==typeof t||!o(t)&&i(t)&&e(t)==u}},function(t,n,r){var e=r(107),o=r(186),i=r(187),u="[object Null]",c="[object Undefined]",s=e?e.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?c:u:s&&s in Object(t)?o(t):i(t)}},function(t,n,r){var e=r(185),o="object"==typeof self&&self&&self.Object===Object&&self,i=e||o||Function("return this")();t.exports=i},function(t,n){var r="object"==typeof global&&global&&global.Object===Object&&global;t.exports=r},function(t,n,r){var e=r(107),o=Object.prototype,i=o.hasOwnProperty,u=o.toString,c=e?e.toStringTag:void 0;t.exports=function(t){var n=i.call(t,c),r=t[c];try{t[c]=void 0;var e=!0}catch(t){}var o=u.call(t);return e&&(n?t[c]=r:delete t[c]),o}},function(t,n){var r=Object.prototype.toString;t.exports=function(t){return r.call(t)}},function(t,n){var r=Array.isArray;t.exports=r},function(t,n){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,n){t.exports=function(t){return null==t}},,,function(t,n,r){"use strict";var e=r(11),o=r(28)(5),i=!0;"find"in[]&&Array(1).find(function(){i=!1}),e(e.P+e.F*i,"Array",{find:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}}),r(77)("find")},,,,function(t,n,r){"use strict";r(55),r(91),r(90),r(89),r(132);var e={data:function(){return{query:"",focused:!1,focusIndex:0}},computed:{showSuggestions:function(){return this.focused&&this.suggestions&&this.suggestions.length},suggestions:function(){var t=this.query.trim().toLowerCase();if(t){for(var n=this.$site.pages,r=this.$localePath,e=function(n){return n.title&&n.title.toLowerCase().indexOf(t)>-1},o=[],i=0;i<n.length&&!(o.length>=5);i++){var u=n[i];if(this.getPageLocalePath(u)===r&&this.isSearchable(u))if(e(u))o.push(u);else if(u.headers)for(var c=0;c<u.headers.length&&!(o.length>=5);c++){var s=u.headers[c];e(s)&&o.push(Object.assign({},u,{path:u.path+"#"+s.slug,header:s}))}}return o}},alignRight:function(){return(this.$site.themeConfig.nav||[]).length+(this.$site.repo?1:0)<=2}},methods:{getPageLocalePath:function(t){for(var n in this.$site.locales||{})if("/"!==n&&0===t.path.indexOf(n))return n;return"/"},isSearchable:function(t){var n=null;return null===n||(n=Array.isArray(n)?n:new Array(n)).filter(function(n){return t.path.match(n)}).length>0},onUp:function(){this.showSuggestions&&(this.focusIndex>0?this.focusIndex--:this.focusIndex=this.suggestions.length-1)},onDown:function(){this.showSuggestions&&(this.focusIndex<this.suggestions.length-1?this.focusIndex++:this.focusIndex=0)},go:function(t){this.showSuggestions&&(this.$router.push(this.suggestions[t].path),this.query="",this.focusIndex=0)},focus:function(t){this.focusIndex=t},unfocus:function(){this.focusIndex=-1}}},o=(r(135),r(0)),i=Object(o.a)(e,function(){var t=this,n=t.$createElement,r=t._self._c||n;return r("div",{staticClass:"search-box"},[r("input",{class:{focused:t.focused},attrs:{"aria-label":"Search",autocomplete:"off",spellcheck:"false"},domProps:{value:t.query},on:{input:function(n){t.query=n.target.value},focus:function(n){t.focused=!0},blur:function(n){t.focused=!1},keyup:[function(n){return!n.type.indexOf("key")&&t._k(n.keyCode,"enter",13,n.key,"Enter")?null:t.go(t.focusIndex)},function(n){return!n.type.indexOf("key")&&t._k(n.keyCode,"up",38,n.key,["Up","ArrowUp"])?null:t.onUp(n)},function(n){return!n.type.indexOf("key")&&t._k(n.keyCode,"down",40,n.key,["Down","ArrowDown"])?null:t.onDown(n)}]}}),t._v(" "),t.showSuggestions?r("ul",{staticClass:"suggestions",class:{"align-right":t.alignRight},on:{mouseleave:t.unfocus}},t._l(t.suggestions,function(n,e){return r("li",{staticClass:"suggestion",class:{focused:e===t.focusIndex},on:{mousedown:function(n){return t.go(e)},mouseenter:function(n){return t.focus(e)}}},[r("a",{attrs:{href:n.path},on:{click:function(t){t.preventDefault()}}},[r("span",{staticClass:"page-title"},[t._v(t._s(n.title||n.path))]),t._v(" "),n.header?r("span",{staticClass:"header"},[t._v("> "+t._s(n.header.title))]):t._e()])])}),0):t._e()])},[],!1,null,null,null);n.a=i.exports},function(t,n,r){"use strict";var e=r(144),o=r.n(e);var i=r(151),u=r.n(i),c=r(171),s=r.n(c);function a(t){return function(t){if(o()(t)){for(var n=0,r=new Array(t.length);n<t.length;n++)r[n]=t[n];return r}}(t)||function(t){if(s()(Object(t))||"[object Arguments]"===Object.prototype.toString.call(t))return u()(t)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}r.d(n,"a",function(){return a})}]]);
\ No newline at end of file
diff --git a/assets/js/3.30bc9dac.js b/assets/js/3.30bc9dac.js
new file mode 100644
index 0000000..e593762
--- /dev/null
+++ b/assets/js/3.30bc9dac.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{108:function(t,e,n){"use strict";n.r(e);n(36);var i=n(19),a={name:"SidebarGroup",props:["item","open","collapsable","depth"],components:{DropdownTransition:n(109).a},beforeCreate:function(){this.$options.components.SidebarLinks=n(108).default},methods:{isActive:i.e}},r=(n(192),n(0)),s=Object(r.a)(a,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"sidebar-group",class:[{collapsable:t.collapsable,"is-sub-group":0!==t.depth},"depth-"+t.depth]},[t.item.path?n("router-link",{staticClass:"sidebar-heading clickable",class:{open:t.open,active:t.isActive(t.$route,t.item.path)},attrs:{to:t.item.path},nativeOn:{click:function(e){return t.$emit("toggle")}}},[n("span",[t._v(t._s(t.item.title))]),t._v(" "),t.collapsable?n("span",{staticClass:"arrow",class:t.open?"down":"right"}):t._e()]):n("p",{staticClass:"sidebar-heading",class:{open:t.open},on:{click:function(e){return t.$emit("toggle")}}},[n("span",[t._v(t._s(t.item.title))]),t._v(" "),t.collapsable?n("span",{staticClass:"arrow",class:t.open?"down":"right"}):t._e()]),t._v(" "),n("DropdownTransition",[t.open||!t.collapsable?n("SidebarLinks",{staticClass:"sidebar-group-items",attrs:{items:t.item.children,sidebarDepth:t.item.sidebarDepth,depth:t.depth+1}}):t._e()],1)],1)},[],!1,null,null,null).exports;n(50),n(193);function o(t,e,n,i){return t("router-link",{props:{to:e,activeClass:"",exactActiveClass:""},class:{active:i,"sidebar-link":!0}},n)}function l(t,e,n,a,r){var s=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1;return!e||s>r?null:t("ul",{class:"sidebar-sub-headers"},e.map(function(e){var c=Object(i.e)(a,n+"#"+e.slug);return t("li",{class:"sidebar-sub-header"},[o(t,n+"#"+e.slug,e.title,c),l(t,e.children,n,a,r,s+1)])}))}var c={functional:!0,props:["item","sidebarDepth"],render:function(t,e){var n=e.parent,a=n.$page,r=(n.$site,n.$route),s=n.$themeConfig,c=n.$themeLocaleConfig,u=e.props,h=u.item,p=u.sidebarDepth,d=Object(i.e)(r,h.path),f="auto"===h.type?d||h.children.some(function(t){return Object(i.e)(r,h.basePath+"#"+t.slug)}):d,v="external"===h.type?function(t,e,n){return t("a",{attrs:{href:e,target:"_blank",rel:"noopener noreferrer"},class:{"sidebar-link":!0}},[n,t("OutboundLink")])}(t,h.path,h.title||h.path):o(t,h.path,h.title||h.path,f),g=[a.frontmatter.sidebarDepth,p,c.sidebarDepth,s.sidebarDepth,1].find(function(t){return void 0!==t}),m=c.displayAllHeaders||s.displayAllHeaders;return"auto"===h.type?[v,l(t,h.children,h.basePath,r,g)]:(f||m)&&h.headers&&!i.d.test(h.path)?[v,l(t,Object(i.c)(h.headers),h.path,r,g)]:v}};n(194);var u={name:"SidebarLinks",components:{SidebarGroup:s,SidebarLink:Object(r.a)(c,void 0,void 0,!1,null,null,null).exports},props:["items","depth","sidebarDepth"],data:function(){return{openGroupIndex:0}},created:function(){this.refreshIndex()},watch:{$route:function(){this.refreshIndex()}},methods:{refreshIndex:function(){var t=function(t,e){for(var n=0;n<e.length;n++){var a=e[n];if("group"===a.type&&a.children.some(function(e){return"page"===e.type&&Object(i.e)(t,e.path)}))return n}return-1}(this.$route,this.items);t>-1&&(this.openGroupIndex=t)},toggleGroup:function(t){this.openGroupIndex=t===this.openGroupIndex?-1:t},isActive:function(t){return Object(i.e)(this.$route,t.regularPath)}}},h=Object(r.a)(u,function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.items.length?n("ul",{staticClass:"sidebar-links"},t._l(t.items,function(e,i){return n("li",{key:i},["group"===e.type?n("SidebarGroup",{attrs:{item:e,open:i===t.openGroupIndex,collapsable:e.collapsable||e.collapsible,depth:t.depth},on:{toggle:function(e){return t.toggleGroup(i)}}}):n("SidebarLink",{attrs:{sidebarDepth:t.sidebarDepth,item:e}})],1)}),0):t._e()},[],!1,null,null,null);e.default=h.exports},109:function(t,e,n){"use strict";var i={name:"DropdownTransition",methods:{setHeight:function(t){t.style.height=t.scrollHeight+"px"},unsetHeight:function(t){t.style.height=""}}},a=(n(178),n(0)),r=Object(a.a)(i,function(){var t=this.$createElement;return(this._self._c||t)("transition",{attrs:{name:"dropdown"},on:{enter:this.setHeight,"after-enter":this.unsetHeight,"before-leave":this.setHeight}},[this._t("default")],2)},[],!1,null,null,null);e.a=r.exports},131:function(t,e,n){"use strict";var i=n(57);n.n(i).a},136:function(t,e,n){"use strict";var i=n(59);n.n(i).a},178:function(t,e,n){"use strict";var i=n(68);n.n(i).a},179:function(t,e,n){"use strict";var i=n(69);n.n(i).a},180:function(t,e,n){"use strict";var i=n(70);n.n(i).a},181:function(t,e,n){"use strict";var i=n(71);n.n(i).a},19:function(t,e,n){"use strict";n.d(e,"d",function(){return i}),n.d(e,"a",function(){return r}),n.d(e,"i",function(){return s}),n.d(e,"f",function(){return l}),n.d(e,"g",function(){return c}),n.d(e,"h",function(){return u}),n.d(e,"b",function(){return h}),n.d(e,"e",function(){return p}),n.d(e,"k",function(){return d}),n.d(e,"l",function(){return f}),n.d(e,"c",function(){return v}),n.d(e,"j",function(){return g});n(89),n(90),n(91),n(41),n(125),n(50),n(126),n(55),n(56);var i=/#.*$/,a=/\.(md|html)$/,r=/\/$/,s=/^[a-z]+:/i;function o(t){return decodeURI(t).replace(i,"").replace(a,"")}function l(t){return s.test(t)}function c(t){return/^mailto:/.test(t)}function u(t){return/^tel:/.test(t)}function h(t){if(l(t))return t;var e=t.match(i),n=e?e[0]:"",a=o(t);return r.test(a)?t:a+".html"+n}function p(t,e){var n=t.hash,a=function(t){var e=t.match(i);if(e)return e[0]}(e);return(!a||n===a)&&o(t.path)===o(e)}function d(t,e,n){if(l(e))return{type:"external",path:e};n&&(e=function(t,e,n){var i=t.charAt(0);if("/"===i)return t;if("?"===i||"#"===i)return e+t;var a=e.split("/");n&&a[a.length-1]||a.pop();for(var r=t.replace(/^\//,"").split("/"),s=0;s<r.length;s++){var o=r[s];".."===o?a.pop():"."!==o&&a.push(o)}""!==a[0]&&a.unshift("");return a.join("/")}(e,n));for(var i=o(e),a=0;a<t.length;a++)if(o(t[a].regularPath)===i)return Object.assign({},t[a],{type:"page",path:h(t[a].path)});return console.error('[vuepress] No matching page found for sidebar item "'.concat(e,'"')),{}}function f(t,e,n,i){var a=n.pages,r=n.themeConfig,s=i&&r.locales&&r.locales[i]||r;if("auto"===(t.frontmatter.sidebar||s.sidebar||r.sidebar))return function(t){var e=v(t.headers||[]);return[{type:"group",collapsable:!1,title:t.title,path:null,children:e.map(function(e){return{type:"auto",title:e.title,basePath:t.path,path:t.path+"#"+e.slug,children:e.children||[]}})}]}(t);var o=s.sidebar||r.sidebar;if(o){var l=function(t,e){if(Array.isArray(e))return{base:"/",config:e};for(var n in e)if(0===(i=t,/(\.html|\/)$/.test(i)?i:i+"/").indexOf(encodeURI(n)))return{base:n,config:e[n]};var i;return{}}(e,o),c=l.base,u=l.config;return u?u.map(function(t){return function t(e,n,i){var a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1;if("string"==typeof e)return d(n,e,i);if(Array.isArray(e))return Object.assign(d(n,e[0],i),{title:e[1]});a>3&&console.error("[vuepress] detected a too deep nested sidebar group.");var r=e.children||[];return 0===r.length&&e.path?Object.assign(d(n,e.path,i),{title:e.title}):{type:"group",path:e.path,title:e.title,sidebarDepth:e.sidebarDepth,children:r.map(function(e){return t(e,n,i,a+1)}),collapsable:!1!==e.collapsable}}(t,a,c)}):[]}return[]}function v(t){var e;return(t=t.map(function(t){return Object.assign({},t)})).forEach(function(t){2===t.level?e=t:e&&(e.children||(e.children=[])).push(t)}),t.filter(function(t){return 2===t.level})}function g(t){return Object.assign(t,{type:t.items&&t.items.length?"links":"link"})}},191:function(t,e,n){"use strict";var i=n(72);n.n(i).a},192:function(t,e,n){"use strict";var i=n(73);n.n(i).a},194:function(t,e,n){"use strict";var i=n(74);n.n(i).a},195:function(t,e,n){"use strict";var i=n(75);n.n(i).a},199:function(t,e,n){"use strict";n.r(e);n(41),n(87),n(36),n(123);var i=n(19),a={props:{item:{required:!0}},computed:{link:function(){return Object(i.b)(this.item.link)},exact:function(){var t=this;return this.$site.locales?Object.keys(this.$site.locales).some(function(e){return e===t.link}):"/"===this.link}},methods:{isExternal:i.f,isMailto:i.g,isTel:i.h}},r=n(0),s=Object(r.a)(a,function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.isExternal(t.link)?n("a",{staticClass:"nav-link external",attrs:{href:t.link,target:t.isMailto(t.link)||t.isTel(t.link)?null:"_blank",rel:t.isMailto(t.link)||t.isTel(t.link)?null:"noopener noreferrer"}},[t._v("\n  "+t._s(t.item.text)+"\n  "),n("OutboundLink")],1):n("router-link",{staticClass:"nav-link",attrs:{to:t.link,exact:t.exact}},[t._v(t._s(t.item.text))])},[],!1,null,null,null).exports,o={name:"Footer"},l=Object(r.a)(o,function(){var t=this.$createElement;return(this._self._c||t)("div",[this._v("\n    MIT Licensed - Copyright © 2019-present Joe Springe - This library is not in any way associated with nor endorsed by Microsoft™.\n")])},[],!1,null,"22968384",null).exports,c={components:{Footer:l,NavLink:s},computed:{data:function(){return this.$page.frontmatter},actionLink:function(){return{link:this.data.actionLink,text:this.data.actionText}}}},u=(n(131),Object(r.a)(c,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("main",{staticClass:"home",attrs:{"aria-labelledby":"main-title"}},[n("header",{staticClass:"hero"},[t.data.heroImage?n("img",{attrs:{src:t.$withBase(t.data.heroImage),alt:t.data.heroAlt||"hero"}}):t._e(),t._v(" "),null!==t.data.heroText?n("h1",{attrs:{id:"main-title"}},[t._v(t._s(t.data.heroText||t.$title||"Hello"))]):t._e(),t._v(" "),n("p",{staticClass:"description"},[t._v("\n      "+t._s(t.data.tagline||t.$description||"Welcome to your VuePress site")+"\n    ")]),t._v(" "),t.data.actionText&&t.data.actionLink?n("p",{staticClass:"action"},[n("NavLink",{staticClass:"action-button",attrs:{item:t.actionLink}})],1):t._e()]),t._v(" "),t.data.features&&t.data.features.length?n("div",{staticClass:"features"},t._l(t.data.features,function(e,i){return n("div",{key:i,staticClass:"feature"},[n("h2",[t._v(t._s(e.title))]),t._v(" "),n("p",[t._v(t._s(e.details))])])}),0):t._e(),t._v(" "),n("Content",{staticClass:"theme-default-content custom"}),t._v(" "),t.data.footer?n("div",{staticClass:"footer"},[t._v("\n    "+t._s(t.data.footer)+"\n  ")]):t._e(),t._v(" "),n("Footer",{staticClass:"footer"})],1)},[],!1,null,null,null).exports),h=n(197),p=(n(136),Object(r.a)({},function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"sidebar-button",on:{click:function(e){return t.$emit("toggle-sidebar")}}},[n("svg",{staticClass:"icon",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",viewBox:"0 0 448 512"}},[n("path",{attrs:{fill:"currentColor",d:"M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"}})])])},[],!1,null,null,null).exports),d=(n(137),n(55),n(198)),f=(n(56),n(50),{components:{NavLink:s,DropdownTransition:n(109).a},data:function(){return{open:!1}},props:{item:{required:!0}},methods:{toggle:function(){this.open=!this.open}}}),v=(n(179),{components:{NavLink:s,DropdownLink:Object(r.a)(f,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"dropdown-wrapper",class:{open:t.open}},[n("a",{staticClass:"dropdown-title",on:{click:t.toggle}},[n("span",{staticClass:"title"},[t._v(t._s(t.item.text))]),t._v(" "),n("span",{staticClass:"arrow",class:t.open?"down":"right"})]),t._v(" "),n("DropdownTransition",[n("ul",{directives:[{name:"show",rawName:"v-show",value:t.open,expression:"open"}],staticClass:"nav-dropdown"},t._l(t.item.items,function(e,i){return n("li",{key:e.link||i,staticClass:"dropdown-item"},["links"===e.type?n("h4",[t._v(t._s(e.text))]):t._e(),t._v(" "),"links"===e.type?n("ul",{staticClass:"dropdown-subitem-wrapper"},t._l(e.items,function(t){return n("li",{key:t.link,staticClass:"dropdown-subitem"},[n("NavLink",{attrs:{item:t}})],1)}),0):n("NavLink",{attrs:{item:e}})],1)}),0)])],1)},[],!1,null,null,null).exports},computed:{userNav:function(){return this.$themeLocaleConfig.nav||this.$site.themeConfig.nav||[]},nav:function(){var t=this,e=this.$site.locales;if(e&&Object.keys(e).length>1){var n=this.$page.path,i=this.$router.options.routes,a=this.$site.themeConfig.locales||{},r={text:this.$themeLocaleConfig.selectText||"Languages",items:Object.keys(e).map(function(r){var s,o=e[r],l=a[r]&&a[r].label||o.lang;return o.lang===t.$lang?s=n:(s=n.replace(t.$localeConfig.path,r),i.some(function(t){return t.path===s})||(s=r)),{text:l,link:s}})};return[].concat(Object(d.a)(this.userNav),[r])}return this.userNav},userLinks:function(){return(this.nav||[]).map(function(t){return Object.assign(Object(i.j)(t),{items:(t.items||[]).map(i.j)})})},repoLink:function(){var t=this.$site.themeConfig.repo;if(t)return/^https?:/.test(t)?t:"https://github.com/".concat(t)},repoLabel:function(){if(this.repoLink){if(this.$site.themeConfig.repoLabel)return this.$site.themeConfig.repoLabel;for(var t=this.repoLink.match(/^https?:\/\/[^\/]+/)[0],e=["GitHub","GitLab","Bitbucket"],n=0;n<e.length;n++){var i=e[n];if(new RegExp(i,"i").test(t))return i}return"Source"}}}}),g=(n(180),Object(r.a)(v,function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.userLinks.length||t.repoLink?n("nav",{staticClass:"nav-links"},[t._l(t.userLinks,function(t){return n("div",{key:t.link,staticClass:"nav-item"},["links"===t.type?n("DropdownLink",{attrs:{item:t}}):n("NavLink",{attrs:{item:t}})],1)}),t._v(" "),t.repoLink?n("a",{staticClass:"repo-link",attrs:{href:t.repoLink,target:"_blank",rel:"noopener noreferrer"}},[t._v("\n    "+t._s(t.repoLabel)+"\n    "),n("OutboundLink")],1):t._e()],2):t._e()},[],!1,null,null,null).exports);function m(t,e){return t.ownerDocument.defaultView.getComputedStyle(t,null)[e]}var b={components:{SidebarButton:p,NavLinks:g,SearchBox:h.a,AlgoliaSearchBox:{}},data:function(){return{linksWrapMaxWidth:null}},mounted:function(){var t=this,e=parseInt(m(this.$el,"paddingLeft"))+parseInt(m(this.$el,"paddingRight")),n=function(){document.documentElement.clientWidth<719?t.linksWrapMaxWidth=null:t.linksWrapMaxWidth=t.$el.offsetWidth-e-(t.$refs.siteName&&t.$refs.siteName.offsetWidth||0)};n(),window.addEventListener("resize",n,!1)},computed:{algolia:function(){return this.$themeLocaleConfig.algolia||this.$site.themeConfig.algolia||{}},isAlgoliaSearch:function(){return this.algolia&&this.algolia.apiKey&&this.algolia.indexName}}},_=(n(181),Object(r.a)(b,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("header",{staticClass:"navbar"},[n("SidebarButton",{on:{"toggle-sidebar":function(e){return t.$emit("toggle-sidebar")}}}),t._v(" "),n("router-link",{staticClass:"home-link",attrs:{to:t.$localePath}},[t.$site.themeConfig.logo?n("img",{staticClass:"logo",attrs:{src:t.$withBase(t.$site.themeConfig.logo),alt:t.$siteTitle}}):t._e(),t._v(" "),t.$siteTitle?n("span",{ref:"siteName",staticClass:"site-name",class:{"can-hide":t.$site.themeConfig.logo}},[t._v(t._s(t.$siteTitle))]):t._e()]),t._v(" "),n("div",{staticClass:"links",style:t.linksWrapMaxWidth?{"max-width":t.linksWrapMaxWidth+"px"}:{}},[t.isAlgoliaSearch?n("AlgoliaSearchBox",{attrs:{options:t.algolia}}):!1!==t.$site.themeConfig.search&&!1!==t.$page.frontmatter.search?n("SearchBox"):t._e(),t._v(" "),n("NavLinks",{staticClass:"can-hide"})],1)],1)},[],!1,null,null,null).exports),k=n(182),C=n.n(k),$=n(190),x=n.n($),L={components:{Footer:l},props:["sidebarItems"],computed:{lastUpdated:function(){return this.$page.lastUpdated},lastUpdatedText:function(){return"string"==typeof this.$themeLocaleConfig.lastUpdated?this.$themeLocaleConfig.lastUpdated:"string"==typeof this.$site.themeConfig.lastUpdated?this.$site.themeConfig.lastUpdated:"Last Updated"},prev:function(){return y(w.PREV,this)},next:function(){return y(w.NEXT,this)},editLink:function(){if(!1!==this.$page.frontmatter.editLink){var t=this.$site.themeConfig,e=t.repo,n=t.editLinks,i=t.docsDir,a=void 0===i?"":i,r=t.docsBranch,s=void 0===r?"master":r,o=t.docsRepo,l=void 0===o?e:o;return l&&n&&this.$page.relativePath?this.createEditLink(e,l,a,s,this.$page.relativePath):void 0}},editLinkText:function(){return this.$themeLocaleConfig.editLinkText||this.$site.themeConfig.editLinkText||"Edit this page"}},methods:{createEditLink:function(t,e,n,a,r){return/bitbucket.org/.test(t)?(i.i.test(e)?e:t).replace(i.a,"")+"/src"+"/".concat(a,"/")+(n?n.replace(i.a,"")+"/":"")+r+"?mode=edit&spa=0&at=".concat(a,"&fileviewer=file-view-default"):(i.i.test(e)?e:"https://github.com/".concat(e)).replace(i.a,"")+"/edit"+"/".concat(a,"/")+(n?n.replace(i.a,"")+"/":"")+r}}};var w={NEXT:{resolveLink:function(t,e){return S(t,e,1)},getThemeLinkConfig:function(t){return t.nextLinks},getPageLinkConfig:function(t){return t.frontmatter.next}},PREV:{resolveLink:function(t,e){return S(t,e,-1)},getThemeLinkConfig:function(t){return t.prevLinks},getPageLinkConfig:function(t){return t.frontmatter.prev}}};function y(t,e){var n=e.$themeConfig,a=e.$page,r=e.$route,s=e.$site,o=e.sidebarItems,l=t.resolveLink,c=t.getThemeLinkConfig,u=t.getPageLinkConfig,h=c(n),p=u(a),d=x()(p)?h:p;return!1===d?void 0:C()(d)?Object(i.k)(s.pages,d,r.path):l(a,o)}function S(t,e,n){var i=[];!function t(e,n){for(var i=0,a=e.length;i<a;i++)"group"===e[i].type?t(e[i].children||[],n):n.push(e[i])}(e,i);for(var a=0;a<i.length;a++){var r=i[a];if("page"===r.type&&r.path===decodeURIComponent(t.path))return i[a+n]}}var O=L,j=(n(191),Object(r.a)(O,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("main",{staticClass:"page"},[t._t("top"),t._v(" "),n("Content",{staticClass:"theme-default-content"}),t._v(" "),n("footer",{staticClass:"page-edit"},[t.editLink?n("div",{staticClass:"edit-link"},[n("a",{attrs:{href:t.editLink,target:"_blank",rel:"noopener noreferrer"}},[t._v(t._s(t.editLinkText))]),t._v(" "),n("OutboundLink")],1):t._e(),t._v(" "),t.lastUpdated?n("div",{staticClass:"last-updated"},[n("span",{staticClass:"prefix"},[t._v(t._s(t.lastUpdatedText)+": ")]),t._v(" "),n("span",{staticClass:"time"},[t._v(t._s(t.lastUpdated))])]):t._e()]),t._v(" "),t.prev||t.next?n("div",{staticClass:"page-nav"},[n("p",{staticClass:"inner"},[t.prev?n("span",{staticClass:"prev"},[t._v("\n        ←\n        "),t.prev?n("router-link",{staticClass:"prev",attrs:{to:t.prev.path}},[t._v("\n          "+t._s(t.prev.title||t.prev.path)+"\n        ")]):t._e()],1):t._e(),t._v(" "),t.next?n("span",{staticClass:"next"},[t.next?n("router-link",{attrs:{to:t.next.path}},[t._v("\n          "+t._s(t.next.title||t.next.path)+"\n        ")]):t._e(),t._v("\n        →\n      ")],1):t._e()]),t._v(" "),n("Footer",{staticClass:"footer"})],1):t._e(),t._v(" "),t._t("bottom")],2)},[],!1,null,null,null).exports),T={name:"Sidebar",components:{SidebarLinks:n(108).default,NavLinks:g},props:["items"]},E=(n(195),{components:{Home:u,Page:j,Sidebar:Object(r.a)(T,function(){var t=this.$createElement,e=this._self._c||t;return e("aside",{staticClass:"sidebar"},[e("NavLinks"),this._v(" "),this._t("top"),this._v(" "),e("SidebarLinks",{attrs:{depth:0,items:this.items}}),this._v(" "),this._t("bottom")],2)},[],!1,null,null,null).exports,Navbar:_,Footer:l},data:function(){return{isSidebarOpen:!1}},computed:{shouldShowNavbar:function(){var t=this.$site.themeConfig;return!1!==this.$page.frontmatter.navbar&&!1!==t.navbar&&(this.$title||t.logo||t.repo||t.nav||this.$themeLocaleConfig.nav)},shouldShowSidebar:function(){var t=this.$page.frontmatter;return!t.home&&!1!==t.sidebar&&this.sidebarItems.length},sidebarItems:function(){return Object(i.l)(this.$page,this.$page.regularPath,this.$site,this.$localePath)},pageClasses:function(){var t=this.$page.frontmatter.pageClass;return[{"no-navbar":!this.shouldShowNavbar,"sidebar-open":this.isSidebarOpen,"no-sidebar":!this.shouldShowSidebar},t]}},mounted:function(){var t=this;this.$router.afterEach(function(){t.isSidebarOpen=!1})},methods:{toggleSidebar:function(t){this.isSidebarOpen="boolean"==typeof t?t:!this.isSidebarOpen},onTouchStart:function(t){this.touchStart={x:t.changedTouches[0].clientX,y:t.changedTouches[0].clientY}},onTouchEnd:function(t){var e=t.changedTouches[0].clientX-this.touchStart.x,n=t.changedTouches[0].clientY-this.touchStart.y;Math.abs(e)>Math.abs(n)&&Math.abs(e)>40&&(e>0&&this.touchStart.x<=80?this.toggleSidebar(!0):this.toggleSidebar(!1))}}}),N=Object(r.a)(E,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"theme-container",class:t.pageClasses,on:{touchstart:t.onTouchStart,touchend:t.onTouchEnd}},[t.shouldShowNavbar?n("Navbar",{on:{"toggle-sidebar":t.toggleSidebar}}):t._e(),t._v(" "),n("div",{staticClass:"sidebar-mask",on:{click:function(e){return t.toggleSidebar(!1)}}}),t._v(" "),n("Sidebar",{attrs:{items:t.sidebarItems},on:{"toggle-sidebar":t.toggleSidebar}},[t._t("sidebar-top",null,{slot:"top"}),t._v(" "),t._t("sidebar-bottom",null,{slot:"bottom"})],2),t._v(" "),t.$page.frontmatter.home?n("Home"):n("Page",{attrs:{"sidebar-items":t.sidebarItems}},[t._t("page-top",null,{slot:"top"}),t._v(" "),t._t("page-bottom",null,{slot:"bottom"})],2)],1)},[],!1,null,null,null);e.default=N.exports},57:function(t,e,n){},59:function(t,e,n){},68:function(t,e,n){},69:function(t,e,n){},70:function(t,e,n){},71:function(t,e,n){},72:function(t,e,n){},73:function(t,e,n){},74:function(t,e,n){},75:function(t,e,n){}}]);
\ No newline at end of file
diff --git a/docs/.vuepress/dist/assets/js/3.9aec9bee.js b/assets/js/4.b2559bf1.js
similarity index 50%
rename from docs/.vuepress/dist/assets/js/3.9aec9bee.js
rename to assets/js/4.b2559bf1.js
index ab9a6bc..a8803cc 100644
--- a/docs/.vuepress/dist/assets/js/3.9aec9bee.js
+++ b/assets/js/4.b2559bf1.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{183:function(t,e,n){"use strict";var i=n(68);n.n(i).a},189:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(183),n(0)),a=Object(r.a)(i,void 0,void 0,!1,null,"c13ee5b0",null);e.default=a.exports},68:function(t,e,n){}}]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{196:function(t,e,n){"use strict";var i=n(76);n.n(i).a},204:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:function(t,e){var n=e.props,i=e.slots;return t("span",{class:["badge",n.type],style:{verticalAlign:n.vertical}},n.text||i().default)}},r=(n(196),n(0)),a=Object(r.a)(i,void 0,void 0,!1,null,"76652c5d",null);e.default=a.exports},76:function(t,e,n){}}]);
\ No newline at end of file
diff --git a/docs/.vuepress/dist/assets/js/4.2f35b444.js b/assets/js/5.4bd79ff2.js
similarity index 90%
rename from docs/.vuepress/dist/assets/js/4.2f35b444.js
rename to assets/js/5.4bd79ff2.js
index 6f4af26..3a87a81 100644
--- a/docs/.vuepress/dist/assets/js/4.2f35b444.js
+++ b/assets/js/5.4bd79ff2.js
@@ -1 +1 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{185:function(t,e,s){"use strict";s.r(e);var o=["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],n={methods:{getMsg:function(){return o[Math.floor(Math.random()*o.length)]}}},i=s(0),h=Object(i.a)(n,function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"theme-container"},[e("div",{staticClass:"theme-default-content"},[e("h1",[this._v("404")]),this._v(" "),e("blockquote",[this._v(this._s(this.getMsg()))]),this._v(" "),e("router-link",{attrs:{to:"/"}},[this._v("Take me home.")])],1)])},[],!1,null,null,null);e.default=h.exports}}]);
\ No newline at end of file
+(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{200:function(t,e,s){"use strict";s.r(e);var o=["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."],n={methods:{getMsg:function(){return o[Math.floor(Math.random()*o.length)]}}},i=s(0),h=Object(i.a)(n,function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"theme-container"},[e("div",{staticClass:"theme-default-content"},[e("h1",[this._v("404")]),this._v(" "),e("blockquote",[this._v(this._s(this.getMsg()))]),this._v(" "),e("router-link",{attrs:{to:"/"}},[this._v("Take me home.")])],1)])},[],!1,null,null,null);e.default=h.exports}}]);
\ No newline at end of file
diff --git a/assets/js/6.5ba71b34.js b/assets/js/6.5ba71b34.js
new file mode 100644
index 0000000..4c0e6b4
--- /dev/null
+++ b/assets/js/6.5ba71b34.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{206:function(t,e,i){"use strict";i.r(e);var o=i(0),n=Object(o.a)({},function(){var t=this.$createElement,e=this._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("h1",{attrs:{id:"introduction"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#introduction","aria-hidden":"true"}},[this._v("#")]),this._v(" Introduction")]),this._v(" "),e("p",[this._v("The following section will dive into the internals of the library. You typically do not need to dive this\ndeep, but I feel it would be good to document it for all of our benefit.")])])},[],!1,null,null,null);e.default=n.exports}}]);
\ No newline at end of file
diff --git a/assets/js/7.7458681b.js b/assets/js/7.7458681b.js
new file mode 100644
index 0000000..bd15a33
--- /dev/null
+++ b/assets/js/7.7458681b.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{205:function(t,s,n){"use strict";n.r(s);var a=n(0),e=Object(a.a)({},function(){var t=this,s=t.$createElement,n=t._self._c||s;return n("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[n("h1",{attrs:{id:"the-config-instance"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#the-config-instance","aria-hidden":"true"}},[t._v("#")]),t._v(" The Config Instance")]),t._v(" "),n("p",[t._v("The configuration instance, "),n("code",[t._v("Config")]),t._v(", is the core of this library. Upon instantiation of a model or the "),n("code",[t._v("Scripting")]),t._v("\nobject an instance of "),n("code",[t._v("Config")]),t._v(" will be created.")]),t._v(" "),n("p",[n("code",[t._v("Config")]),t._v(" uses a singleton-like pattern to make directly querying on a model possible.\nDue to the usage of this pattern, you typically would not "),n("code",[t._v("new")]),t._v(" the "),n("code",[t._v("Config")]),t._v(" object directly. However, if you feel\nyou need to access the "),n("code",[t._v("Config")]),t._v(" directly you should do so using the "),n("code",[t._v("::instance()")]),t._v(" static method.")]),t._v(" "),n("h2",{attrs:{id:"defaults"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#defaults","aria-hidden":"true"}},[t._v("#")]),t._v(" Defaults")]),t._v(" "),n("p",[t._v("The only default setting that I'm currently outlining are the connections. If not defined, the default connection is\nthe machine that is currently running PHP.")]),t._v(" "),n("div",{staticClass:"language-php line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-php"}},[n("code",[t._v("config"),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("/")]),t._v("connections"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(".")]),t._v("php\n\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'default'")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'local'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n    "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'servers'")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'local'")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n            "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'server'")]),t._v("          "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'.'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n            "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'namespace'")]),t._v("       "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'Root\\CIMv2'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n            "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'user'")]),t._v("            "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token constant"}},[t._v("null")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n            "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'password'")]),t._v("        "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token constant"}},[t._v("null")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n            "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'locale'")]),t._v("          "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token constant"}},[t._v("null")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n            "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'authority'")]),t._v("       "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token constant"}},[t._v("null")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n            "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'security_flags'")]),t._v("  "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token constant"}},[t._v("null")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br")])]),n("p",[t._v("If you would like to define a list of connections from a file or array you should construct the array and\ninstantiate "),n("code",[t._v("Config")]),t._v(" as follows:")]),t._v(" "),n("div",{staticClass:"language-php line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-php"}},[n("code",[n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$connections")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'wmi'")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'connections'")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n            "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'default'")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'computer-two'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n            "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'servers'")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n                "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'computer-one'")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n                    "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'server'")]),t._v("          "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'computer1'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n                    "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'user'")]),t._v("            "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'admin'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n                    "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'password'")]),t._v("        "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'password'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n                    "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// All options below are optional.")]),t._v("\n                    "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'namespace'")]),t._v("       "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token constant"}},[t._v("null")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n                    "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'locale'")]),t._v("          "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token constant"}},[t._v("null")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n                    "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'authority'")]),t._v("       "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token constant"}},[t._v("null")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n                    "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'security_flags'")]),t._v("  "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token constant"}},[t._v("null")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n                "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n\n                "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'computer-two'")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n                    "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'server'")]),t._v("          "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'computer2'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n                    "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'user'")]),t._v("            "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'admin'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n                    "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'password'")]),t._v("        "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'password'")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n                    "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'locale'")]),t._v("          "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token constant"}},[t._v("null")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n                    "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'authority'")]),t._v("       "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token constant"}},[t._v("null")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n                    "),n("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'security_flags'")]),t._v("  "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token constant"}},[t._v("null")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n                "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n            "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\nConfig"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("instance")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$connections")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// or")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("new")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("Config")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$connections")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br"),n("span",{staticClass:"line-number"},[t._v("11")]),n("br"),n("span",{staticClass:"line-number"},[t._v("12")]),n("br"),n("span",{staticClass:"line-number"},[t._v("13")]),n("br"),n("span",{staticClass:"line-number"},[t._v("14")]),n("br"),n("span",{staticClass:"line-number"},[t._v("15")]),n("br"),n("span",{staticClass:"line-number"},[t._v("16")]),n("br"),n("span",{staticClass:"line-number"},[t._v("17")]),n("br"),n("span",{staticClass:"line-number"},[t._v("18")]),n("br"),n("span",{staticClass:"line-number"},[t._v("19")]),n("br"),n("span",{staticClass:"line-number"},[t._v("20")]),n("br"),n("span",{staticClass:"line-number"},[t._v("21")]),n("br"),n("span",{staticClass:"line-number"},[t._v("22")]),n("br"),n("span",{staticClass:"line-number"},[t._v("23")]),n("br"),n("span",{staticClass:"line-number"},[t._v("24")]),n("br"),n("span",{staticClass:"line-number"},[t._v("25")]),n("br"),n("span",{staticClass:"line-number"},[t._v("26")]),n("br"),n("span",{staticClass:"line-number"},[t._v("27")]),n("br"),n("span",{staticClass:"line-number"},[t._v("28")]),n("br"),n("span",{staticClass:"line-number"},[t._v("29")]),n("br"),n("span",{staticClass:"line-number"},[t._v("30")]),n("br"),n("span",{staticClass:"line-number"},[t._v("31")]),n("br"),n("span",{staticClass:"line-number"},[t._v("32")]),n("br"),n("span",{staticClass:"line-number"},[t._v("33")]),n("br")])]),n("p",[t._v("Either method above will instantiate the "),n("code",[t._v("Config")]),t._v(" object to be used later. Again, be sure to do this prior to any\ncalls to "),n("code",[t._v("Config")]),t._v(" to assure predictable behavior. If you use "),n("code",[t._v("Config::instance($connections)")]),t._v(" the new connections will\nsimply be merged i to an already started instance, if one exists, or a new instance will be started with the given\nconfiguration.")]),t._v(" "),n("p",[t._v("Accessing the configuration object in the following way keeps you from trampling over the current configuration and\nallows you to make global changes.")]),t._v(" "),n("div",{staticClass:"language-php line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-php"}},[n("code",[n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// This is how the library accesses the Config object.")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$config")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Config"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("instance")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br")])]),n("h2",{attrs:{id:"config-methods"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#config-methods","aria-hidden":"true"}},[t._v("#")]),t._v(" Config Methods")]),t._v(" "),n("p",[t._v("While not all of the "),n("code",[t._v("Config")]),t._v(" methods are outlined here below are the ones that may be most useful to you.")]),t._v(" "),n("h3",{attrs:{id:"instance"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#instance","aria-hidden":"true"}},[t._v("#")]),t._v(" instance")]),t._v(" "),n("h4",{attrs:{id:"config-instance-array-items-resolver-resolver-null"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#config-instance-array-items-resolver-resolver-null","aria-hidden":"true"}},[t._v("#")]),t._v(" "),n("code",[t._v("Config::instance(array $items = [], Resolver $resolver = null)")])]),t._v(" "),n("p",[t._v("If called without any arguments this will either return the currently instantiated instance or return a new instance\nwith default setting.")]),t._v(" "),n("p",[t._v("If called with the "),n("code",[t._v("$items")]),t._v(" array set this will merge the given configuration into the currently existing configuration.")]),t._v(" "),n("p",[t._v("If called with "),n("code",[t._v("$resolver")]),t._v(" set then it will replace the current "),n("code",[t._v("Resolver")]),t._v(" instance with the one given. You shouldn't\nneed to override this, but it could be useful when testing.")]),t._v(" "),n("h3",{attrs:{id:"newinstance"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#newinstance","aria-hidden":"true"}},[t._v("#")]),t._v(" newInstance")]),t._v(" "),n("h4",{attrs:{id:"config-newinstance-array-items-resolver-resolver-null"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#config-newinstance-array-items-resolver-resolver-null","aria-hidden":"true"}},[t._v("#")]),t._v(" "),n("code",[t._v("Config::newInstance(array $items = [], Resolver $resolver = null)")])]),t._v(" "),n("p",[t._v("Operates the same as above with the exception that this will always return a brand new instance. This is also useful\nwhen testing to assure that previously set configuration options do not leak into other tests.")]),t._v(" "),n("div",{staticClass:"language-php line-numbers-mode"},[n("pre",{pre:!0,attrs:{class:"language-php"}},[n("code",[n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("class")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("FeatureTest")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("extends")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token class-name"}},[t._v("TestCase")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token comment"}},[t._v("/** @var Config */")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("protected")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$config")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n    "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("protected")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("setUp")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),t._v(" void\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n        "),n("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$this")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("-")]),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),n("span",{pre:!0,attrs:{class:"token property"}},[t._v("config")]),t._v(" "),n("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" Config"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),n("span",{pre:!0,attrs:{class:"token function"}},[t._v("newInstance")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n    "),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n"),n("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),n("div",{staticClass:"line-numbers-wrapper"},[n("span",{staticClass:"line-number"},[t._v("1")]),n("br"),n("span",{staticClass:"line-number"},[t._v("2")]),n("br"),n("span",{staticClass:"line-number"},[t._v("3")]),n("br"),n("span",{staticClass:"line-number"},[t._v("4")]),n("br"),n("span",{staticClass:"line-number"},[t._v("5")]),n("br"),n("span",{staticClass:"line-number"},[t._v("6")]),n("br"),n("span",{staticClass:"line-number"},[t._v("7")]),n("br"),n("span",{staticClass:"line-number"},[t._v("8")]),n("br"),n("span",{staticClass:"line-number"},[t._v("9")]),n("br"),n("span",{staticClass:"line-number"},[t._v("10")]),n("br")])]),n("h3",{attrs:{id:"getconnection"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#getconnection","aria-hidden":"true"}},[t._v("#")]),t._v(" getConnection")]),t._v(" "),n("h4",{attrs:{id:"config-getconnection-string-name-null"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#config-getconnection-string-name-null","aria-hidden":"true"}},[t._v("#")]),t._v(" "),n("code",[t._v("$config->getConnection(string $name = null)")])]),t._v(" "),n("p",[t._v("Returns a connection from the "),n("code",[t._v("Config")]),t._v(" container by name. If "),n("code",[t._v("$name")]),t._v(" is not provided or set to "),n("code",[t._v("'default'")]),t._v(" then it will\nreturn the default connection.")]),t._v(" "),n("p",[t._v("If a connection is not found it will simply return "),n("code",[t._v("null")]),t._v(".")]),t._v(" "),n("h3",{attrs:{id:"addconnection"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#addconnection","aria-hidden":"true"}},[t._v("#")]),t._v(" addConnection")]),t._v(" "),n("h4",{attrs:{id:"config-addconnection-string-name-connection-connection"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#config-addconnection-string-name-connection-connection","aria-hidden":"true"}},[t._v("#")]),t._v(" "),n("code",[t._v("$config->addConnection(string $name, Connection $connection)")])]),t._v(" "),n("p",[t._v("Add a connection to the "),n("code",[t._v("Config")]),t._v(" instance.")]),t._v(" "),n("h3",{attrs:{id:"setdefaultconnection"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#setdefaultconnection","aria-hidden":"true"}},[t._v("#")]),t._v(" setDefaultConnection")]),t._v(" "),n("h4",{attrs:{id:"config-setdefaultconnection-string-name"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#config-setdefaultconnection-string-name","aria-hidden":"true"}},[t._v("#")]),t._v(" "),n("code",[t._v("$config->setDefaultConnection(string $name)")])]),t._v(" "),n("p",[t._v("This will set the default connection by its name. If the connection name does not exist then it will throw an\n"),n("code",[t._v("InvalidConnectionException")]),t._v(".")]),t._v(" "),n("h3",{attrs:{id:"getdefaultconnectionname"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#getdefaultconnectionname","aria-hidden":"true"}},[t._v("#")]),t._v(" getDefaultConnectionName")]),t._v(" "),n("h4",{attrs:{id:"config-getdefaultconnectionname"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#config-getdefaultconnectionname","aria-hidden":"true"}},[t._v("#")]),t._v(" "),n("code",[t._v("$config->getDefaultConnectionName()")])]),t._v(" "),n("p",[t._v("Returns the currently set default connection name.")]),t._v(" "),n("h3",{attrs:{id:"getdefaultconnection"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#getdefaultconnection","aria-hidden":"true"}},[t._v("#")]),t._v(" getDefaultConnection")]),t._v(" "),n("h4",{attrs:{id:"config-getdefaultconnection"}},[n("a",{staticClass:"header-anchor",attrs:{href:"#config-getdefaultconnection","aria-hidden":"true"}},[t._v("#")]),t._v(" "),n("code",[t._v("$config->getDefaultConnection()")])]),t._v(" "),n("p",[t._v("Returns the currently set default connection.")])])},[],!1,null,null,null);s.default=e.exports}}]);
\ No newline at end of file
diff --git a/assets/js/8.25d2004c.js b/assets/js/8.25d2004c.js
new file mode 100644
index 0000000..fc167a9
--- /dev/null
+++ b/assets/js/8.25d2004c.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{202:function(t,e,a){"use strict";a.r(e);var s=a(0),r=Object(s.a)({},function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("ContentSlotsDistributor",{attrs:{"slot-key":t.$parent.slotKey}},[a("h1",{attrs:{id:"win32model"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#win32model","aria-hidden":"true"}},[t._v("#")]),t._v(" Win32Model")]),t._v(" "),a("p",[t._v("The "),a("code",[t._v("Win32Model")]),t._v(" is the base class for all of the models that represent the\n"),a("a",{attrs:{href:"https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-provider",target:"_blank",rel:"noopener noreferrer"}},[t._v("Win32 provider classes"),a("OutboundLink")],1),t._v(". Each model is\ncomposed of either another model or classes that represent\n"),a("a",{attrs:{href:"https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-wmi-provider",target:"_blank",rel:"noopener noreferrer"}},[t._v("CIM providers"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("h2",{attrs:{id:"example-composition"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#example-composition","aria-hidden":"true"}},[t._v("#")]),t._v(" Example Composition")]),t._v(" "),a("div",{staticClass:"language- line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-text"}},[a("code",[t._v("PHPWinTools\\WmiScripting\\Models\\UserAccount\n    → Models\\Account\n        → CIM\\CimLogicalElement\n            → CIM\\CimManagedSystemElement\n                → Models\\Win32Model\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br"),a("span",{staticClass:"line-number"},[t._v("2")]),a("br"),a("span",{staticClass:"line-number"},[t._v("3")]),a("br"),a("span",{staticClass:"line-number"},[t._v("4")]),a("br"),a("span",{staticClass:"line-number"},[t._v("5")]),a("br")])]),a("h2",{attrs:{id:"properties-and-attributes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#properties-and-attributes","aria-hidden":"true"}},[t._v("#")]),t._v(" Properties and Attributes")]),t._v(" "),a("p",[t._v("While each model has all of its possible properties defined, the intended method to get the value of these properties\nis "),a("a",{attrs:{href:"#getattribute"}},[a("code",[t._v("getAttribute")])]),t._v(". This allows for mutating or "),a("a",{attrs:{href:"#attribute-casting"}},[t._v("casting")]),t._v(" the value upon retrieval\nvia an "),a("a",{attrs:{href:"#attribute-methods"}},[t._v("attribute method")]),t._v(", as well as, defining "),a("a",{attrs:{href:"#calculated-attributes"}},[t._v("calculated attributes")]),t._v(".")]),t._v(" "),a("p",[t._v("There are also a couple of properties that should be considered when extending from an existing model.")]),t._v(" "),a("h3",{attrs:{id:"connection"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#connection","aria-hidden":"true"}},[t._v("#")]),t._v(" $connection")]),t._v(" "),a("h4",{attrs:{id:"protected-connection-default"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#protected-connection-default","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("code",[t._v("protected $connection = 'default'")])]),t._v(" "),a("p",[t._v("This is the name of connection that should be used when calling "),a("a",{attrs:{href:"#query"}},[a("code",[t._v("query")])]),t._v(" and "),a("a",{attrs:{href:"#all"}},[a("code",[t._v("all")])]),t._v("\nwithout providing a value for "),a("code",[t._v("$connection")]),t._v(".")]),t._v(" "),a("h3",{attrs:{id:"wmi-class-name"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#wmi-class-name","aria-hidden":"true"}},[t._v("#")]),t._v(" $wmi_class_name")]),t._v(" "),a("h4",{attrs:{id:"protected-wmi-class-name"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#protected-wmi-class-name","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("code",[t._v("protected $wmi_class_name")])]),t._v(" "),a("p",[t._v("This is an optional property, but only if the model you are calling extends an existing "),a("code",[t._v("Win32Model")]),t._v(". If you do not\ndefine this property and a class name cannot determine the WMI class name an exception will be thrown.")]),t._v(" "),a("h3",{attrs:{id:"attribute-casting"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#attribute-casting","aria-hidden":"true"}},[t._v("#")]),t._v(" $attribute_casting")]),t._v(" "),a("h4",{attrs:{id:"protected-attribute-casting"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#protected-attribute-casting","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("code",[t._v("protected $attribute_casting = []")])]),t._v(" "),a("p",[t._v("Attributes will attempted to be casted to the given type if defined within this array. All definitions of\n"),a("code",[t._v("$attribute_casting")]),t._v(" are merged from the models ancestors by default. This allows you to define "),a("code",[t._v("$attribute_casting")]),t._v(" in\nboth a parent and a child without risk of having the values overridden. In the case where both the child and parent\nclass both define the same attribute to be casted the child casting will be used.")]),t._v(" "),a("div",{staticClass:"language-php line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-php"}},[a("code",[t._v("Available castings\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("protected")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$attribute_casting")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("[")]),t._v("\n    "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'attribute'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'array'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'attribute'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'bool'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'attribute'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'int'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n    "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'attribute'")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v("=")]),a("span",{pre:!0,attrs:{class:"token operator"}},[t._v(">")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'string'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("]")]),t._v("\n\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br"),a("span",{staticClass:"line-number"},[t._v("2")]),a("br"),a("span",{staticClass:"line-number"},[t._v("3")]),a("br"),a("span",{staticClass:"line-number"},[t._v("4")]),a("br"),a("span",{staticClass:"line-number"},[t._v("5")]),a("br"),a("span",{staticClass:"line-number"},[t._v("6")]),a("br"),a("span",{staticClass:"line-number"},[t._v("7")]),a("br"),a("span",{staticClass:"line-number"},[t._v("8")]),a("br"),a("span",{staticClass:"line-number"},[t._v("9")]),a("br")])]),a("h3",{attrs:{id:"merge-parent-casting"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#merge-parent-casting","aria-hidden":"true"}},[t._v("#")]),t._v(" $merge_parent_casting")]),t._v(" "),a("h4",{attrs:{id:"protected-merge-parent-casting-true"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#protected-merge-parent-casting-true","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("code",[t._v("protected $merge_parent_casting = true")])]),t._v(" "),a("p",[t._v("If set to "),a("code",[t._v("false")]),t._v(" then the "),a("code",[t._v("$attribute_casting")]),t._v(" will not be merged from the ancestors and only the castings defined\nwithin the child's "),a("code",[t._v("$attribute_casting")]),t._v(" will be considered.")]),t._v(" "),a("h3",{attrs:{id:"hidden-attributes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#hidden-attributes","aria-hidden":"true"}},[t._v("#")]),t._v(" $hidden_attributes")]),t._v(" "),a("h4",{attrs:{id:"protected-hidden-attributes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#protected-hidden-attributes","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("code",[t._v("protected $hidden_attributes = []")])]),t._v(" "),a("p",[t._v("Any attributes listed in this array will not be included when casting a "),a("a",{attrs:{href:"#toarray"}},[t._v("model to array")]),t._v(". Like\n"),a("a",{attrs:{href:"#attribute-casting"}},[a("code",[t._v("$attribute_casting")])]),t._v(", the values in this array are merged from the model's ancestors.")]),t._v(" "),a("h3",{attrs:{id:"merge-parent-hidden-attributes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#merge-parent-hidden-attributes","aria-hidden":"true"}},[t._v("#")]),t._v(" $merge_parent_hidden_attributes")]),t._v(" "),a("h4",{attrs:{id:"protected-merge-parent-hidden-attributes-true"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#protected-merge-parent-hidden-attributes-true","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("code",[t._v("protected $merge_parent_hidden_attributes = true")])]),t._v(" "),a("p",[t._v("If set to "),a("code",[t._v("false")]),t._v(" then the "),a("code",[t._v("$hidden_attributes")]),t._v(" will not be merged from the ancestors and only the castings defined\nwithin the child's "),a("code",[t._v("$hidden_attributes")]),t._v(" will be considered.")]),t._v(" "),a("h3",{attrs:{id:"calculated-attributes"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#calculated-attributes","aria-hidden":"true"}},[t._v("#")]),t._v(" Calculated Attributes")]),t._v(" "),a("p",[t._v("Calculated attributes are simply "),a("a",{attrs:{href:"#attribute-methods"}},[t._v("attribute methods")]),t._v(" without an associated property.")]),t._v(" "),a("h2",{attrs:{id:"methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#methods","aria-hidden":"true"}},[t._v("#")]),t._v(" Methods")]),t._v(" "),a("p",[t._v("Below are the most useful methods available to all classes that extend "),a("code",[t._v("Win32Model")]),t._v(".")]),t._v(" "),a("h3",{attrs:{id:"attribute-methods"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#attribute-methods","aria-hidden":"true"}},[t._v("#")]),t._v(" Attribute Methods")]),t._v(" "),a("h4",{attrs:{id:"getsomepropertyattribute-value"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getsomepropertyattribute-value","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("code",[t._v("getSomePropertyAttribute($value)")])]),t._v(" "),a("h4",{attrs:{id:"getsomepropertyattribute"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getsomepropertyattribute","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("code",[t._v("getSomePropertyAttribute()")])]),t._v(" "),a("p",[t._v("Attribute methods are getter methods that are named after the associated property sandwiched by "),a("code",[t._v("get")]),t._v(" and "),a("code",[t._v("Attribute")]),t._v(".\nThis is very similar and absolutely inspired by Laravel's Eloquent attribute mutator.")]),t._v(" "),a("div",{staticClass:"language-php line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-php"}},[a("code",[a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("public")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("function")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("getSomePropertyAttribute")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$value")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("{")]),t._v("\n    "),a("span",{pre:!0,attrs:{class:"token keyword"}},[t._v("return")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("strtoupper")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token variable"}},[t._v("$value")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("}")]),t._v("\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br"),a("span",{staticClass:"line-number"},[t._v("2")]),a("br"),a("span",{staticClass:"line-number"},[t._v("3")]),a("br"),a("span",{staticClass:"line-number"},[t._v("4")]),a("br")])]),a("p",[t._v("If there is a property that matches the name within "),a("code",[t._v("get")]),t._v(" "),a("code",[t._v("Attribute")]),t._v(" then the value of that property will be passed to\nthe method otherwise nothing is passed. This can be used to create calculated attributes that have may not have an\nassociated property.")]),t._v(" "),a("p",[t._v("These are evaluated during "),a("a",{attrs:{href:"#getattribute"}},[a("code",[t._v("getAttribute")])]),t._v(" calls and when calling "),a("a",{attrs:{href:"#toarray"}},[a("code",[t._v("toArray")])]),t._v(".")]),t._v(" "),a("h3",{attrs:{id:"mapconstant"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#mapconstant","aria-hidden":"true"}},[t._v("#")]),t._v(" mapConstant")]),t._v(" "),a("h4",{attrs:{id:"protected-function-mapconstant-string-mapping-string-class-constant"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#protected-function-mapconstant-string-mapping-string-class-constant","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("code",[t._v("protected function mapConstant(string $mapping_string_class, $constant)")])]),t._v(" "),a("p",[t._v("This method can be used with an "),a("a",{attrs:{href:"#attribute-methods"}},[t._v("attribute method")]),t._v(" to convert a property that typically returns\nan integer that is mappable to a string.")]),t._v(" "),a("p",[t._v("The "),a("code",[t._v("$mapping_string_class")]),t._v(" parameter expects a class name of a class that extends "),a("code",[t._v("MappingString\\Mappings")]),t._v(" and are\nmeant to represent\n"),a("a",{attrs:{href:"https://docs.microsoft.com/en-us/windows/win32/wmisdk/standard-qualifiers#mappingstrings",target:"_blank",rel:"noopener noreferrer"}},[t._v("MappingStrings"),a("OutboundLink")],1),t._v(".")]),t._v(" "),a("h3",{attrs:{id:"query"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#query","aria-hidden":"true"}},[t._v("#")]),t._v(" query")]),t._v(" "),a("h4",{attrs:{id:"win32model-query-connection-null"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#win32model-query-connection-null","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("code",[t._v("Win32Model::query($connection = null)")])]),t._v(" "),a("p",[t._v("This method allows you to query a model directly and returns an instance of "),a("code",[t._v("Query\\Builder")]),t._v(". It accepts a "),a("code",[t._v("$connection")]),t._v("\nargument that can be provided in a number of ways.")]),t._v(" "),a("div",{staticClass:"language-php line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-php"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Uses default model connection or falls back to default Config connection.")]),t._v("\nWin32Model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("query")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Finds the connection by its name.")]),t._v("\nWin32Model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("query")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'named_connection'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[t._v("// Uses the connection as is.")]),t._v("\nWin32Model"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("query")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),t._v("Connection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[t._v("simple")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v("(")]),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'computer'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'user'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(",")]),t._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[t._v("'password'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[t._v(";")]),t._v("\n")])]),t._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[t._v("1")]),a("br"),a("span",{staticClass:"line-number"},[t._v("2")]),a("br"),a("span",{staticClass:"line-number"},[t._v("3")]),a("br"),a("span",{staticClass:"line-number"},[t._v("4")]),a("br"),a("span",{staticClass:"line-number"},[t._v("5")]),a("br"),a("span",{staticClass:"line-number"},[t._v("6")]),a("br"),a("span",{staticClass:"line-number"},[t._v("7")]),a("br"),a("span",{staticClass:"line-number"},[t._v("8")]),a("br")])]),a("p",[t._v("If you pass a "),a("code",[t._v("Connection")]),t._v(" instance it will not be stored in the "),a("code",[t._v("Config")]),t._v(" container. This can be useful if you have a\nnumber of connections you do not wish to persist.")]),t._v(" "),a("h3",{attrs:{id:"all"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#all","aria-hidden":"true"}},[t._v("#")]),t._v(" all")]),t._v(" "),a("h4",{attrs:{id:"win32model-all-connection-null"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#win32model-all-connection-null","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("code",[t._v("Win32Model::all($connection = null)")])]),t._v(" "),a("p",[t._v("This method will call "),a("code",[t._v("all")]),t._v(" on the "),a("code",[t._v("Query\\Builder")]),t._v(" and return an instance of "),a("code",[t._v("ModelCollection")]),t._v(". You can pass a\nconnection to this method in the same ways that are available to "),a("a",{attrs:{href:"#query"}},[a("code",[t._v("query")])]),t._v(".")]),t._v(" "),a("h3",{attrs:{id:"getattribute"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getattribute","aria-hidden":"true"}},[t._v("#")]),t._v(" getAttribute")]),t._v(" "),a("h4",{attrs:{id:"model-getattribute-attribute-default-null"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#model-getattribute-attribute-default-null","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("code",[t._v("$model->getAttribute($attribute, $default = null)")])]),t._v(" "),a("p",[t._v("This is the preferred method for retrieving values from a model. When using this method the property will be evaluated\nfor "),a("a",{attrs:{href:"#attribute-casting"}},[t._v("castings")]),t._v(", "),a("a",{attrs:{href:"#attribute-methods"}},[t._v("attribute methods")]),t._v(", and\n"),a("a",{attrs:{href:"#attribute-methods"}},[t._v("calculated attributes")]),t._v(".")]),t._v(" "),a("p",[t._v("The second parameter, "),a("code",[t._v("$default")]),t._v(", allows you to set a default value if no value could be determined otherwise "),a("code",[t._v("null")]),t._v(" is\nreturned.")]),t._v(" "),a("h3",{attrs:{id:"toarray"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#toarray","aria-hidden":"true"}},[t._v("#")]),t._v(" toArray")]),t._v(" "),a("h4",{attrs:{id:"model-toarray"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#model-toarray","aria-hidden":"true"}},[t._v("#")]),t._v(" "),a("code",[t._v("$model->toArray()")])]),t._v(" "),a("p",[t._v("Transforms the model class into an array.")]),t._v(" "),a("p",[t._v("This is accomplished by evaluating each property, "),a("a",{attrs:{href:"#attribute-methods"}},[t._v("attribute method")]),t._v(", "),a("a",{attrs:{href:"#attribute-casting"}},[t._v("casting")]),t._v(",\nand "),a("a",{attrs:{href:"#hidden-attribute"}},[t._v("hidden attribute")]),t._v(".")])])},[],!1,null,null,null);e.default=r.exports}}]);
\ No newline at end of file
diff --git a/assets/js/9.2d3c2ea0.js b/assets/js/9.2d3c2ea0.js
new file mode 100644
index 0000000..57efa0c
--- /dev/null
+++ b/assets/js/9.2d3c2ea0.js
@@ -0,0 +1 @@
+(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{201:function(s,t,a){"use strict";a.r(t);var n=a(0),e=Object(n.a)({},function(){var s=this,t=s.$createElement,a=s._self._c||t;return a("ContentSlotsDistributor",{attrs:{"slot-key":s.$parent.slotKey}},[a("h1",{attrs:{id:"getting-started"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#getting-started","aria-hidden":"true"}},[s._v("#")]),s._v(" Getting Started")]),s._v(" "),a("div",{staticClass:"warning custom-block"},[a("h4",{attrs:{id:"requirements"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#requirements","aria-hidden":"true"}},[s._v("#")]),s._v(" REQUIREMENTS")]),s._v(" "),a("p",[s._v(">= PHP 7.1")]),s._v(" "),a("p",[s._v("Windows and the "),a("code",[s._v("com_dotnet")]),s._v(" extension enabled (available in every "),a("a",{attrs:{href:"https://windows.php.net/download/",target:"_blank",rel:"noopener noreferrer"}},[a("code",[s._v("Windows PHP")]),a("OutboundLink")],1),s._v(" release).")])]),s._v(" "),a("h2",{attrs:{id:"install"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#install","aria-hidden":"true"}},[s._v("#")]),s._v(" Install")]),s._v(" "),a("div",{staticClass:"language-sh line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-sh"}},[a("code",[s._v("composer require phpwintools/wmi-scripting\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br")])]),a("h2",{attrs:{id:"basic-configuration"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#basic-configuration","aria-hidden":"true"}},[s._v("#")]),s._v(" Basic Configuration")]),s._v(" "),a("p",[s._v("There isn't much configuration that needs to be done to get started with this library. You only need to set the\nconnections before using this in your own application.")]),s._v(" "),a("h3",{attrs:{id:"local-connection"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#local-connection","aria-hidden":"true"}},[s._v("#")]),s._v(" Local Connection")]),s._v(" "),a("div",{staticClass:"language-php line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-php"}},[a("code",[a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// Returns a ModelCollection of LoggedOnUser models from the local machine")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$local")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" LoggedOnUser"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("query")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$scripting")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("new")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("Scripting")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// Same as above")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$local")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$scripting")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("query")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("loggedOnUser")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br")])]),a("p",[s._v("If no configuration is provided, the library's default connection is localhost.")]),s._v(" "),a("h3",{attrs:{id:"static-call-on-win32model-class"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#static-call-on-win32model-class","aria-hidden":"true"}},[s._v("#")]),s._v(" Static call on Win32Model class")]),s._v(" "),a("div",{staticClass:"language-php line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-php"}},[a("code",[a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$connection")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" Connection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("simple")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[s._v("'computer-one'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[s._v("'admin'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[s._v("'password'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// Returns an instance of Query\\Builder")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$builder")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" LoggedOnUser"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("query")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$connection")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// Returns a ModelCollection of Models\\LoggedOnUsers")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$loggedOnUsers")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$builder")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("get")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br")])]),a("p",[s._v("A connection defined in this way will not be stored in the "),a("code",[s._v("Config")]),s._v(" container. This is useful when you need to reference\nmany connections in an array to poll many computers across your network.")]),s._v(" "),a("div",{staticClass:"language-php line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-php"}},[a("code",[a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$username")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[s._v("'admin'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$password")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[s._v("'password'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$computers")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[s._v("'computer_one'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[s._v("'computer_two'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$results")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("foreach")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$computers")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("as")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$computer")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("{")]),s._v("\n    "),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// $results becomes an array of ModelCollections")]),s._v("\n    "),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$results")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("[")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("]")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" LoggedOnUser"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("query")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("Connection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("simple")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$computer")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$user")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$password")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("}")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br")])]),a("h3",{attrs:{id:"with-scripting-class"}},[a("a",{staticClass:"header-anchor",attrs:{href:"#with-scripting-class","aria-hidden":"true"}},[s._v("#")]),s._v(" With "),a("code",[s._v("Scripting")]),s._v(" Class")]),s._v(" "),a("div",{staticClass:"language-php line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-php"}},[a("code",[a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$scripting")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("new")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("Scripting")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("Connection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("simple")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[s._v("'computer-one'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[s._v("'admin'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" 'password"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token comment"}},[s._v("// Returns and instance of Query\\Builder (same as above)")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$builder")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$scripting")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("query")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("loggedOnUser")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br")])]),a("p",[s._v("This will set the given connection as the default connection. All models queried without a given connection will use\nthis connection.")]),s._v(" "),a("div",{staticClass:"language-php line-numbers-mode"},[a("pre",{pre:!0,attrs:{class:"language-php"}},[a("code",[a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$scripting")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token keyword"}},[s._v("new")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token class-name"}},[s._v("Scripting")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$scripting")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("addConnection")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),s._v("\n    "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[s._v("'computer-one'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v("\n    Connection"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(":")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("simple")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[s._v("'computer-one'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[s._v("'admin'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(",")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[s._v("'password'")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),s._v("\n"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n\n"),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$builder")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("=")]),s._v(" "),a("span",{pre:!0,attrs:{class:"token variable"}},[s._v("$scripting")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v(">")]),a("span",{pre:!0,attrs:{class:"token function"}},[s._v("query")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v("(")]),a("span",{pre:!0,attrs:{class:"token single-quoted-string string"}},[s._v("'computer-one)->loggedOnUser();\n\n// This connection is also available to the Models\n$builder = LoggedOnUser::query('")]),s._v("computer"),a("span",{pre:!0,attrs:{class:"token operator"}},[s._v("-")]),s._v("one'"),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(")")]),a("span",{pre:!0,attrs:{class:"token punctuation"}},[s._v(";")]),s._v("\n")])]),s._v(" "),a("div",{staticClass:"line-numbers-wrapper"},[a("span",{staticClass:"line-number"},[s._v("1")]),a("br"),a("span",{staticClass:"line-number"},[s._v("2")]),a("br"),a("span",{staticClass:"line-number"},[s._v("3")]),a("br"),a("span",{staticClass:"line-number"},[s._v("4")]),a("br"),a("span",{staticClass:"line-number"},[s._v("5")]),a("br"),a("span",{staticClass:"line-number"},[s._v("6")]),a("br"),a("span",{staticClass:"line-number"},[s._v("7")]),a("br"),a("span",{staticClass:"line-number"},[s._v("8")]),a("br"),a("span",{staticClass:"line-number"},[s._v("9")]),a("br"),a("span",{staticClass:"line-number"},[s._v("10")]),a("br")])]),a("p",[s._v("Adding a connection in this way will store the connection for later and repeated use.")]),s._v(" "),a("div",{staticClass:"danger custom-block"},[a("p",[a("code",[s._v("Scripting")]),s._v(" should only be instantiated once. If it is instantiated more than once then the last configuration options\nwill be used.")])])])},[],!1,null,null,null);t.default=e.exports}}]);
\ No newline at end of file
diff --git a/docs/.vuepress/dist/assets/js/app.56813cc6.js b/assets/js/app.fbd390b3.js
similarity index 68%
rename from docs/.vuepress/dist/assets/js/app.56813cc6.js
rename to assets/js/app.fbd390b3.js
index fbcafd2..b67ba89 100644
--- a/docs/.vuepress/dist/assets/js/app.56813cc6.js
+++ b/assets/js/app.fbd390b3.js
@@ -1,14 +1,14 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,a,s=e[0],c=e[1],u=e[2],f=0,p=[];f<s.length;f++)a=s[f],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&p.push(o[a][0]),o[a]=0;for(r in c)Object.prototype.hasOwnProperty.call(c,r)&&(t[r]=c[r]);for(l&&l(e);p.length;)p.shift()();return i.push.apply(i,u||[]),n()}function n(){for(var t,e=0;e<i.length;e++){for(var n=i[e],r=!0,s=1;s<n.length;s++){var c=n[s];0!==o[c]&&(r=!1)}r&&(i.splice(e--,1),t=a(a.s=n[0]))}return t}var r={},o={1:0},i=[];function a(e){if(r[e])return r[e].exports;var n=r[e]={i:e,l:!1,exports:{}};return t[e].call(n.exports,n,n.exports,a),n.l=!0,n.exports}a.e=function(t){var e=[],n=o[t];if(0!==n)if(n)e.push(n[2]);else{var r=new Promise(function(e,r){n=o[t]=[e,r]});e.push(n[2]=r);var i,s=document.createElement("script");s.charset="utf-8",s.timeout=120,a.nc&&s.setAttribute("nonce",a.nc),s.src=function(t){return a.p+"assets/js/"+({}[t]||t)+"."+{2:"768da08d",3:"9aec9bee",4:"2f35b444",5:"e899ad0e",6:"2b62eeb2",7:"fa96c717",8:"95fe297f"}[t]+".js"}(t);var c=new Error;i=function(e){s.onerror=s.onload=null,clearTimeout(u);var n=o[t];if(0!==n){if(n){var r=e&&("load"===e.type?"missing":e.type),i=e&&e.target&&e.target.src;c.message="Loading chunk "+t+" failed.\n("+r+": "+i+")",c.name="ChunkLoadError",c.type=r,c.request=i,n[1](c)}o[t]=void 0}};var u=setTimeout(function(){i({type:"timeout",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}return Promise.all(e)},a.m=t,a.c=r,a.d=function(t,e,n){a.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},a.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},a.t=function(t,e){if(1&e&&(t=a(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)a.d(n,r,function(e){return t[e]}.bind(null,r));return n},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,"a",e),e},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.p="/wmi-scripting/",a.oe=function(t){throw console.error(t),t};var s=window.webpackJsonp=window.webpackJsonp||[],c=s.push.bind(s);s.push=e,s=s.slice();for(var u=0;u<s.length;u++)e(s[u]);var l=c;i.push([4,0]),n()}([function(t,e,n){"use strict";function r(t,e,n,r,o,i,a,s){var c,u="function"==typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=n,u._compiled=!0),r&&(u.functional=!0),i&&(u._scopeId="data-v-"+i),a?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},u._ssrRegister=c):o&&(c=s?function(){o.call(this,this.$root.$options.shadowRoot)}:o),c)if(u.functional){u._injectStyles=c;var l=u.render;u.render=function(t,e){return c.call(e),l(t,e)}}else{var f=u.beforeCreate;u.beforeCreate=f?[].concat(f,c):[c]}return{exports:t,options:u}}n.d(e,"a",function(){return r})},function(t,e,n){},function(t,e,n){var r,o;
+(window.webpackJsonp=window.webpackJsonp||[]).push([[0],[]]);!function(t){function e(e){for(var r,a,s=e[0],c=e[1],u=e[2],f=0,p=[];f<s.length;f++)a=s[f],Object.prototype.hasOwnProperty.call(o,a)&&o[a]&&p.push(o[a][0]),o[a]=0;for(r in c)Object.prototype.hasOwnProperty.call(c,r)&&(t[r]=c[r]);for(l&&l(e);p.length;)p.shift()();return i.push.apply(i,u||[]),n()}function n(){for(var t,e=0;e<i.length;e++){for(var n=i[e],r=!0,s=1;s<n.length;s++){var c=n[s];0!==o[c]&&(r=!1)}r&&(i.splice(e--,1),t=a(a.s=n[0]))}return t}var r={},o={1:0},i=[];function a(e){if(r[e])return r[e].exports;var n=r[e]={i:e,l:!1,exports:{}};return t[e].call(n.exports,n,n.exports,a),n.l=!0,n.exports}a.e=function(t){var e=[],n=o[t];if(0!==n)if(n)e.push(n[2]);else{var r=new Promise(function(e,r){n=o[t]=[e,r]});e.push(n[2]=r);var i,s=document.createElement("script");s.charset="utf-8",s.timeout=120,a.nc&&s.setAttribute("nonce",a.nc),s.src=function(t){return a.p+"assets/js/"+({}[t]||t)+"."+{2:"bbe9884b",3:"30bc9dac",4:"b2559bf1",5:"4bd79ff2",6:"5ba71b34",7:"7458681b",8:"25d2004c",9:"2d3c2ea0",10:"26623230",11:"045108de",12:"6a6b2ef0"}[t]+".js"}(t);var c=new Error;i=function(e){s.onerror=s.onload=null,clearTimeout(u);var n=o[t];if(0!==n){if(n){var r=e&&("load"===e.type?"missing":e.type),i=e&&e.target&&e.target.src;c.message="Loading chunk "+t+" failed.\n("+r+": "+i+")",c.name="ChunkLoadError",c.type=r,c.request=i,n[1](c)}o[t]=void 0}};var u=setTimeout(function(){i({type:"timeout",target:s})},12e4);s.onerror=s.onload=i,document.head.appendChild(s)}return Promise.all(e)},a.m=t,a.c=r,a.d=function(t,e,n){a.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},a.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},a.t=function(t,e){if(1&e&&(t=a(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(a.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var r in t)a.d(n,r,function(e){return t[e]}.bind(null,r));return n},a.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return a.d(e,"a",e),e},a.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},a.p="/wmi-scripting/",a.oe=function(t){throw console.error(t),t};var s=window.webpackJsonp=window.webpackJsonp||[],c=s.push.bind(s);s.push=e,s=s.slice();for(var u=0;u<s.length;u++)e(s[u]);var l=c;i.push([4,0]),n()}([function(t,e,n){"use strict";function r(t,e,n,r,o,i,a,s){var c,u="function"==typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=n,u._compiled=!0),r&&(u.functional=!0),i&&(u._scopeId="data-v-"+i),a?(c=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},u._ssrRegister=c):o&&(c=s?function(){o.call(this,this.$root.$options.shadowRoot)}:o),c)if(u.functional){u._injectStyles=c;var l=u.render;u.render=function(t,e){return c.call(e),l(t,e)}}else{var f=u.beforeCreate;u.beforeCreate=f?[].concat(f,c):[c]}return{exports:t,options:u}}n.d(e,"a",function(){return r})},function(t,e,n){},function(t,e,n){var r,o;
 /* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress
- * @license MIT */void 0===(o="function"==typeof(r=function(){var t,e,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(t,e,n){return t<e?e:t>n?n:t}function i(t){return 100*(-1+t)}n.configure=function(t){var e,n;for(e in t)void 0!==(n=t[e])&&t.hasOwnProperty(e)&&(r[e]=n);return this},n.status=null,n.set=function(t){var e=n.isStarted();t=o(t,r.minimum,1),n.status=1===t?null:t;var c=n.render(!e),u=c.querySelector(r.barSelector),l=r.speed,f=r.easing;return c.offsetWidth,a(function(e){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,function(t,e,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+i(t)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(t)+"%,0)"}:{"margin-left":i(t)+"%"}).transition="all "+e+"ms "+n,o}(t,l,f)),1===t?(s(c,{transition:"none",opacity:1}),c.offsetWidth,setTimeout(function(){s(c,{transition:"all "+l+"ms linear",opacity:0}),setTimeout(function(){n.remove(),e()},l)},l)):setTimeout(e,l)}),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var t=function(){setTimeout(function(){n.status&&(n.trickle(),t())},r.trickleSpeed)};return r.trickle&&t(),this},n.done=function(t){return t||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(t){var e=n.status;return e?("number"!=typeof t&&(t=(1-e)*o(Math.random()*e,.1,.95)),e=o(e+t,0,.994),n.set(e)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},t=0,e=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===e&&n.start(),t++,e++,r.always(function(){0==--e?(t=0,n.done()):n.set((t-e)/t)}),this):this},n.render=function(t){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var e=document.createElement("div");e.id="nprogress",e.innerHTML=r.template;var o,a=e.querySelector(r.barSelector),c=t?"-100":i(n.status||0),l=document.querySelector(r.parent);return s(a,{transition:"all 0 linear",transform:"translate3d("+c+"%,0,0)"}),r.showSpinner||(o=e.querySelector(r.spinnerSelector))&&p(o),l!=document.body&&u(l,"nprogress-custom-parent"),l.appendChild(e),e},n.remove=function(){l(document.documentElement,"nprogress-busy"),l(document.querySelector(r.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&p(t)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var t=document.body.style,e="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return e+"Perspective"in t?"translate3d":e+"Transform"in t?"translate":"margin"};var a=function(){var t=[];function e(){var n=t.shift();n&&n(e)}return function(n){t.push(n),1==t.length&&e()}}(),s=function(){var t=["Webkit","O","Moz","ms"],e={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(t,e){return e.toUpperCase()}),e[n]||(e[n]=function(e){var n=document.body.style;if(e in n)return e;for(var r,o=t.length,i=e.charAt(0).toUpperCase()+e.slice(1);o--;)if((r=t[o]+i)in n)return r;return e}(n))}function r(t,e,r){e=n(e),t.style[e]=r}return function(t,e){var n,o,i=arguments;if(2==i.length)for(n in e)void 0!==(o=e[n])&&e.hasOwnProperty(n)&&r(t,n,o);else r(t,i[1],i[2])}}();function c(t,e){return("string"==typeof t?t:f(t)).indexOf(" "+e+" ")>=0}function u(t,e){var n=f(t),r=n+e;c(n,e)||(t.className=r.substring(1))}function l(t,e){var n,r=f(t);c(t,e)&&(n=r.replace(" "+e+" "," "),t.className=n.substring(1,n.length-1))}function f(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function p(t){t&&t.parentNode&&t.parentNode.removeChild(t)}return n})?r.call(e,n,e,t):r)||(t.exports=o)},function(t,e){var n="Expected a function",r=NaN,o="[object Symbol]",i=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,c=/^0o[0-7]+$/i,u=parseInt,l="object"==typeof global&&global&&global.Object===Object&&global,f="object"==typeof self&&self&&self.Object===Object&&self,p=l||f||Function("return this")(),d=Object.prototype.toString,h=Math.max,v=Math.min,m=function(){return p.Date.now()};function y(t,e,r){var o,i,a,s,c,u,l=0,f=!1,p=!1,d=!0;if("function"!=typeof t)throw new TypeError(n);function y(e){var n=o,r=i;return o=i=void 0,l=e,s=t.apply(r,n)}function b(t){var n=t-u;return void 0===u||n>=e||n<0||p&&t-l>=a}function w(){var t=m();if(b(t))return $(t);c=setTimeout(w,function(t){var n=e-(t-u);return p?v(n,a-(t-l)):n}(t))}function $(t){return c=void 0,d&&o?y(t):(o=i=void 0,s)}function C(){var t=m(),n=b(t);if(o=arguments,i=this,u=t,n){if(void 0===c)return function(t){return l=t,c=setTimeout(w,e),f?y(t):s}(u);if(p)return c=setTimeout(w,e),y(u)}return void 0===c&&(c=setTimeout(w,e)),s}return e=_(e)||0,g(r)&&(f=!!r.leading,a=(p="maxWait"in r)?h(_(r.maxWait)||0,e):a,d="trailing"in r?!!r.trailing:d),C.cancel=function(){void 0!==c&&clearTimeout(c),l=0,o=u=i=c=void 0},C.flush=function(){return void 0===c?s:$(m())},C}function g(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function _(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&d.call(t)==o}(t))return r;if(g(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=g(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(i,"");var n=s.test(t);return n||c.test(t)?u(t.slice(2),n?2:8):a.test(t)?r:+t}t.exports=function(t,e,r){var o=!0,i=!0;if("function"!=typeof t)throw new TypeError(n);return g(r)&&(o="leading"in r?!!r.leading:o,i="trailing"in r?!!r.trailing:i),y(t,e,{leading:o,maxWait:e,trailing:i})}},function(t,e,n){t.exports=n(8)},function(t,e,n){Promise.all([n.e(0),n.e(8)]).then(n.t.bind(null,9,7))},function(t,e,n){},function(t,e,n){"use strict";var r=n(1);n.n(r).a},function(t,e,n){"use strict";n.r(e);
+ * @license MIT */void 0===(o="function"==typeof(r=function(){var t,e,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function o(t,e,n){return t<e?e:t>n?n:t}function i(t){return 100*(-1+t)}n.configure=function(t){var e,n;for(e in t)void 0!==(n=t[e])&&t.hasOwnProperty(e)&&(r[e]=n);return this},n.status=null,n.set=function(t){var e=n.isStarted();t=o(t,r.minimum,1),n.status=1===t?null:t;var c=n.render(!e),u=c.querySelector(r.barSelector),l=r.speed,f=r.easing;return c.offsetWidth,a(function(e){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,function(t,e,n){var o;return(o="translate3d"===r.positionUsing?{transform:"translate3d("+i(t)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+i(t)+"%,0)"}:{"margin-left":i(t)+"%"}).transition="all "+e+"ms "+n,o}(t,l,f)),1===t?(s(c,{transition:"none",opacity:1}),c.offsetWidth,setTimeout(function(){s(c,{transition:"all "+l+"ms linear",opacity:0}),setTimeout(function(){n.remove(),e()},l)},l)):setTimeout(e,l)}),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var t=function(){setTimeout(function(){n.status&&(n.trickle(),t())},r.trickleSpeed)};return r.trickle&&t(),this},n.done=function(t){return t||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(t){var e=n.status;return e?("number"!=typeof t&&(t=(1-e)*o(Math.random()*e,.1,.95)),e=o(e+t,0,.994),n.set(e)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},t=0,e=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===e&&n.start(),t++,e++,r.always(function(){0==--e?(t=0,n.done()):n.set((t-e)/t)}),this):this},n.render=function(t){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var e=document.createElement("div");e.id="nprogress",e.innerHTML=r.template;var o,a=e.querySelector(r.barSelector),c=t?"-100":i(n.status||0),l=document.querySelector(r.parent);return s(a,{transition:"all 0 linear",transform:"translate3d("+c+"%,0,0)"}),r.showSpinner||(o=e.querySelector(r.spinnerSelector))&&p(o),l!=document.body&&u(l,"nprogress-custom-parent"),l.appendChild(e),e},n.remove=function(){l(document.documentElement,"nprogress-busy"),l(document.querySelector(r.parent),"nprogress-custom-parent");var t=document.getElementById("nprogress");t&&p(t)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var t=document.body.style,e="WebkitTransform"in t?"Webkit":"MozTransform"in t?"Moz":"msTransform"in t?"ms":"OTransform"in t?"O":"";return e+"Perspective"in t?"translate3d":e+"Transform"in t?"translate":"margin"};var a=function(){var t=[];function e(){var n=t.shift();n&&n(e)}return function(n){t.push(n),1==t.length&&e()}}(),s=function(){var t=["Webkit","O","Moz","ms"],e={};function n(n){return n=n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(t,e){return e.toUpperCase()}),e[n]||(e[n]=function(e){var n=document.body.style;if(e in n)return e;for(var r,o=t.length,i=e.charAt(0).toUpperCase()+e.slice(1);o--;)if((r=t[o]+i)in n)return r;return e}(n))}function r(t,e,r){e=n(e),t.style[e]=r}return function(t,e){var n,o,i=arguments;if(2==i.length)for(n in e)void 0!==(o=e[n])&&e.hasOwnProperty(n)&&r(t,n,o);else r(t,i[1],i[2])}}();function c(t,e){return("string"==typeof t?t:f(t)).indexOf(" "+e+" ")>=0}function u(t,e){var n=f(t),r=n+e;c(n,e)||(t.className=r.substring(1))}function l(t,e){var n,r=f(t);c(t,e)&&(n=r.replace(" "+e+" "," "),t.className=n.substring(1,n.length-1))}function f(t){return(" "+(t.className||"")+" ").replace(/\s+/gi," ")}function p(t){t&&t.parentNode&&t.parentNode.removeChild(t)}return n})?r.call(e,n,e,t):r)||(t.exports=o)},function(t,e){var n="Expected a function",r=NaN,o="[object Symbol]",i=/^\s+|\s+$/g,a=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,c=/^0o[0-7]+$/i,u=parseInt,l="object"==typeof global&&global&&global.Object===Object&&global,f="object"==typeof self&&self&&self.Object===Object&&self,p=l||f||Function("return this")(),d=Object.prototype.toString,h=Math.max,v=Math.min,m=function(){return p.Date.now()};function y(t,e,r){var o,i,a,s,c,u,l=0,f=!1,p=!1,d=!0;if("function"!=typeof t)throw new TypeError(n);function y(e){var n=o,r=i;return o=i=void 0,l=e,s=t.apply(r,n)}function _(t){var n=t-u;return void 0===u||n>=e||n<0||p&&t-l>=a}function w(){var t=m();if(_(t))return $(t);c=setTimeout(w,function(t){var n=e-(t-u);return p?v(n,a-(t-l)):n}(t))}function $(t){return c=void 0,d&&o?y(t):(o=i=void 0,s)}function C(){var t=m(),n=_(t);if(o=arguments,i=this,u=t,n){if(void 0===c)return function(t){return l=t,c=setTimeout(w,e),f?y(t):s}(u);if(p)return c=setTimeout(w,e),y(u)}return void 0===c&&(c=setTimeout(w,e)),s}return e=b(e)||0,g(r)&&(f=!!r.leading,a=(p="maxWait"in r)?h(b(r.maxWait)||0,e):a,d="trailing"in r?!!r.trailing:d),C.cancel=function(){void 0!==c&&clearTimeout(c),l=0,o=u=i=c=void 0},C.flush=function(){return void 0===c?s:$(m())},C}function g(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function b(t){if("number"==typeof t)return t;if(function(t){return"symbol"==typeof t||function(t){return!!t&&"object"==typeof t}(t)&&d.call(t)==o}(t))return r;if(g(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=g(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(i,"");var n=s.test(t);return n||c.test(t)?u(t.slice(2),n?2:8):a.test(t)?r:+t}t.exports=function(t,e,r){var o=!0,i=!0;if("function"!=typeof t)throw new TypeError(n);return g(r)&&(o="leading"in r?!!r.leading:o,i="trailing"in r?!!r.trailing:i),y(t,e,{leading:o,maxWait:e,trailing:i})}},function(t,e,n){t.exports=n(8)},function(t,e,n){Promise.all([n.e(0),n.e(12)]).then(n.t.bind(null,9,7))},function(t,e,n){},function(t,e,n){"use strict";var r=n(1);n.n(r).a},function(t,e,n){"use strict";n.r(e);
 /*!
  * Vue.js v2.6.10
  * (c) 2014-2019 Evan You
  * Released under the MIT License.
  */
-var r=Object.freeze({});function o(t){return null==t}function i(t){return null!=t}function a(t){return!0===t}function s(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function c(t){return null!==t&&"object"==typeof t}var u=Object.prototype.toString;function l(t){return"[object Object]"===u.call(t)}function f(t){return"[object RegExp]"===u.call(t)}function p(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function d(t){return i(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function h(t){return null==t?"":Array.isArray(t)||l(t)&&t.toString===u?JSON.stringify(t,null,2):String(t)}function v(t){var e=parseFloat(t);return isNaN(e)?t:e}function m(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o<r.length;o++)n[r[o]]=!0;return e?function(t){return n[t.toLowerCase()]}:function(t){return n[t]}}m("slot,component",!0);var y=m("key,ref,slot,slot-scope,is");function g(t,e){if(t.length){var n=t.indexOf(e);if(n>-1)return t.splice(n,1)}}var _=Object.prototype.hasOwnProperty;function b(t,e){return _.call(t,e)}function w(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var $=/-(\w)/g,C=w(function(t){return t.replace($,function(t,e){return e?e.toUpperCase():""})}),x=w(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),k=/\B([A-Z])/g,O=w(function(t){return t.replace(k,"-$1").toLowerCase()});var A=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function S(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function E(t,e){for(var n in e)t[n]=e[n];return t}function j(t){for(var e={},n=0;n<t.length;n++)t[n]&&E(e,t[n]);return e}function T(t,e,n){}var P=function(t,e,n){return!1},R=function(t){return t};function I(t,e){if(t===e)return!0;var n=c(t),r=c(e);if(!n||!r)return!n&&!r&&String(t)===String(e);try{var o=Array.isArray(t),i=Array.isArray(e);if(o&&i)return t.length===e.length&&t.every(function(t,n){return I(t,e[n])});if(t instanceof Date&&e instanceof Date)return t.getTime()===e.getTime();if(o||i)return!1;var a=Object.keys(t),s=Object.keys(e);return a.length===s.length&&a.every(function(n){return I(t[n],e[n])})}catch(t){return!1}}function L(t,e){for(var n=0;n<t.length;n++)if(I(t[n],e))return n;return-1}function M(t){var e=!1;return function(){e||(e=!0,t.apply(this,arguments))}}var D="data-server-rendered",N=["component","directive","filter"],U=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch"],F={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:P,isReservedAttr:P,isUnknownElement:P,getTagNamespace:T,parsePlatformTagName:R,mustUseProp:P,async:!0,_lifecycleHooks:U},B=/a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;function V(t,e,n,r){Object.defineProperty(t,e,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var H=new RegExp("[^"+B.source+".$_\\d]");var q,z="__proto__"in{},W="undefined"!=typeof window,K="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,X=K&&WXEnvironment.platform.toLowerCase(),G=W&&window.navigator.userAgent.toLowerCase(),J=G&&/msie|trident/.test(G),Y=G&&G.indexOf("msie 9.0")>0,Z=G&&G.indexOf("edge/")>0,Q=(G&&G.indexOf("android"),G&&/iphone|ipad|ipod|ios/.test(G)||"ios"===X),tt=(G&&/chrome\/\d+/.test(G),G&&/phantomjs/.test(G),G&&G.match(/firefox\/(\d+)/)),et={}.watch,nt=!1;if(W)try{var rt={};Object.defineProperty(rt,"passive",{get:function(){nt=!0}}),window.addEventListener("test-passive",null,rt)}catch(t){}var ot=function(){return void 0===q&&(q=!W&&!K&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),q},it=W&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function at(t){return"function"==typeof t&&/native code/.test(t.toString())}var st,ct="undefined"!=typeof Symbol&&at(Symbol)&&"undefined"!=typeof Reflect&&at(Reflect.ownKeys);st="undefined"!=typeof Set&&at(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ut=T,lt=0,ft=function(){this.id=lt++,this.subs=[]};ft.prototype.addSub=function(t){this.subs.push(t)},ft.prototype.removeSub=function(t){g(this.subs,t)},ft.prototype.depend=function(){ft.target&&ft.target.addDep(this)},ft.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e<n;e++)t[e].update()},ft.target=null;var pt=[];function dt(t){pt.push(t),ft.target=t}function ht(){pt.pop(),ft.target=pt[pt.length-1]}var vt=function(t,e,n,r,o,i,a,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=i,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},mt={child:{configurable:!0}};mt.child.get=function(){return this.componentInstance},Object.defineProperties(vt.prototype,mt);var yt=function(t){void 0===t&&(t="");var e=new vt;return e.text=t,e.isComment=!0,e};function gt(t){return new vt(void 0,void 0,void 0,String(t))}function _t(t){var e=new vt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}var bt=Array.prototype,wt=Object.create(bt);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(t){var e=bt[t];V(wt,t,function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];var o,i=e.apply(this,n),a=this.__ob__;switch(t){case"push":case"unshift":o=n;break;case"splice":o=n.slice(2)}return o&&a.observeArray(o),a.dep.notify(),i})});var $t=Object.getOwnPropertyNames(wt),Ct=!0;function xt(t){Ct=t}var kt=function(t){this.value=t,this.dep=new ft,this.vmCount=0,V(t,"__ob__",this),Array.isArray(t)?(z?function(t,e){t.__proto__=e}(t,wt):function(t,e,n){for(var r=0,o=n.length;r<o;r++){var i=n[r];V(t,i,e[i])}}(t,wt,$t),this.observeArray(t)):this.walk(t)};function Ot(t,e){var n;if(c(t)&&!(t instanceof vt))return b(t,"__ob__")&&t.__ob__ instanceof kt?n=t.__ob__:Ct&&!ot()&&(Array.isArray(t)||l(t))&&Object.isExtensible(t)&&!t._isVue&&(n=new kt(t)),e&&n&&n.vmCount++,n}function At(t,e,n,r,o){var i=new ft,a=Object.getOwnPropertyDescriptor(t,e);if(!a||!1!==a.configurable){var s=a&&a.get,c=a&&a.set;s&&!c||2!==arguments.length||(n=t[e]);var u=!o&&Ot(n);Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){var e=s?s.call(t):n;return ft.target&&(i.depend(),u&&(u.dep.depend(),Array.isArray(e)&&function t(e){for(var n=void 0,r=0,o=e.length;r<o;r++)(n=e[r])&&n.__ob__&&n.__ob__.dep.depend(),Array.isArray(n)&&t(n)}(e))),e},set:function(e){var r=s?s.call(t):n;e===r||e!=e&&r!=r||s&&!c||(c?c.call(t,e):n=e,u=!o&&Ot(e),i.notify())}})}}function St(t,e,n){if(Array.isArray(t)&&p(e))return t.length=Math.max(t.length,e),t.splice(e,1,n),n;if(e in t&&!(e in Object.prototype))return t[e]=n,n;var r=t.__ob__;return t._isVue||r&&r.vmCount?n:r?(At(r.value,e,n),r.dep.notify(),n):(t[e]=n,n)}function Et(t,e){if(Array.isArray(t)&&p(e))t.splice(e,1);else{var n=t.__ob__;t._isVue||n&&n.vmCount||b(t,e)&&(delete t[e],n&&n.dep.notify())}}kt.prototype.walk=function(t){for(var e=Object.keys(t),n=0;n<e.length;n++)At(t,e[n])},kt.prototype.observeArray=function(t){for(var e=0,n=t.length;e<n;e++)Ot(t[e])};var jt=F.optionMergeStrategies;function Tt(t,e){if(!e)return t;for(var n,r,o,i=ct?Reflect.ownKeys(e):Object.keys(e),a=0;a<i.length;a++)"__ob__"!==(n=i[a])&&(r=t[n],o=e[n],b(t,n)?r!==o&&l(r)&&l(o)&&Tt(r,o):St(t,n,o));return t}function Pt(t,e,n){return n?function(){var r="function"==typeof e?e.call(n,n):e,o="function"==typeof t?t.call(n,n):t;return r?Tt(r,o):o}:e?t?function(){return Tt("function"==typeof e?e.call(this,this):e,"function"==typeof t?t.call(this,this):t)}:e:t}function Rt(t,e){var n=e?t?t.concat(e):Array.isArray(e)?e:[e]:t;return n?function(t){for(var e=[],n=0;n<t.length;n++)-1===e.indexOf(t[n])&&e.push(t[n]);return e}(n):n}function It(t,e,n,r){var o=Object.create(t||null);return e?E(o,e):o}jt.data=function(t,e,n){return n?Pt(t,e,n):e&&"function"!=typeof e?t:Pt(t,e)},U.forEach(function(t){jt[t]=Rt}),N.forEach(function(t){jt[t+"s"]=It}),jt.watch=function(t,e,n,r){if(t===et&&(t=void 0),e===et&&(e=void 0),!e)return Object.create(t||null);if(!t)return e;var o={};for(var i in E(o,t),e){var a=o[i],s=e[i];a&&!Array.isArray(a)&&(a=[a]),o[i]=a?a.concat(s):Array.isArray(s)?s:[s]}return o},jt.props=jt.methods=jt.inject=jt.computed=function(t,e,n,r){if(!t)return e;var o=Object.create(null);return E(o,t),e&&E(o,e),o},jt.provide=Pt;var Lt=function(t,e){return void 0===e?t:e};function Mt(t,e,n){if("function"==typeof e&&(e=e.options),function(t,e){var n=t.props;if(n){var r,o,i={};if(Array.isArray(n))for(r=n.length;r--;)"string"==typeof(o=n[r])&&(i[C(o)]={type:null});else if(l(n))for(var a in n)o=n[a],i[C(a)]=l(o)?o:{type:o};else 0;t.props=i}}(e),function(t,e){var n=t.inject;if(n){var r=t.inject={};if(Array.isArray(n))for(var o=0;o<n.length;o++)r[n[o]]={from:n[o]};else if(l(n))for(var i in n){var a=n[i];r[i]=l(a)?E({from:i},a):{from:a}}else 0}}(e),function(t){var e=t.directives;if(e)for(var n in e){var r=e[n];"function"==typeof r&&(e[n]={bind:r,update:r})}}(e),!e._base&&(e.extends&&(t=Mt(t,e.extends,n)),e.mixins))for(var r=0,o=e.mixins.length;r<o;r++)t=Mt(t,e.mixins[r],n);var i,a={};for(i in t)s(i);for(i in e)b(t,i)||s(i);function s(r){var o=jt[r]||Lt;a[r]=o(t[r],e[r],n,r)}return a}function Dt(t,e,n,r){if("string"==typeof n){var o=t[e];if(b(o,n))return o[n];var i=C(n);if(b(o,i))return o[i];var a=x(i);return b(o,a)?o[a]:o[n]||o[i]||o[a]}}function Nt(t,e,n,r){var o=e[t],i=!b(n,t),a=n[t],s=Bt(Boolean,o.type);if(s>-1)if(i&&!b(o,"default"))a=!1;else if(""===a||a===O(t)){var c=Bt(String,o.type);(c<0||s<c)&&(a=!0)}if(void 0===a){a=function(t,e,n){if(!b(e,"default"))return;var r=e.default;0;if(t&&t.$options.propsData&&void 0===t.$options.propsData[n]&&void 0!==t._props[n])return t._props[n];return"function"==typeof r&&"Function"!==Ut(e.type)?r.call(t):r}(r,o,t);var u=Ct;xt(!0),Ot(a),xt(u)}return a}function Ut(t){var e=t&&t.toString().match(/^\s*function (\w+)/);return e?e[1]:""}function Ft(t,e){return Ut(t)===Ut(e)}function Bt(t,e){if(!Array.isArray(e))return Ft(e,t)?0:-1;for(var n=0,r=e.length;n<r;n++)if(Ft(e[n],t))return n;return-1}function Vt(t,e,n){dt();try{if(e)for(var r=e;r=r.$parent;){var o=r.$options.errorCaptured;if(o)for(var i=0;i<o.length;i++)try{if(!1===o[i].call(r,t,e,n))return}catch(t){qt(t,r,"errorCaptured hook")}}qt(t,e,n)}finally{ht()}}function Ht(t,e,n,r,o){var i;try{(i=n?t.apply(e,n):t.call(e))&&!i._isVue&&d(i)&&!i._handled&&(i.catch(function(t){return Vt(t,r,o+" (Promise/async)")}),i._handled=!0)}catch(t){Vt(t,r,o)}return i}function qt(t,e,n){if(F.errorHandler)try{return F.errorHandler.call(null,t,e,n)}catch(e){e!==t&&zt(e,null,"config.errorHandler")}zt(t,e,n)}function zt(t,e,n){if(!W&&!K||"undefined"==typeof console)throw t;console.error(t)}var Wt,Kt=!1,Xt=[],Gt=!1;function Jt(){Gt=!1;var t=Xt.slice(0);Xt.length=0;for(var e=0;e<t.length;e++)t[e]()}if("undefined"!=typeof Promise&&at(Promise)){var Yt=Promise.resolve();Wt=function(){Yt.then(Jt),Q&&setTimeout(T)},Kt=!0}else if(J||"undefined"==typeof MutationObserver||!at(MutationObserver)&&"[object MutationObserverConstructor]"!==MutationObserver.toString())Wt="undefined"!=typeof setImmediate&&at(setImmediate)?function(){setImmediate(Jt)}:function(){setTimeout(Jt,0)};else{var Zt=1,Qt=new MutationObserver(Jt),te=document.createTextNode(String(Zt));Qt.observe(te,{characterData:!0}),Wt=function(){Zt=(Zt+1)%2,te.data=String(Zt)},Kt=!0}function ee(t,e){var n;if(Xt.push(function(){if(t)try{t.call(e)}catch(t){Vt(t,e,"nextTick")}else n&&n(e)}),Gt||(Gt=!0,Wt()),!t&&"undefined"!=typeof Promise)return new Promise(function(t){n=t})}var ne=new st;function re(t){!function t(e,n){var r,o;var i=Array.isArray(e);if(!i&&!c(e)||Object.isFrozen(e)||e instanceof vt)return;if(e.__ob__){var a=e.__ob__.dep.id;if(n.has(a))return;n.add(a)}if(i)for(r=e.length;r--;)t(e[r],n);else for(o=Object.keys(e),r=o.length;r--;)t(e[o[r]],n)}(t,ne),ne.clear()}var oe=w(function(t){var e="&"===t.charAt(0),n="~"===(t=e?t.slice(1):t).charAt(0),r="!"===(t=n?t.slice(1):t).charAt(0);return{name:t=r?t.slice(1):t,once:n,capture:r,passive:e}});function ie(t,e){function n(){var t=arguments,r=n.fns;if(!Array.isArray(r))return Ht(r,null,arguments,e,"v-on handler");for(var o=r.slice(),i=0;i<o.length;i++)Ht(o[i],null,t,e,"v-on handler")}return n.fns=t,n}function ae(t,e,n,r,i,s){var c,u,l,f;for(c in t)u=t[c],l=e[c],f=oe(c),o(u)||(o(l)?(o(u.fns)&&(u=t[c]=ie(u,s)),a(f.once)&&(u=t[c]=i(f.name,u,f.capture)),n(f.name,u,f.capture,f.passive,f.params)):u!==l&&(l.fns=u,t[c]=l));for(c in e)o(t[c])&&r((f=oe(c)).name,e[c],f.capture)}function se(t,e,n){var r;t instanceof vt&&(t=t.data.hook||(t.data.hook={}));var s=t[e];function c(){n.apply(this,arguments),g(r.fns,c)}o(s)?r=ie([c]):i(s.fns)&&a(s.merged)?(r=s).fns.push(c):r=ie([s,c]),r.merged=!0,t[e]=r}function ce(t,e,n,r,o){if(i(e)){if(b(e,n))return t[n]=e[n],o||delete e[n],!0;if(b(e,r))return t[n]=e[r],o||delete e[r],!0}return!1}function ue(t){return s(t)?[gt(t)]:Array.isArray(t)?function t(e,n){var r=[];var c,u,l,f;for(c=0;c<e.length;c++)o(u=e[c])||"boolean"==typeof u||(l=r.length-1,f=r[l],Array.isArray(u)?u.length>0&&(le((u=t(u,(n||"")+"_"+c))[0])&&le(f)&&(r[l]=gt(f.text+u[0].text),u.shift()),r.push.apply(r,u)):s(u)?le(f)?r[l]=gt(f.text+u):""!==u&&r.push(gt(u)):le(u)&&le(f)?r[l]=gt(f.text+u.text):(a(e._isVList)&&i(u.tag)&&o(u.key)&&i(n)&&(u.key="__vlist"+n+"_"+c+"__"),r.push(u)));return r}(t):void 0}function le(t){return i(t)&&i(t.text)&&!1===t.isComment}function fe(t,e){if(t){for(var n=Object.create(null),r=ct?Reflect.ownKeys(t):Object.keys(t),o=0;o<r.length;o++){var i=r[o];if("__ob__"!==i){for(var a=t[i].from,s=e;s;){if(s._provided&&b(s._provided,a)){n[i]=s._provided[a];break}s=s.$parent}if(!s)if("default"in t[i]){var c=t[i].default;n[i]="function"==typeof c?c.call(e):c}else 0}}return n}}function pe(t,e){if(!t||!t.length)return{};for(var n={},r=0,o=t.length;r<o;r++){var i=t[r],a=i.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,i.context!==e&&i.fnContext!==e||!a||null==a.slot)(n.default||(n.default=[])).push(i);else{var s=a.slot,c=n[s]||(n[s]=[]);"template"===i.tag?c.push.apply(c,i.children||[]):c.push(i)}}for(var u in n)n[u].every(de)&&delete n[u];return n}function de(t){return t.isComment&&!t.asyncFactory||" "===t.text}function he(t,e,n){var o,i=Object.keys(e).length>0,a=t?!!t.$stable:!i,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&n&&n!==r&&s===n.$key&&!i&&!n.$hasNormal)return n;for(var c in o={},t)t[c]&&"$"!==c[0]&&(o[c]=ve(e,c,t[c]))}else o={};for(var u in e)u in o||(o[u]=me(e,u));return t&&Object.isExtensible(t)&&(t._normalized=o),V(o,"$stable",a),V(o,"$key",s),V(o,"$hasNormal",i),o}function ve(t,e,n){var r=function(){var t=arguments.length?n.apply(null,arguments):n({});return(t=t&&"object"==typeof t&&!Array.isArray(t)?[t]:ue(t))&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:r,enumerable:!0,configurable:!0}),r}function me(t,e){return function(){return t[e]}}function ye(t,e){var n,r,o,a,s;if(Array.isArray(t)||"string"==typeof t)for(n=new Array(t.length),r=0,o=t.length;r<o;r++)n[r]=e(t[r],r);else if("number"==typeof t)for(n=new Array(t),r=0;r<t;r++)n[r]=e(r+1,r);else if(c(t))if(ct&&t[Symbol.iterator]){n=[];for(var u=t[Symbol.iterator](),l=u.next();!l.done;)n.push(e(l.value,n.length)),l=u.next()}else for(a=Object.keys(t),n=new Array(a.length),r=0,o=a.length;r<o;r++)s=a[r],n[r]=e(t[s],s,r);return i(n)||(n=[]),n._isVList=!0,n}function ge(t,e,n,r){var o,i=this.$scopedSlots[t];i?(n=n||{},r&&(n=E(E({},r),n)),o=i(n)||e):o=this.$slots[t]||e;var a=n&&n.slot;return a?this.$createElement("template",{slot:a},o):o}function _e(t){return Dt(this.$options,"filters",t)||R}function be(t,e){return Array.isArray(t)?-1===t.indexOf(e):t!==e}function we(t,e,n,r,o){var i=F.keyCodes[e]||n;return o&&r&&!F.keyCodes[e]?be(o,r):i?be(i,t):r?O(r)!==e:void 0}function $e(t,e,n,r,o){if(n)if(c(n)){var i;Array.isArray(n)&&(n=j(n));var a=function(a){if("class"===a||"style"===a||y(a))i=t;else{var s=t.attrs&&t.attrs.type;i=r||F.mustUseProp(e,s,a)?t.domProps||(t.domProps={}):t.attrs||(t.attrs={})}var c=C(a),u=O(a);c in i||u in i||(i[a]=n[a],o&&((t.on||(t.on={}))["update:"+a]=function(t){n[a]=t}))};for(var s in n)a(s)}else;return t}function Ce(t,e){var n=this._staticTrees||(this._staticTrees=[]),r=n[t];return r&&!e?r:(ke(r=n[t]=this.$options.staticRenderFns[t].call(this._renderProxy,null,this),"__static__"+t,!1),r)}function xe(t,e,n){return ke(t,"__once__"+e+(n?"_"+n:""),!0),t}function ke(t,e,n){if(Array.isArray(t))for(var r=0;r<t.length;r++)t[r]&&"string"!=typeof t[r]&&Oe(t[r],e+"_"+r,n);else Oe(t,e,n)}function Oe(t,e,n){t.isStatic=!0,t.key=e,t.isOnce=n}function Ae(t,e){if(e)if(l(e)){var n=t.on=t.on?E({},t.on):{};for(var r in e){var o=n[r],i=e[r];n[r]=o?[].concat(o,i):i}}else;return t}function Se(t,e,n,r){e=e||{$stable:!n};for(var o=0;o<t.length;o++){var i=t[o];Array.isArray(i)?Se(i,e,n):i&&(i.proxy&&(i.fn.proxy=!0),e[i.key]=i.fn)}return r&&(e.$key=r),e}function Ee(t,e){for(var n=0;n<e.length;n+=2){var r=e[n];"string"==typeof r&&r&&(t[e[n]]=e[n+1])}return t}function je(t,e){return"string"==typeof t?e+t:t}function Te(t){t._o=xe,t._n=v,t._s=h,t._l=ye,t._t=ge,t._q=I,t._i=L,t._m=Ce,t._f=_e,t._k=we,t._b=$e,t._v=gt,t._e=yt,t._u=Se,t._g=Ae,t._d=Ee,t._p=je}function Pe(t,e,n,o,i){var s,c=this,u=i.options;b(o,"_uid")?(s=Object.create(o))._original=o:(s=o,o=o._original);var l=a(u._compiled),f=!l;this.data=t,this.props=e,this.children=n,this.parent=o,this.listeners=t.on||r,this.injections=fe(u.inject,o),this.slots=function(){return c.$slots||he(t.scopedSlots,c.$slots=pe(n,o)),c.$slots},Object.defineProperty(this,"scopedSlots",{enumerable:!0,get:function(){return he(t.scopedSlots,this.slots())}}),l&&(this.$options=u,this.$slots=this.slots(),this.$scopedSlots=he(t.scopedSlots,this.$slots)),u._scopeId?this._c=function(t,e,n,r){var i=Be(s,t,e,n,r,f);return i&&!Array.isArray(i)&&(i.fnScopeId=u._scopeId,i.fnContext=o),i}:this._c=function(t,e,n,r){return Be(s,t,e,n,r,f)}}function Re(t,e,n,r,o){var i=_t(t);return i.fnContext=n,i.fnOptions=r,e.slot&&((i.data||(i.data={})).slot=e.slot),i}function Ie(t,e){for(var n in e)t[C(n)]=e[n]}Te(Pe.prototype);var Le={init:function(t,e){if(t.componentInstance&&!t.componentInstance._isDestroyed&&t.data.keepAlive){var n=t;Le.prepatch(n,n)}else{(t.componentInstance=function(t,e){var n={_isComponent:!0,_parentVnode:t,parent:e},r=t.data.inlineTemplate;i(r)&&(n.render=r.render,n.staticRenderFns=r.staticRenderFns);return new t.componentOptions.Ctor(n)}(t,Ye)).$mount(e?t.elm:void 0,e)}},prepatch:function(t,e){var n=e.componentOptions;!function(t,e,n,o,i){0;var a=o.data.scopedSlots,s=t.$scopedSlots,c=!!(a&&!a.$stable||s!==r&&!s.$stable||a&&t.$scopedSlots.$key!==a.$key),u=!!(i||t.$options._renderChildren||c);t.$options._parentVnode=o,t.$vnode=o,t._vnode&&(t._vnode.parent=o);if(t.$options._renderChildren=i,t.$attrs=o.data.attrs||r,t.$listeners=n||r,e&&t.$options.props){xt(!1);for(var l=t._props,f=t.$options._propKeys||[],p=0;p<f.length;p++){var d=f[p],h=t.$options.props;l[d]=Nt(d,h,e,t)}xt(!0),t.$options.propsData=e}n=n||r;var v=t.$options._parentListeners;t.$options._parentListeners=n,Je(t,n,v),u&&(t.$slots=pe(i,o.context),t.$forceUpdate());0}(e.componentInstance=t.componentInstance,n.propsData,n.listeners,e,n.children)},insert:function(t){var e,n=t.context,r=t.componentInstance;r._isMounted||(r._isMounted=!0,en(r,"mounted")),t.data.keepAlive&&(n._isMounted?((e=r)._inactive=!1,rn.push(e)):tn(r,!0))},destroy:function(t){var e=t.componentInstance;e._isDestroyed||(t.data.keepAlive?function t(e,n){if(n&&(e._directInactive=!0,Qe(e)))return;if(!e._inactive){e._inactive=!0;for(var r=0;r<e.$children.length;r++)t(e.$children[r]);en(e,"deactivated")}}(e,!0):e.$destroy())}},Me=Object.keys(Le);function De(t,e,n,s,u){if(!o(t)){var l=n.$options._base;if(c(t)&&(t=l.extend(t)),"function"==typeof t){var f;if(o(t.cid)&&void 0===(t=function(t,e){if(a(t.error)&&i(t.errorComp))return t.errorComp;if(i(t.resolved))return t.resolved;var n=He;n&&i(t.owners)&&-1===t.owners.indexOf(n)&&t.owners.push(n);if(a(t.loading)&&i(t.loadingComp))return t.loadingComp;if(n&&!i(t.owners)){var r=t.owners=[n],s=!0,u=null,l=null;n.$on("hook:destroyed",function(){return g(r,n)});var f=function(t){for(var e=0,n=r.length;e<n;e++)r[e].$forceUpdate();t&&(r.length=0,null!==u&&(clearTimeout(u),u=null),null!==l&&(clearTimeout(l),l=null))},p=M(function(n){t.resolved=qe(n,e),s?r.length=0:f(!0)}),h=M(function(e){i(t.errorComp)&&(t.error=!0,f(!0))}),v=t(p,h);return c(v)&&(d(v)?o(t.resolved)&&v.then(p,h):d(v.component)&&(v.component.then(p,h),i(v.error)&&(t.errorComp=qe(v.error,e)),i(v.loading)&&(t.loadingComp=qe(v.loading,e),0===v.delay?t.loading=!0:u=setTimeout(function(){u=null,o(t.resolved)&&o(t.error)&&(t.loading=!0,f(!1))},v.delay||200)),i(v.timeout)&&(l=setTimeout(function(){l=null,o(t.resolved)&&h(null)},v.timeout)))),s=!1,t.loading?t.loadingComp:t.resolved}}(f=t,l)))return function(t,e,n,r,o){var i=yt();return i.asyncFactory=t,i.asyncMeta={data:e,context:n,children:r,tag:o},i}(f,e,n,s,u);e=e||{},xn(t),i(e.model)&&function(t,e){var n=t.model&&t.model.prop||"value",r=t.model&&t.model.event||"input";(e.attrs||(e.attrs={}))[n]=e.model.value;var o=e.on||(e.on={}),a=o[r],s=e.model.callback;i(a)?(Array.isArray(a)?-1===a.indexOf(s):a!==s)&&(o[r]=[s].concat(a)):o[r]=s}(t.options,e);var p=function(t,e,n){var r=e.options.props;if(!o(r)){var a={},s=t.attrs,c=t.props;if(i(s)||i(c))for(var u in r){var l=O(u);ce(a,c,u,l,!0)||ce(a,s,u,l,!1)}return a}}(e,t);if(a(t.options.functional))return function(t,e,n,o,a){var s=t.options,c={},u=s.props;if(i(u))for(var l in u)c[l]=Nt(l,u,e||r);else i(n.attrs)&&Ie(c,n.attrs),i(n.props)&&Ie(c,n.props);var f=new Pe(n,c,a,o,t),p=s.render.call(null,f._c,f);if(p instanceof vt)return Re(p,n,f.parent,s,f);if(Array.isArray(p)){for(var d=ue(p)||[],h=new Array(d.length),v=0;v<d.length;v++)h[v]=Re(d[v],n,f.parent,s,f);return h}}(t,p,e,n,s);var h=e.on;if(e.on=e.nativeOn,a(t.options.abstract)){var v=e.slot;e={},v&&(e.slot=v)}!function(t){for(var e=t.hook||(t.hook={}),n=0;n<Me.length;n++){var r=Me[n],o=e[r],i=Le[r];o===i||o&&o._merged||(e[r]=o?Ne(i,o):i)}}(e);var m=t.options.name||u;return new vt("vue-component-"+t.cid+(m?"-"+m:""),e,void 0,void 0,void 0,n,{Ctor:t,propsData:p,listeners:h,tag:u,children:s},f)}}}function Ne(t,e){var n=function(n,r){t(n,r),e(n,r)};return n._merged=!0,n}var Ue=1,Fe=2;function Be(t,e,n,r,u,l){return(Array.isArray(n)||s(n))&&(u=r,r=n,n=void 0),a(l)&&(u=Fe),function(t,e,n,r,s){if(i(n)&&i(n.__ob__))return yt();i(n)&&i(n.is)&&(e=n.is);if(!e)return yt();0;Array.isArray(r)&&"function"==typeof r[0]&&((n=n||{}).scopedSlots={default:r[0]},r.length=0);s===Fe?r=ue(r):s===Ue&&(r=function(t){for(var e=0;e<t.length;e++)if(Array.isArray(t[e]))return Array.prototype.concat.apply([],t);return t}(r));var u,l;if("string"==typeof e){var f;l=t.$vnode&&t.$vnode.ns||F.getTagNamespace(e),u=F.isReservedTag(e)?new vt(F.parsePlatformTagName(e),n,r,void 0,void 0,t):n&&n.pre||!i(f=Dt(t.$options,"components",e))?new vt(e,n,r,void 0,void 0,t):De(f,n,t,r,e)}else u=De(e,n,t,r);return Array.isArray(u)?u:i(u)?(i(l)&&function t(e,n,r){e.ns=n;"foreignObject"===e.tag&&(n=void 0,r=!0);if(i(e.children))for(var s=0,c=e.children.length;s<c;s++){var u=e.children[s];i(u.tag)&&(o(u.ns)||a(r)&&"svg"!==u.tag)&&t(u,n,r)}}(u,l),i(n)&&function(t){c(t.style)&&re(t.style);c(t.class)&&re(t.class)}(n),u):yt()}(t,e,n,r,u)}var Ve,He=null;function qe(t,e){return(t.__esModule||ct&&"Module"===t[Symbol.toStringTag])&&(t=t.default),c(t)?e.extend(t):t}function ze(t){return t.isComment&&t.asyncFactory}function We(t){if(Array.isArray(t))for(var e=0;e<t.length;e++){var n=t[e];if(i(n)&&(i(n.componentOptions)||ze(n)))return n}}function Ke(t,e){Ve.$on(t,e)}function Xe(t,e){Ve.$off(t,e)}function Ge(t,e){var n=Ve;return function r(){var o=e.apply(null,arguments);null!==o&&n.$off(t,r)}}function Je(t,e,n){Ve=t,ae(e,n||{},Ke,Xe,Ge,t),Ve=void 0}var Ye=null;function Ze(t){var e=Ye;return Ye=t,function(){Ye=e}}function Qe(t){for(;t&&(t=t.$parent);)if(t._inactive)return!0;return!1}function tn(t,e){if(e){if(t._directInactive=!1,Qe(t))return}else if(t._directInactive)return;if(t._inactive||null===t._inactive){t._inactive=!1;for(var n=0;n<t.$children.length;n++)tn(t.$children[n]);en(t,"activated")}}function en(t,e){dt();var n=t.$options[e],r=e+" hook";if(n)for(var o=0,i=n.length;o<i;o++)Ht(n[o],t,null,t,r);t._hasHookEvent&&t.$emit("hook:"+e),ht()}var nn=[],rn=[],on={},an=!1,sn=!1,cn=0;var un=0,ln=Date.now;if(W&&!J){var fn=window.performance;fn&&"function"==typeof fn.now&&ln()>document.createEvent("Event").timeStamp&&(ln=function(){return fn.now()})}function pn(){var t,e;for(un=ln(),sn=!0,nn.sort(function(t,e){return t.id-e.id}),cn=0;cn<nn.length;cn++)(t=nn[cn]).before&&t.before(),e=t.id,on[e]=null,t.run();var n=rn.slice(),r=nn.slice();cn=nn.length=rn.length=0,on={},an=sn=!1,function(t){for(var e=0;e<t.length;e++)t[e]._inactive=!0,tn(t[e],!0)}(n),function(t){var e=t.length;for(;e--;){var n=t[e],r=n.vm;r._watcher===n&&r._isMounted&&!r._isDestroyed&&en(r,"updated")}}(r),it&&F.devtools&&it.emit("flush")}var dn=0,hn=function(t,e,n,r,o){this.vm=t,o&&(t._watcher=this),t._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++dn,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new st,this.newDepIds=new st,this.expression="","function"==typeof e?this.getter=e:(this.getter=function(t){if(!H.test(t)){var e=t.split(".");return function(t){for(var n=0;n<e.length;n++){if(!t)return;t=t[e[n]]}return t}}}(e),this.getter||(this.getter=T)),this.value=this.lazy?void 0:this.get()};hn.prototype.get=function(){var t;dt(this);var e=this.vm;try{t=this.getter.call(e,e)}catch(t){if(!this.user)throw t;Vt(t,e,'getter for watcher "'+this.expression+'"')}finally{this.deep&&re(t),ht(),this.cleanupDeps()}return t},hn.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},hn.prototype.cleanupDeps=function(){for(var t=this.deps.length;t--;){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},hn.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():function(t){var e=t.id;if(null==on[e]){if(on[e]=!0,sn){for(var n=nn.length-1;n>cn&&nn[n].id>t.id;)n--;nn.splice(n+1,0,t)}else nn.push(t);an||(an=!0,ee(pn))}}(this)},hn.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||c(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){Vt(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},hn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},hn.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},hn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||g(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var vn={enumerable:!0,configurable:!0,get:T,set:T};function mn(t,e,n){vn.get=function(){return this[e][n]},vn.set=function(t){this[e][n]=t},Object.defineProperty(t,n,vn)}function yn(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},r=t._props={},o=t.$options._propKeys=[];t.$parent&&xt(!1);var i=function(i){o.push(i);var a=Nt(i,e,n,t);At(r,i,a),i in t||mn(t,"_props",i)};for(var a in e)i(a);xt(!0)}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]="function"!=typeof e[n]?T:A(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;l(e=t._data="function"==typeof e?function(t,e){dt();try{return t.call(e,e)}catch(t){return Vt(t,e,"data()"),{}}finally{ht()}}(e,t):e||{})||(e={});var n=Object.keys(e),r=t.$options.props,o=(t.$options.methods,n.length);for(;o--;){var i=n[o];0,r&&b(r,i)||(a=void 0,36!==(a=(i+"").charCodeAt(0))&&95!==a&&mn(t,"_data",i))}var a;Ot(e,!0)}(t):Ot(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),r=ot();for(var o in e){var i=e[o],a="function"==typeof i?i:i.get;0,r||(n[o]=new hn(t,a||T,T,gn)),o in t||_n(t,o,i)}}(t,e.computed),e.watch&&e.watch!==et&&function(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var o=0;o<r.length;o++)$n(t,n,r[o]);else $n(t,n,r)}}(t,e.watch)}var gn={lazy:!0};function _n(t,e,n){var r=!ot();"function"==typeof n?(vn.get=r?bn(e):wn(n),vn.set=T):(vn.get=n.get?r&&!1!==n.cache?bn(e):wn(n.get):T,vn.set=n.set||T),Object.defineProperty(t,e,vn)}function bn(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),ft.target&&e.depend(),e.value}}function wn(t){return function(){return t.call(this,this)}}function $n(t,e,n,r){return l(n)&&(r=n,n=n.handler),"string"==typeof n&&(n=t[n]),t.$watch(e,n,r)}var Cn=0;function xn(t){var e=t.options;if(t.super){var n=xn(t.super);if(n!==t.superOptions){t.superOptions=n;var r=function(t){var e,n=t.options,r=t.sealedOptions;for(var o in n)n[o]!==r[o]&&(e||(e={}),e[o]=n[o]);return e}(t);r&&E(t.extendOptions,r),(e=t.options=Mt(n,t.extendOptions)).name&&(e.components[e.name]=t)}}return e}function kn(t){this._init(t)}function On(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,o=t._Ctor||(t._Ctor={});if(o[r])return o[r];var i=t.name||n.options.name;var a=function(t){this._init(t)};return(a.prototype=Object.create(n.prototype)).constructor=a,a.cid=e++,a.options=Mt(n.options,t),a.super=n,a.options.props&&function(t){var e=t.options.props;for(var n in e)mn(t.prototype,"_props",n)}(a),a.options.computed&&function(t){var e=t.options.computed;for(var n in e)_n(t.prototype,n,e[n])}(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,N.forEach(function(t){a[t]=n[t]}),i&&(a.options.components[i]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=E({},a.options),o[r]=a,a}}function An(t){return t&&(t.Ctor.options.name||t.tag)}function Sn(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!f(t)&&t.test(e)}function En(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a=n[i];if(a){var s=An(a.componentOptions);s&&!e(s)&&jn(n,i,r,o)}}}function jn(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,g(n,e)}kn.prototype._init=function(t){var e=this;e._uid=Cn++,e._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Mt(xn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Je(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,o=n&&n.context;t.$slots=pe(e._renderChildren,o),t.$scopedSlots=r,t._c=function(e,n,r,o){return Be(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return Be(t,e,n,r,o,!0)};var i=n&&n.data;At(t,"$attrs",i&&i.attrs||r,null,!0),At(t,"$listeners",e._parentListeners||r,null,!0)}(e),en(e,"beforeCreate"),function(t){var e=fe(t.$options.inject,t);e&&(xt(!1),Object.keys(e).forEach(function(n){At(t,n,e[n])}),xt(!0))}(e),yn(e),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(e),en(e,"created"),e.$options.el&&e.$mount(e.$options.el)},function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=St,t.prototype.$delete=Et,t.prototype.$watch=function(t,e,n){if(l(e))return $n(this,t,e,n);(n=n||{}).user=!0;var r=new hn(this,t,e,n);if(n.immediate)try{e.call(this,r.value)}catch(t){Vt(t,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(kn),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var r=this;if(Array.isArray(t))for(var o=0,i=t.length;o<i;o++)r.$on(t[o],n);else(r._events[t]||(r._events[t]=[])).push(n),e.test(t)&&(r._hasHookEvent=!0);return r},t.prototype.$once=function(t,e){var n=this;function r(){n.$off(t,r),e.apply(n,arguments)}return r.fn=e,n.$on(t,r),n},t.prototype.$off=function(t,e){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(Array.isArray(t)){for(var r=0,o=t.length;r<o;r++)n.$off(t[r],e);return n}var i,a=n._events[t];if(!a)return n;if(!e)return n._events[t]=null,n;for(var s=a.length;s--;)if((i=a[s])===e||i.fn===e){a.splice(s,1);break}return n},t.prototype.$emit=function(t){var e=this,n=e._events[t];if(n){n=n.length>1?S(n):n;for(var r=S(arguments,1),o='event handler for "'+t+'"',i=0,a=n.length;i<a;i++)Ht(n[i],e,r,e,o)}return e}}(kn),function(t){t.prototype._update=function(t,e){var n=this,r=n.$el,o=n._vnode,i=Ze(n);n._vnode=t,n.$el=o?n.__patch__(o,t):n.__patch__(n.$el,t,e,!1),i(),r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},t.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},t.prototype.$destroy=function(){var t=this;if(!t._isBeingDestroyed){en(t,"beforeDestroy"),t._isBeingDestroyed=!0;var e=t.$parent;!e||e._isBeingDestroyed||t.$options.abstract||g(e.$children,t),t._watcher&&t._watcher.teardown();for(var n=t._watchers.length;n--;)t._watchers[n].teardown();t._data.__ob__&&t._data.__ob__.vmCount--,t._isDestroyed=!0,t.__patch__(t._vnode,null),en(t,"destroyed"),t.$off(),t.$el&&(t.$el.__vue__=null),t.$vnode&&(t.$vnode.parent=null)}}}(kn),function(t){Te(t.prototype),t.prototype.$nextTick=function(t){return ee(t,this)},t.prototype._render=function(){var t,e=this,n=e.$options,r=n.render,o=n._parentVnode;o&&(e.$scopedSlots=he(o.data.scopedSlots,e.$slots,e.$scopedSlots)),e.$vnode=o;try{He=e,t=r.call(e._renderProxy,e.$createElement)}catch(n){Vt(n,e,"render"),t=e._vnode}finally{He=null}return Array.isArray(t)&&1===t.length&&(t=t[0]),t instanceof vt||(t=yt()),t.parent=o,t}}(kn);var Tn=[String,RegExp,Array],Pn={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:Tn,exclude:Tn,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)jn(this.cache,t,this.keys)},mounted:function(){var t=this;this.$watch("include",function(e){En(t,function(t){return Sn(e,t)})}),this.$watch("exclude",function(e){En(t,function(t){return!Sn(e,t)})})},render:function(){var t=this.$slots.default,e=We(t),n=e&&e.componentOptions;if(n){var r=An(n),o=this.include,i=this.exclude;if(o&&(!r||!Sn(o,r))||i&&r&&Sn(i,r))return e;var a=this.cache,s=this.keys,c=null==e.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):e.key;a[c]?(e.componentInstance=a[c].componentInstance,g(s,c),s.push(c)):(a[c]=e,s.push(c),this.max&&s.length>parseInt(this.max)&&jn(a,s[0],s,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return F}};Object.defineProperty(t,"config",e),t.util={warn:ut,extend:E,mergeOptions:Mt,defineReactive:At},t.set=St,t.delete=Et,t.nextTick=ee,t.observable=function(t){return Ot(t),t},t.options=Object.create(null),N.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,E(t.options.components,Pn),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=S(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Mt(this.options,t),this}}(t),On(t),function(t){N.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&l(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}(t)}(kn),Object.defineProperty(kn.prototype,"$isServer",{get:ot}),Object.defineProperty(kn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(kn,"FunctionalRenderContext",{value:Pe}),kn.version="2.6.10";var Rn=m("style,class"),In=m("input,textarea,option,select,progress"),Ln=m("contenteditable,draggable,spellcheck"),Mn=m("events,caret,typing,plaintext-only"),Dn=function(t,e){return Vn(e)||"false"===e?"false":"contenteditable"===t&&Mn(e)?e:"true"},Nn=m("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Un="http://www.w3.org/1999/xlink",Fn=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Bn=function(t){return Fn(t)?t.slice(6,t.length):""},Vn=function(t){return null==t||!1===t};function Hn(t){for(var e=t.data,n=t,r=t;i(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=qn(r.data,e));for(;i(n=n.parent);)n&&n.data&&(e=qn(e,n.data));return function(t,e){if(i(t)||i(e))return zn(t,Wn(e));return""}(e.staticClass,e.class)}function qn(t,e){return{staticClass:zn(t.staticClass,e.staticClass),class:i(t.class)?[t.class,e.class]:e.class}}function zn(t,e){return t?e?t+" "+e:t:e||""}function Wn(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r<o;r++)i(e=Wn(t[r]))&&""!==e&&(n&&(n+=" "),n+=e);return n}(t):c(t)?function(t){var e="";for(var n in t)t[n]&&(e&&(e+=" "),e+=n);return e}(t):"string"==typeof t?t:""}var Kn={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},Xn=m("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),Gn=m("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Jn=function(t){return Xn(t)||Gn(t)};var Yn=Object.create(null);var Zn=m("text,number,password,search,email,tel,url");var Qn=Object.freeze({createElement:function(t,e){var n=document.createElement(t);return"select"!==t?n:(e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)},createElementNS:function(t,e){return document.createElementNS(Kn[t],e)},createTextNode:function(t){return document.createTextNode(t)},createComment:function(t){return document.createComment(t)},insertBefore:function(t,e,n){t.insertBefore(e,n)},removeChild:function(t,e){t.removeChild(e)},appendChild:function(t,e){t.appendChild(e)},parentNode:function(t){return t.parentNode},nextSibling:function(t){return t.nextSibling},tagName:function(t){return t.tagName},setTextContent:function(t,e){t.textContent=e},setStyleScope:function(t,e){t.setAttribute(e,"")}}),tr={create:function(t,e){er(e)},update:function(t,e){t.data.ref!==e.data.ref&&(er(t,!0),er(e))},destroy:function(t){er(t,!0)}};function er(t,e){var n=t.data.ref;if(i(n)){var r=t.context,o=t.componentInstance||t.elm,a=r.$refs;e?Array.isArray(a[n])?g(a[n],o):a[n]===o&&(a[n]=void 0):t.data.refInFor?Array.isArray(a[n])?a[n].indexOf(o)<0&&a[n].push(o):a[n]=[o]:a[n]=o}}var nr=new vt("",{},[]),rr=["create","activate","update","remove","destroy"];function or(t,e){return t.key===e.key&&(t.tag===e.tag&&t.isComment===e.isComment&&i(t.data)===i(e.data)&&function(t,e){if("input"!==t.tag)return!0;var n,r=i(n=t.data)&&i(n=n.attrs)&&n.type,o=i(n=e.data)&&i(n=n.attrs)&&n.type;return r===o||Zn(r)&&Zn(o)}(t,e)||a(t.isAsyncPlaceholder)&&t.asyncFactory===e.asyncFactory&&o(e.asyncFactory.error))}function ir(t,e,n){var r,o,a={};for(r=e;r<=n;++r)i(o=t[r].key)&&(a[o]=r);return a}var ar={create:sr,update:sr,destroy:function(t){sr(t,nr)}};function sr(t,e){(t.data.directives||e.data.directives)&&function(t,e){var n,r,o,i=t===nr,a=e===nr,s=ur(t.data.directives,t.context),c=ur(e.data.directives,e.context),u=[],l=[];for(n in c)r=s[n],o=c[n],r?(o.oldValue=r.value,o.oldArg=r.arg,fr(o,"update",e,t),o.def&&o.def.componentUpdated&&l.push(o)):(fr(o,"bind",e,t),o.def&&o.def.inserted&&u.push(o));if(u.length){var f=function(){for(var n=0;n<u.length;n++)fr(u[n],"inserted",e,t)};i?se(e,"insert",f):f()}l.length&&se(e,"postpatch",function(){for(var n=0;n<l.length;n++)fr(l[n],"componentUpdated",e,t)});if(!i)for(n in s)c[n]||fr(s[n],"unbind",t,t,a)}(t,e)}var cr=Object.create(null);function ur(t,e){var n,r,o=Object.create(null);if(!t)return o;for(n=0;n<t.length;n++)(r=t[n]).modifiers||(r.modifiers=cr),o[lr(r)]=r,r.def=Dt(e.$options,"directives",r.name);return o}function lr(t){return t.rawName||t.name+"."+Object.keys(t.modifiers||{}).join(".")}function fr(t,e,n,r,o){var i=t.def&&t.def[e];if(i)try{i(n.elm,t,n,r,o)}catch(r){Vt(r,n.context,"directive "+t.name+" "+e+" hook")}}var pr=[tr,ar];function dr(t,e){var n=e.componentOptions;if(!(i(n)&&!1===n.Ctor.options.inheritAttrs||o(t.data.attrs)&&o(e.data.attrs))){var r,a,s=e.elm,c=t.data.attrs||{},u=e.data.attrs||{};for(r in i(u.__ob__)&&(u=e.data.attrs=E({},u)),u)a=u[r],c[r]!==a&&hr(s,r,a);for(r in(J||Z)&&u.value!==c.value&&hr(s,"value",u.value),c)o(u[r])&&(Fn(r)?s.removeAttributeNS(Un,Bn(r)):Ln(r)||s.removeAttribute(r))}}function hr(t,e,n){t.tagName.indexOf("-")>-1?vr(t,e,n):Nn(e)?Vn(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Ln(e)?t.setAttribute(e,Dn(e,n)):Fn(e)?Vn(n)?t.removeAttributeNS(Un,Bn(e)):t.setAttributeNS(Un,e,n):vr(t,e,n)}function vr(t,e,n){if(Vn(n))t.removeAttribute(e);else{if(J&&!Y&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var mr={create:dr,update:dr};function yr(t,e){var n=e.elm,r=e.data,a=t.data;if(!(o(r.staticClass)&&o(r.class)&&(o(a)||o(a.staticClass)&&o(a.class)))){var s=Hn(e),c=n._transitionClasses;i(c)&&(s=zn(s,Wn(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var gr,_r={create:yr,update:yr},br="__r",wr="__c";function $r(t,e,n){var r=gr;return function o(){var i=e.apply(null,arguments);null!==i&&kr(t,o,n,r)}}var Cr=Kt&&!(tt&&Number(tt[1])<=53);function xr(t,e,n,r){if(Cr){var o=un,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}gr.addEventListener(t,e,nt?{capture:n,passive:r}:n)}function kr(t,e,n,r){(r||gr).removeEventListener(t,e._wrapper||e,n)}function Or(t,e){if(!o(t.data.on)||!o(e.data.on)){var n=e.data.on||{},r=t.data.on||{};gr=e.elm,function(t){if(i(t[br])){var e=J?"change":"input";t[e]=[].concat(t[br],t[e]||[]),delete t[br]}i(t[wr])&&(t.change=[].concat(t[wr],t.change||[]),delete t[wr])}(n),ae(n,r,xr,kr,$r,e.context),gr=void 0}}var Ar,Sr={create:Or,update:Or};function Er(t,e){if(!o(t.data.domProps)||!o(e.data.domProps)){var n,r,a=e.elm,s=t.data.domProps||{},c=e.data.domProps||{};for(n in i(c.__ob__)&&(c=e.data.domProps=E({},c)),s)n in c||(a[n]="");for(n in c){if(r=c[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=r;var u=o(r)?"":String(r);jr(a,u)&&(a.value=u)}else if("innerHTML"===n&&Gn(a.tagName)&&o(a.innerHTML)){(Ar=Ar||document.createElement("div")).innerHTML="<svg>"+r+"</svg>";for(var l=Ar.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}else if(r!==s[n])try{a[n]=r}catch(t){}}}}function jr(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(i(r)){if(r.number)return v(n)!==v(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var Tr={create:Er,update:Er},Pr=w(function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach(function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e});function Rr(t){var e=Ir(t.style);return t.staticStyle?E(t.staticStyle,e):e}function Ir(t){return Array.isArray(t)?j(t):"string"==typeof t?Pr(t):t}var Lr,Mr=/^--/,Dr=/\s*!important$/,Nr=function(t,e,n){if(Mr.test(e))t.style.setProperty(e,n);else if(Dr.test(n))t.style.setProperty(O(e),n.replace(Dr,""),"important");else{var r=Fr(e);if(Array.isArray(n))for(var o=0,i=n.length;o<i;o++)t.style[r]=n[o];else t.style[r]=n}},Ur=["Webkit","Moz","ms"],Fr=w(function(t){if(Lr=Lr||document.createElement("div").style,"filter"!==(t=C(t))&&t in Lr)return t;for(var e=t.charAt(0).toUpperCase()+t.slice(1),n=0;n<Ur.length;n++){var r=Ur[n]+e;if(r in Lr)return r}});function Br(t,e){var n=e.data,r=t.data;if(!(o(n.staticStyle)&&o(n.style)&&o(r.staticStyle)&&o(r.style))){var a,s,c=e.elm,u=r.staticStyle,l=r.normalizedStyle||r.style||{},f=u||l,p=Ir(e.data.style)||{};e.data.normalizedStyle=i(p.__ob__)?E({},p):p;var d=function(t,e){var n,r={};if(e)for(var o=t;o.componentInstance;)(o=o.componentInstance._vnode)&&o.data&&(n=Rr(o.data))&&E(r,n);(n=Rr(t.data))&&E(r,n);for(var i=t;i=i.parent;)i.data&&(n=Rr(i.data))&&E(r,n);return r}(e,!0);for(s in f)o(d[s])&&Nr(c,s,"");for(s in d)(a=d[s])!==f[s]&&Nr(c,s,null==a?"":a)}}var Vr={create:Br,update:Br},Hr=/\s+/;function qr(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Hr).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function zr(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Hr).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function Wr(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&E(e,Kr(t.name||"v")),E(e,t),e}return"string"==typeof t?Kr(t):void 0}}var Kr=w(function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}}),Xr=W&&!Y,Gr="transition",Jr="animation",Yr="transition",Zr="transitionend",Qr="animation",to="animationend";Xr&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Yr="WebkitTransition",Zr="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Qr="WebkitAnimation",to="webkitAnimationEnd"));var eo=W?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function no(t){eo(function(){eo(t)})}function ro(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),qr(t,e))}function oo(t,e){t._transitionClasses&&g(t._transitionClasses,e),zr(t,e)}function io(t,e,n){var r=so(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s=o===Gr?Zr:to,c=0,u=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++c>=a&&u()};setTimeout(function(){c<a&&u()},i+1),t.addEventListener(s,l)}var ao=/\b(transform|all)(,|$)/;function so(t,e){var n,r=window.getComputedStyle(t),o=(r[Yr+"Delay"]||"").split(", "),i=(r[Yr+"Duration"]||"").split(", "),a=co(o,i),s=(r[Qr+"Delay"]||"").split(", "),c=(r[Qr+"Duration"]||"").split(", "),u=co(s,c),l=0,f=0;return e===Gr?a>0&&(n=Gr,l=a,f=i.length):e===Jr?u>0&&(n=Jr,l=u,f=c.length):f=(n=(l=Math.max(a,u))>0?a>u?Gr:Jr:null)?n===Gr?i.length:c.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===Gr&&ao.test(r[Yr+"Property"])}}function co(t,e){for(;t.length<e.length;)t=t.concat(t);return Math.max.apply(null,e.map(function(e,n){return uo(e)+uo(t[n])}))}function uo(t){return 1e3*Number(t.slice(0,-1).replace(",","."))}function lo(t,e){var n=t.elm;i(n._leaveCb)&&(n._leaveCb.cancelled=!0,n._leaveCb());var r=Wr(t.data.transition);if(!o(r)&&!i(n._enterCb)&&1===n.nodeType){for(var a=r.css,s=r.type,u=r.enterClass,l=r.enterToClass,f=r.enterActiveClass,p=r.appearClass,d=r.appearToClass,h=r.appearActiveClass,m=r.beforeEnter,y=r.enter,g=r.afterEnter,_=r.enterCancelled,b=r.beforeAppear,w=r.appear,$=r.afterAppear,C=r.appearCancelled,x=r.duration,k=Ye,O=Ye.$vnode;O&&O.parent;)k=O.context,O=O.parent;var A=!k._isMounted||!t.isRootInsert;if(!A||w||""===w){var S=A&&p?p:u,E=A&&h?h:f,j=A&&d?d:l,T=A&&b||m,P=A&&"function"==typeof w?w:y,R=A&&$||g,I=A&&C||_,L=v(c(x)?x.enter:x);0;var D=!1!==a&&!Y,N=ho(P),U=n._enterCb=M(function(){D&&(oo(n,j),oo(n,E)),U.cancelled?(D&&oo(n,S),I&&I(n)):R&&R(n),n._enterCb=null});t.data.show||se(t,"insert",function(){var e=n.parentNode,r=e&&e._pending&&e._pending[t.key];r&&r.tag===t.tag&&r.elm._leaveCb&&r.elm._leaveCb(),P&&P(n,U)}),T&&T(n),D&&(ro(n,S),ro(n,E),no(function(){oo(n,S),U.cancelled||(ro(n,j),N||(po(L)?setTimeout(U,L):io(n,s,U)))})),t.data.show&&(e&&e(),P&&P(n,U)),D||N||U()}}}function fo(t,e){var n=t.elm;i(n._enterCb)&&(n._enterCb.cancelled=!0,n._enterCb());var r=Wr(t.data.transition);if(o(r)||1!==n.nodeType)return e();if(!i(n._leaveCb)){var a=r.css,s=r.type,u=r.leaveClass,l=r.leaveToClass,f=r.leaveActiveClass,p=r.beforeLeave,d=r.leave,h=r.afterLeave,m=r.leaveCancelled,y=r.delayLeave,g=r.duration,_=!1!==a&&!Y,b=ho(d),w=v(c(g)?g.leave:g);0;var $=n._leaveCb=M(function(){n.parentNode&&n.parentNode._pending&&(n.parentNode._pending[t.key]=null),_&&(oo(n,l),oo(n,f)),$.cancelled?(_&&oo(n,u),m&&m(n)):(e(),h&&h(n)),n._leaveCb=null});y?y(C):C()}function C(){$.cancelled||(!t.data.show&&n.parentNode&&((n.parentNode._pending||(n.parentNode._pending={}))[t.key]=t),p&&p(n),_&&(ro(n,u),ro(n,f),no(function(){oo(n,u),$.cancelled||(ro(n,l),b||(po(w)?setTimeout($,w):io(n,s,$)))})),d&&d(n,$),_||b||$())}}function po(t){return"number"==typeof t&&!isNaN(t)}function ho(t){if(o(t))return!1;var e=t.fns;return i(e)?ho(Array.isArray(e)?e[0]:e):(t._length||t.length)>1}function vo(t,e){!0!==e.data.show&&lo(e)}var mo=function(t){var e,n,r={},c=t.modules,u=t.nodeOps;for(e=0;e<rr.length;++e)for(r[rr[e]]=[],n=0;n<c.length;++n)i(c[n][rr[e]])&&r[rr[e]].push(c[n][rr[e]]);function l(t){var e=u.parentNode(t);i(e)&&u.removeChild(e,t)}function f(t,e,n,o,s,c,l){if(i(t.elm)&&i(c)&&(t=c[l]=_t(t)),t.isRootInsert=!s,!function(t,e,n,o){var s=t.data;if(i(s)){var c=i(t.componentInstance)&&s.keepAlive;if(i(s=s.hook)&&i(s=s.init)&&s(t,!1),i(t.componentInstance))return p(t,e),d(n,t.elm,o),a(c)&&function(t,e,n,o){var a,s=t;for(;s.componentInstance;)if(s=s.componentInstance._vnode,i(a=s.data)&&i(a=a.transition)){for(a=0;a<r.activate.length;++a)r.activate[a](nr,s);e.push(s);break}d(n,t.elm,o)}(t,e,n,o),!0}}(t,e,n,o)){var f=t.data,v=t.children,m=t.tag;i(m)?(t.elm=t.ns?u.createElementNS(t.ns,m):u.createElement(m,t),g(t),h(t,v,e),i(f)&&y(t,e),d(n,t.elm,o)):a(t.isComment)?(t.elm=u.createComment(t.text),d(n,t.elm,o)):(t.elm=u.createTextNode(t.text),d(n,t.elm,o))}}function p(t,e){i(t.data.pendingInsert)&&(e.push.apply(e,t.data.pendingInsert),t.data.pendingInsert=null),t.elm=t.componentInstance.$el,v(t)?(y(t,e),g(t)):(er(t),e.push(t))}function d(t,e,n){i(t)&&(i(n)?u.parentNode(n)===t&&u.insertBefore(t,e,n):u.appendChild(t,e))}function h(t,e,n){if(Array.isArray(e)){0;for(var r=0;r<e.length;++r)f(e[r],n,t.elm,null,!0,e,r)}else s(t.text)&&u.appendChild(t.elm,u.createTextNode(String(t.text)))}function v(t){for(;t.componentInstance;)t=t.componentInstance._vnode;return i(t.tag)}function y(t,n){for(var o=0;o<r.create.length;++o)r.create[o](nr,t);i(e=t.data.hook)&&(i(e.create)&&e.create(nr,t),i(e.insert)&&n.push(t))}function g(t){var e;if(i(e=t.fnScopeId))u.setStyleScope(t.elm,e);else for(var n=t;n;)i(e=n.context)&&i(e=e.$options._scopeId)&&u.setStyleScope(t.elm,e),n=n.parent;i(e=Ye)&&e!==t.context&&e!==t.fnContext&&i(e=e.$options._scopeId)&&u.setStyleScope(t.elm,e)}function _(t,e,n,r,o,i){for(;r<=o;++r)f(n[r],i,t,e,!1,n,r)}function b(t){var e,n,o=t.data;if(i(o))for(i(e=o.hook)&&i(e=e.destroy)&&e(t),e=0;e<r.destroy.length;++e)r.destroy[e](t);if(i(e=t.children))for(n=0;n<t.children.length;++n)b(t.children[n])}function w(t,e,n,r){for(;n<=r;++n){var o=e[n];i(o)&&(i(o.tag)?($(o),b(o)):l(o.elm))}}function $(t,e){if(i(e)||i(t.data)){var n,o=r.remove.length+1;for(i(e)?e.listeners+=o:e=function(t,e){function n(){0==--n.listeners&&l(t)}return n.listeners=e,n}(t.elm,o),i(n=t.componentInstance)&&i(n=n._vnode)&&i(n.data)&&$(n,e),n=0;n<r.remove.length;++n)r.remove[n](t,e);i(n=t.data.hook)&&i(n=n.remove)?n(t,e):e()}else l(t.elm)}function C(t,e,n,r){for(var o=n;o<r;o++){var a=e[o];if(i(a)&&or(t,a))return o}}function x(t,e,n,s,c,l){if(t!==e){i(e.elm)&&i(s)&&(e=s[c]=_t(e));var p=e.elm=t.elm;if(a(t.isAsyncPlaceholder))i(e.asyncFactory.resolved)?A(t.elm,e,n):e.isAsyncPlaceholder=!0;else if(a(e.isStatic)&&a(t.isStatic)&&e.key===t.key&&(a(e.isCloned)||a(e.isOnce)))e.componentInstance=t.componentInstance;else{var d,h=e.data;i(h)&&i(d=h.hook)&&i(d=d.prepatch)&&d(t,e);var m=t.children,y=e.children;if(i(h)&&v(e)){for(d=0;d<r.update.length;++d)r.update[d](t,e);i(d=h.hook)&&i(d=d.update)&&d(t,e)}o(e.text)?i(m)&&i(y)?m!==y&&function(t,e,n,r,a){var s,c,l,p=0,d=0,h=e.length-1,v=e[0],m=e[h],y=n.length-1,g=n[0],b=n[y],$=!a;for(0;p<=h&&d<=y;)o(v)?v=e[++p]:o(m)?m=e[--h]:or(v,g)?(x(v,g,r,n,d),v=e[++p],g=n[++d]):or(m,b)?(x(m,b,r,n,y),m=e[--h],b=n[--y]):or(v,b)?(x(v,b,r,n,y),$&&u.insertBefore(t,v.elm,u.nextSibling(m.elm)),v=e[++p],b=n[--y]):or(m,g)?(x(m,g,r,n,d),$&&u.insertBefore(t,m.elm,v.elm),m=e[--h],g=n[++d]):(o(s)&&(s=ir(e,p,h)),o(c=i(g.key)?s[g.key]:C(g,e,p,h))?f(g,r,t,v.elm,!1,n,d):or(l=e[c],g)?(x(l,g,r,n,d),e[c]=void 0,$&&u.insertBefore(t,l.elm,v.elm)):f(g,r,t,v.elm,!1,n,d),g=n[++d]);p>h?_(t,o(n[y+1])?null:n[y+1].elm,n,d,y,r):d>y&&w(0,e,p,h)}(p,m,y,n,l):i(y)?(i(t.text)&&u.setTextContent(p,""),_(p,null,y,0,y.length-1,n)):i(m)?w(0,m,0,m.length-1):i(t.text)&&u.setTextContent(p,""):t.text!==e.text&&u.setTextContent(p,e.text),i(h)&&i(d=h.hook)&&i(d=d.postpatch)&&d(t,e)}}}function k(t,e,n){if(a(n)&&i(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r<e.length;++r)e[r].data.hook.insert(e[r])}var O=m("attrs,class,staticClass,staticStyle,key");function A(t,e,n,r){var o,s=e.tag,c=e.data,u=e.children;if(r=r||c&&c.pre,e.elm=t,a(e.isComment)&&i(e.asyncFactory))return e.isAsyncPlaceholder=!0,!0;if(i(c)&&(i(o=c.hook)&&i(o=o.init)&&o(e,!0),i(o=e.componentInstance)))return p(e,n),!0;if(i(s)){if(i(u))if(t.hasChildNodes())if(i(o=c)&&i(o=o.domProps)&&i(o=o.innerHTML)){if(o!==t.innerHTML)return!1}else{for(var l=!0,f=t.firstChild,d=0;d<u.length;d++){if(!f||!A(f,u[d],n,r)){l=!1;break}f=f.nextSibling}if(!l||f)return!1}else h(e,u,n);if(i(c)){var v=!1;for(var m in c)if(!O(m)){v=!0,y(e,n);break}!v&&c.class&&re(c.class)}}else t.data!==e.text&&(t.data=e.text);return!0}return function(t,e,n,s){if(!o(e)){var c,l=!1,p=[];if(o(t))l=!0,f(e,p);else{var d=i(t.nodeType);if(!d&&or(t,e))x(t,e,p,null,null,s);else{if(d){if(1===t.nodeType&&t.hasAttribute(D)&&(t.removeAttribute(D),n=!0),a(n)&&A(t,e,p))return k(e,p,!0),t;c=t,t=new vt(u.tagName(c).toLowerCase(),{},[],void 0,c)}var h=t.elm,m=u.parentNode(h);if(f(e,p,h._leaveCb?null:m,u.nextSibling(h)),i(e.parent))for(var y=e.parent,g=v(e);y;){for(var _=0;_<r.destroy.length;++_)r.destroy[_](y);if(y.elm=e.elm,g){for(var $=0;$<r.create.length;++$)r.create[$](nr,y);var C=y.data.hook.insert;if(C.merged)for(var O=1;O<C.fns.length;O++)C.fns[O]()}else er(y);y=y.parent}i(m)?w(0,[t],0,0):i(t.tag)&&b(t)}}return k(e,p,l),e.elm}i(t)&&b(t)}}({nodeOps:Qn,modules:[mr,_r,Sr,Tr,Vr,W?{create:vo,activate:vo,remove:function(t,e){!0!==t.data.show?fo(t,e):e()}}:{}].concat(pr)});Y&&document.addEventListener("selectionchange",function(){var t=document.activeElement;t&&t.vmodel&&xo(t,"input")});var yo={inserted:function(t,e,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?se(n,"postpatch",function(){yo.componentUpdated(t,e,n)}):go(t,e,n.context),t._vOptions=[].map.call(t.options,wo)):("textarea"===n.tag||Zn(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("compositionstart",$o),t.addEventListener("compositionend",Co),t.addEventListener("change",Co),Y&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){go(t,e,n.context);var r=t._vOptions,o=t._vOptions=[].map.call(t.options,wo);if(o.some(function(t,e){return!I(t,r[e])}))(t.multiple?e.value.some(function(t){return bo(t,o)}):e.value!==e.oldValue&&bo(e.value,o))&&xo(t,"change")}}};function go(t,e,n){_o(t,e,n),(J||Z)&&setTimeout(function(){_o(t,e,n)},0)}function _o(t,e,n){var r=e.value,o=t.multiple;if(!o||Array.isArray(r)){for(var i,a,s=0,c=t.options.length;s<c;s++)if(a=t.options[s],o)i=L(r,wo(a))>-1,a.selected!==i&&(a.selected=i);else if(I(wo(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function bo(t,e){return e.every(function(e){return!I(e,t)})}function wo(t){return"_value"in t?t._value:t.value}function $o(t){t.target.composing=!0}function Co(t){t.target.composing&&(t.target.composing=!1,xo(t.target,"input"))}function xo(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function ko(t){return!t.componentInstance||t.data&&t.data.transition?t:ko(t.componentInstance._vnode)}var Oo={model:yo,show:{bind:function(t,e,n){var r=e.value,o=(n=ko(n)).data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,lo(n,function(){t.style.display=i})):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=ko(n)).data&&n.data.transition?(n.data.show=!0,r?lo(n,function(){t.style.display=t.__vOriginalDisplay}):fo(n,function(){t.style.display="none"})):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},Ao={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function So(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?So(We(e.children)):t}function Eo(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var i in o)e[C(i)]=o[i];return e}function jo(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var To=function(t){return t.tag||ze(t)},Po=function(t){return"show"===t.name},Ro={name:"transition",props:Ao,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(To)).length){0;var r=this.mode;0;var o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var i=So(o);if(!i)return o;if(this._leaving)return jo(t,o);var a="__transition-"+this._uid+"-";i.key=null==i.key?i.isComment?a+"comment":a+i.tag:s(i.key)?0===String(i.key).indexOf(a)?i.key:a+i.key:i.key;var c=(i.data||(i.data={})).transition=Eo(this),u=this._vnode,l=So(u);if(i.data.directives&&i.data.directives.some(Po)&&(i.data.show=!0),l&&l.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(i,l)&&!ze(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=E({},c);if("out-in"===r)return this._leaving=!0,se(f,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),jo(t,o);if("in-out"===r){if(ze(i))return u;var p,d=function(){p()};se(c,"afterEnter",d),se(c,"enterCancelled",d),se(f,"delayLeave",function(t){p=t})}}return o}}},Io=E({tag:String,moveClass:String},Ao);function Lo(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Mo(t){t.data.newPos=t.elm.getBoundingClientRect()}function Do(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var i=t.elm.style;i.transform=i.WebkitTransform="translate("+r+"px,"+o+"px)",i.transitionDuration="0s"}}delete Io.mode;var No={Transition:Ro,TransitionGroup:{props:Io,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Ze(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=Eo(this),s=0;s<o.length;s++){var c=o[s];if(c.tag)if(null!=c.key&&0!==String(c.key).indexOf("__vlist"))i.push(c),n[c.key]=c,(c.data||(c.data={})).transition=a;else;}if(r){for(var u=[],l=[],f=0;f<r.length;f++){var p=r[f];p.data.transition=a,p.data.pos=p.elm.getBoundingClientRect(),n[p.key]?u.push(p):l.push(p)}this.kept=t(e,null,u),this.removed=l}return t(e,null,i)},updated:function(){var t=this.prevChildren,e=this.moveClass||(this.name||"v")+"-move";t.length&&this.hasMove(t[0].elm,e)&&(t.forEach(Lo),t.forEach(Mo),t.forEach(Do),this._reflow=document.body.offsetHeight,t.forEach(function(t){if(t.data.moved){var n=t.elm,r=n.style;ro(n,e),r.transform=r.WebkitTransform=r.transitionDuration="",n.addEventListener(Zr,n._moveCb=function t(r){r&&r.target!==n||r&&!/transform$/.test(r.propertyName)||(n.removeEventListener(Zr,t),n._moveCb=null,oo(n,e))})}}))},methods:{hasMove:function(t,e){if(!Xr)return!1;if(this._hasMove)return this._hasMove;var n=t.cloneNode();t._transitionClasses&&t._transitionClasses.forEach(function(t){zr(n,t)}),qr(n,e),n.style.display="none",this.$el.appendChild(n);var r=so(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}}};kn.config.mustUseProp=function(t,e,n){return"value"===n&&In(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},kn.config.isReservedTag=Jn,kn.config.isReservedAttr=Rn,kn.config.getTagNamespace=function(t){return Gn(t)?"svg":"math"===t?"math":void 0},kn.config.isUnknownElement=function(t){if(!W)return!0;if(Jn(t))return!1;if(t=t.toLowerCase(),null!=Yn[t])return Yn[t];var e=document.createElement(t);return t.indexOf("-")>-1?Yn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Yn[t]=/HTMLUnknownElement/.test(e.toString())},E(kn.options.directives,Oo),E(kn.options.components,No),kn.prototype.__patch__=W?mo:T,kn.prototype.$mount=function(t,e){return function(t,e,n){var r;return t.$el=e,t.$options.render||(t.$options.render=yt),en(t,"beforeMount"),r=function(){t._update(t._render(),n)},new hn(t,r,T,{before:function(){t._isMounted&&!t._isDestroyed&&en(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,en(t,"mounted")),t}(this,t=t&&W?function(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}(t):void 0,e)},W&&setTimeout(function(){F.devtools&&it&&it.emit("init",kn)},0);var Uo=kn;
+var r=Object.freeze({});function o(t){return null==t}function i(t){return null!=t}function a(t){return!0===t}function s(t){return"string"==typeof t||"number"==typeof t||"symbol"==typeof t||"boolean"==typeof t}function c(t){return null!==t&&"object"==typeof t}var u=Object.prototype.toString;function l(t){return"[object Object]"===u.call(t)}function f(t){return"[object RegExp]"===u.call(t)}function p(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function d(t){return i(t)&&"function"==typeof t.then&&"function"==typeof t.catch}function h(t){return null==t?"":Array.isArray(t)||l(t)&&t.toString===u?JSON.stringify(t,null,2):String(t)}function v(t){var e=parseFloat(t);return isNaN(e)?t:e}function m(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o<r.length;o++)n[r[o]]=!0;return e?function(t){return n[t.toLowerCase()]}:function(t){return n[t]}}m("slot,component",!0);var y=m("key,ref,slot,slot-scope,is");function g(t,e){if(t.length){var n=t.indexOf(e);if(n>-1)return t.splice(n,1)}}var b=Object.prototype.hasOwnProperty;function _(t,e){return b.call(t,e)}function w(t){var e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}var $=/-(\w)/g,C=w(function(t){return t.replace($,function(t,e){return e?e.toUpperCase():""})}),x=w(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),k=/\B([A-Z])/g,O=w(function(t){return t.replace(k,"-$1").toLowerCase()});var A=Function.prototype.bind?function(t,e){return t.bind(e)}:function(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n};function S(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function E(t,e){for(var n in e)t[n]=e[n];return t}function T(t){for(var e={},n=0;n<t.length;n++)t[n]&&E(e,t[n]);return e}function j(t,e,n){}var P=function(t,e,n){return!1},I=function(t){return t};function R(t,e){if(t===e)return!0;var n=c(t),r=c(e);if(!n||!r)return!n&&!r&&String(t)===String(e);try{var o=Array.isArray(t),i=Array.isArray(e);if(o&&i)return t.length===e.length&&t.every(function(t,n){return R(t,e[n])});if(t instanceof Date&&e instanceof Date)return t.getTime()===e.getTime();if(o||i)return!1;var a=Object.keys(t),s=Object.keys(e);return a.length===s.length&&a.every(function(n){return R(t[n],e[n])})}catch(t){return!1}}function L(t,e){for(var n=0;n<t.length;n++)if(R(t[n],e))return n;return-1}function M(t){var e=!1;return function(){e||(e=!0,t.apply(this,arguments))}}var D="data-server-rendered",N=["component","directive","filter"],U=["beforeCreate","created","beforeMount","mounted","beforeUpdate","updated","beforeDestroy","destroyed","activated","deactivated","errorCaptured","serverPrefetch"],F={optionMergeStrategies:Object.create(null),silent:!1,productionTip:!1,devtools:!1,performance:!1,errorHandler:null,warnHandler:null,ignoredElements:[],keyCodes:Object.create(null),isReservedTag:P,isReservedAttr:P,isUnknownElement:P,getTagNamespace:j,parsePlatformTagName:I,mustUseProp:P,async:!0,_lifecycleHooks:U},B=/a-zA-Z\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD/;function q(t,e,n,r){Object.defineProperty(t,e,{value:n,enumerable:!!r,writable:!0,configurable:!0})}var V=new RegExp("[^"+B.source+".$_\\d]");var H,z="__proto__"in{},W="undefined"!=typeof window,K="undefined"!=typeof WXEnvironment&&!!WXEnvironment.platform,X=K&&WXEnvironment.platform.toLowerCase(),G=W&&window.navigator.userAgent.toLowerCase(),J=G&&/msie|trident/.test(G),Q=G&&G.indexOf("msie 9.0")>0,Y=G&&G.indexOf("edge/")>0,Z=(G&&G.indexOf("android"),G&&/iphone|ipad|ipod|ios/.test(G)||"ios"===X),tt=(G&&/chrome\/\d+/.test(G),G&&/phantomjs/.test(G),G&&G.match(/firefox\/(\d+)/)),et={}.watch,nt=!1;if(W)try{var rt={};Object.defineProperty(rt,"passive",{get:function(){nt=!0}}),window.addEventListener("test-passive",null,rt)}catch(t){}var ot=function(){return void 0===H&&(H=!W&&!K&&"undefined"!=typeof global&&(global.process&&"server"===global.process.env.VUE_ENV)),H},it=W&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function at(t){return"function"==typeof t&&/native code/.test(t.toString())}var st,ct="undefined"!=typeof Symbol&&at(Symbol)&&"undefined"!=typeof Reflect&&at(Reflect.ownKeys);st="undefined"!=typeof Set&&at(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var ut=j,lt=0,ft=function(){this.id=lt++,this.subs=[]};ft.prototype.addSub=function(t){this.subs.push(t)},ft.prototype.removeSub=function(t){g(this.subs,t)},ft.prototype.depend=function(){ft.target&&ft.target.addDep(this)},ft.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e<n;e++)t[e].update()},ft.target=null;var pt=[];function dt(t){pt.push(t),ft.target=t}function ht(){pt.pop(),ft.target=pt[pt.length-1]}var vt=function(t,e,n,r,o,i,a,s){this.tag=t,this.data=e,this.children=n,this.text=r,this.elm=o,this.ns=void 0,this.context=i,this.fnContext=void 0,this.fnOptions=void 0,this.fnScopeId=void 0,this.key=e&&e.key,this.componentOptions=a,this.componentInstance=void 0,this.parent=void 0,this.raw=!1,this.isStatic=!1,this.isRootInsert=!0,this.isComment=!1,this.isCloned=!1,this.isOnce=!1,this.asyncFactory=s,this.asyncMeta=void 0,this.isAsyncPlaceholder=!1},mt={child:{configurable:!0}};mt.child.get=function(){return this.componentInstance},Object.defineProperties(vt.prototype,mt);var yt=function(t){void 0===t&&(t="");var e=new vt;return e.text=t,e.isComment=!0,e};function gt(t){return new vt(void 0,void 0,void 0,String(t))}function bt(t){var e=new vt(t.tag,t.data,t.children&&t.children.slice(),t.text,t.elm,t.context,t.componentOptions,t.asyncFactory);return e.ns=t.ns,e.isStatic=t.isStatic,e.key=t.key,e.isComment=t.isComment,e.fnContext=t.fnContext,e.fnOptions=t.fnOptions,e.fnScopeId=t.fnScopeId,e.asyncMeta=t.asyncMeta,e.isCloned=!0,e}var _t=Array.prototype,wt=Object.create(_t);["push","pop","shift","unshift","splice","sort","reverse"].forEach(function(t){var e=_t[t];q(wt,t,function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];var o,i=e.apply(this,n),a=this.__ob__;switch(t){case"push":case"unshift":o=n;break;case"splice":o=n.slice(2)}return o&&a.observeArray(o),a.dep.notify(),i})});var $t=Object.getOwnPropertyNames(wt),Ct=!0;function xt(t){Ct=t}var kt=function(t){this.value=t,this.dep=new ft,this.vmCount=0,q(t,"__ob__",this),Array.isArray(t)?(z?function(t,e){t.__proto__=e}(t,wt):function(t,e,n){for(var r=0,o=n.length;r<o;r++){var i=n[r];q(t,i,e[i])}}(t,wt,$t),this.observeArray(t)):this.walk(t)};function Ot(t,e){var n;if(c(t)&&!(t instanceof vt))return _(t,"__ob__")&&t.__ob__ instanceof kt?n=t.__ob__:Ct&&!ot()&&(Array.isArray(t)||l(t))&&Object.isExtensible(t)&&!t._isVue&&(n=new kt(t)),e&&n&&n.vmCount++,n}function At(t,e,n,r,o){var i=new ft,a=Object.getOwnPropertyDescriptor(t,e);if(!a||!1!==a.configurable){var s=a&&a.get,c=a&&a.set;s&&!c||2!==arguments.length||(n=t[e]);var u=!o&&Ot(n);Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:function(){var e=s?s.call(t):n;return ft.target&&(i.depend(),u&&(u.dep.depend(),Array.isArray(e)&&function t(e){for(var n=void 0,r=0,o=e.length;r<o;r++)(n=e[r])&&n.__ob__&&n.__ob__.dep.depend(),Array.isArray(n)&&t(n)}(e))),e},set:function(e){var r=s?s.call(t):n;e===r||e!=e&&r!=r||s&&!c||(c?c.call(t,e):n=e,u=!o&&Ot(e),i.notify())}})}}function St(t,e,n){if(Array.isArray(t)&&p(e))return t.length=Math.max(t.length,e),t.splice(e,1,n),n;if(e in t&&!(e in Object.prototype))return t[e]=n,n;var r=t.__ob__;return t._isVue||r&&r.vmCount?n:r?(At(r.value,e,n),r.dep.notify(),n):(t[e]=n,n)}function Et(t,e){if(Array.isArray(t)&&p(e))t.splice(e,1);else{var n=t.__ob__;t._isVue||n&&n.vmCount||_(t,e)&&(delete t[e],n&&n.dep.notify())}}kt.prototype.walk=function(t){for(var e=Object.keys(t),n=0;n<e.length;n++)At(t,e[n])},kt.prototype.observeArray=function(t){for(var e=0,n=t.length;e<n;e++)Ot(t[e])};var Tt=F.optionMergeStrategies;function jt(t,e){if(!e)return t;for(var n,r,o,i=ct?Reflect.ownKeys(e):Object.keys(e),a=0;a<i.length;a++)"__ob__"!==(n=i[a])&&(r=t[n],o=e[n],_(t,n)?r!==o&&l(r)&&l(o)&&jt(r,o):St(t,n,o));return t}function Pt(t,e,n){return n?function(){var r="function"==typeof e?e.call(n,n):e,o="function"==typeof t?t.call(n,n):t;return r?jt(r,o):o}:e?t?function(){return jt("function"==typeof e?e.call(this,this):e,"function"==typeof t?t.call(this,this):t)}:e:t}function It(t,e){var n=e?t?t.concat(e):Array.isArray(e)?e:[e]:t;return n?function(t){for(var e=[],n=0;n<t.length;n++)-1===e.indexOf(t[n])&&e.push(t[n]);return e}(n):n}function Rt(t,e,n,r){var o=Object.create(t||null);return e?E(o,e):o}Tt.data=function(t,e,n){return n?Pt(t,e,n):e&&"function"!=typeof e?t:Pt(t,e)},U.forEach(function(t){Tt[t]=It}),N.forEach(function(t){Tt[t+"s"]=Rt}),Tt.watch=function(t,e,n,r){if(t===et&&(t=void 0),e===et&&(e=void 0),!e)return Object.create(t||null);if(!t)return e;var o={};for(var i in E(o,t),e){var a=o[i],s=e[i];a&&!Array.isArray(a)&&(a=[a]),o[i]=a?a.concat(s):Array.isArray(s)?s:[s]}return o},Tt.props=Tt.methods=Tt.inject=Tt.computed=function(t,e,n,r){if(!t)return e;var o=Object.create(null);return E(o,t),e&&E(o,e),o},Tt.provide=Pt;var Lt=function(t,e){return void 0===e?t:e};function Mt(t,e,n){if("function"==typeof e&&(e=e.options),function(t,e){var n=t.props;if(n){var r,o,i={};if(Array.isArray(n))for(r=n.length;r--;)"string"==typeof(o=n[r])&&(i[C(o)]={type:null});else if(l(n))for(var a in n)o=n[a],i[C(a)]=l(o)?o:{type:o};else 0;t.props=i}}(e),function(t,e){var n=t.inject;if(n){var r=t.inject={};if(Array.isArray(n))for(var o=0;o<n.length;o++)r[n[o]]={from:n[o]};else if(l(n))for(var i in n){var a=n[i];r[i]=l(a)?E({from:i},a):{from:a}}else 0}}(e),function(t){var e=t.directives;if(e)for(var n in e){var r=e[n];"function"==typeof r&&(e[n]={bind:r,update:r})}}(e),!e._base&&(e.extends&&(t=Mt(t,e.extends,n)),e.mixins))for(var r=0,o=e.mixins.length;r<o;r++)t=Mt(t,e.mixins[r],n);var i,a={};for(i in t)s(i);for(i in e)_(t,i)||s(i);function s(r){var o=Tt[r]||Lt;a[r]=o(t[r],e[r],n,r)}return a}function Dt(t,e,n,r){if("string"==typeof n){var o=t[e];if(_(o,n))return o[n];var i=C(n);if(_(o,i))return o[i];var a=x(i);return _(o,a)?o[a]:o[n]||o[i]||o[a]}}function Nt(t,e,n,r){var o=e[t],i=!_(n,t),a=n[t],s=Bt(Boolean,o.type);if(s>-1)if(i&&!_(o,"default"))a=!1;else if(""===a||a===O(t)){var c=Bt(String,o.type);(c<0||s<c)&&(a=!0)}if(void 0===a){a=function(t,e,n){if(!_(e,"default"))return;var r=e.default;0;if(t&&t.$options.propsData&&void 0===t.$options.propsData[n]&&void 0!==t._props[n])return t._props[n];return"function"==typeof r&&"Function"!==Ut(e.type)?r.call(t):r}(r,o,t);var u=Ct;xt(!0),Ot(a),xt(u)}return a}function Ut(t){var e=t&&t.toString().match(/^\s*function (\w+)/);return e?e[1]:""}function Ft(t,e){return Ut(t)===Ut(e)}function Bt(t,e){if(!Array.isArray(e))return Ft(e,t)?0:-1;for(var n=0,r=e.length;n<r;n++)if(Ft(e[n],t))return n;return-1}function qt(t,e,n){dt();try{if(e)for(var r=e;r=r.$parent;){var o=r.$options.errorCaptured;if(o)for(var i=0;i<o.length;i++)try{if(!1===o[i].call(r,t,e,n))return}catch(t){Ht(t,r,"errorCaptured hook")}}Ht(t,e,n)}finally{ht()}}function Vt(t,e,n,r,o){var i;try{(i=n?t.apply(e,n):t.call(e))&&!i._isVue&&d(i)&&!i._handled&&(i.catch(function(t){return qt(t,r,o+" (Promise/async)")}),i._handled=!0)}catch(t){qt(t,r,o)}return i}function Ht(t,e,n){if(F.errorHandler)try{return F.errorHandler.call(null,t,e,n)}catch(e){e!==t&&zt(e,null,"config.errorHandler")}zt(t,e,n)}function zt(t,e,n){if(!W&&!K||"undefined"==typeof console)throw t;console.error(t)}var Wt,Kt=!1,Xt=[],Gt=!1;function Jt(){Gt=!1;var t=Xt.slice(0);Xt.length=0;for(var e=0;e<t.length;e++)t[e]()}if("undefined"!=typeof Promise&&at(Promise)){var Qt=Promise.resolve();Wt=function(){Qt.then(Jt),Z&&setTimeout(j)},Kt=!0}else if(J||"undefined"==typeof MutationObserver||!at(MutationObserver)&&"[object MutationObserverConstructor]"!==MutationObserver.toString())Wt="undefined"!=typeof setImmediate&&at(setImmediate)?function(){setImmediate(Jt)}:function(){setTimeout(Jt,0)};else{var Yt=1,Zt=new MutationObserver(Jt),te=document.createTextNode(String(Yt));Zt.observe(te,{characterData:!0}),Wt=function(){Yt=(Yt+1)%2,te.data=String(Yt)},Kt=!0}function ee(t,e){var n;if(Xt.push(function(){if(t)try{t.call(e)}catch(t){qt(t,e,"nextTick")}else n&&n(e)}),Gt||(Gt=!0,Wt()),!t&&"undefined"!=typeof Promise)return new Promise(function(t){n=t})}var ne=new st;function re(t){!function t(e,n){var r,o;var i=Array.isArray(e);if(!i&&!c(e)||Object.isFrozen(e)||e instanceof vt)return;if(e.__ob__){var a=e.__ob__.dep.id;if(n.has(a))return;n.add(a)}if(i)for(r=e.length;r--;)t(e[r],n);else for(o=Object.keys(e),r=o.length;r--;)t(e[o[r]],n)}(t,ne),ne.clear()}var oe=w(function(t){var e="&"===t.charAt(0),n="~"===(t=e?t.slice(1):t).charAt(0),r="!"===(t=n?t.slice(1):t).charAt(0);return{name:t=r?t.slice(1):t,once:n,capture:r,passive:e}});function ie(t,e){function n(){var t=arguments,r=n.fns;if(!Array.isArray(r))return Vt(r,null,arguments,e,"v-on handler");for(var o=r.slice(),i=0;i<o.length;i++)Vt(o[i],null,t,e,"v-on handler")}return n.fns=t,n}function ae(t,e,n,r,i,s){var c,u,l,f;for(c in t)u=t[c],l=e[c],f=oe(c),o(u)||(o(l)?(o(u.fns)&&(u=t[c]=ie(u,s)),a(f.once)&&(u=t[c]=i(f.name,u,f.capture)),n(f.name,u,f.capture,f.passive,f.params)):u!==l&&(l.fns=u,t[c]=l));for(c in e)o(t[c])&&r((f=oe(c)).name,e[c],f.capture)}function se(t,e,n){var r;t instanceof vt&&(t=t.data.hook||(t.data.hook={}));var s=t[e];function c(){n.apply(this,arguments),g(r.fns,c)}o(s)?r=ie([c]):i(s.fns)&&a(s.merged)?(r=s).fns.push(c):r=ie([s,c]),r.merged=!0,t[e]=r}function ce(t,e,n,r,o){if(i(e)){if(_(e,n))return t[n]=e[n],o||delete e[n],!0;if(_(e,r))return t[n]=e[r],o||delete e[r],!0}return!1}function ue(t){return s(t)?[gt(t)]:Array.isArray(t)?function t(e,n){var r=[];var c,u,l,f;for(c=0;c<e.length;c++)o(u=e[c])||"boolean"==typeof u||(l=r.length-1,f=r[l],Array.isArray(u)?u.length>0&&(le((u=t(u,(n||"")+"_"+c))[0])&&le(f)&&(r[l]=gt(f.text+u[0].text),u.shift()),r.push.apply(r,u)):s(u)?le(f)?r[l]=gt(f.text+u):""!==u&&r.push(gt(u)):le(u)&&le(f)?r[l]=gt(f.text+u.text):(a(e._isVList)&&i(u.tag)&&o(u.key)&&i(n)&&(u.key="__vlist"+n+"_"+c+"__"),r.push(u)));return r}(t):void 0}function le(t){return i(t)&&i(t.text)&&!1===t.isComment}function fe(t,e){if(t){for(var n=Object.create(null),r=ct?Reflect.ownKeys(t):Object.keys(t),o=0;o<r.length;o++){var i=r[o];if("__ob__"!==i){for(var a=t[i].from,s=e;s;){if(s._provided&&_(s._provided,a)){n[i]=s._provided[a];break}s=s.$parent}if(!s)if("default"in t[i]){var c=t[i].default;n[i]="function"==typeof c?c.call(e):c}else 0}}return n}}function pe(t,e){if(!t||!t.length)return{};for(var n={},r=0,o=t.length;r<o;r++){var i=t[r],a=i.data;if(a&&a.attrs&&a.attrs.slot&&delete a.attrs.slot,i.context!==e&&i.fnContext!==e||!a||null==a.slot)(n.default||(n.default=[])).push(i);else{var s=a.slot,c=n[s]||(n[s]=[]);"template"===i.tag?c.push.apply(c,i.children||[]):c.push(i)}}for(var u in n)n[u].every(de)&&delete n[u];return n}function de(t){return t.isComment&&!t.asyncFactory||" "===t.text}function he(t,e,n){var o,i=Object.keys(e).length>0,a=t?!!t.$stable:!i,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&n&&n!==r&&s===n.$key&&!i&&!n.$hasNormal)return n;for(var c in o={},t)t[c]&&"$"!==c[0]&&(o[c]=ve(e,c,t[c]))}else o={};for(var u in e)u in o||(o[u]=me(e,u));return t&&Object.isExtensible(t)&&(t._normalized=o),q(o,"$stable",a),q(o,"$key",s),q(o,"$hasNormal",i),o}function ve(t,e,n){var r=function(){var t=arguments.length?n.apply(null,arguments):n({});return(t=t&&"object"==typeof t&&!Array.isArray(t)?[t]:ue(t))&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:r,enumerable:!0,configurable:!0}),r}function me(t,e){return function(){return t[e]}}function ye(t,e){var n,r,o,a,s;if(Array.isArray(t)||"string"==typeof t)for(n=new Array(t.length),r=0,o=t.length;r<o;r++)n[r]=e(t[r],r);else if("number"==typeof t)for(n=new Array(t),r=0;r<t;r++)n[r]=e(r+1,r);else if(c(t))if(ct&&t[Symbol.iterator]){n=[];for(var u=t[Symbol.iterator](),l=u.next();!l.done;)n.push(e(l.value,n.length)),l=u.next()}else for(a=Object.keys(t),n=new Array(a.length),r=0,o=a.length;r<o;r++)s=a[r],n[r]=e(t[s],s,r);return i(n)||(n=[]),n._isVList=!0,n}function ge(t,e,n,r){var o,i=this.$scopedSlots[t];i?(n=n||{},r&&(n=E(E({},r),n)),o=i(n)||e):o=this.$slots[t]||e;var a=n&&n.slot;return a?this.$createElement("template",{slot:a},o):o}function be(t){return Dt(this.$options,"filters",t)||I}function _e(t,e){return Array.isArray(t)?-1===t.indexOf(e):t!==e}function we(t,e,n,r,o){var i=F.keyCodes[e]||n;return o&&r&&!F.keyCodes[e]?_e(o,r):i?_e(i,t):r?O(r)!==e:void 0}function $e(t,e,n,r,o){if(n)if(c(n)){var i;Array.isArray(n)&&(n=T(n));var a=function(a){if("class"===a||"style"===a||y(a))i=t;else{var s=t.attrs&&t.attrs.type;i=r||F.mustUseProp(e,s,a)?t.domProps||(t.domProps={}):t.attrs||(t.attrs={})}var c=C(a),u=O(a);c in i||u in i||(i[a]=n[a],o&&((t.on||(t.on={}))["update:"+a]=function(t){n[a]=t}))};for(var s in n)a(s)}else;return t}function Ce(t,e){var n=this._staticTrees||(this._staticTrees=[]),r=n[t];return r&&!e?r:(ke(r=n[t]=this.$options.staticRenderFns[t].call(this._renderProxy,null,this),"__static__"+t,!1),r)}function xe(t,e,n){return ke(t,"__once__"+e+(n?"_"+n:""),!0),t}function ke(t,e,n){if(Array.isArray(t))for(var r=0;r<t.length;r++)t[r]&&"string"!=typeof t[r]&&Oe(t[r],e+"_"+r,n);else Oe(t,e,n)}function Oe(t,e,n){t.isStatic=!0,t.key=e,t.isOnce=n}function Ae(t,e){if(e)if(l(e)){var n=t.on=t.on?E({},t.on):{};for(var r in e){var o=n[r],i=e[r];n[r]=o?[].concat(o,i):i}}else;return t}function Se(t,e,n,r){e=e||{$stable:!n};for(var o=0;o<t.length;o++){var i=t[o];Array.isArray(i)?Se(i,e,n):i&&(i.proxy&&(i.fn.proxy=!0),e[i.key]=i.fn)}return r&&(e.$key=r),e}function Ee(t,e){for(var n=0;n<e.length;n+=2){var r=e[n];"string"==typeof r&&r&&(t[e[n]]=e[n+1])}return t}function Te(t,e){return"string"==typeof t?e+t:t}function je(t){t._o=xe,t._n=v,t._s=h,t._l=ye,t._t=ge,t._q=R,t._i=L,t._m=Ce,t._f=be,t._k=we,t._b=$e,t._v=gt,t._e=yt,t._u=Se,t._g=Ae,t._d=Ee,t._p=Te}function Pe(t,e,n,o,i){var s,c=this,u=i.options;_(o,"_uid")?(s=Object.create(o))._original=o:(s=o,o=o._original);var l=a(u._compiled),f=!l;this.data=t,this.props=e,this.children=n,this.parent=o,this.listeners=t.on||r,this.injections=fe(u.inject,o),this.slots=function(){return c.$slots||he(t.scopedSlots,c.$slots=pe(n,o)),c.$slots},Object.defineProperty(this,"scopedSlots",{enumerable:!0,get:function(){return he(t.scopedSlots,this.slots())}}),l&&(this.$options=u,this.$slots=this.slots(),this.$scopedSlots=he(t.scopedSlots,this.$slots)),u._scopeId?this._c=function(t,e,n,r){var i=Be(s,t,e,n,r,f);return i&&!Array.isArray(i)&&(i.fnScopeId=u._scopeId,i.fnContext=o),i}:this._c=function(t,e,n,r){return Be(s,t,e,n,r,f)}}function Ie(t,e,n,r,o){var i=bt(t);return i.fnContext=n,i.fnOptions=r,e.slot&&((i.data||(i.data={})).slot=e.slot),i}function Re(t,e){for(var n in e)t[C(n)]=e[n]}je(Pe.prototype);var Le={init:function(t,e){if(t.componentInstance&&!t.componentInstance._isDestroyed&&t.data.keepAlive){var n=t;Le.prepatch(n,n)}else{(t.componentInstance=function(t,e){var n={_isComponent:!0,_parentVnode:t,parent:e},r=t.data.inlineTemplate;i(r)&&(n.render=r.render,n.staticRenderFns=r.staticRenderFns);return new t.componentOptions.Ctor(n)}(t,Qe)).$mount(e?t.elm:void 0,e)}},prepatch:function(t,e){var n=e.componentOptions;!function(t,e,n,o,i){0;var a=o.data.scopedSlots,s=t.$scopedSlots,c=!!(a&&!a.$stable||s!==r&&!s.$stable||a&&t.$scopedSlots.$key!==a.$key),u=!!(i||t.$options._renderChildren||c);t.$options._parentVnode=o,t.$vnode=o,t._vnode&&(t._vnode.parent=o);if(t.$options._renderChildren=i,t.$attrs=o.data.attrs||r,t.$listeners=n||r,e&&t.$options.props){xt(!1);for(var l=t._props,f=t.$options._propKeys||[],p=0;p<f.length;p++){var d=f[p],h=t.$options.props;l[d]=Nt(d,h,e,t)}xt(!0),t.$options.propsData=e}n=n||r;var v=t.$options._parentListeners;t.$options._parentListeners=n,Je(t,n,v),u&&(t.$slots=pe(i,o.context),t.$forceUpdate());0}(e.componentInstance=t.componentInstance,n.propsData,n.listeners,e,n.children)},insert:function(t){var e,n=t.context,r=t.componentInstance;r._isMounted||(r._isMounted=!0,en(r,"mounted")),t.data.keepAlive&&(n._isMounted?((e=r)._inactive=!1,rn.push(e)):tn(r,!0))},destroy:function(t){var e=t.componentInstance;e._isDestroyed||(t.data.keepAlive?function t(e,n){if(n&&(e._directInactive=!0,Ze(e)))return;if(!e._inactive){e._inactive=!0;for(var r=0;r<e.$children.length;r++)t(e.$children[r]);en(e,"deactivated")}}(e,!0):e.$destroy())}},Me=Object.keys(Le);function De(t,e,n,s,u){if(!o(t)){var l=n.$options._base;if(c(t)&&(t=l.extend(t)),"function"==typeof t){var f;if(o(t.cid)&&void 0===(t=function(t,e){if(a(t.error)&&i(t.errorComp))return t.errorComp;if(i(t.resolved))return t.resolved;var n=Ve;n&&i(t.owners)&&-1===t.owners.indexOf(n)&&t.owners.push(n);if(a(t.loading)&&i(t.loadingComp))return t.loadingComp;if(n&&!i(t.owners)){var r=t.owners=[n],s=!0,u=null,l=null;n.$on("hook:destroyed",function(){return g(r,n)});var f=function(t){for(var e=0,n=r.length;e<n;e++)r[e].$forceUpdate();t&&(r.length=0,null!==u&&(clearTimeout(u),u=null),null!==l&&(clearTimeout(l),l=null))},p=M(function(n){t.resolved=He(n,e),s?r.length=0:f(!0)}),h=M(function(e){i(t.errorComp)&&(t.error=!0,f(!0))}),v=t(p,h);return c(v)&&(d(v)?o(t.resolved)&&v.then(p,h):d(v.component)&&(v.component.then(p,h),i(v.error)&&(t.errorComp=He(v.error,e)),i(v.loading)&&(t.loadingComp=He(v.loading,e),0===v.delay?t.loading=!0:u=setTimeout(function(){u=null,o(t.resolved)&&o(t.error)&&(t.loading=!0,f(!1))},v.delay||200)),i(v.timeout)&&(l=setTimeout(function(){l=null,o(t.resolved)&&h(null)},v.timeout)))),s=!1,t.loading?t.loadingComp:t.resolved}}(f=t,l)))return function(t,e,n,r,o){var i=yt();return i.asyncFactory=t,i.asyncMeta={data:e,context:n,children:r,tag:o},i}(f,e,n,s,u);e=e||{},xn(t),i(e.model)&&function(t,e){var n=t.model&&t.model.prop||"value",r=t.model&&t.model.event||"input";(e.attrs||(e.attrs={}))[n]=e.model.value;var o=e.on||(e.on={}),a=o[r],s=e.model.callback;i(a)?(Array.isArray(a)?-1===a.indexOf(s):a!==s)&&(o[r]=[s].concat(a)):o[r]=s}(t.options,e);var p=function(t,e,n){var r=e.options.props;if(!o(r)){var a={},s=t.attrs,c=t.props;if(i(s)||i(c))for(var u in r){var l=O(u);ce(a,c,u,l,!0)||ce(a,s,u,l,!1)}return a}}(e,t);if(a(t.options.functional))return function(t,e,n,o,a){var s=t.options,c={},u=s.props;if(i(u))for(var l in u)c[l]=Nt(l,u,e||r);else i(n.attrs)&&Re(c,n.attrs),i(n.props)&&Re(c,n.props);var f=new Pe(n,c,a,o,t),p=s.render.call(null,f._c,f);if(p instanceof vt)return Ie(p,n,f.parent,s,f);if(Array.isArray(p)){for(var d=ue(p)||[],h=new Array(d.length),v=0;v<d.length;v++)h[v]=Ie(d[v],n,f.parent,s,f);return h}}(t,p,e,n,s);var h=e.on;if(e.on=e.nativeOn,a(t.options.abstract)){var v=e.slot;e={},v&&(e.slot=v)}!function(t){for(var e=t.hook||(t.hook={}),n=0;n<Me.length;n++){var r=Me[n],o=e[r],i=Le[r];o===i||o&&o._merged||(e[r]=o?Ne(i,o):i)}}(e);var m=t.options.name||u;return new vt("vue-component-"+t.cid+(m?"-"+m:""),e,void 0,void 0,void 0,n,{Ctor:t,propsData:p,listeners:h,tag:u,children:s},f)}}}function Ne(t,e){var n=function(n,r){t(n,r),e(n,r)};return n._merged=!0,n}var Ue=1,Fe=2;function Be(t,e,n,r,u,l){return(Array.isArray(n)||s(n))&&(u=r,r=n,n=void 0),a(l)&&(u=Fe),function(t,e,n,r,s){if(i(n)&&i(n.__ob__))return yt();i(n)&&i(n.is)&&(e=n.is);if(!e)return yt();0;Array.isArray(r)&&"function"==typeof r[0]&&((n=n||{}).scopedSlots={default:r[0]},r.length=0);s===Fe?r=ue(r):s===Ue&&(r=function(t){for(var e=0;e<t.length;e++)if(Array.isArray(t[e]))return Array.prototype.concat.apply([],t);return t}(r));var u,l;if("string"==typeof e){var f;l=t.$vnode&&t.$vnode.ns||F.getTagNamespace(e),u=F.isReservedTag(e)?new vt(F.parsePlatformTagName(e),n,r,void 0,void 0,t):n&&n.pre||!i(f=Dt(t.$options,"components",e))?new vt(e,n,r,void 0,void 0,t):De(f,n,t,r,e)}else u=De(e,n,t,r);return Array.isArray(u)?u:i(u)?(i(l)&&function t(e,n,r){e.ns=n;"foreignObject"===e.tag&&(n=void 0,r=!0);if(i(e.children))for(var s=0,c=e.children.length;s<c;s++){var u=e.children[s];i(u.tag)&&(o(u.ns)||a(r)&&"svg"!==u.tag)&&t(u,n,r)}}(u,l),i(n)&&function(t){c(t.style)&&re(t.style);c(t.class)&&re(t.class)}(n),u):yt()}(t,e,n,r,u)}var qe,Ve=null;function He(t,e){return(t.__esModule||ct&&"Module"===t[Symbol.toStringTag])&&(t=t.default),c(t)?e.extend(t):t}function ze(t){return t.isComment&&t.asyncFactory}function We(t){if(Array.isArray(t))for(var e=0;e<t.length;e++){var n=t[e];if(i(n)&&(i(n.componentOptions)||ze(n)))return n}}function Ke(t,e){qe.$on(t,e)}function Xe(t,e){qe.$off(t,e)}function Ge(t,e){var n=qe;return function r(){var o=e.apply(null,arguments);null!==o&&n.$off(t,r)}}function Je(t,e,n){qe=t,ae(e,n||{},Ke,Xe,Ge,t),qe=void 0}var Qe=null;function Ye(t){var e=Qe;return Qe=t,function(){Qe=e}}function Ze(t){for(;t&&(t=t.$parent);)if(t._inactive)return!0;return!1}function tn(t,e){if(e){if(t._directInactive=!1,Ze(t))return}else if(t._directInactive)return;if(t._inactive||null===t._inactive){t._inactive=!1;for(var n=0;n<t.$children.length;n++)tn(t.$children[n]);en(t,"activated")}}function en(t,e){dt();var n=t.$options[e],r=e+" hook";if(n)for(var o=0,i=n.length;o<i;o++)Vt(n[o],t,null,t,r);t._hasHookEvent&&t.$emit("hook:"+e),ht()}var nn=[],rn=[],on={},an=!1,sn=!1,cn=0;var un=0,ln=Date.now;if(W&&!J){var fn=window.performance;fn&&"function"==typeof fn.now&&ln()>document.createEvent("Event").timeStamp&&(ln=function(){return fn.now()})}function pn(){var t,e;for(un=ln(),sn=!0,nn.sort(function(t,e){return t.id-e.id}),cn=0;cn<nn.length;cn++)(t=nn[cn]).before&&t.before(),e=t.id,on[e]=null,t.run();var n=rn.slice(),r=nn.slice();cn=nn.length=rn.length=0,on={},an=sn=!1,function(t){for(var e=0;e<t.length;e++)t[e]._inactive=!0,tn(t[e],!0)}(n),function(t){var e=t.length;for(;e--;){var n=t[e],r=n.vm;r._watcher===n&&r._isMounted&&!r._isDestroyed&&en(r,"updated")}}(r),it&&F.devtools&&it.emit("flush")}var dn=0,hn=function(t,e,n,r,o){this.vm=t,o&&(t._watcher=this),t._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++dn,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new st,this.newDepIds=new st,this.expression="","function"==typeof e?this.getter=e:(this.getter=function(t){if(!V.test(t)){var e=t.split(".");return function(t){for(var n=0;n<e.length;n++){if(!t)return;t=t[e[n]]}return t}}}(e),this.getter||(this.getter=j)),this.value=this.lazy?void 0:this.get()};hn.prototype.get=function(){var t;dt(this);var e=this.vm;try{t=this.getter.call(e,e)}catch(t){if(!this.user)throw t;qt(t,e,'getter for watcher "'+this.expression+'"')}finally{this.deep&&re(t),ht(),this.cleanupDeps()}return t},hn.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},hn.prototype.cleanupDeps=function(){for(var t=this.deps.length;t--;){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},hn.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():function(t){var e=t.id;if(null==on[e]){if(on[e]=!0,sn){for(var n=nn.length-1;n>cn&&nn[n].id>t.id;)n--;nn.splice(n+1,0,t)}else nn.push(t);an||(an=!0,ee(pn))}}(this)},hn.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||c(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(t){qt(t,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},hn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},hn.prototype.depend=function(){for(var t=this.deps.length;t--;)this.deps[t].depend()},hn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||g(this.vm._watchers,this);for(var t=this.deps.length;t--;)this.deps[t].removeSub(this);this.active=!1}};var vn={enumerable:!0,configurable:!0,get:j,set:j};function mn(t,e,n){vn.get=function(){return this[e][n]},vn.set=function(t){this[e][n]=t},Object.defineProperty(t,n,vn)}function yn(t){t._watchers=[];var e=t.$options;e.props&&function(t,e){var n=t.$options.propsData||{},r=t._props={},o=t.$options._propKeys=[];t.$parent&&xt(!1);var i=function(i){o.push(i);var a=Nt(i,e,n,t);At(r,i,a),i in t||mn(t,"_props",i)};for(var a in e)i(a);xt(!0)}(t,e.props),e.methods&&function(t,e){t.$options.props;for(var n in e)t[n]="function"!=typeof e[n]?j:A(e[n],t)}(t,e.methods),e.data?function(t){var e=t.$options.data;l(e=t._data="function"==typeof e?function(t,e){dt();try{return t.call(e,e)}catch(t){return qt(t,e,"data()"),{}}finally{ht()}}(e,t):e||{})||(e={});var n=Object.keys(e),r=t.$options.props,o=(t.$options.methods,n.length);for(;o--;){var i=n[o];0,r&&_(r,i)||(a=void 0,36!==(a=(i+"").charCodeAt(0))&&95!==a&&mn(t,"_data",i))}var a;Ot(e,!0)}(t):Ot(t._data={},!0),e.computed&&function(t,e){var n=t._computedWatchers=Object.create(null),r=ot();for(var o in e){var i=e[o],a="function"==typeof i?i:i.get;0,r||(n[o]=new hn(t,a||j,j,gn)),o in t||bn(t,o,i)}}(t,e.computed),e.watch&&e.watch!==et&&function(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var o=0;o<r.length;o++)$n(t,n,r[o]);else $n(t,n,r)}}(t,e.watch)}var gn={lazy:!0};function bn(t,e,n){var r=!ot();"function"==typeof n?(vn.get=r?_n(e):wn(n),vn.set=j):(vn.get=n.get?r&&!1!==n.cache?_n(e):wn(n.get):j,vn.set=n.set||j),Object.defineProperty(t,e,vn)}function _n(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),ft.target&&e.depend(),e.value}}function wn(t){return function(){return t.call(this,this)}}function $n(t,e,n,r){return l(n)&&(r=n,n=n.handler),"string"==typeof n&&(n=t[n]),t.$watch(e,n,r)}var Cn=0;function xn(t){var e=t.options;if(t.super){var n=xn(t.super);if(n!==t.superOptions){t.superOptions=n;var r=function(t){var e,n=t.options,r=t.sealedOptions;for(var o in n)n[o]!==r[o]&&(e||(e={}),e[o]=n[o]);return e}(t);r&&E(t.extendOptions,r),(e=t.options=Mt(n,t.extendOptions)).name&&(e.components[e.name]=t)}}return e}function kn(t){this._init(t)}function On(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,o=t._Ctor||(t._Ctor={});if(o[r])return o[r];var i=t.name||n.options.name;var a=function(t){this._init(t)};return(a.prototype=Object.create(n.prototype)).constructor=a,a.cid=e++,a.options=Mt(n.options,t),a.super=n,a.options.props&&function(t){var e=t.options.props;for(var n in e)mn(t.prototype,"_props",n)}(a),a.options.computed&&function(t){var e=t.options.computed;for(var n in e)bn(t.prototype,n,e[n])}(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,N.forEach(function(t){a[t]=n[t]}),i&&(a.options.components[i]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=E({},a.options),o[r]=a,a}}function An(t){return t&&(t.Ctor.options.name||t.tag)}function Sn(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"==typeof t?t.split(",").indexOf(e)>-1:!!f(t)&&t.test(e)}function En(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a=n[i];if(a){var s=An(a.componentOptions);s&&!e(s)&&Tn(n,i,r,o)}}}function Tn(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,g(n,e)}kn.prototype._init=function(t){var e=this;e._uid=Cn++,e._isVue=!0,t&&t._isComponent?function(t,e){var n=t.$options=Object.create(t.constructor.options),r=e._parentVnode;n.parent=e.parent,n._parentVnode=r;var o=r.componentOptions;n.propsData=o.propsData,n._parentListeners=o.listeners,n._renderChildren=o.children,n._componentTag=o.tag,e.render&&(n.render=e.render,n.staticRenderFns=e.staticRenderFns)}(e,t):e.$options=Mt(xn(e.constructor),t||{},e),e._renderProxy=e,e._self=e,function(t){var e=t.$options,n=e.parent;if(n&&!e.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(t)}t.$parent=n,t.$root=n?n.$root:t,t.$children=[],t.$refs={},t._watcher=null,t._inactive=null,t._directInactive=!1,t._isMounted=!1,t._isDestroyed=!1,t._isBeingDestroyed=!1}(e),function(t){t._events=Object.create(null),t._hasHookEvent=!1;var e=t.$options._parentListeners;e&&Je(t,e)}(e),function(t){t._vnode=null,t._staticTrees=null;var e=t.$options,n=t.$vnode=e._parentVnode,o=n&&n.context;t.$slots=pe(e._renderChildren,o),t.$scopedSlots=r,t._c=function(e,n,r,o){return Be(t,e,n,r,o,!1)},t.$createElement=function(e,n,r,o){return Be(t,e,n,r,o,!0)};var i=n&&n.data;At(t,"$attrs",i&&i.attrs||r,null,!0),At(t,"$listeners",e._parentListeners||r,null,!0)}(e),en(e,"beforeCreate"),function(t){var e=fe(t.$options.inject,t);e&&(xt(!1),Object.keys(e).forEach(function(n){At(t,n,e[n])}),xt(!0))}(e),yn(e),function(t){var e=t.$options.provide;e&&(t._provided="function"==typeof e?e.call(t):e)}(e),en(e,"created"),e.$options.el&&e.$mount(e.$options.el)},function(t){var e={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(t.prototype,"$data",e),Object.defineProperty(t.prototype,"$props",n),t.prototype.$set=St,t.prototype.$delete=Et,t.prototype.$watch=function(t,e,n){if(l(e))return $n(this,t,e,n);(n=n||{}).user=!0;var r=new hn(this,t,e,n);if(n.immediate)try{e.call(this,r.value)}catch(t){qt(t,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(kn),function(t){var e=/^hook:/;t.prototype.$on=function(t,n){var r=this;if(Array.isArray(t))for(var o=0,i=t.length;o<i;o++)r.$on(t[o],n);else(r._events[t]||(r._events[t]=[])).push(n),e.test(t)&&(r._hasHookEvent=!0);return r},t.prototype.$once=function(t,e){var n=this;function r(){n.$off(t,r),e.apply(n,arguments)}return r.fn=e,n.$on(t,r),n},t.prototype.$off=function(t,e){var n=this;if(!arguments.length)return n._events=Object.create(null),n;if(Array.isArray(t)){for(var r=0,o=t.length;r<o;r++)n.$off(t[r],e);return n}var i,a=n._events[t];if(!a)return n;if(!e)return n._events[t]=null,n;for(var s=a.length;s--;)if((i=a[s])===e||i.fn===e){a.splice(s,1);break}return n},t.prototype.$emit=function(t){var e=this,n=e._events[t];if(n){n=n.length>1?S(n):n;for(var r=S(arguments,1),o='event handler for "'+t+'"',i=0,a=n.length;i<a;i++)Vt(n[i],e,r,e,o)}return e}}(kn),function(t){t.prototype._update=function(t,e){var n=this,r=n.$el,o=n._vnode,i=Ye(n);n._vnode=t,n.$el=o?n.__patch__(o,t):n.__patch__(n.$el,t,e,!1),i(),r&&(r.__vue__=null),n.$el&&(n.$el.__vue__=n),n.$vnode&&n.$parent&&n.$vnode===n.$parent._vnode&&(n.$parent.$el=n.$el)},t.prototype.$forceUpdate=function(){this._watcher&&this._watcher.update()},t.prototype.$destroy=function(){var t=this;if(!t._isBeingDestroyed){en(t,"beforeDestroy"),t._isBeingDestroyed=!0;var e=t.$parent;!e||e._isBeingDestroyed||t.$options.abstract||g(e.$children,t),t._watcher&&t._watcher.teardown();for(var n=t._watchers.length;n--;)t._watchers[n].teardown();t._data.__ob__&&t._data.__ob__.vmCount--,t._isDestroyed=!0,t.__patch__(t._vnode,null),en(t,"destroyed"),t.$off(),t.$el&&(t.$el.__vue__=null),t.$vnode&&(t.$vnode.parent=null)}}}(kn),function(t){je(t.prototype),t.prototype.$nextTick=function(t){return ee(t,this)},t.prototype._render=function(){var t,e=this,n=e.$options,r=n.render,o=n._parentVnode;o&&(e.$scopedSlots=he(o.data.scopedSlots,e.$slots,e.$scopedSlots)),e.$vnode=o;try{Ve=e,t=r.call(e._renderProxy,e.$createElement)}catch(n){qt(n,e,"render"),t=e._vnode}finally{Ve=null}return Array.isArray(t)&&1===t.length&&(t=t[0]),t instanceof vt||(t=yt()),t.parent=o,t}}(kn);var jn=[String,RegExp,Array],Pn={KeepAlive:{name:"keep-alive",abstract:!0,props:{include:jn,exclude:jn,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Tn(this.cache,t,this.keys)},mounted:function(){var t=this;this.$watch("include",function(e){En(t,function(t){return Sn(e,t)})}),this.$watch("exclude",function(e){En(t,function(t){return!Sn(e,t)})})},render:function(){var t=this.$slots.default,e=We(t),n=e&&e.componentOptions;if(n){var r=An(n),o=this.include,i=this.exclude;if(o&&(!r||!Sn(o,r))||i&&r&&Sn(i,r))return e;var a=this.cache,s=this.keys,c=null==e.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):e.key;a[c]?(e.componentInstance=a[c].componentInstance,g(s,c),s.push(c)):(a[c]=e,s.push(c),this.max&&s.length>parseInt(this.max)&&Tn(a,s[0],s,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}}};!function(t){var e={get:function(){return F}};Object.defineProperty(t,"config",e),t.util={warn:ut,extend:E,mergeOptions:Mt,defineReactive:At},t.set=St,t.delete=Et,t.nextTick=ee,t.observable=function(t){return Ot(t),t},t.options=Object.create(null),N.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,E(t.options.components,Pn),function(t){t.use=function(t){var e=this._installedPlugins||(this._installedPlugins=[]);if(e.indexOf(t)>-1)return this;var n=S(arguments,1);return n.unshift(this),"function"==typeof t.install?t.install.apply(t,n):"function"==typeof t&&t.apply(null,n),e.push(t),this}}(t),function(t){t.mixin=function(t){return this.options=Mt(this.options,t),this}}(t),On(t),function(t){N.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&l(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"==typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}(t)}(kn),Object.defineProperty(kn.prototype,"$isServer",{get:ot}),Object.defineProperty(kn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(kn,"FunctionalRenderContext",{value:Pe}),kn.version="2.6.10";var In=m("style,class"),Rn=m("input,textarea,option,select,progress"),Ln=m("contenteditable,draggable,spellcheck"),Mn=m("events,caret,typing,plaintext-only"),Dn=function(t,e){return qn(e)||"false"===e?"false":"contenteditable"===t&&Mn(e)?e:"true"},Nn=m("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),Un="http://www.w3.org/1999/xlink",Fn=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Bn=function(t){return Fn(t)?t.slice(6,t.length):""},qn=function(t){return null==t||!1===t};function Vn(t){for(var e=t.data,n=t,r=t;i(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(e=Hn(r.data,e));for(;i(n=n.parent);)n&&n.data&&(e=Hn(e,n.data));return function(t,e){if(i(t)||i(e))return zn(t,Wn(e));return""}(e.staticClass,e.class)}function Hn(t,e){return{staticClass:zn(t.staticClass,e.staticClass),class:i(t.class)?[t.class,e.class]:e.class}}function zn(t,e){return t?e?t+" "+e:t:e||""}function Wn(t){return Array.isArray(t)?function(t){for(var e,n="",r=0,o=t.length;r<o;r++)i(e=Wn(t[r]))&&""!==e&&(n&&(n+=" "),n+=e);return n}(t):c(t)?function(t){var e="";for(var n in t)t[n]&&(e&&(e+=" "),e+=n);return e}(t):"string"==typeof t?t:""}var Kn={svg:"http://www.w3.org/2000/svg",math:"http://www.w3.org/1998/Math/MathML"},Xn=m("html,body,base,head,link,meta,style,title,address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,s,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,embed,object,param,source,canvas,script,noscript,del,ins,caption,col,colgroup,table,thead,tbody,td,th,tr,button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,output,progress,select,textarea,details,dialog,menu,menuitem,summary,content,element,shadow,template,blockquote,iframe,tfoot"),Gn=m("svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,foreignObject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view",!0),Jn=function(t){return Xn(t)||Gn(t)};var Qn=Object.create(null);var Yn=m("text,number,password,search,email,tel,url");var Zn=Object.freeze({createElement:function(t,e){var n=document.createElement(t);return"select"!==t?n:(e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)},createElementNS:function(t,e){return document.createElementNS(Kn[t],e)},createTextNode:function(t){return document.createTextNode(t)},createComment:function(t){return document.createComment(t)},insertBefore:function(t,e,n){t.insertBefore(e,n)},removeChild:function(t,e){t.removeChild(e)},appendChild:function(t,e){t.appendChild(e)},parentNode:function(t){return t.parentNode},nextSibling:function(t){return t.nextSibling},tagName:function(t){return t.tagName},setTextContent:function(t,e){t.textContent=e},setStyleScope:function(t,e){t.setAttribute(e,"")}}),tr={create:function(t,e){er(e)},update:function(t,e){t.data.ref!==e.data.ref&&(er(t,!0),er(e))},destroy:function(t){er(t,!0)}};function er(t,e){var n=t.data.ref;if(i(n)){var r=t.context,o=t.componentInstance||t.elm,a=r.$refs;e?Array.isArray(a[n])?g(a[n],o):a[n]===o&&(a[n]=void 0):t.data.refInFor?Array.isArray(a[n])?a[n].indexOf(o)<0&&a[n].push(o):a[n]=[o]:a[n]=o}}var nr=new vt("",{},[]),rr=["create","activate","update","remove","destroy"];function or(t,e){return t.key===e.key&&(t.tag===e.tag&&t.isComment===e.isComment&&i(t.data)===i(e.data)&&function(t,e){if("input"!==t.tag)return!0;var n,r=i(n=t.data)&&i(n=n.attrs)&&n.type,o=i(n=e.data)&&i(n=n.attrs)&&n.type;return r===o||Yn(r)&&Yn(o)}(t,e)||a(t.isAsyncPlaceholder)&&t.asyncFactory===e.asyncFactory&&o(e.asyncFactory.error))}function ir(t,e,n){var r,o,a={};for(r=e;r<=n;++r)i(o=t[r].key)&&(a[o]=r);return a}var ar={create:sr,update:sr,destroy:function(t){sr(t,nr)}};function sr(t,e){(t.data.directives||e.data.directives)&&function(t,e){var n,r,o,i=t===nr,a=e===nr,s=ur(t.data.directives,t.context),c=ur(e.data.directives,e.context),u=[],l=[];for(n in c)r=s[n],o=c[n],r?(o.oldValue=r.value,o.oldArg=r.arg,fr(o,"update",e,t),o.def&&o.def.componentUpdated&&l.push(o)):(fr(o,"bind",e,t),o.def&&o.def.inserted&&u.push(o));if(u.length){var f=function(){for(var n=0;n<u.length;n++)fr(u[n],"inserted",e,t)};i?se(e,"insert",f):f()}l.length&&se(e,"postpatch",function(){for(var n=0;n<l.length;n++)fr(l[n],"componentUpdated",e,t)});if(!i)for(n in s)c[n]||fr(s[n],"unbind",t,t,a)}(t,e)}var cr=Object.create(null);function ur(t,e){var n,r,o=Object.create(null);if(!t)return o;for(n=0;n<t.length;n++)(r=t[n]).modifiers||(r.modifiers=cr),o[lr(r)]=r,r.def=Dt(e.$options,"directives",r.name);return o}function lr(t){return t.rawName||t.name+"."+Object.keys(t.modifiers||{}).join(".")}function fr(t,e,n,r,o){var i=t.def&&t.def[e];if(i)try{i(n.elm,t,n,r,o)}catch(r){qt(r,n.context,"directive "+t.name+" "+e+" hook")}}var pr=[tr,ar];function dr(t,e){var n=e.componentOptions;if(!(i(n)&&!1===n.Ctor.options.inheritAttrs||o(t.data.attrs)&&o(e.data.attrs))){var r,a,s=e.elm,c=t.data.attrs||{},u=e.data.attrs||{};for(r in i(u.__ob__)&&(u=e.data.attrs=E({},u)),u)a=u[r],c[r]!==a&&hr(s,r,a);for(r in(J||Y)&&u.value!==c.value&&hr(s,"value",u.value),c)o(u[r])&&(Fn(r)?s.removeAttributeNS(Un,Bn(r)):Ln(r)||s.removeAttribute(r))}}function hr(t,e,n){t.tagName.indexOf("-")>-1?vr(t,e,n):Nn(e)?qn(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Ln(e)?t.setAttribute(e,Dn(e,n)):Fn(e)?qn(n)?t.removeAttributeNS(Un,Bn(e)):t.setAttributeNS(Un,e,n):vr(t,e,n)}function vr(t,e,n){if(qn(n))t.removeAttribute(e);else{if(J&&!Q&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var mr={create:dr,update:dr};function yr(t,e){var n=e.elm,r=e.data,a=t.data;if(!(o(r.staticClass)&&o(r.class)&&(o(a)||o(a.staticClass)&&o(a.class)))){var s=Vn(e),c=n._transitionClasses;i(c)&&(s=zn(s,Wn(c))),s!==n._prevClass&&(n.setAttribute("class",s),n._prevClass=s)}}var gr,br={create:yr,update:yr},_r="__r",wr="__c";function $r(t,e,n){var r=gr;return function o(){var i=e.apply(null,arguments);null!==i&&kr(t,o,n,r)}}var Cr=Kt&&!(tt&&Number(tt[1])<=53);function xr(t,e,n,r){if(Cr){var o=un,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}gr.addEventListener(t,e,nt?{capture:n,passive:r}:n)}function kr(t,e,n,r){(r||gr).removeEventListener(t,e._wrapper||e,n)}function Or(t,e){if(!o(t.data.on)||!o(e.data.on)){var n=e.data.on||{},r=t.data.on||{};gr=e.elm,function(t){if(i(t[_r])){var e=J?"change":"input";t[e]=[].concat(t[_r],t[e]||[]),delete t[_r]}i(t[wr])&&(t.change=[].concat(t[wr],t.change||[]),delete t[wr])}(n),ae(n,r,xr,kr,$r,e.context),gr=void 0}}var Ar,Sr={create:Or,update:Or};function Er(t,e){if(!o(t.data.domProps)||!o(e.data.domProps)){var n,r,a=e.elm,s=t.data.domProps||{},c=e.data.domProps||{};for(n in i(c.__ob__)&&(c=e.data.domProps=E({},c)),s)n in c||(a[n]="");for(n in c){if(r=c[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),r===s[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=r;var u=o(r)?"":String(r);Tr(a,u)&&(a.value=u)}else if("innerHTML"===n&&Gn(a.tagName)&&o(a.innerHTML)){(Ar=Ar||document.createElement("div")).innerHTML="<svg>"+r+"</svg>";for(var l=Ar.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}else if(r!==s[n])try{a[n]=r}catch(t){}}}}function Tr(t,e){return!t.composing&&("OPTION"===t.tagName||function(t,e){var n=!0;try{n=document.activeElement!==t}catch(t){}return n&&t.value!==e}(t,e)||function(t,e){var n=t.value,r=t._vModifiers;if(i(r)){if(r.number)return v(n)!==v(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}(t,e))}var jr={create:Er,update:Er},Pr=w(function(t){var e={},n=/:(.+)/;return t.split(/;(?![^(]*\))/g).forEach(function(t){if(t){var r=t.split(n);r.length>1&&(e[r[0].trim()]=r[1].trim())}}),e});function Ir(t){var e=Rr(t.style);return t.staticStyle?E(t.staticStyle,e):e}function Rr(t){return Array.isArray(t)?T(t):"string"==typeof t?Pr(t):t}var Lr,Mr=/^--/,Dr=/\s*!important$/,Nr=function(t,e,n){if(Mr.test(e))t.style.setProperty(e,n);else if(Dr.test(n))t.style.setProperty(O(e),n.replace(Dr,""),"important");else{var r=Fr(e);if(Array.isArray(n))for(var o=0,i=n.length;o<i;o++)t.style[r]=n[o];else t.style[r]=n}},Ur=["Webkit","Moz","ms"],Fr=w(function(t){if(Lr=Lr||document.createElement("div").style,"filter"!==(t=C(t))&&t in Lr)return t;for(var e=t.charAt(0).toUpperCase()+t.slice(1),n=0;n<Ur.length;n++){var r=Ur[n]+e;if(r in Lr)return r}});function Br(t,e){var n=e.data,r=t.data;if(!(o(n.staticStyle)&&o(n.style)&&o(r.staticStyle)&&o(r.style))){var a,s,c=e.elm,u=r.staticStyle,l=r.normalizedStyle||r.style||{},f=u||l,p=Rr(e.data.style)||{};e.data.normalizedStyle=i(p.__ob__)?E({},p):p;var d=function(t,e){var n,r={};if(e)for(var o=t;o.componentInstance;)(o=o.componentInstance._vnode)&&o.data&&(n=Ir(o.data))&&E(r,n);(n=Ir(t.data))&&E(r,n);for(var i=t;i=i.parent;)i.data&&(n=Ir(i.data))&&E(r,n);return r}(e,!0);for(s in f)o(d[s])&&Nr(c,s,"");for(s in d)(a=d[s])!==f[s]&&Nr(c,s,null==a?"":a)}}var qr={create:Br,update:Br},Vr=/\s+/;function Hr(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Vr).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function zr(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(Vr).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{for(var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?t.setAttribute("class",n):t.removeAttribute("class")}}function Wr(t){if(t){if("object"==typeof t){var e={};return!1!==t.css&&E(e,Kr(t.name||"v")),E(e,t),e}return"string"==typeof t?Kr(t):void 0}}var Kr=w(function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}}),Xr=W&&!Q,Gr="transition",Jr="animation",Qr="transition",Yr="transitionend",Zr="animation",to="animationend";Xr&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Qr="WebkitTransition",Yr="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Zr="WebkitAnimation",to="webkitAnimationEnd"));var eo=W?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function no(t){eo(function(){eo(t)})}function ro(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),Hr(t,e))}function oo(t,e){t._transitionClasses&&g(t._transitionClasses,e),zr(t,e)}function io(t,e,n){var r=so(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var s=o===Gr?Yr:to,c=0,u=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++c>=a&&u()};setTimeout(function(){c<a&&u()},i+1),t.addEventListener(s,l)}var ao=/\b(transform|all)(,|$)/;function so(t,e){var n,r=window.getComputedStyle(t),o=(r[Qr+"Delay"]||"").split(", "),i=(r[Qr+"Duration"]||"").split(", "),a=co(o,i),s=(r[Zr+"Delay"]||"").split(", "),c=(r[Zr+"Duration"]||"").split(", "),u=co(s,c),l=0,f=0;return e===Gr?a>0&&(n=Gr,l=a,f=i.length):e===Jr?u>0&&(n=Jr,l=u,f=c.length):f=(n=(l=Math.max(a,u))>0?a>u?Gr:Jr:null)?n===Gr?i.length:c.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===Gr&&ao.test(r[Qr+"Property"])}}function co(t,e){for(;t.length<e.length;)t=t.concat(t);return Math.max.apply(null,e.map(function(e,n){return uo(e)+uo(t[n])}))}function uo(t){return 1e3*Number(t.slice(0,-1).replace(",","."))}function lo(t,e){var n=t.elm;i(n._leaveCb)&&(n._leaveCb.cancelled=!0,n._leaveCb());var r=Wr(t.data.transition);if(!o(r)&&!i(n._enterCb)&&1===n.nodeType){for(var a=r.css,s=r.type,u=r.enterClass,l=r.enterToClass,f=r.enterActiveClass,p=r.appearClass,d=r.appearToClass,h=r.appearActiveClass,m=r.beforeEnter,y=r.enter,g=r.afterEnter,b=r.enterCancelled,_=r.beforeAppear,w=r.appear,$=r.afterAppear,C=r.appearCancelled,x=r.duration,k=Qe,O=Qe.$vnode;O&&O.parent;)k=O.context,O=O.parent;var A=!k._isMounted||!t.isRootInsert;if(!A||w||""===w){var S=A&&p?p:u,E=A&&h?h:f,T=A&&d?d:l,j=A&&_||m,P=A&&"function"==typeof w?w:y,I=A&&$||g,R=A&&C||b,L=v(c(x)?x.enter:x);0;var D=!1!==a&&!Q,N=ho(P),U=n._enterCb=M(function(){D&&(oo(n,T),oo(n,E)),U.cancelled?(D&&oo(n,S),R&&R(n)):I&&I(n),n._enterCb=null});t.data.show||se(t,"insert",function(){var e=n.parentNode,r=e&&e._pending&&e._pending[t.key];r&&r.tag===t.tag&&r.elm._leaveCb&&r.elm._leaveCb(),P&&P(n,U)}),j&&j(n),D&&(ro(n,S),ro(n,E),no(function(){oo(n,S),U.cancelled||(ro(n,T),N||(po(L)?setTimeout(U,L):io(n,s,U)))})),t.data.show&&(e&&e(),P&&P(n,U)),D||N||U()}}}function fo(t,e){var n=t.elm;i(n._enterCb)&&(n._enterCb.cancelled=!0,n._enterCb());var r=Wr(t.data.transition);if(o(r)||1!==n.nodeType)return e();if(!i(n._leaveCb)){var a=r.css,s=r.type,u=r.leaveClass,l=r.leaveToClass,f=r.leaveActiveClass,p=r.beforeLeave,d=r.leave,h=r.afterLeave,m=r.leaveCancelled,y=r.delayLeave,g=r.duration,b=!1!==a&&!Q,_=ho(d),w=v(c(g)?g.leave:g);0;var $=n._leaveCb=M(function(){n.parentNode&&n.parentNode._pending&&(n.parentNode._pending[t.key]=null),b&&(oo(n,l),oo(n,f)),$.cancelled?(b&&oo(n,u),m&&m(n)):(e(),h&&h(n)),n._leaveCb=null});y?y(C):C()}function C(){$.cancelled||(!t.data.show&&n.parentNode&&((n.parentNode._pending||(n.parentNode._pending={}))[t.key]=t),p&&p(n),b&&(ro(n,u),ro(n,f),no(function(){oo(n,u),$.cancelled||(ro(n,l),_||(po(w)?setTimeout($,w):io(n,s,$)))})),d&&d(n,$),b||_||$())}}function po(t){return"number"==typeof t&&!isNaN(t)}function ho(t){if(o(t))return!1;var e=t.fns;return i(e)?ho(Array.isArray(e)?e[0]:e):(t._length||t.length)>1}function vo(t,e){!0!==e.data.show&&lo(e)}var mo=function(t){var e,n,r={},c=t.modules,u=t.nodeOps;for(e=0;e<rr.length;++e)for(r[rr[e]]=[],n=0;n<c.length;++n)i(c[n][rr[e]])&&r[rr[e]].push(c[n][rr[e]]);function l(t){var e=u.parentNode(t);i(e)&&u.removeChild(e,t)}function f(t,e,n,o,s,c,l){if(i(t.elm)&&i(c)&&(t=c[l]=bt(t)),t.isRootInsert=!s,!function(t,e,n,o){var s=t.data;if(i(s)){var c=i(t.componentInstance)&&s.keepAlive;if(i(s=s.hook)&&i(s=s.init)&&s(t,!1),i(t.componentInstance))return p(t,e),d(n,t.elm,o),a(c)&&function(t,e,n,o){var a,s=t;for(;s.componentInstance;)if(s=s.componentInstance._vnode,i(a=s.data)&&i(a=a.transition)){for(a=0;a<r.activate.length;++a)r.activate[a](nr,s);e.push(s);break}d(n,t.elm,o)}(t,e,n,o),!0}}(t,e,n,o)){var f=t.data,v=t.children,m=t.tag;i(m)?(t.elm=t.ns?u.createElementNS(t.ns,m):u.createElement(m,t),g(t),h(t,v,e),i(f)&&y(t,e),d(n,t.elm,o)):a(t.isComment)?(t.elm=u.createComment(t.text),d(n,t.elm,o)):(t.elm=u.createTextNode(t.text),d(n,t.elm,o))}}function p(t,e){i(t.data.pendingInsert)&&(e.push.apply(e,t.data.pendingInsert),t.data.pendingInsert=null),t.elm=t.componentInstance.$el,v(t)?(y(t,e),g(t)):(er(t),e.push(t))}function d(t,e,n){i(t)&&(i(n)?u.parentNode(n)===t&&u.insertBefore(t,e,n):u.appendChild(t,e))}function h(t,e,n){if(Array.isArray(e)){0;for(var r=0;r<e.length;++r)f(e[r],n,t.elm,null,!0,e,r)}else s(t.text)&&u.appendChild(t.elm,u.createTextNode(String(t.text)))}function v(t){for(;t.componentInstance;)t=t.componentInstance._vnode;return i(t.tag)}function y(t,n){for(var o=0;o<r.create.length;++o)r.create[o](nr,t);i(e=t.data.hook)&&(i(e.create)&&e.create(nr,t),i(e.insert)&&n.push(t))}function g(t){var e;if(i(e=t.fnScopeId))u.setStyleScope(t.elm,e);else for(var n=t;n;)i(e=n.context)&&i(e=e.$options._scopeId)&&u.setStyleScope(t.elm,e),n=n.parent;i(e=Qe)&&e!==t.context&&e!==t.fnContext&&i(e=e.$options._scopeId)&&u.setStyleScope(t.elm,e)}function b(t,e,n,r,o,i){for(;r<=o;++r)f(n[r],i,t,e,!1,n,r)}function _(t){var e,n,o=t.data;if(i(o))for(i(e=o.hook)&&i(e=e.destroy)&&e(t),e=0;e<r.destroy.length;++e)r.destroy[e](t);if(i(e=t.children))for(n=0;n<t.children.length;++n)_(t.children[n])}function w(t,e,n,r){for(;n<=r;++n){var o=e[n];i(o)&&(i(o.tag)?($(o),_(o)):l(o.elm))}}function $(t,e){if(i(e)||i(t.data)){var n,o=r.remove.length+1;for(i(e)?e.listeners+=o:e=function(t,e){function n(){0==--n.listeners&&l(t)}return n.listeners=e,n}(t.elm,o),i(n=t.componentInstance)&&i(n=n._vnode)&&i(n.data)&&$(n,e),n=0;n<r.remove.length;++n)r.remove[n](t,e);i(n=t.data.hook)&&i(n=n.remove)?n(t,e):e()}else l(t.elm)}function C(t,e,n,r){for(var o=n;o<r;o++){var a=e[o];if(i(a)&&or(t,a))return o}}function x(t,e,n,s,c,l){if(t!==e){i(e.elm)&&i(s)&&(e=s[c]=bt(e));var p=e.elm=t.elm;if(a(t.isAsyncPlaceholder))i(e.asyncFactory.resolved)?A(t.elm,e,n):e.isAsyncPlaceholder=!0;else if(a(e.isStatic)&&a(t.isStatic)&&e.key===t.key&&(a(e.isCloned)||a(e.isOnce)))e.componentInstance=t.componentInstance;else{var d,h=e.data;i(h)&&i(d=h.hook)&&i(d=d.prepatch)&&d(t,e);var m=t.children,y=e.children;if(i(h)&&v(e)){for(d=0;d<r.update.length;++d)r.update[d](t,e);i(d=h.hook)&&i(d=d.update)&&d(t,e)}o(e.text)?i(m)&&i(y)?m!==y&&function(t,e,n,r,a){var s,c,l,p=0,d=0,h=e.length-1,v=e[0],m=e[h],y=n.length-1,g=n[0],_=n[y],$=!a;for(0;p<=h&&d<=y;)o(v)?v=e[++p]:o(m)?m=e[--h]:or(v,g)?(x(v,g,r,n,d),v=e[++p],g=n[++d]):or(m,_)?(x(m,_,r,n,y),m=e[--h],_=n[--y]):or(v,_)?(x(v,_,r,n,y),$&&u.insertBefore(t,v.elm,u.nextSibling(m.elm)),v=e[++p],_=n[--y]):or(m,g)?(x(m,g,r,n,d),$&&u.insertBefore(t,m.elm,v.elm),m=e[--h],g=n[++d]):(o(s)&&(s=ir(e,p,h)),o(c=i(g.key)?s[g.key]:C(g,e,p,h))?f(g,r,t,v.elm,!1,n,d):or(l=e[c],g)?(x(l,g,r,n,d),e[c]=void 0,$&&u.insertBefore(t,l.elm,v.elm)):f(g,r,t,v.elm,!1,n,d),g=n[++d]);p>h?b(t,o(n[y+1])?null:n[y+1].elm,n,d,y,r):d>y&&w(0,e,p,h)}(p,m,y,n,l):i(y)?(i(t.text)&&u.setTextContent(p,""),b(p,null,y,0,y.length-1,n)):i(m)?w(0,m,0,m.length-1):i(t.text)&&u.setTextContent(p,""):t.text!==e.text&&u.setTextContent(p,e.text),i(h)&&i(d=h.hook)&&i(d=d.postpatch)&&d(t,e)}}}function k(t,e,n){if(a(n)&&i(t.parent))t.parent.data.pendingInsert=e;else for(var r=0;r<e.length;++r)e[r].data.hook.insert(e[r])}var O=m("attrs,class,staticClass,staticStyle,key");function A(t,e,n,r){var o,s=e.tag,c=e.data,u=e.children;if(r=r||c&&c.pre,e.elm=t,a(e.isComment)&&i(e.asyncFactory))return e.isAsyncPlaceholder=!0,!0;if(i(c)&&(i(o=c.hook)&&i(o=o.init)&&o(e,!0),i(o=e.componentInstance)))return p(e,n),!0;if(i(s)){if(i(u))if(t.hasChildNodes())if(i(o=c)&&i(o=o.domProps)&&i(o=o.innerHTML)){if(o!==t.innerHTML)return!1}else{for(var l=!0,f=t.firstChild,d=0;d<u.length;d++){if(!f||!A(f,u[d],n,r)){l=!1;break}f=f.nextSibling}if(!l||f)return!1}else h(e,u,n);if(i(c)){var v=!1;for(var m in c)if(!O(m)){v=!0,y(e,n);break}!v&&c.class&&re(c.class)}}else t.data!==e.text&&(t.data=e.text);return!0}return function(t,e,n,s){if(!o(e)){var c,l=!1,p=[];if(o(t))l=!0,f(e,p);else{var d=i(t.nodeType);if(!d&&or(t,e))x(t,e,p,null,null,s);else{if(d){if(1===t.nodeType&&t.hasAttribute(D)&&(t.removeAttribute(D),n=!0),a(n)&&A(t,e,p))return k(e,p,!0),t;c=t,t=new vt(u.tagName(c).toLowerCase(),{},[],void 0,c)}var h=t.elm,m=u.parentNode(h);if(f(e,p,h._leaveCb?null:m,u.nextSibling(h)),i(e.parent))for(var y=e.parent,g=v(e);y;){for(var b=0;b<r.destroy.length;++b)r.destroy[b](y);if(y.elm=e.elm,g){for(var $=0;$<r.create.length;++$)r.create[$](nr,y);var C=y.data.hook.insert;if(C.merged)for(var O=1;O<C.fns.length;O++)C.fns[O]()}else er(y);y=y.parent}i(m)?w(0,[t],0,0):i(t.tag)&&_(t)}}return k(e,p,l),e.elm}i(t)&&_(t)}}({nodeOps:Zn,modules:[mr,br,Sr,jr,qr,W?{create:vo,activate:vo,remove:function(t,e){!0!==t.data.show?fo(t,e):e()}}:{}].concat(pr)});Q&&document.addEventListener("selectionchange",function(){var t=document.activeElement;t&&t.vmodel&&xo(t,"input")});var yo={inserted:function(t,e,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?se(n,"postpatch",function(){yo.componentUpdated(t,e,n)}):go(t,e,n.context),t._vOptions=[].map.call(t.options,wo)):("textarea"===n.tag||Yn(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("compositionstart",$o),t.addEventListener("compositionend",Co),t.addEventListener("change",Co),Q&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){go(t,e,n.context);var r=t._vOptions,o=t._vOptions=[].map.call(t.options,wo);if(o.some(function(t,e){return!R(t,r[e])}))(t.multiple?e.value.some(function(t){return _o(t,o)}):e.value!==e.oldValue&&_o(e.value,o))&&xo(t,"change")}}};function go(t,e,n){bo(t,e,n),(J||Y)&&setTimeout(function(){bo(t,e,n)},0)}function bo(t,e,n){var r=e.value,o=t.multiple;if(!o||Array.isArray(r)){for(var i,a,s=0,c=t.options.length;s<c;s++)if(a=t.options[s],o)i=L(r,wo(a))>-1,a.selected!==i&&(a.selected=i);else if(R(wo(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));o||(t.selectedIndex=-1)}}function _o(t,e){return e.every(function(e){return!R(e,t)})}function wo(t){return"_value"in t?t._value:t.value}function $o(t){t.target.composing=!0}function Co(t){t.target.composing&&(t.target.composing=!1,xo(t.target,"input"))}function xo(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function ko(t){return!t.componentInstance||t.data&&t.data.transition?t:ko(t.componentInstance._vnode)}var Oo={model:yo,show:{bind:function(t,e,n){var r=e.value,o=(n=ko(n)).data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,lo(n,function(){t.style.display=i})):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value;!r!=!e.oldValue&&((n=ko(n)).data&&n.data.transition?(n.data.show=!0,r?lo(n,function(){t.style.display=t.__vOriginalDisplay}):fo(n,function(){t.style.display="none"})):t.style.display=r?t.__vOriginalDisplay:"none")},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}}},Ao={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function So(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?So(We(e.children)):t}function Eo(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var i in o)e[C(i)]=o[i];return e}function To(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}var jo=function(t){return t.tag||ze(t)},Po=function(t){return"show"===t.name},Io={name:"transition",props:Ao,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(jo)).length){0;var r=this.mode;0;var o=n[0];if(function(t){for(;t=t.parent;)if(t.data.transition)return!0}(this.$vnode))return o;var i=So(o);if(!i)return o;if(this._leaving)return To(t,o);var a="__transition-"+this._uid+"-";i.key=null==i.key?i.isComment?a+"comment":a+i.tag:s(i.key)?0===String(i.key).indexOf(a)?i.key:a+i.key:i.key;var c=(i.data||(i.data={})).transition=Eo(this),u=this._vnode,l=So(u);if(i.data.directives&&i.data.directives.some(Po)&&(i.data.show=!0),l&&l.data&&!function(t,e){return e.key===t.key&&e.tag===t.tag}(i,l)&&!ze(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=E({},c);if("out-in"===r)return this._leaving=!0,se(f,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),To(t,o);if("in-out"===r){if(ze(i))return u;var p,d=function(){p()};se(c,"afterEnter",d),se(c,"enterCancelled",d),se(f,"delayLeave",function(t){p=t})}}return o}}},Ro=E({tag:String,moveClass:String},Ao);function Lo(t){t.elm._moveCb&&t.elm._moveCb(),t.elm._enterCb&&t.elm._enterCb()}function Mo(t){t.data.newPos=t.elm.getBoundingClientRect()}function Do(t){var e=t.data.pos,n=t.data.newPos,r=e.left-n.left,o=e.top-n.top;if(r||o){t.data.moved=!0;var i=t.elm.style;i.transform=i.WebkitTransform="translate("+r+"px,"+o+"px)",i.transitionDuration="0s"}}delete Ro.mode;var No={Transition:Io,TransitionGroup:{props:Ro,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Ye(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=Eo(this),s=0;s<o.length;s++){var c=o[s];if(c.tag)if(null!=c.key&&0!==String(c.key).indexOf("__vlist"))i.push(c),n[c.key]=c,(c.data||(c.data={})).transition=a;else;}if(r){for(var u=[],l=[],f=0;f<r.length;f++){var p=r[f];p.data.transition=a,p.data.pos=p.elm.getBoundingClientRect(),n[p.key]?u.push(p):l.push(p)}this.kept=t(e,null,u),this.removed=l}return t(e,null,i)},updated:function(){var t=this.prevChildren,e=this.moveClass||(this.name||"v")+"-move";t.length&&this.hasMove(t[0].elm,e)&&(t.forEach(Lo),t.forEach(Mo),t.forEach(Do),this._reflow=document.body.offsetHeight,t.forEach(function(t){if(t.data.moved){var n=t.elm,r=n.style;ro(n,e),r.transform=r.WebkitTransform=r.transitionDuration="",n.addEventListener(Yr,n._moveCb=function t(r){r&&r.target!==n||r&&!/transform$/.test(r.propertyName)||(n.removeEventListener(Yr,t),n._moveCb=null,oo(n,e))})}}))},methods:{hasMove:function(t,e){if(!Xr)return!1;if(this._hasMove)return this._hasMove;var n=t.cloneNode();t._transitionClasses&&t._transitionClasses.forEach(function(t){zr(n,t)}),Hr(n,e),n.style.display="none",this.$el.appendChild(n);var r=so(n);return this.$el.removeChild(n),this._hasMove=r.hasTransform}}}};kn.config.mustUseProp=function(t,e,n){return"value"===n&&Rn(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},kn.config.isReservedTag=Jn,kn.config.isReservedAttr=In,kn.config.getTagNamespace=function(t){return Gn(t)?"svg":"math"===t?"math":void 0},kn.config.isUnknownElement=function(t){if(!W)return!0;if(Jn(t))return!1;if(t=t.toLowerCase(),null!=Qn[t])return Qn[t];var e=document.createElement(t);return t.indexOf("-")>-1?Qn[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Qn[t]=/HTMLUnknownElement/.test(e.toString())},E(kn.options.directives,Oo),E(kn.options.components,No),kn.prototype.__patch__=W?mo:j,kn.prototype.$mount=function(t,e){return function(t,e,n){var r;return t.$el=e,t.$options.render||(t.$options.render=yt),en(t,"beforeMount"),r=function(){t._update(t._render(),n)},new hn(t,r,j,{before:function(){t._isMounted&&!t._isDestroyed&&en(t,"beforeUpdate")}},!0),n=!1,null==t.$vnode&&(t._isMounted=!0,en(t,"mounted")),t}(this,t=t&&W?function(t){if("string"==typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}(t):void 0,e)},W&&setTimeout(function(){F.devtools&&it&&it.emit("init",kn)},0);var Uo=kn;
 /*!
   * vue-router v3.1.3
   * (c) 2019 Evan You
   * @license MIT
-  */function Fo(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function Bo(t,e){return e instanceof t||e&&(e.name===t.name||e._name===t._name)}function Vo(t,e){for(var n in e)t[n]=e[n];return t}var Ho={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,r=e.children,o=e.parent,i=e.data;i.routerView=!0;for(var a=o.$createElement,s=n.name,c=o.$route,u=o._routerViewCache||(o._routerViewCache={}),l=0,f=!1;o&&o._routerRoot!==o;){var p=o.$vnode&&o.$vnode.data;p&&(p.routerView&&l++,p.keepAlive&&o._inactive&&(f=!0)),o=o.$parent}if(i.routerViewDepth=l,f)return a(u[s],i,r);var d=c.matched[l];if(!d)return u[s]=null,a();var h=u[s]=d.components[s];i.registerRouteInstance=function(t,e){var n=d.instances[s];(e&&n!==t||!e&&n===t)&&(d.instances[s]=e)},(i.hook||(i.hook={})).prepatch=function(t,e){d.instances[s]=e.componentInstance},i.hook.init=function(t){t.data.keepAlive&&t.componentInstance&&t.componentInstance!==d.instances[s]&&(d.instances[s]=t.componentInstance)};var v=i.props=function(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0;default:0}}(c,d.props&&d.props[s]);if(v){v=i.props=Vo({},v);var m=i.attrs=i.attrs||{};for(var y in v)h.props&&y in h.props||(m[y]=v[y],delete v[y])}return a(h,i,r)}};var qo=/[!'()*]/g,zo=function(t){return"%"+t.charCodeAt(0).toString(16)},Wo=/%2C/g,Ko=function(t){return encodeURIComponent(t).replace(qo,zo).replace(Wo,",")},Xo=decodeURIComponent;function Go(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach(function(t){var n=t.replace(/\+/g," ").split("="),r=Xo(n.shift()),o=n.length>0?Xo(n.join("=")):null;void 0===e[r]?e[r]=o:Array.isArray(e[r])?e[r].push(o):e[r]=[e[r],o]}),e):e}function Jo(t){var e=t?Object.keys(t).map(function(e){var n=t[e];if(void 0===n)return"";if(null===n)return Ko(e);if(Array.isArray(n)){var r=[];return n.forEach(function(t){void 0!==t&&(null===t?r.push(Ko(e)):r.push(Ko(e)+"="+Ko(t)))}),r.join("&")}return Ko(e)+"="+Ko(n)}).filter(function(t){return t.length>0}).join("&"):null;return e?"?"+e:""}var Yo=/\/?$/;function Zo(t,e,n,r){var o=r&&r.options.stringifyQuery,i=e.query||{};try{i=Qo(i)}catch(t){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:i,params:e.params||{},fullPath:ni(e,o),matched:t?ei(t):[]};return n&&(a.redirectedFrom=ni(n,o)),Object.freeze(a)}function Qo(t){if(Array.isArray(t))return t.map(Qo);if(t&&"object"==typeof t){var e={};for(var n in t)e[n]=Qo(t[n]);return e}return t}var ti=Zo(null,{path:"/"});function ei(t){for(var e=[];t;)e.unshift(t),t=t.parent;return e}function ni(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var o=t.hash;return void 0===o&&(o=""),(n||"/")+(e||Jo)(r)+o}function ri(t,e){return e===ti?t===e:!!e&&(t.path&&e.path?t.path.replace(Yo,"")===e.path.replace(Yo,"")&&t.hash===e.hash&&oi(t.query,e.query):!(!t.name||!e.name)&&(t.name===e.name&&t.hash===e.hash&&oi(t.query,e.query)&&oi(t.params,e.params)))}function oi(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&n.every(function(n){var r=t[n],o=e[n];return"object"==typeof r&&"object"==typeof o?oi(r,o):String(r)===String(o)})}function ii(t,e,n){var r=t.charAt(0);if("/"===r)return t;if("?"===r||"#"===r)return e+t;var o=e.split("/");n&&o[o.length-1]||o.pop();for(var i=t.replace(/^\//,"").split("/"),a=0;a<i.length;a++){var s=i[a];".."===s?o.pop():"."!==s&&o.push(s)}return""!==o[0]&&o.unshift(""),o.join("/")}function ai(t){return t.replace(/\/\//g,"/")}var si=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},ci=$i,ui=hi,li=function(t,e){return mi(hi(t,e))},fi=mi,pi=wi,di=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function hi(t,e){for(var n,r=[],o=0,i=0,a="",s=e&&e.delimiter||"/";null!=(n=di.exec(t));){var c=n[0],u=n[1],l=n.index;if(a+=t.slice(i,l),i=l+c.length,u)a+=u[1];else{var f=t[i],p=n[2],d=n[3],h=n[4],v=n[5],m=n[6],y=n[7];a&&(r.push(a),a="");var g=null!=p&&null!=f&&f!==p,_="+"===m||"*"===m,b="?"===m||"*"===m,w=n[2]||s,$=h||v;r.push({name:d||o++,prefix:p||"",delimiter:w,optional:b,repeat:_,partial:g,asterisk:!!y,pattern:$?gi($):y?".*":"[^"+yi(w)+"]+?"})}}return i<t.length&&(a+=t.substr(i)),a&&r.push(a),r}function vi(t){return encodeURI(t).replace(/[\/?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function mi(t){for(var e=new Array(t.length),n=0;n<t.length;n++)"object"==typeof t[n]&&(e[n]=new RegExp("^(?:"+t[n].pattern+")$"));return function(n,r){for(var o="",i=n||{},a=(r||{}).pretty?vi:encodeURIComponent,s=0;s<t.length;s++){var c=t[s];if("string"!=typeof c){var u,l=i[c.name];if(null==l){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(si(l)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(l)+"`");if(0===l.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var f=0;f<l.length;f++){if(u=a(l[f]),!e[s].test(u))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(u)+"`");o+=(0===f?c.prefix:c.delimiter)+u}}else{if(u=c.asterisk?encodeURI(l).replace(/[?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()}):a(l),!e[s].test(u))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+u+'"');o+=c.prefix+u}}else o+=c}return o}}function yi(t){return t.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function gi(t){return t.replace(/([=!:$\/()])/g,"\\$1")}function _i(t,e){return t.keys=e,t}function bi(t){return t.sensitive?"":"i"}function wi(t,e,n){si(e)||(n=e||n,e=[]);for(var r=(n=n||{}).strict,o=!1!==n.end,i="",a=0;a<t.length;a++){var s=t[a];if("string"==typeof s)i+=yi(s);else{var c=yi(s.prefix),u="(?:"+s.pattern+")";e.push(s),s.repeat&&(u+="(?:"+c+u+")*"),i+=u=s.optional?s.partial?c+"("+u+")?":"(?:"+c+"("+u+"))?":c+"("+u+")"}}var l=yi(n.delimiter||"/"),f=i.slice(-l.length)===l;return r||(i=(f?i.slice(0,-l.length):i)+"(?:"+l+"(?=$))?"),i+=o?"$":r&&f?"":"(?="+l+"|$)",_i(new RegExp("^"+i,bi(n)),e)}function $i(t,e,n){return si(e)||(n=e||n,e=[]),n=n||{},t instanceof RegExp?function(t,e){var n=t.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)e.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return _i(t,e)}(t,e):si(t)?function(t,e,n){for(var r=[],o=0;o<t.length;o++)r.push($i(t[o],e,n).source);return _i(new RegExp("(?:"+r.join("|")+")",bi(n)),e)}(t,e,n):function(t,e,n){return wi(hi(t,n),e,n)}(t,e,n)}ci.parse=ui,ci.compile=li,ci.tokensToFunction=fi,ci.tokensToRegExp=pi;var Ci=Object.create(null);function xi(t,e,n){e=e||{};try{var r=Ci[t]||(Ci[t]=ci.compile(t));return e.pathMatch&&(e[0]=e.pathMatch),r(e,{pretty:!0})}catch(t){return""}finally{delete e[0]}}function ki(t,e,n,r){var o="string"==typeof t?{path:t}:t;if(o._normalized)return o;if(o.name)return Vo({},t);if(!o.path&&o.params&&e){(o=Vo({},o))._normalized=!0;var i=Vo(Vo({},e.params),o.params);if(e.name)o.name=e.name,o.params=i;else if(e.matched.length){var a=e.matched[e.matched.length-1].path;o.path=xi(a,i,e.path)}else 0;return o}var s=function(t){var e="",n="",r=t.indexOf("#");r>=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}(o.path||""),c=e&&e.path||"/",u=s.path?ii(s.path,c,n||o.append):c,l=function(t,e,n){void 0===e&&(e={});var r,o=n||Go;try{r=o(t||"")}catch(t){r={}}for(var i in e)r[i]=e[i];return r}(s.query,o.query,r&&r.options.parseQuery),f=o.hash||s.hash;return f&&"#"!==f.charAt(0)&&(f="#"+f),{_normalized:!0,path:u,query:l,hash:f}}var Oi,Ai=[String,Object],Si=[String,Array],Ei=function(){},ji={name:"RouterLink",props:{to:{type:Ai,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:Si,default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),i=o.location,a=o.route,s=o.href,c={},u=n.options.linkActiveClass,l=n.options.linkExactActiveClass,f=null==u?"router-link-active":u,p=null==l?"router-link-exact-active":l,d=null==this.activeClass?f:this.activeClass,h=null==this.exactActiveClass?p:this.exactActiveClass,v=a.redirectedFrom?Zo(null,ki(a.redirectedFrom),null,n):a;c[h]=ri(r,v),c[d]=this.exact?c[h]:function(t,e){return 0===t.path.replace(Yo,"/").indexOf(e.path.replace(Yo,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,v);var m=function(t){Ti(t)&&(e.replace?n.replace(i,Ei):n.push(i,Ei))},y={click:Ti};Array.isArray(this.event)?this.event.forEach(function(t){y[t]=m}):y[this.event]=m;var g={class:c},_=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:a,navigate:m,isActive:c[d],isExactActive:c[h]});if(_){if(1===_.length)return _[0];if(_.length>1||!_.length)return 0===_.length?t():t("span",{},_)}if("a"===this.tag)g.on=y,g.attrs={href:s};else{var b=function t(e){if(e)for(var n,r=0;r<e.length;r++){if("a"===(n=e[r]).tag)return n;if(n.children&&(n=t(n.children)))return n}}(this.$slots.default);if(b){b.isStatic=!1;var w=b.data=Vo({},b.data);for(var $ in w.on=w.on||{},w.on){var C=w.on[$];$ in y&&(w.on[$]=Array.isArray(C)?C:[C])}for(var x in y)x in w.on?w.on[x].push(y[x]):w.on[x]=m;(b.data.attrs=Vo({},b.data.attrs)).href=s}else g.on=y}return t(this.tag,g,this.$slots.default)}};function Ti(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||t.defaultPrevented||void 0!==t.button&&0!==t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}var Pi="undefined"!=typeof window;function Ri(t,e,n,r){var o=e||[],i=n||Object.create(null),a=r||Object.create(null);t.forEach(function(t){!function t(e,n,r,o,i,a){var s=o.path;var c=o.name;0;var u=o.pathToRegexpOptions||{};var l=function(t,e,n){n||(t=t.replace(/\/$/,""));if("/"===t[0])return t;if(null==e)return t;return ai(e.path+"/"+t)}(s,i,u.strict);"boolean"==typeof o.caseSensitive&&(u.sensitive=o.caseSensitive);var f={path:l,regex:Ii(l,u),components:o.components||{default:o.component},instances:{},name:c,parent:i,matchAs:a,redirect:o.redirect,beforeEnter:o.beforeEnter,meta:o.meta||{},props:null==o.props?{}:o.components?o.props:{default:o.props}};o.children&&o.children.forEach(function(o){var i=a?ai(a+"/"+o.path):void 0;t(e,n,r,o,f,i)});n[f.path]||(e.push(f.path),n[f.path]=f);if(void 0!==o.alias)for(var p=Array.isArray(o.alias)?o.alias:[o.alias],d=0;d<p.length;++d){0;var h={path:p[d],children:o.children};t(e,n,r,h,i,f.path||"/")}c&&(r[c]||(r[c]=f))}(o,i,a,t)});for(var s=0,c=o.length;s<c;s++)"*"===o[s]&&(o.push(o.splice(s,1)[0]),c--,s--);return{pathList:o,pathMap:i,nameMap:a}}function Ii(t,e){return ci(t,[],e)}function Li(t,e){var n=Ri(t),r=n.pathList,o=n.pathMap,i=n.nameMap;function a(t,n,a){var s=ki(t,n,!1,e),u=s.name;if(u){var l=i[u];if(!l)return c(null,s);var f=l.regex.keys.filter(function(t){return!t.optional}).map(function(t){return t.name});if("object"!=typeof s.params&&(s.params={}),n&&"object"==typeof n.params)for(var p in n.params)!(p in s.params)&&f.indexOf(p)>-1&&(s.params[p]=n.params[p]);return s.path=xi(l.path,s.params),c(l,s,a)}if(s.path){s.params={};for(var d=0;d<r.length;d++){var h=r[d],v=o[h];if(Mi(v.regex,s.path,s.params))return c(v,s,a)}}return c(null,s)}function s(t,n){var r=t.redirect,o="function"==typeof r?r(Zo(t,n,null,e)):r;if("string"==typeof o&&(o={path:o}),!o||"object"!=typeof o)return c(null,n);var s=o,u=s.name,l=s.path,f=n.query,p=n.hash,d=n.params;if(f=s.hasOwnProperty("query")?s.query:f,p=s.hasOwnProperty("hash")?s.hash:p,d=s.hasOwnProperty("params")?s.params:d,u){i[u];return a({_normalized:!0,name:u,query:f,hash:p,params:d},void 0,n)}if(l){var h=function(t,e){return ii(t,e.parent?e.parent.path:"/",!0)}(l,t);return a({_normalized:!0,path:xi(h,d),query:f,hash:p},void 0,n)}return c(null,n)}function c(t,n,r){return t&&t.redirect?s(t,r||n):t&&t.matchAs?function(t,e,n){var r=a({_normalized:!0,path:xi(n,e.params)});if(r){var o=r.matched,i=o[o.length-1];return e.params=r.params,c(i,e)}return c(null,e)}(0,n,t.matchAs):Zo(t,n,r,e)}return{match:a,addRoutes:function(t){Ri(t,r,o,i)}}}function Mi(t,e,n){var r=e.match(t);if(!r)return!1;if(!n)return!0;for(var o=1,i=r.length;o<i;++o){var a=t.keys[o-1],s="string"==typeof r[o]?decodeURIComponent(r[o]):r[o];a&&(n[a.name||"pathMatch"]=s)}return!0}var Di=Pi&&window.performance&&window.performance.now?window.performance:Date;function Ni(){return Di.now().toFixed(3)}var Ui=Ni();function Fi(){return Ui}function Bi(t){return Ui=t}var Vi=Object.create(null);function Hi(){var t=window.location.protocol+"//"+window.location.host,e=window.location.href.replace(t,"");window.history.replaceState({key:Fi()},"",e),window.addEventListener("popstate",function(t){zi(),t.state&&t.state.key&&Bi(t.state.key)})}function qi(t,e,n,r){if(t.app){var o=t.options.scrollBehavior;o&&t.app.$nextTick(function(){var i=function(){var t=Fi();if(t)return Vi[t]}(),a=o.call(t,e,n,r?i:null);a&&("function"==typeof a.then?a.then(function(t){Ji(t,i)}).catch(function(t){0}):Ji(a,i))})}}function zi(){var t=Fi();t&&(Vi[t]={x:window.pageXOffset,y:window.pageYOffset})}function Wi(t){return Xi(t.x)||Xi(t.y)}function Ki(t){return{x:Xi(t.x)?t.x:window.pageXOffset,y:Xi(t.y)?t.y:window.pageYOffset}}function Xi(t){return"number"==typeof t}var Gi=/^#\d/;function Ji(t,e){var n,r="object"==typeof t;if(r&&"string"==typeof t.selector){var o=Gi.test(t.selector)?document.getElementById(t.selector.slice(1)):document.querySelector(t.selector);if(o){var i=t.offset&&"object"==typeof t.offset?t.offset:{};e=function(t,e){var n=document.documentElement.getBoundingClientRect(),r=t.getBoundingClientRect();return{x:r.left-n.left-e.x,y:r.top-n.top-e.y}}(o,i={x:Xi((n=i).x)?n.x:0,y:Xi(n.y)?n.y:0})}else Wi(t)&&(e=Ki(t))}else r&&Wi(t)&&(e=Ki(t));e&&window.scrollTo(e.x,e.y)}var Yi,Zi=Pi&&((-1===(Yi=window.navigator.userAgent).indexOf("Android 2.")&&-1===Yi.indexOf("Android 4.0")||-1===Yi.indexOf("Mobile Safari")||-1!==Yi.indexOf("Chrome")||-1!==Yi.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history);function Qi(t,e){zi();var n=window.history;try{e?n.replaceState({key:Fi()},"",t):n.pushState({key:Bi(Ni())},"",t)}catch(n){window.location[e?"replace":"assign"](t)}}function ta(t){Qi(t,!0)}function ea(t,e,n){var r=function(o){o>=t.length?n():t[o]?e(t[o],function(){r(o+1)}):r(o+1)};r(0)}function na(t){return function(e,n,r){var o=!1,i=0,a=null;ra(t,function(t,e,n,s){if("function"==typeof t&&void 0===t.cid){o=!0,i++;var c,u=aa(function(e){var o;((o=e).__esModule||ia&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:Oi.extend(e),n.components[s]=e,--i<=0&&r()}),l=aa(function(t){var e="Failed to resolve async component "+s+": "+t;a||(a=Fo(t)?t:new Error(e),r(a))});try{c=t(u,l)}catch(t){l(t)}if(c)if("function"==typeof c.then)c.then(u,l);else{var f=c.component;f&&"function"==typeof f.then&&f.then(u,l)}}}),o||r()}}function ra(t,e){return oa(t.map(function(t){return Object.keys(t.components).map(function(n){return e(t.components[n],t.instances[n],t,n)})}))}function oa(t){return Array.prototype.concat.apply([],t)}var ia="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function aa(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var sa=function(t){function e(e){t.call(this),this.name=this._name="NavigationDuplicated",this.message='Navigating to current location ("'+e.fullPath+'") is not allowed',Object.defineProperty(this,"stack",{value:(new t).stack,writable:!0,configurable:!0})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Error);sa._name="NavigationDuplicated";var ca=function(t,e){this.router=t,this.base=function(t){if(!t)if(Pi){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=ti,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};function ua(t,e,n,r){var o=ra(t,function(t,r,o,i){var a=function(t,e){"function"!=typeof t&&(t=Oi.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map(function(t){return n(t,r,o,i)}):n(a,r,o,i)});return oa(r?o.reverse():o)}function la(t,e){if(e)return function(){return t.apply(e,arguments)}}ca.prototype.listen=function(t){this.cb=t},ca.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},ca.prototype.onError=function(t){this.errorCbs.push(t)},ca.prototype.transitionTo=function(t,e,n){var r=this,o=this.router.match(t,this.current);this.confirmTransition(o,function(){r.updateRoute(o),e&&e(o),r.ensureURL(),r.ready||(r.ready=!0,r.readyCbs.forEach(function(t){t(o)}))},function(t){n&&n(t),t&&!r.ready&&(r.ready=!0,r.readyErrorCbs.forEach(function(e){e(t)}))})},ca.prototype.confirmTransition=function(t,e,n){var r=this,o=this.current,i=function(t){!Bo(sa,t)&&Fo(t)&&(r.errorCbs.length?r.errorCbs.forEach(function(e){e(t)}):console.error(t)),n&&n(t)};if(ri(t,o)&&t.matched.length===o.matched.length)return this.ensureURL(),i(new sa(t));var a=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n<r&&t[n]===e[n];n++);return{updated:e.slice(0,n),activated:e.slice(n),deactivated:t.slice(n)}}(this.current.matched,t.matched),s=a.updated,c=a.deactivated,u=a.activated,l=[].concat(function(t){return ua(t,"beforeRouteLeave",la,!0)}(c),this.router.beforeHooks,function(t){return ua(t,"beforeRouteUpdate",la)}(s),u.map(function(t){return t.beforeEnter}),na(u));this.pending=t;var f=function(e,n){if(r.pending!==t)return i();try{e(t,o,function(t){!1===t||Fo(t)?(r.ensureURL(!0),i(t)):"string"==typeof t||"object"==typeof t&&("string"==typeof t.path||"string"==typeof t.name)?(i(),"object"==typeof t&&t.replace?r.replace(t):r.push(t)):n(t)})}catch(t){i(t)}};ea(l,f,function(){var n=[];ea(function(t,e,n){return ua(t,"beforeRouteEnter",function(t,r,o,i){return function(t,e,n,r,o){return function(i,a,s){return t(i,a,function(t){"function"==typeof t&&r.push(function(){!function t(e,n,r,o){n[r]&&!n[r]._isBeingDestroyed?e(n[r]):o()&&setTimeout(function(){t(e,n,r,o)},16)}(t,e.instances,n,o)}),s(t)})}}(t,o,i,e,n)})}(u,n,function(){return r.current===t}).concat(r.router.resolveHooks),f,function(){if(r.pending!==t)return i();r.pending=null,e(t),r.router.app&&r.router.app.$nextTick(function(){n.forEach(function(t){t()})})})})},ca.prototype.updateRoute=function(t){var e=this.current;this.current=t,this.cb&&this.cb(t),this.router.afterHooks.forEach(function(n){n&&n(t,e)})};var fa=function(t){function e(e,n){var r=this;t.call(this,e,n);var o=e.options.scrollBehavior,i=Zi&&o;i&&Hi();var a=pa(this.base);window.addEventListener("popstate",function(t){var n=r.current,o=pa(r.base);r.current===ti&&o===a||r.transitionTo(o,function(t){i&&qi(e,t,n,!0)})})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,function(t){Qi(ai(r.base+t.fullPath)),qi(r.router,t,o,!1),e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,function(t){ta(ai(r.base+t.fullPath)),qi(r.router,t,o,!1),e&&e(t)},n)},e.prototype.ensureURL=function(t){if(pa(this.base)!==this.current.fullPath){var e=ai(this.base+this.current.fullPath);t?Qi(e):ta(e)}},e.prototype.getCurrentLocation=function(){return pa(this.base)},e}(ca);function pa(t){var e=decodeURI(window.location.pathname);return t&&0===e.indexOf(t)&&(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var da=function(t){function e(e,n,r){t.call(this,e,n),r&&function(t){var e=pa(t);if(!/^\/#/.test(e))return window.location.replace(ai(t+"/#"+e)),!0}(this.base)||ha()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this,e=this.router.options.scrollBehavior,n=Zi&&e;n&&Hi(),window.addEventListener(Zi?"popstate":"hashchange",function(){var e=t.current;ha()&&t.transitionTo(va(),function(r){n&&qi(t.router,r,e,!0),Zi||ga(r.fullPath)})})},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,function(t){ya(t.fullPath),qi(r.router,t,o,!1),e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,function(t){ga(t.fullPath),qi(r.router,t,o,!1),e&&e(t)},n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;va()!==e&&(t?ya(e):ga(e))},e.prototype.getCurrentLocation=function(){return va()},e}(ca);function ha(){var t=va();return"/"===t.charAt(0)||(ga("/"+t),!1)}function va(){var t=window.location.href,e=t.indexOf("#");if(e<0)return"";var n=(t=t.slice(e+1)).indexOf("?");if(n<0){var r=t.indexOf("#");t=r>-1?decodeURI(t.slice(0,r))+t.slice(r):decodeURI(t)}else n>-1&&(t=decodeURI(t.slice(0,n))+t.slice(n));return t}function ma(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function ya(t){Zi?Qi(ma(t)):window.location.hash=t}function ga(t){Zi?ta(ma(t)):window.location.replace(ma(t))}var _a=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)},n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,function(){e.index=n,e.updateRoute(r)},function(t){Bo(sa,t)&&(e.index=n)})}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(ca),ba=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Li(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Zi&&!1!==t.fallback,this.fallback&&(e="hash"),Pi||(e="abstract"),this.mode=e,e){case"history":this.history=new fa(this,t.base);break;case"hash":this.history=new da(this,t.base,this.fallback);break;case"abstract":this.history=new _a(this,t.base);break;default:0}},wa={currentRoute:{configurable:!0}};function $a(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}ba.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},wa.currentRoute.get=function(){return this.history&&this.history.current},ba.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null)}),!this.app){this.app=t;var n=this.history;if(n instanceof fa)n.transitionTo(n.getCurrentLocation());else if(n instanceof da){var r=function(){n.setupListeners()};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen(function(t){e.apps.forEach(function(e){e._route=t})})}},ba.prototype.beforeEach=function(t){return $a(this.beforeHooks,t)},ba.prototype.beforeResolve=function(t){return $a(this.resolveHooks,t)},ba.prototype.afterEach=function(t){return $a(this.afterHooks,t)},ba.prototype.onReady=function(t,e){this.history.onReady(t,e)},ba.prototype.onError=function(t){this.history.onError(t)},ba.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise(function(e,n){r.history.push(t,e,n)});this.history.push(t,e,n)},ba.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise(function(e,n){r.history.replace(t,e,n)});this.history.replace(t,e,n)},ba.prototype.go=function(t){this.history.go(t)},ba.prototype.back=function(){this.go(-1)},ba.prototype.forward=function(){this.go(1)},ba.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map(function(t){return Object.keys(t.components).map(function(e){return t.components[e]})})):[]},ba.prototype.resolve=function(t,e,n){var r=ki(t,e=e||this.history.current,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?ai(t+"/"+r):r}(this.history.base,i,this.mode),normalizedTo:r,resolved:o}},ba.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==ti&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(ba.prototype,wa),ba.install=function t(e){if(!t.installed||Oi!==e){t.installed=!0,Oi=e;var n=function(t){return void 0!==t},r=function(t,e){var r=t.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(t,e)};e.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",Ho),e.component("RouterLink",ji);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},ba.version="3.1.3",Pi&&window.Vue&&window.Vue.use(ba);var Ca=ba;var xa={NotFound:()=>n.e(4).then(n.bind(null,185)),Layout:()=>Promise.all([n.e(0),n.e(2)]).then(n.bind(null,184))},ka={"v-6190c3a0":()=>n.e(5).then(n.bind(null,186)),"v-8ff94204":()=>n.e(7).then(n.bind(null,187)),"v-75e6fb95":()=>n.e(6).then(n.bind(null,188))};function Oa(t){const e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}const Aa=/-(\w)/g,Sa=Oa(t=>t.replace(Aa,(t,e)=>e?e.toUpperCase():"")),Ea=/\B([A-Z])/g,ja=Oa(t=>t.replace(Ea,"-$1").toLowerCase()),Ta=Oa(t=>t.charAt(0).toUpperCase()+t.slice(1));function Pa(t,e){if(!e)return;if(t(e))return t(e);return e.includes("-")?t(Ta(Sa(e))):t(Ta(e))||t(ja(e))}const Ra=Object.assign({},xa,ka),Ia=t=>Ra[t],La=t=>ka[t],Ma=t=>xa[t],Da=t=>Uo.component(t);function Na(t){return Pa(La,t)}function Ua(t){return Pa(Ma,t)}function Fa(t){return Pa(Ia,t)}function Ba(t){return Pa(Da,t)}function Va(...t){return Promise.all(t.filter(t=>t).map(async t=>{if(!Ba(t)&&Fa(t)){const e=await Fa(t)();Uo.component(t,e.default)}}))}function Ha(t,e){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[t]=e)}var qa={created(){this.$ssrContext&&(this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.description=this.$page.description||this.$description)},mounted(){this.currentMetaTags=new Set,this.updateMeta()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const t=this.$page.frontmatter.meta||[],e=t.slice(0);0===t.filter(t=>"description"===t.name).length&&e.push({name:"description",content:this.$description});const n=document.querySelectorAll('meta[name="description"]');n.length&&n.forEach(t=>this.currentMetaTags.add(t)),this.currentMetaTags=new Set(za(e,this.currentMetaTags))}},watch:{$page(){this.updateMeta()}},beforeDestroy(){za(null,this.currentMetaTags)}};function za(t,e){if(e&&[...e].forEach(t=>{document.head.removeChild(t)}),t)return t.map(t=>{const e=document.createElement("meta");return Object.keys(t).forEach(n=>{e.setAttribute(n,t[n])}),document.head.appendChild(e),e})}var Wa=n(3),Ka={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:n.n(Wa)()(function(){this.setActiveHash()},300),setActiveHash(){const t=[].slice.call(document.querySelectorAll(".sidebar-link")),e=[].slice.call(document.querySelectorAll(".header-anchor")).filter(e=>t.some(t=>t.hash===e.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),r=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),o=window.innerHeight+n;for(let t=0;t<e.length;t++){const i=e[t],a=e[t+1],s=0===t&&0===n||n>=i.parentElement.offsetTop+10&&(!a||n<a.parentElement.offsetTop-10),c=decodeURIComponent(this.$route.hash);if(s&&c!==decodeURIComponent(i.hash)){const n=i;if(o===r)for(let n=t+1;n<e.length;n++)if(c===decodeURIComponent(e[n].hash))return;return this.$vuepress.$set("disableScrollBehavior",!0),void this.$router.replace(decodeURIComponent(n.hash),()=>{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},Xa=n(2),Ga=n.n(Xa),Ja=[qa,Ka,{mounted(){Ga.a.configure({showSpinner:!1}),this.$router.beforeEach((t,e,n)=>{t.path===e.path||Uo.component(t.name)||Ga.a.start(),n()}),this.$router.afterEach(()=>{Ga.a.done(),this.isSidebarOpen=!1})}}],Ya={methods:{getLayout:function(){if(this.$page.path){var t=this.$page.frontmatter.layout;return t&&(this.$vuepress.getLayoutAsyncComponent(t)||this.$vuepress.getVueComponent(t))?t:"Layout"}return"NotFound"}},computed:{layout:function(){var t=this.getLayout();return Ha("layout",t),Uo.component(t)}}},Za=n(0),Qa=Object(Za.a)(Ya,function(){var t=this.$createElement;return(this._self._c||t)(this.layout,{tag:"component"})},[],!1,null,null,null).exports;!function(t,e,n){switch(e){case"components":t[e]||(t[e]={}),Object.assign(t[e],n);break;case"mixins":t[e]||(t[e]=[]),t[e].push(...n);break;default:throw new Error("Unknown option name.")}}(Qa,"mixins",Ja);const ts=[{name:"v-6190c3a0",path:"/documentation/getting-started/",component:Qa,beforeEnter:(t,e,n)=>{Va("Layout","v-6190c3a0").then(n)}},{path:"/documentation/getting-started/index.html",redirect:"/documentation/getting-started/"},{name:"v-8ff94204",path:"/",component:Qa,beforeEnter:(t,e,n)=>{Va("Layout","v-8ff94204").then(n)}},{path:"/index.html",redirect:"/"},{name:"v-75e6fb95",path:"/documentation/",component:Qa,beforeEnter:(t,e,n)=>{Va("Layout","v-75e6fb95").then(n)}},{path:"/documentation/index.html",redirect:"/documentation/"},{path:"*",component:Qa}],es={title:"WMI Scripting",description:"WMI Scripting in PHP made easy.",base:"/wmi-scripting/",pages:[{title:"Getting Started",frontmatter:{},regularPath:"/documentation/getting-started/",relativePath:"documentation/getting-started/readme.md",key:"v-6190c3a0",path:"/documentation/getting-started/"},{title:"Home",frontmatter:{home:!0,heroImage:"/hero-notext.png",actionText:"Documentation",actionLink:"/documentation/"},regularPath:"/",relativePath:"readme.md",key:"v-8ff94204",path:"/"},{title:"Introduction",frontmatter:{},regularPath:"/documentation/",relativePath:"documentation/readme.md",key:"v-75e6fb95",path:"/documentation/"}],themeConfig:{logo:"/wmi-squares.svg",nav:[{text:"Home",link:"/"},{text:"Documentation",link:"/documentation/"},{text:"GitHub",link:"https://github.com/phpwintools/wmi-scripting"}],sidebar:{"/documentation":[{title:"Documentation",collapsable:!1,children:[["documentation/","How It Works"],["documentation/getting-started/","Getting Started"]]}]}}};n(5);Uo.component("Badge",()=>Promise.all([n.e(0),n.e(3)]).then(n.bind(null,189)));n(6);var ns=[{},({Vue:t})=>{t.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{}],rs=[];class os{constructor(){this.store=new Uo({data:{state:{}}})}$get(t){return this.store.state[t]}$set(t,e){Uo.set(this.store.state,t,e)}$emit(...t){this.store.$emit(...t)}$on(...t){this.store.$on(...t)}}class is extends os{}Object.assign(is.prototype,{getPageAsyncComponent:Na,getLayoutAsyncComponent:Ua,getAsyncComponent:Fa,getVueComponent:Ba});var as={install(t){const e=new is;t.$vuepress=e,t.prototype.$vuepress=e}};function ss(t,e){return t.options.routes.filter(t=>t.path.toLowerCase()===e.toLowerCase()).length>0}var cs={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(t){const e=this.pageKey||this.$parent.$page.key;return Ha("pageKey",e),Uo.component(e)||Uo.component(e,Na(e)),Uo.component(e)?t(e):t("")}},us={functional:!0,props:{slotKey:String,required:!0},render:(t,{props:e,slots:n})=>t("div",{class:[`content__${e.slotKey}`]},n()[e.slotKey])},ls=(n(7),Object(Za.a)({},function(t,e){var n=e._c;return n("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[n("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),e._v(" "),n("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})])},[],!0,null,null,null).exports),fs={functional:!0,render(t,{parent:e,children:n}){if(e._isMounted)return n;e.$once("hook:mounted",()=>{e.$forceUpdate()})}};Uo.config.productionTip=!1,Uo.use(Ca),Uo.use(as),Uo.mixin(function(t,e,n=Uo){!function(t){t.locales&&Object.keys(t.locales).forEach(e=>{t.locales[e].path=e});Object.freeze(t)}(e),n.$vuepress.$set("siteData",e);const r=new(t(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),i={};return Object.keys(o).reduce((t,e)=>(e.startsWith("$")&&(t[e]=o[e].get),t),i),{computed:i}}(t=>(class{setPage(t){this.__page=t}get $site(){return t}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:t={}}=this.$site;let e,n;for(const r in t)"/"===r?n=t[r]:0===this.$page.path.indexOf(r)&&(e=t[r]);return e||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $title(){const t=this.$page,{metaTitle:e}=this.$page.frontmatter;if("string"==typeof e)return e;const n=this.$siteTitle,r=t.frontmatter.home?null:t.frontmatter.title||t.title;return n?r?r+" | "+n:n:r||"VuePress"}get $description(){const t=function(t){if(t){const e=t.filter(t=>"description"===t.name)[0];if(e)return e.content}}(this.$page.frontmatter.meta);return t||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(t,e){for(let n=0;n<t.length;n++){const r=t[n];if(r.path.toLowerCase()===e.toLowerCase())return r}return{path:"",frontmatter:{}}}(this.$site.pages,this.$route.path)}}),es)),Uo.component("Content",cs),Uo.component("ContentSlotsDistributor",us),Uo.component("OutboundLink",ls),Uo.component("ClientOnly",fs),Uo.component("Layout",Ua("Layout")),Uo.component("NotFound",Ua("NotFound")),Uo.prototype.$withBase=function(t){const e=this.$site.base;return"/"===t.charAt(0)?e+t.slice(1):t};const{app:ps,router:ds}=function(t){const e="undefined"!=typeof window&&window.__VUEPRESS_ROUTER_BASE__?window.__VUEPRESS_ROUTER_BASE__:es.routerBase||es.base,n=new Ca({base:e,mode:"history",fallback:!1,routes:ts,scrollBehavior:(t,e,n)=>n||(t.hash?!Uo.$vuepress.$get("disableScrollBehavior")&&{selector:t.hash}:{x:0,y:0})});!function(t){t.beforeEach((e,n,r)=>{if(ss(t,e.path))r();else if(/(\/|\.html)$/.test(e.path))if(/\/$/.test(e.path)){const n=e.path.replace(/\/$/,"")+".html";ss(t,n)?r(n):r()}else r();else{const n=e.path+"/",o=e.path+".html";ss(t,o)?r(o):ss(t,n)?r(n):r()}})}(n);const r={};try{ns.forEach(e=>{"function"==typeof e&&e({Vue:Uo,options:r,router:n,siteData:es,isServer:t})})}catch(t){console.error(t)}return{app:new Uo(Object.assign(r,{router:n,render:t=>t("div",{attrs:{id:"app"}},[t("router-view",{ref:"layout"}),t("div",{class:"global-ui"},rs.map(e=>t(e)))])})),router:n}}(!1);window.__VUEPRESS__={version:"1.0.3",hash:"d44341c"},ds.onReady(()=>{ps.$mount("#app")})}]);
\ No newline at end of file
+  */function Fo(t){return Object.prototype.toString.call(t).indexOf("Error")>-1}function Bo(t,e){return e instanceof t||e&&(e.name===t.name||e._name===t._name)}function qo(t,e){for(var n in e)t[n]=e[n];return t}var Vo={name:"RouterView",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,r=e.children,o=e.parent,i=e.data;i.routerView=!0;for(var a=o.$createElement,s=n.name,c=o.$route,u=o._routerViewCache||(o._routerViewCache={}),l=0,f=!1;o&&o._routerRoot!==o;){var p=o.$vnode&&o.$vnode.data;p&&(p.routerView&&l++,p.keepAlive&&o._inactive&&(f=!0)),o=o.$parent}if(i.routerViewDepth=l,f)return a(u[s],i,r);var d=c.matched[l];if(!d)return u[s]=null,a();var h=u[s]=d.components[s];i.registerRouteInstance=function(t,e){var n=d.instances[s];(e&&n!==t||!e&&n===t)&&(d.instances[s]=e)},(i.hook||(i.hook={})).prepatch=function(t,e){d.instances[s]=e.componentInstance},i.hook.init=function(t){t.data.keepAlive&&t.componentInstance&&t.componentInstance!==d.instances[s]&&(d.instances[s]=t.componentInstance)};var v=i.props=function(t,e){switch(typeof e){case"undefined":return;case"object":return e;case"function":return e(t);case"boolean":return e?t.params:void 0;default:0}}(c,d.props&&d.props[s]);if(v){v=i.props=qo({},v);var m=i.attrs=i.attrs||{};for(var y in v)h.props&&y in h.props||(m[y]=v[y],delete v[y])}return a(h,i,r)}};var Ho=/[!'()*]/g,zo=function(t){return"%"+t.charCodeAt(0).toString(16)},Wo=/%2C/g,Ko=function(t){return encodeURIComponent(t).replace(Ho,zo).replace(Wo,",")},Xo=decodeURIComponent;function Go(t){var e={};return(t=t.trim().replace(/^(\?|#|&)/,""))?(t.split("&").forEach(function(t){var n=t.replace(/\+/g," ").split("="),r=Xo(n.shift()),o=n.length>0?Xo(n.join("=")):null;void 0===e[r]?e[r]=o:Array.isArray(e[r])?e[r].push(o):e[r]=[e[r],o]}),e):e}function Jo(t){var e=t?Object.keys(t).map(function(e){var n=t[e];if(void 0===n)return"";if(null===n)return Ko(e);if(Array.isArray(n)){var r=[];return n.forEach(function(t){void 0!==t&&(null===t?r.push(Ko(e)):r.push(Ko(e)+"="+Ko(t)))}),r.join("&")}return Ko(e)+"="+Ko(n)}).filter(function(t){return t.length>0}).join("&"):null;return e?"?"+e:""}var Qo=/\/?$/;function Yo(t,e,n,r){var o=r&&r.options.stringifyQuery,i=e.query||{};try{i=Zo(i)}catch(t){}var a={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:i,params:e.params||{},fullPath:ni(e,o),matched:t?ei(t):[]};return n&&(a.redirectedFrom=ni(n,o)),Object.freeze(a)}function Zo(t){if(Array.isArray(t))return t.map(Zo);if(t&&"object"==typeof t){var e={};for(var n in t)e[n]=Zo(t[n]);return e}return t}var ti=Yo(null,{path:"/"});function ei(t){for(var e=[];t;)e.unshift(t),t=t.parent;return e}function ni(t,e){var n=t.path,r=t.query;void 0===r&&(r={});var o=t.hash;return void 0===o&&(o=""),(n||"/")+(e||Jo)(r)+o}function ri(t,e){return e===ti?t===e:!!e&&(t.path&&e.path?t.path.replace(Qo,"")===e.path.replace(Qo,"")&&t.hash===e.hash&&oi(t.query,e.query):!(!t.name||!e.name)&&(t.name===e.name&&t.hash===e.hash&&oi(t.query,e.query)&&oi(t.params,e.params)))}function oi(t,e){if(void 0===t&&(t={}),void 0===e&&(e={}),!t||!e)return t===e;var n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&n.every(function(n){var r=t[n],o=e[n];return"object"==typeof r&&"object"==typeof o?oi(r,o):String(r)===String(o)})}function ii(t,e,n){var r=t.charAt(0);if("/"===r)return t;if("?"===r||"#"===r)return e+t;var o=e.split("/");n&&o[o.length-1]||o.pop();for(var i=t.replace(/^\//,"").split("/"),a=0;a<i.length;a++){var s=i[a];".."===s?o.pop():"."!==s&&o.push(s)}return""!==o[0]&&o.unshift(""),o.join("/")}function ai(t){return t.replace(/\/\//g,"/")}var si=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},ci=$i,ui=hi,li=function(t,e){return mi(hi(t,e))},fi=mi,pi=wi,di=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function hi(t,e){for(var n,r=[],o=0,i=0,a="",s=e&&e.delimiter||"/";null!=(n=di.exec(t));){var c=n[0],u=n[1],l=n.index;if(a+=t.slice(i,l),i=l+c.length,u)a+=u[1];else{var f=t[i],p=n[2],d=n[3],h=n[4],v=n[5],m=n[6],y=n[7];a&&(r.push(a),a="");var g=null!=p&&null!=f&&f!==p,b="+"===m||"*"===m,_="?"===m||"*"===m,w=n[2]||s,$=h||v;r.push({name:d||o++,prefix:p||"",delimiter:w,optional:_,repeat:b,partial:g,asterisk:!!y,pattern:$?gi($):y?".*":"[^"+yi(w)+"]+?"})}}return i<t.length&&(a+=t.substr(i)),a&&r.push(a),r}function vi(t){return encodeURI(t).replace(/[\/?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function mi(t){for(var e=new Array(t.length),n=0;n<t.length;n++)"object"==typeof t[n]&&(e[n]=new RegExp("^(?:"+t[n].pattern+")$"));return function(n,r){for(var o="",i=n||{},a=(r||{}).pretty?vi:encodeURIComponent,s=0;s<t.length;s++){var c=t[s];if("string"!=typeof c){var u,l=i[c.name];if(null==l){if(c.optional){c.partial&&(o+=c.prefix);continue}throw new TypeError('Expected "'+c.name+'" to be defined')}if(si(l)){if(!c.repeat)throw new TypeError('Expected "'+c.name+'" to not repeat, but received `'+JSON.stringify(l)+"`");if(0===l.length){if(c.optional)continue;throw new TypeError('Expected "'+c.name+'" to not be empty')}for(var f=0;f<l.length;f++){if(u=a(l[f]),!e[s].test(u))throw new TypeError('Expected all "'+c.name+'" to match "'+c.pattern+'", but received `'+JSON.stringify(u)+"`");o+=(0===f?c.prefix:c.delimiter)+u}}else{if(u=c.asterisk?encodeURI(l).replace(/[?#]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()}):a(l),!e[s].test(u))throw new TypeError('Expected "'+c.name+'" to match "'+c.pattern+'", but received "'+u+'"');o+=c.prefix+u}}else o+=c}return o}}function yi(t){return t.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function gi(t){return t.replace(/([=!:$\/()])/g,"\\$1")}function bi(t,e){return t.keys=e,t}function _i(t){return t.sensitive?"":"i"}function wi(t,e,n){si(e)||(n=e||n,e=[]);for(var r=(n=n||{}).strict,o=!1!==n.end,i="",a=0;a<t.length;a++){var s=t[a];if("string"==typeof s)i+=yi(s);else{var c=yi(s.prefix),u="(?:"+s.pattern+")";e.push(s),s.repeat&&(u+="(?:"+c+u+")*"),i+=u=s.optional?s.partial?c+"("+u+")?":"(?:"+c+"("+u+"))?":c+"("+u+")"}}var l=yi(n.delimiter||"/"),f=i.slice(-l.length)===l;return r||(i=(f?i.slice(0,-l.length):i)+"(?:"+l+"(?=$))?"),i+=o?"$":r&&f?"":"(?="+l+"|$)",bi(new RegExp("^"+i,_i(n)),e)}function $i(t,e,n){return si(e)||(n=e||n,e=[]),n=n||{},t instanceof RegExp?function(t,e){var n=t.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)e.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return bi(t,e)}(t,e):si(t)?function(t,e,n){for(var r=[],o=0;o<t.length;o++)r.push($i(t[o],e,n).source);return bi(new RegExp("(?:"+r.join("|")+")",_i(n)),e)}(t,e,n):function(t,e,n){return wi(hi(t,n),e,n)}(t,e,n)}ci.parse=ui,ci.compile=li,ci.tokensToFunction=fi,ci.tokensToRegExp=pi;var Ci=Object.create(null);function xi(t,e,n){e=e||{};try{var r=Ci[t]||(Ci[t]=ci.compile(t));return e.pathMatch&&(e[0]=e.pathMatch),r(e,{pretty:!0})}catch(t){return""}finally{delete e[0]}}function ki(t,e,n,r){var o="string"==typeof t?{path:t}:t;if(o._normalized)return o;if(o.name)return qo({},t);if(!o.path&&o.params&&e){(o=qo({},o))._normalized=!0;var i=qo(qo({},e.params),o.params);if(e.name)o.name=e.name,o.params=i;else if(e.matched.length){var a=e.matched[e.matched.length-1].path;o.path=xi(a,i,e.path)}else 0;return o}var s=function(t){var e="",n="",r=t.indexOf("#");r>=0&&(e=t.slice(r),t=t.slice(0,r));var o=t.indexOf("?");return o>=0&&(n=t.slice(o+1),t=t.slice(0,o)),{path:t,query:n,hash:e}}(o.path||""),c=e&&e.path||"/",u=s.path?ii(s.path,c,n||o.append):c,l=function(t,e,n){void 0===e&&(e={});var r,o=n||Go;try{r=o(t||"")}catch(t){r={}}for(var i in e)r[i]=e[i];return r}(s.query,o.query,r&&r.options.parseQuery),f=o.hash||s.hash;return f&&"#"!==f.charAt(0)&&(f="#"+f),{_normalized:!0,path:u,query:l,hash:f}}var Oi,Ai=[String,Object],Si=[String,Array],Ei=function(){},Ti={name:"RouterLink",props:{to:{type:Ai,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,exactActiveClass:String,event:{type:Si,default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,o=n.resolve(this.to,r,this.append),i=o.location,a=o.route,s=o.href,c={},u=n.options.linkActiveClass,l=n.options.linkExactActiveClass,f=null==u?"router-link-active":u,p=null==l?"router-link-exact-active":l,d=null==this.activeClass?f:this.activeClass,h=null==this.exactActiveClass?p:this.exactActiveClass,v=a.redirectedFrom?Yo(null,ki(a.redirectedFrom),null,n):a;c[h]=ri(r,v),c[d]=this.exact?c[h]:function(t,e){return 0===t.path.replace(Qo,"/").indexOf(e.path.replace(Qo,"/"))&&(!e.hash||t.hash===e.hash)&&function(t,e){for(var n in e)if(!(n in t))return!1;return!0}(t.query,e.query)}(r,v);var m=function(t){ji(t)&&(e.replace?n.replace(i,Ei):n.push(i,Ei))},y={click:ji};Array.isArray(this.event)?this.event.forEach(function(t){y[t]=m}):y[this.event]=m;var g={class:c},b=!this.$scopedSlots.$hasNormal&&this.$scopedSlots.default&&this.$scopedSlots.default({href:s,route:a,navigate:m,isActive:c[d],isExactActive:c[h]});if(b){if(1===b.length)return b[0];if(b.length>1||!b.length)return 0===b.length?t():t("span",{},b)}if("a"===this.tag)g.on=y,g.attrs={href:s};else{var _=function t(e){if(e)for(var n,r=0;r<e.length;r++){if("a"===(n=e[r]).tag)return n;if(n.children&&(n=t(n.children)))return n}}(this.$slots.default);if(_){_.isStatic=!1;var w=_.data=qo({},_.data);for(var $ in w.on=w.on||{},w.on){var C=w.on[$];$ in y&&(w.on[$]=Array.isArray(C)?C:[C])}for(var x in y)x in w.on?w.on[x].push(y[x]):w.on[x]=m;(_.data.attrs=qo({},_.data.attrs)).href=s}else g.on=y}return t(this.tag,g,this.$slots.default)}};function ji(t){if(!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||t.defaultPrevented||void 0!==t.button&&0!==t.button)){if(t.currentTarget&&t.currentTarget.getAttribute){var e=t.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(e))return}return t.preventDefault&&t.preventDefault(),!0}}var Pi="undefined"!=typeof window;function Ii(t,e,n,r){var o=e||[],i=n||Object.create(null),a=r||Object.create(null);t.forEach(function(t){!function t(e,n,r,o,i,a){var s=o.path;var c=o.name;0;var u=o.pathToRegexpOptions||{};var l=function(t,e,n){n||(t=t.replace(/\/$/,""));if("/"===t[0])return t;if(null==e)return t;return ai(e.path+"/"+t)}(s,i,u.strict);"boolean"==typeof o.caseSensitive&&(u.sensitive=o.caseSensitive);var f={path:l,regex:Ri(l,u),components:o.components||{default:o.component},instances:{},name:c,parent:i,matchAs:a,redirect:o.redirect,beforeEnter:o.beforeEnter,meta:o.meta||{},props:null==o.props?{}:o.components?o.props:{default:o.props}};o.children&&o.children.forEach(function(o){var i=a?ai(a+"/"+o.path):void 0;t(e,n,r,o,f,i)});n[f.path]||(e.push(f.path),n[f.path]=f);if(void 0!==o.alias)for(var p=Array.isArray(o.alias)?o.alias:[o.alias],d=0;d<p.length;++d){0;var h={path:p[d],children:o.children};t(e,n,r,h,i,f.path||"/")}c&&(r[c]||(r[c]=f))}(o,i,a,t)});for(var s=0,c=o.length;s<c;s++)"*"===o[s]&&(o.push(o.splice(s,1)[0]),c--,s--);return{pathList:o,pathMap:i,nameMap:a}}function Ri(t,e){return ci(t,[],e)}function Li(t,e){var n=Ii(t),r=n.pathList,o=n.pathMap,i=n.nameMap;function a(t,n,a){var s=ki(t,n,!1,e),u=s.name;if(u){var l=i[u];if(!l)return c(null,s);var f=l.regex.keys.filter(function(t){return!t.optional}).map(function(t){return t.name});if("object"!=typeof s.params&&(s.params={}),n&&"object"==typeof n.params)for(var p in n.params)!(p in s.params)&&f.indexOf(p)>-1&&(s.params[p]=n.params[p]);return s.path=xi(l.path,s.params),c(l,s,a)}if(s.path){s.params={};for(var d=0;d<r.length;d++){var h=r[d],v=o[h];if(Mi(v.regex,s.path,s.params))return c(v,s,a)}}return c(null,s)}function s(t,n){var r=t.redirect,o="function"==typeof r?r(Yo(t,n,null,e)):r;if("string"==typeof o&&(o={path:o}),!o||"object"!=typeof o)return c(null,n);var s=o,u=s.name,l=s.path,f=n.query,p=n.hash,d=n.params;if(f=s.hasOwnProperty("query")?s.query:f,p=s.hasOwnProperty("hash")?s.hash:p,d=s.hasOwnProperty("params")?s.params:d,u){i[u];return a({_normalized:!0,name:u,query:f,hash:p,params:d},void 0,n)}if(l){var h=function(t,e){return ii(t,e.parent?e.parent.path:"/",!0)}(l,t);return a({_normalized:!0,path:xi(h,d),query:f,hash:p},void 0,n)}return c(null,n)}function c(t,n,r){return t&&t.redirect?s(t,r||n):t&&t.matchAs?function(t,e,n){var r=a({_normalized:!0,path:xi(n,e.params)});if(r){var o=r.matched,i=o[o.length-1];return e.params=r.params,c(i,e)}return c(null,e)}(0,n,t.matchAs):Yo(t,n,r,e)}return{match:a,addRoutes:function(t){Ii(t,r,o,i)}}}function Mi(t,e,n){var r=e.match(t);if(!r)return!1;if(!n)return!0;for(var o=1,i=r.length;o<i;++o){var a=t.keys[o-1],s="string"==typeof r[o]?decodeURIComponent(r[o]):r[o];a&&(n[a.name||"pathMatch"]=s)}return!0}var Di=Pi&&window.performance&&window.performance.now?window.performance:Date;function Ni(){return Di.now().toFixed(3)}var Ui=Ni();function Fi(){return Ui}function Bi(t){return Ui=t}var qi=Object.create(null);function Vi(){var t=window.location.protocol+"//"+window.location.host,e=window.location.href.replace(t,"");window.history.replaceState({key:Fi()},"",e),window.addEventListener("popstate",function(t){zi(),t.state&&t.state.key&&Bi(t.state.key)})}function Hi(t,e,n,r){if(t.app){var o=t.options.scrollBehavior;o&&t.app.$nextTick(function(){var i=function(){var t=Fi();if(t)return qi[t]}(),a=o.call(t,e,n,r?i:null);a&&("function"==typeof a.then?a.then(function(t){Ji(t,i)}).catch(function(t){0}):Ji(a,i))})}}function zi(){var t=Fi();t&&(qi[t]={x:window.pageXOffset,y:window.pageYOffset})}function Wi(t){return Xi(t.x)||Xi(t.y)}function Ki(t){return{x:Xi(t.x)?t.x:window.pageXOffset,y:Xi(t.y)?t.y:window.pageYOffset}}function Xi(t){return"number"==typeof t}var Gi=/^#\d/;function Ji(t,e){var n,r="object"==typeof t;if(r&&"string"==typeof t.selector){var o=Gi.test(t.selector)?document.getElementById(t.selector.slice(1)):document.querySelector(t.selector);if(o){var i=t.offset&&"object"==typeof t.offset?t.offset:{};e=function(t,e){var n=document.documentElement.getBoundingClientRect(),r=t.getBoundingClientRect();return{x:r.left-n.left-e.x,y:r.top-n.top-e.y}}(o,i={x:Xi((n=i).x)?n.x:0,y:Xi(n.y)?n.y:0})}else Wi(t)&&(e=Ki(t))}else r&&Wi(t)&&(e=Ki(t));e&&window.scrollTo(e.x,e.y)}var Qi,Yi=Pi&&((-1===(Qi=window.navigator.userAgent).indexOf("Android 2.")&&-1===Qi.indexOf("Android 4.0")||-1===Qi.indexOf("Mobile Safari")||-1!==Qi.indexOf("Chrome")||-1!==Qi.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history);function Zi(t,e){zi();var n=window.history;try{e?n.replaceState({key:Fi()},"",t):n.pushState({key:Bi(Ni())},"",t)}catch(n){window.location[e?"replace":"assign"](t)}}function ta(t){Zi(t,!0)}function ea(t,e,n){var r=function(o){o>=t.length?n():t[o]?e(t[o],function(){r(o+1)}):r(o+1)};r(0)}function na(t){return function(e,n,r){var o=!1,i=0,a=null;ra(t,function(t,e,n,s){if("function"==typeof t&&void 0===t.cid){o=!0,i++;var c,u=aa(function(e){var o;((o=e).__esModule||ia&&"Module"===o[Symbol.toStringTag])&&(e=e.default),t.resolved="function"==typeof e?e:Oi.extend(e),n.components[s]=e,--i<=0&&r()}),l=aa(function(t){var e="Failed to resolve async component "+s+": "+t;a||(a=Fo(t)?t:new Error(e),r(a))});try{c=t(u,l)}catch(t){l(t)}if(c)if("function"==typeof c.then)c.then(u,l);else{var f=c.component;f&&"function"==typeof f.then&&f.then(u,l)}}}),o||r()}}function ra(t,e){return oa(t.map(function(t){return Object.keys(t.components).map(function(n){return e(t.components[n],t.instances[n],t,n)})}))}function oa(t){return Array.prototype.concat.apply([],t)}var ia="function"==typeof Symbol&&"symbol"==typeof Symbol.toStringTag;function aa(t){var e=!1;return function(){for(var n=[],r=arguments.length;r--;)n[r]=arguments[r];if(!e)return e=!0,t.apply(this,n)}}var sa=function(t){function e(e){t.call(this),this.name=this._name="NavigationDuplicated",this.message='Navigating to current location ("'+e.fullPath+'") is not allowed',Object.defineProperty(this,"stack",{value:(new t).stack,writable:!0,configurable:!0})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e}(Error);sa._name="NavigationDuplicated";var ca=function(t,e){this.router=t,this.base=function(t){if(!t)if(Pi){var e=document.querySelector("base");t=(t=e&&e.getAttribute("href")||"/").replace(/^https?:\/\/[^\/]+/,"")}else t="/";"/"!==t.charAt(0)&&(t="/"+t);return t.replace(/\/$/,"")}(e),this.current=ti,this.pending=null,this.ready=!1,this.readyCbs=[],this.readyErrorCbs=[],this.errorCbs=[]};function ua(t,e,n,r){var o=ra(t,function(t,r,o,i){var a=function(t,e){"function"!=typeof t&&(t=Oi.extend(t));return t.options[e]}(t,e);if(a)return Array.isArray(a)?a.map(function(t){return n(t,r,o,i)}):n(a,r,o,i)});return oa(r?o.reverse():o)}function la(t,e){if(e)return function(){return t.apply(e,arguments)}}ca.prototype.listen=function(t){this.cb=t},ca.prototype.onReady=function(t,e){this.ready?t():(this.readyCbs.push(t),e&&this.readyErrorCbs.push(e))},ca.prototype.onError=function(t){this.errorCbs.push(t)},ca.prototype.transitionTo=function(t,e,n){var r=this,o=this.router.match(t,this.current);this.confirmTransition(o,function(){r.updateRoute(o),e&&e(o),r.ensureURL(),r.ready||(r.ready=!0,r.readyCbs.forEach(function(t){t(o)}))},function(t){n&&n(t),t&&!r.ready&&(r.ready=!0,r.readyErrorCbs.forEach(function(e){e(t)}))})},ca.prototype.confirmTransition=function(t,e,n){var r=this,o=this.current,i=function(t){!Bo(sa,t)&&Fo(t)&&(r.errorCbs.length?r.errorCbs.forEach(function(e){e(t)}):console.error(t)),n&&n(t)};if(ri(t,o)&&t.matched.length===o.matched.length)return this.ensureURL(),i(new sa(t));var a=function(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n<r&&t[n]===e[n];n++);return{updated:e.slice(0,n),activated:e.slice(n),deactivated:t.slice(n)}}(this.current.matched,t.matched),s=a.updated,c=a.deactivated,u=a.activated,l=[].concat(function(t){return ua(t,"beforeRouteLeave",la,!0)}(c),this.router.beforeHooks,function(t){return ua(t,"beforeRouteUpdate",la)}(s),u.map(function(t){return t.beforeEnter}),na(u));this.pending=t;var f=function(e,n){if(r.pending!==t)return i();try{e(t,o,function(t){!1===t||Fo(t)?(r.ensureURL(!0),i(t)):"string"==typeof t||"object"==typeof t&&("string"==typeof t.path||"string"==typeof t.name)?(i(),"object"==typeof t&&t.replace?r.replace(t):r.push(t)):n(t)})}catch(t){i(t)}};ea(l,f,function(){var n=[];ea(function(t,e,n){return ua(t,"beforeRouteEnter",function(t,r,o,i){return function(t,e,n,r,o){return function(i,a,s){return t(i,a,function(t){"function"==typeof t&&r.push(function(){!function t(e,n,r,o){n[r]&&!n[r]._isBeingDestroyed?e(n[r]):o()&&setTimeout(function(){t(e,n,r,o)},16)}(t,e.instances,n,o)}),s(t)})}}(t,o,i,e,n)})}(u,n,function(){return r.current===t}).concat(r.router.resolveHooks),f,function(){if(r.pending!==t)return i();r.pending=null,e(t),r.router.app&&r.router.app.$nextTick(function(){n.forEach(function(t){t()})})})})},ca.prototype.updateRoute=function(t){var e=this.current;this.current=t,this.cb&&this.cb(t),this.router.afterHooks.forEach(function(n){n&&n(t,e)})};var fa=function(t){function e(e,n){var r=this;t.call(this,e,n);var o=e.options.scrollBehavior,i=Yi&&o;i&&Vi();var a=pa(this.base);window.addEventListener("popstate",function(t){var n=r.current,o=pa(r.base);r.current===ti&&o===a||r.transitionTo(o,function(t){i&&Hi(e,t,n,!0)})})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,function(t){Zi(ai(r.base+t.fullPath)),Hi(r.router,t,o,!1),e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,function(t){ta(ai(r.base+t.fullPath)),Hi(r.router,t,o,!1),e&&e(t)},n)},e.prototype.ensureURL=function(t){if(pa(this.base)!==this.current.fullPath){var e=ai(this.base+this.current.fullPath);t?Zi(e):ta(e)}},e.prototype.getCurrentLocation=function(){return pa(this.base)},e}(ca);function pa(t){var e=decodeURI(window.location.pathname);return t&&0===e.indexOf(t)&&(e=e.slice(t.length)),(e||"/")+window.location.search+window.location.hash}var da=function(t){function e(e,n,r){t.call(this,e,n),r&&function(t){var e=pa(t);if(!/^\/#/.test(e))return window.location.replace(ai(t+"/#"+e)),!0}(this.base)||ha()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.setupListeners=function(){var t=this,e=this.router.options.scrollBehavior,n=Yi&&e;n&&Vi(),window.addEventListener(Yi?"popstate":"hashchange",function(){var e=t.current;ha()&&t.transitionTo(va(),function(r){n&&Hi(t.router,r,e,!0),Yi||ga(r.fullPath)})})},e.prototype.push=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,function(t){ya(t.fullPath),Hi(r.router,t,o,!1),e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this,o=this.current;this.transitionTo(t,function(t){ga(t.fullPath),Hi(r.router,t,o,!1),e&&e(t)},n)},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;va()!==e&&(t?ya(e):ga(e))},e.prototype.getCurrentLocation=function(){return va()},e}(ca);function ha(){var t=va();return"/"===t.charAt(0)||(ga("/"+t),!1)}function va(){var t=window.location.href,e=t.indexOf("#");if(e<0)return"";var n=(t=t.slice(e+1)).indexOf("?");if(n<0){var r=t.indexOf("#");t=r>-1?decodeURI(t.slice(0,r))+t.slice(r):decodeURI(t)}else n>-1&&(t=decodeURI(t.slice(0,n))+t.slice(n));return t}function ma(t){var e=window.location.href,n=e.indexOf("#");return(n>=0?e.slice(0,n):e)+"#"+t}function ya(t){Yi?Zi(ma(t)):window.location.hash=t}function ga(t){Yi?ta(ma(t)):window.location.replace(ma(t))}var ba=function(t){function e(e,n){t.call(this,e,n),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index+1).concat(t),r.index++,e&&e(t)},n)},e.prototype.replace=function(t,e,n){var r=this;this.transitionTo(t,function(t){r.stack=r.stack.slice(0,r.index).concat(t),e&&e(t)},n)},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,function(){e.index=n,e.updateRoute(r)},function(t){Bo(sa,t)&&(e.index=n)})}},e.prototype.getCurrentLocation=function(){var t=this.stack[this.stack.length-1];return t?t.fullPath:"/"},e.prototype.ensureURL=function(){},e}(ca),_a=function(t){void 0===t&&(t={}),this.app=null,this.apps=[],this.options=t,this.beforeHooks=[],this.resolveHooks=[],this.afterHooks=[],this.matcher=Li(t.routes||[],this);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Yi&&!1!==t.fallback,this.fallback&&(e="hash"),Pi||(e="abstract"),this.mode=e,e){case"history":this.history=new fa(this,t.base);break;case"hash":this.history=new da(this,t.base,this.fallback);break;case"abstract":this.history=new ba(this,t.base);break;default:0}},wa={currentRoute:{configurable:!0}};function $a(t,e){return t.push(e),function(){var n=t.indexOf(e);n>-1&&t.splice(n,1)}}_a.prototype.match=function(t,e,n){return this.matcher.match(t,e,n)},wa.currentRoute.get=function(){return this.history&&this.history.current},_a.prototype.init=function(t){var e=this;if(this.apps.push(t),t.$once("hook:destroyed",function(){var n=e.apps.indexOf(t);n>-1&&e.apps.splice(n,1),e.app===t&&(e.app=e.apps[0]||null)}),!this.app){this.app=t;var n=this.history;if(n instanceof fa)n.transitionTo(n.getCurrentLocation());else if(n instanceof da){var r=function(){n.setupListeners()};n.transitionTo(n.getCurrentLocation(),r,r)}n.listen(function(t){e.apps.forEach(function(e){e._route=t})})}},_a.prototype.beforeEach=function(t){return $a(this.beforeHooks,t)},_a.prototype.beforeResolve=function(t){return $a(this.resolveHooks,t)},_a.prototype.afterEach=function(t){return $a(this.afterHooks,t)},_a.prototype.onReady=function(t,e){this.history.onReady(t,e)},_a.prototype.onError=function(t){this.history.onError(t)},_a.prototype.push=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise(function(e,n){r.history.push(t,e,n)});this.history.push(t,e,n)},_a.prototype.replace=function(t,e,n){var r=this;if(!e&&!n&&"undefined"!=typeof Promise)return new Promise(function(e,n){r.history.replace(t,e,n)});this.history.replace(t,e,n)},_a.prototype.go=function(t){this.history.go(t)},_a.prototype.back=function(){this.go(-1)},_a.prototype.forward=function(){this.go(1)},_a.prototype.getMatchedComponents=function(t){var e=t?t.matched?t:this.resolve(t).route:this.currentRoute;return e?[].concat.apply([],e.matched.map(function(t){return Object.keys(t.components).map(function(e){return t.components[e]})})):[]},_a.prototype.resolve=function(t,e,n){var r=ki(t,e=e||this.history.current,n,this),o=this.match(r,e),i=o.redirectedFrom||o.fullPath;return{location:r,route:o,href:function(t,e,n){var r="hash"===n?"#"+e:e;return t?ai(t+"/"+r):r}(this.history.base,i,this.mode),normalizedTo:r,resolved:o}},_a.prototype.addRoutes=function(t){this.matcher.addRoutes(t),this.history.current!==ti&&this.history.transitionTo(this.history.getCurrentLocation())},Object.defineProperties(_a.prototype,wa),_a.install=function t(e){if(!t.installed||Oi!==e){t.installed=!0,Oi=e;var n=function(t){return void 0!==t},r=function(t,e){var r=t.$options._parentVnode;n(r)&&n(r=r.data)&&n(r=r.registerRouteInstance)&&r(t,e)};e.mixin({beforeCreate:function(){n(this.$options.router)?(this._routerRoot=this,this._router=this.$options.router,this._router.init(this),e.util.defineReactive(this,"_route",this._router.history.current)):this._routerRoot=this.$parent&&this.$parent._routerRoot||this,r(this,this)},destroyed:function(){r(this)}}),Object.defineProperty(e.prototype,"$router",{get:function(){return this._routerRoot._router}}),Object.defineProperty(e.prototype,"$route",{get:function(){return this._routerRoot._route}}),e.component("RouterView",Vo),e.component("RouterLink",Ti);var o=e.config.optionMergeStrategies;o.beforeRouteEnter=o.beforeRouteLeave=o.beforeRouteUpdate=o.created}},_a.version="3.1.3",Pi&&window.Vue&&window.Vue.use(_a);var Ca=_a;var xa={NotFound:()=>n.e(5).then(n.bind(null,200)),Layout:()=>Promise.all([n.e(0),n.e(2),n.e(3)]).then(n.bind(null,199))},ka={"v-21e4e037":()=>n.e(6).then(n.bind(null,206)),"v-0da4fc7a":()=>n.e(7).then(n.bind(null,205)),"v-213eca54":()=>n.e(8).then(n.bind(null,202)),"v-4988e8a7":()=>n.e(9).then(n.bind(null,201)),"v-ee15f204":()=>n.e(10).then(n.bind(null,207)),"v-184971e7":()=>n.e(11).then(n.bind(null,203))};function Oa(t){const e=Object.create(null);return function(n){return e[n]||(e[n]=t(n))}}const Aa=/-(\w)/g,Sa=Oa(t=>t.replace(Aa,(t,e)=>e?e.toUpperCase():"")),Ea=/\B([A-Z])/g,Ta=Oa(t=>t.replace(Ea,"-$1").toLowerCase()),ja=Oa(t=>t.charAt(0).toUpperCase()+t.slice(1));function Pa(t,e){if(!e)return;if(t(e))return t(e);return e.includes("-")?t(ja(Sa(e))):t(ja(e))||t(Ta(e))}const Ia=Object.assign({},xa,ka),Ra=t=>Ia[t],La=t=>ka[t],Ma=t=>xa[t],Da=t=>Uo.component(t);function Na(t){return Pa(La,t)}function Ua(t){return Pa(Ma,t)}function Fa(t){return Pa(Ra,t)}function Ba(t){return Pa(Da,t)}function qa(...t){return Promise.all(t.filter(t=>t).map(async t=>{if(!Ba(t)&&Fa(t)){const e=await Fa(t)();Uo.component(t,e.default)}}))}function Va(t,e){"undefined"!=typeof window&&window.__VUEPRESS__&&(window.__VUEPRESS__[t]=e)}var Ha={created(){this.$ssrContext&&(this.$ssrContext.title=this.$title,this.$ssrContext.lang=this.$lang,this.$ssrContext.description=this.$page.description||this.$description)},mounted(){this.currentMetaTags=new Set,this.updateMeta()},methods:{updateMeta(){document.title=this.$title,document.documentElement.lang=this.$lang;const t=this.$page.frontmatter.meta||[],e=t.slice(0);0===t.filter(t=>"description"===t.name).length&&e.push({name:"description",content:this.$description});const n=document.querySelectorAll('meta[name="description"]');n.length&&n.forEach(t=>this.currentMetaTags.add(t)),this.currentMetaTags=new Set(za(e,this.currentMetaTags))}},watch:{$page(){this.updateMeta()}},beforeDestroy(){za(null,this.currentMetaTags)}};function za(t,e){if(e&&[...e].forEach(t=>{document.head.removeChild(t)}),t)return t.map(t=>{const e=document.createElement("meta");return Object.keys(t).forEach(n=>{e.setAttribute(n,t[n])}),document.head.appendChild(e),e})}var Wa=n(3),Ka={mounted(){window.addEventListener("scroll",this.onScroll)},methods:{onScroll:n.n(Wa)()(function(){this.setActiveHash()},300),setActiveHash(){const t=[].slice.call(document.querySelectorAll(".sidebar-link")),e=[].slice.call(document.querySelectorAll(".header-anchor")).filter(e=>t.some(t=>t.hash===e.hash)),n=Math.max(window.pageYOffset,document.documentElement.scrollTop,document.body.scrollTop),r=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),o=window.innerHeight+n;for(let t=0;t<e.length;t++){const i=e[t],a=e[t+1],s=0===t&&0===n||n>=i.parentElement.offsetTop+10&&(!a||n<a.parentElement.offsetTop-10),c=decodeURIComponent(this.$route.hash);if(s&&c!==decodeURIComponent(i.hash)){const n=i;if(o===r)for(let n=t+1;n<e.length;n++)if(c===decodeURIComponent(e[n].hash))return;return this.$vuepress.$set("disableScrollBehavior",!0),void this.$router.replace(decodeURIComponent(n.hash),()=>{this.$nextTick(()=>{this.$vuepress.$set("disableScrollBehavior",!1)})})}}}},beforeDestroy(){window.removeEventListener("scroll",this.onScroll)}},Xa=n(2),Ga=n.n(Xa),Ja=[Ha,Ka,{mounted(){Ga.a.configure({showSpinner:!1}),this.$router.beforeEach((t,e,n)=>{t.path===e.path||Uo.component(t.name)||Ga.a.start(),n()}),this.$router.afterEach(()=>{Ga.a.done(),this.isSidebarOpen=!1})}}],Qa={methods:{getLayout:function(){if(this.$page.path){var t=this.$page.frontmatter.layout;return t&&(this.$vuepress.getLayoutAsyncComponent(t)||this.$vuepress.getVueComponent(t))?t:"Layout"}return"NotFound"}},computed:{layout:function(){var t=this.getLayout();return Va("layout",t),Uo.component(t)}}},Ya=n(0),Za=Object(Ya.a)(Qa,function(){var t=this.$createElement;return(this._self._c||t)(this.layout,{tag:"component"})},[],!1,null,null,null).exports;!function(t,e,n){switch(e){case"components":t[e]||(t[e]={}),Object.assign(t[e],n);break;case"mixins":t[e]||(t[e]=[]),t[e].push(...n);break;default:throw new Error("Unknown option name.")}}(Za,"mixins",Ja);const ts=[{name:"v-21e4e037",path:"/documentation/digging-deeper/",component:Za,beforeEnter:(t,e,n)=>{qa("Layout","v-21e4e037").then(n)}},{path:"/documentation/digging-deeper/index.html",redirect:"/documentation/digging-deeper/"},{name:"v-0da4fc7a",path:"/documentation/digging-deeper/the-config-instance.html",component:Za,beforeEnter:(t,e,n)=>{qa("Layout","v-0da4fc7a").then(n)}},{name:"v-213eca54",path:"/documentation/digging-deeper/win32-model.html",component:Za,beforeEnter:(t,e,n)=>{qa("Layout","v-213eca54").then(n)}},{name:"v-4988e8a7",path:"/documentation/getting-started.html",component:Za,beforeEnter:(t,e,n)=>{qa("Layout","v-4988e8a7").then(n)}},{name:"v-ee15f204",path:"/documentation/",component:Za,beforeEnter:(t,e,n)=>{qa("Layout","v-ee15f204").then(n)}},{path:"/documentation/index.html",redirect:"/documentation/"},{name:"v-184971e7",path:"/",component:Za,beforeEnter:(t,e,n)=>{qa("Layout","v-184971e7").then(n)}},{path:"/index.html",redirect:"/"},{path:"*",component:Za}],es={title:"WMI Scripting",description:"WMI Scripting and Querying made easy.",base:"/wmi-scripting/",pages:[{title:"Introduction",frontmatter:{},regularPath:"/documentation/digging-deeper/",relativePath:"documentation/digging-deeper/readme.md",key:"v-21e4e037",path:"/documentation/digging-deeper/"},{title:"The Config Instance",frontmatter:{},regularPath:"/documentation/digging-deeper/the-config-instance.html",relativePath:"documentation/digging-deeper/the-config-instance.md",key:"v-0da4fc7a",path:"/documentation/digging-deeper/the-config-instance.html",headers:[{level:2,title:"Defaults",slug:"defaults"},{level:2,title:"Config Methods",slug:"config-methods"},{level:3,title:"instance",slug:"instance"},{level:3,title:"newInstance",slug:"newinstance"},{level:3,title:"getConnection",slug:"getconnection"},{level:3,title:"addConnection",slug:"addconnection"},{level:3,title:"setDefaultConnection",slug:"setdefaultconnection"},{level:3,title:"getDefaultConnectionName",slug:"getdefaultconnectionname"},{level:3,title:"getDefaultConnection",slug:"getdefaultconnection"}]},{title:"Win32Model",frontmatter:{},regularPath:"/documentation/digging-deeper/win32-model.html",relativePath:"documentation/digging-deeper/win32-model.md",key:"v-213eca54",path:"/documentation/digging-deeper/win32-model.html",headers:[{level:2,title:"Example Composition",slug:"example-composition"},{level:2,title:"Properties and Attributes",slug:"properties-and-attributes"},{level:3,title:"$connection",slug:"connection"},{level:3,title:"$wmiclassname",slug:"wmi-class-name"},{level:3,title:"$attribute_casting",slug:"attribute-casting"},{level:3,title:"$mergeparentcasting",slug:"merge-parent-casting"},{level:3,title:"$hidden_attributes",slug:"hidden-attributes"},{level:3,title:"$mergeparenthidden_attributes",slug:"merge-parent-hidden-attributes"},{level:3,title:"Calculated Attributes",slug:"calculated-attributes"},{level:2,title:"Methods",slug:"methods"},{level:3,title:"Attribute Methods",slug:"attribute-methods"},{level:3,title:"mapConstant",slug:"mapconstant"},{level:3,title:"query",slug:"query"},{level:3,title:"all",slug:"all"},{level:3,title:"getAttribute",slug:"getattribute"},{level:3,title:"toArray",slug:"toarray"}]},{title:"Getting Started",frontmatter:{},regularPath:"/documentation/getting-started.html",relativePath:"documentation/getting-started.md",key:"v-4988e8a7",path:"/documentation/getting-started.html",headers:[{level:2,title:"Install",slug:"install"},{level:2,title:"Basic Configuration",slug:"basic-configuration"},{level:3,title:"Local Connection",slug:"local-connection"},{level:3,title:"Static call on Win32Model class",slug:"static-call-on-win32model-class"},{level:3,title:"With Scripting Class",slug:"with-scripting-class"}]},{title:"How It Works",frontmatter:{},regularPath:"/documentation/",relativePath:"documentation/readme.md",key:"v-ee15f204",path:"/documentation/",headers:[{level:2,title:"Todo",slug:"todo"}]},{title:"Home",frontmatter:{home:!0,heroImage:"/hero-notext.png",actionText:"Documentation",actionLink:"/documentation/"},regularPath:"/",relativePath:"readme.md",key:"v-184971e7",path:"/",headers:[{level:2,title:"Quick Start",slug:"quick-start"},{level:3,title:"Install",slug:"install"},{level:3,title:"Connections with instantiation",slug:"connections-with-instantiation"},{level:3,title:"Connections with static calls",slug:"connections-with-static-calls"}]}],themeConfig:{bottom:"MIT Licensed | Copyright © 2019-present Joe Springe | This library is not in any way associated with nor endorsed by Microsoft™.",logo:"/wmi-squares.svg",nav:[{text:"Home",link:"/"},{text:"Documentation",link:"/documentation/"},{text:"GitHub",link:"https://github.com/phpwintools/wmi-scripting"}],sidebarDepth:2,sidebar:{"/documentation":[{title:"Quick Start",collapsable:!1,children:[["documentation/","How It Works"],["documentation/getting-started","Getting Started"]]},{title:"Digging Deeper",collapsable:!1,children:[["documentation/digging-deeper/","Introduction"],["documentation/digging-deeper/win32-model","Win32Model"],["documentation/digging-deeper/the-config-instance","The Config Instance"]]}]}}};n(5);Uo.component("Badge",()=>Promise.all([n.e(0),n.e(4)]).then(n.bind(null,204)));n(6);var ns=[{},({Vue:t})=>{t.mixin({computed:{$dataBlock(){return this.$options.__data__block__}}})},{},{}],rs=[];class os{constructor(){this.store=new Uo({data:{state:{}}})}$get(t){return this.store.state[t]}$set(t,e){Uo.set(this.store.state,t,e)}$emit(...t){this.store.$emit(...t)}$on(...t){this.store.$on(...t)}}class is extends os{}Object.assign(is.prototype,{getPageAsyncComponent:Na,getLayoutAsyncComponent:Ua,getAsyncComponent:Fa,getVueComponent:Ba});var as={install(t){const e=new is;t.$vuepress=e,t.prototype.$vuepress=e}};function ss(t,e){return t.options.routes.filter(t=>t.path.toLowerCase()===e.toLowerCase()).length>0}var cs={props:{pageKey:String,slotKey:{type:String,default:"default"}},render(t){const e=this.pageKey||this.$parent.$page.key;return Va("pageKey",e),Uo.component(e)||Uo.component(e,Na(e)),Uo.component(e)?t(e):t("")}},us={functional:!0,props:{slotKey:String,required:!0},render:(t,{props:e,slots:n})=>t("div",{class:[`content__${e.slotKey}`]},n()[e.slotKey])},ls=(n(7),Object(Ya.a)({},function(t,e){var n=e._c;return n("svg",{staticClass:"icon outbound",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",x:"0px",y:"0px",viewBox:"0 0 100 100",width:"15",height:"15"}},[n("path",{attrs:{fill:"currentColor",d:"M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"}}),e._v(" "),n("polygon",{attrs:{fill:"currentColor",points:"45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"}})])},[],!0,null,null,null).exports),fs={functional:!0,render(t,{parent:e,children:n}){if(e._isMounted)return n;e.$once("hook:mounted",()=>{e.$forceUpdate()})}};Uo.config.productionTip=!1,Uo.use(Ca),Uo.use(as),Uo.mixin(function(t,e,n=Uo){!function(t){t.locales&&Object.keys(t.locales).forEach(e=>{t.locales[e].path=e});Object.freeze(t)}(e),n.$vuepress.$set("siteData",e);const r=new(t(n.$vuepress.$get("siteData"))),o=Object.getOwnPropertyDescriptors(Object.getPrototypeOf(r)),i={};return Object.keys(o).reduce((t,e)=>(e.startsWith("$")&&(t[e]=o[e].get),t),i),{computed:i}}(t=>(class{setPage(t){this.__page=t}get $site(){return t}get $themeConfig(){return this.$site.themeConfig}get $frontmatter(){return this.$page.frontmatter}get $localeConfig(){const{locales:t={}}=this.$site;let e,n;for(const r in t)"/"===r?n=t[r]:0===this.$page.path.indexOf(r)&&(e=t[r]);return e||n||{}}get $siteTitle(){return this.$localeConfig.title||this.$site.title||""}get $title(){const t=this.$page,{metaTitle:e}=this.$page.frontmatter;if("string"==typeof e)return e;const n=this.$siteTitle,r=t.frontmatter.home?null:t.frontmatter.title||t.title;return n?r?r+" | "+n:n:r||"VuePress"}get $description(){const t=function(t){if(t){const e=t.filter(t=>"description"===t.name)[0];if(e)return e.content}}(this.$page.frontmatter.meta);return t||(this.$page.frontmatter.description||this.$localeConfig.description||this.$site.description||"")}get $lang(){return this.$page.frontmatter.lang||this.$localeConfig.lang||"en-US"}get $localePath(){return this.$localeConfig.path||"/"}get $themeLocaleConfig(){return(this.$site.themeConfig.locales||{})[this.$localePath]||{}}get $page(){return this.__page?this.__page:function(t,e){for(let n=0;n<t.length;n++){const r=t[n];if(r.path.toLowerCase()===e.toLowerCase())return r}return{path:"",frontmatter:{}}}(this.$site.pages,this.$route.path)}}),es)),Uo.component("Content",cs),Uo.component("ContentSlotsDistributor",us),Uo.component("OutboundLink",ls),Uo.component("ClientOnly",fs),Uo.component("Layout",Ua("Layout")),Uo.component("NotFound",Ua("NotFound")),Uo.prototype.$withBase=function(t){const e=this.$site.base;return"/"===t.charAt(0)?e+t.slice(1):t};const{app:ps,router:ds}=function(t){const e="undefined"!=typeof window&&window.__VUEPRESS_ROUTER_BASE__?window.__VUEPRESS_ROUTER_BASE__:es.routerBase||es.base,n=new Ca({base:e,mode:"history",fallback:!1,routes:ts,scrollBehavior:(t,e,n)=>n||(t.hash?!Uo.$vuepress.$get("disableScrollBehavior")&&{selector:t.hash}:{x:0,y:0})});!function(t){t.beforeEach((e,n,r)=>{if(ss(t,e.path))r();else if(/(\/|\.html)$/.test(e.path))if(/\/$/.test(e.path)){const n=e.path.replace(/\/$/,"")+".html";ss(t,n)?r(n):r()}else r();else{const n=e.path+"/",o=e.path+".html";ss(t,o)?r(o):ss(t,n)?r(n):r()}})}(n);const r={};try{ns.forEach(e=>{"function"==typeof e&&e({Vue:Uo,options:r,router:n,siteData:es,isServer:t})})}catch(t){console.error(t)}return{app:new Uo(Object.assign(r,{router:n,render:t=>t("div",{attrs:{id:"app"}},[t("router-view",{ref:"layout"}),t("div",{class:"global-ui"},rs.map(e=>t(e)))])})),router:n}}(!1);window.__VUEPRESS__={version:"1.0.4",hash:"6c2ab9d"},ds.onReady(()=>{ps.$mount("#app")})}]);
\ No newline at end of file
diff --git a/bin/ci/setup_php.sh b/bin/ci/setup_php.sh
deleted file mode 100644
index e3116bc..0000000
--- a/bin/ci/setup_php.sh
+++ /dev/null
@@ -1,21 +0,0 @@
-echo "Modifying PHP Configuration";
-
-# Set Extension Directory
-echo 'extension_dir="ext"' >> /c/tools/$PHP_DIR/php.ini;
-
-# Add Extensions
-echo "extension=php_openssl.dll" >> /c/tools/$PHP_DIR/php.ini;
-echo "extension=php_curl.dll" >> /c/tools/$PHP_DIR/php.ini;
-echo "extension=php_mbstring.dll" >> /c/tools/$PHP_DIR/php.ini;
-echo "extension=php_pdo_mysql.dll" >> /c/tools/$PHP_DIR/php.ini;
-echo "extension=php_pdo_sqlite.dll" >> /c/tools/$PHP_DIR/php.ini;
-echo "extension=php_fileinfo.dll" >> /c/tools/$PHP_DIR/php.ini;
-echo "extension=php_gd2.dll" >> /c/tools/$PHP_DIR/php.ini;
-echo "extension=php_ftp.dll" >> /c/tools/$PHP_DIR/php.ini;
-echo "extension=php_com_dotnet.dll" >> /c/tools/$PHP_DIR/php.ini;
-
-# Misc
-echo "memory_limit=256M" >> /c/tools/$PHP_DIR/php.ini;
-echo "curl.cainfo=C:\tools\cacert.pem" >> /c/tools/$PHP_DIR/php.ini;
-
-echo "Completed PHP Configuration";
\ No newline at end of file
diff --git a/bin/ci/start_xdebug.sh b/bin/ci/start_xdebug.sh
deleted file mode 100644
index 6b63a1e..0000000
--- a/bin/ci/start_xdebug.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-echo "Starting XDebug";
-
-cp /c/tools/$PHP_DIR/php.ini /c/tools/$PHP_DIR/php.ini.base;
-echo "zend_extension=xdebug.dll" >> /c/tools/$PHP_DIR/php.ini;
-php -v;
diff --git a/bin/ci/stop_xdebug.sh b/bin/ci/stop_xdebug.sh
deleted file mode 100644
index 0e51a95..0000000
--- a/bin/ci/stop_xdebug.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-echo "Stopping XDebug";
-
-cp /c/tools/$PHP_DIR/php.ini.base /c/tools/$PHP_DIR/php.ini;
-php -v;
\ No newline at end of file
diff --git a/composer.json b/composer.json
deleted file mode 100644
index c2fe30c..0000000
--- a/composer.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-    "name": "phpwintools/wmi-scripting",
-    "type": "library",
-    "description": "A PHP package for using WMI tools.",
-    "keywords": [
-        "windows",
-        "management",
-        "instrumentation",
-        "Windows Management Instrumentation",
-        "win",
-        "win32",
-        "wmi",
-        "scripting",
-        "com",
-        "dotnet",
-        "php"
-    ],
-    "license": "MIT",
-    "version": "0.1.1-alpha",
-    "authors": [
-        {
-            "name": "Joe Springe",
-            "email": "jspringe@gmail.com"
-        }
-    ],
-    "require": {
-        "php": "^7.1.3",
-        "ext-json": "*",
-        "ext-com_dotnet": "*",
-        "illuminate/contracts": "^5.8",
-        "symfony/process": "^4.2",
-        "tightenco/collect": "^5.8"
-    },
-    "require-dev": {
-        "fzaninotto/faker": "^1.4",
-        "mockery/mockery": "^1.0",
-        "phpunit/phpunit": "^7.5"
-    },
-    "autoload": {
-        "psr-4": {
-            "PhpWinTools\\": "src/"
-        },
-        "files": [
-            "src/WmiScripting/Support/functions.php"
-        ]
-    },
-    "autoload-dev": {
-        "psr-4": {
-            "Tests\\": "tests/"
-        }
-    }
-}
diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js
deleted file mode 100644
index 81db98b..0000000
--- a/docs/.vuepress/config.js
+++ /dev/null
@@ -1,45 +0,0 @@
-module.exports = {
-    base: `/wmi-scripting/`,
-    title: 'WMI Scripting',
-    description: 'WMI Scripting and Querying made easy.',
-
-    head: [
-        ['link', { rel: 'icon', href: `/wmi-squares.png` }],
-    ],
-
-    markdown: {
-        lineNumbers: true
-    },
-    themeConfig: {
-        bottom: "MIT Licensed | Copyright © 2019-present Joe Springe | This library is not in any way associated with nor endorsed by Microsoft™.",
-        logo: '/wmi-squares.svg',
-        nav: [
-            { text: 'Home', link: '/' },
-            { text: 'Documentation', link: '/documentation/' },
-            { text: 'GitHub', link: 'https://github.com/phpwintools/wmi-scripting' },
-        ],
-        sidebarDepth: 2,
-        sidebar: {
-            '/documentation': [
-                {
-                    title: 'Quick Start',
-                    collapsable: false,
-                    children: [
-                        ['documentation/', 'How It Works'],
-                        ['documentation/getting-started', 'Getting Started'],
-                        // ['documentation/configuration', 'Configuration'],
-                    ]
-                },
-                {
-                    title: 'Digging Deeper',
-                    collapsable: false,
-                    children: [
-                        ['documentation/digging-deeper/', 'Introduction'],
-                        ['documentation/digging-deeper/win32-model', 'Win32Model'],
-                        ['documentation/digging-deeper/the-config-instance', 'The Config Instance'],
-                    ]
-                },
-            ],
-        }
-    }
-};
\ No newline at end of file
diff --git a/docs/.vuepress/dist/404.html b/docs/.vuepress/dist/404.html
deleted file mode 100644
index 9148521..0000000
--- a/docs/.vuepress/dist/404.html
+++ /dev/null
@@ -1,17 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width,initial-scale=1">
-    <title>WMI Scripting</title>
-    <meta name="description" content="WMI Scripting in PHP made easy.">
-    <link rel="icon" href="/wmi-scripting/wmi-squares.png">
-    
-    <link rel="preload" href="/wmi-scripting/assets/css/0.styles.3dff6261.css" as="style"><link rel="preload" href="/wmi-scripting/assets/js/app.56813cc6.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/4.2f35b444.js" as="script"><link rel="prefetch" href="/wmi-scripting/assets/js/2.768da08d.js"><link rel="prefetch" href="/wmi-scripting/assets/js/3.9aec9bee.js"><link rel="prefetch" href="/wmi-scripting/assets/js/5.e899ad0e.js"><link rel="prefetch" href="/wmi-scripting/assets/js/6.2b62eeb2.js"><link rel="prefetch" href="/wmi-scripting/assets/js/7.fa96c717.js"><link rel="prefetch" href="/wmi-scripting/assets/js/8.95fe297f.js">
-    <link rel="stylesheet" href="/wmi-scripting/assets/css/0.styles.3dff6261.css">
-  </head>
-  <body>
-    <div id="app" data-server-rendered="true"><div class="theme-container"><div class="theme-default-content"><h1>404</h1> <blockquote>Looks like we've got some broken links.</blockquote> <a href="/wmi-scripting/" class="router-link-active">Take me home.</a></div></div><div class="global-ui"></div></div>
-    <script src="/wmi-scripting/assets/js/app.56813cc6.js" defer></script><script src="/wmi-scripting/assets/js/4.2f35b444.js" defer></script>
-  </body>
-</html>
diff --git a/docs/.vuepress/dist/assets/css/0.styles.3dff6261.css b/docs/.vuepress/dist/assets/css/0.styles.3dff6261.css
deleted file mode 100644
index ae0ad6f..0000000
--- a/docs/.vuepress/dist/assets/css/0.styles.3dff6261.css
+++ /dev/null
@@ -1 +0,0 @@
-#nprogress{pointer-events:none}#nprogress .bar{background:#3eaf7c;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #3eaf7c,0 0 5px #3eaf7c;opacity:1;transform:rotate(3deg) translateY(-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border-color:#3eaf7c transparent transparent #3eaf7c;border-style:solid;border-width:2px;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes nprogress-spinner{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.icon.outbound{color:#aaa;display:inline-block;vertical-align:middle;position:relative;top:-1px}.home{padding:3.6rem 2rem 0;max-width:960px;margin:0 auto;display:block}.home .hero{text-align:center}.home .hero img{max-width:100%;max-height:280px;display:block;margin:3rem auto 1.5rem}.home .hero h1{font-size:3rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.8rem auto}.home .hero .description{max-width:35rem;font-size:1.6rem;line-height:1.3;color:#6a8bad}.home .hero .action-button{display:inline-block;font-size:1.2rem;color:#fff;background-color:#3eaf7c;padding:.8rem 1.6rem;border-radius:4px;transition:background-color .1s ease;box-sizing:border-box;border-bottom:1px solid #389d70}.home .hero .action-button:hover{background-color:#4abf8a}.home .features{border-top:1px solid #eaecef;padding:1.2rem 0;margin-top:2.5rem;display:flex;flex-wrap:wrap;align-items:flex-start;align-content:stretch;justify-content:space-between}.home .feature{flex-grow:1;flex-basis:30%;max-width:30%}.home .feature h2{font-size:1.4rem;font-weight:500;border-bottom:none;padding-bottom:0;color:#3a5169}.home .feature p{color:#4e6e8e}.home .footer{padding:2.5rem;border-top:1px solid #eaecef;text-align:center;color:#4e6e8e}@media (max-width:719px){.home .features{flex-direction:column}.home .feature{max-width:100%;padding:0 2.5rem}}@media (max-width:419px){.home{padding-left:1.5rem;padding-right:1.5rem}.home .hero img{max-height:210px;margin:2rem auto 1.2rem}.home .hero h1{font-size:2rem}.home .hero .action,.home .hero .description,.home .hero h1{margin:1.2rem auto}.home .hero .description{font-size:1.2rem}.home .hero .action-button{font-size:1rem;padding:.6rem 1.2rem}.home .feature h2{font-size:1.25rem}}.search-box{display:inline-block;position:relative;margin-right:1rem}.search-box input{cursor:text;width:10rem;height:2rem;color:#4e6e8e;display:inline-block;border:1px solid #cfd4db;border-radius:2rem;font-size:.9rem;line-height:2rem;padding:0 .5rem 0 2rem;outline:none;transition:all .2s ease;background:#fff url(/wmi-scripting/assets/img/search.83621669.svg) .6rem .5rem no-repeat;background-size:1rem}.search-box input:focus{cursor:auto;border-color:#3eaf7c}.search-box .suggestions{background:#fff;width:20rem;position:absolute;top:1.5rem;border:1px solid #cfd4db;border-radius:6px;padding:.4rem;list-style-type:none}.search-box .suggestions.align-right{right:0}.search-box .suggestion{line-height:1.4;padding:.4rem .6rem;border-radius:4px;cursor:pointer}.search-box .suggestion a{white-space:normal;color:#5d82a6}.search-box .suggestion a .page-title{font-weight:600}.search-box .suggestion a .header{font-size:.9em;margin-left:.25em}.search-box .suggestion.focused{background-color:#f3f4f5}.search-box .suggestion.focused a{color:#3eaf7c}@media (max-width:959px){.search-box input{cursor:pointer;width:0;border-color:transparent;position:relative}.search-box input:focus{cursor:text;left:0;width:10rem}}@media (-ms-high-contrast:none){.search-box input{height:2rem}}@media (max-width:959px) and (min-width:719px){.search-box .suggestions{left:0}}@media (max-width:719px){.search-box{margin-right:0}.search-box input{left:1rem}.search-box .suggestions{right:0}}@media (max-width:419px){.search-box .suggestions{width:calc(100vw - 4rem)}.search-box input:focus{width:8rem}}.sidebar-button{cursor:pointer;display:none;width:1.25rem;height:1.25rem;position:absolute;padding:.6rem;top:.6rem;left:1rem}.sidebar-button .icon{display:block;width:1.25rem;height:1.25rem}@media (max-width:719px){.sidebar-button{display:block}}.dropdown-enter,.dropdown-leave-to{height:0!important}.dropdown-wrapper{cursor:pointer}.dropdown-wrapper .dropdown-title{display:block}.dropdown-wrapper .dropdown-title:hover{border-color:transparent}.dropdown-wrapper .dropdown-title .arrow{vertical-align:middle;margin-top:-1px;margin-left:.4rem}.dropdown-wrapper .nav-dropdown .dropdown-item{color:inherit;line-height:1.7rem}.dropdown-wrapper .nav-dropdown .dropdown-item h4{margin:.45rem 0 0;border-top:1px solid #eee;padding:.45rem 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper{padding:0;list-style:none}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem-wrapper .dropdown-subitem{font-size:.9em}.dropdown-wrapper .nav-dropdown .dropdown-item a{display:block;line-height:1.7rem;position:relative;border-bottom:none;font-weight:400;margin-bottom:0;padding:0 1.5rem 0 1.25rem}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active,.dropdown-wrapper .nav-dropdown .dropdown-item a:hover{color:#3eaf7c}.dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{content:"";width:0;height:0;border-left:5px solid #3eaf7c;border-top:3px solid transparent;border-bottom:3px solid transparent;position:absolute;top:calc(50% - 2px);left:9px}.dropdown-wrapper .nav-dropdown .dropdown-item:first-child h4{margin-top:0;padding-top:0;border-top:0}@media (max-width:719px){.dropdown-wrapper.open .dropdown-title{margin-bottom:.5rem}.dropdown-wrapper .nav-dropdown{transition:height .1s ease-out;overflow:hidden}.dropdown-wrapper .nav-dropdown .dropdown-item h4{border-top:0;margin-top:0;padding-top:0}.dropdown-wrapper .nav-dropdown .dropdown-item>a,.dropdown-wrapper .nav-dropdown .dropdown-item h4{font-size:15px;line-height:2rem}.dropdown-wrapper .nav-dropdown .dropdown-item .dropdown-subitem{font-size:14px;padding-left:1rem}}@media (min-width:719px){.dropdown-wrapper{height:1.8rem}.dropdown-wrapper:hover .nav-dropdown{display:block!important}.dropdown-wrapper .dropdown-title .arrow{border-left:4px solid transparent;border-right:4px solid transparent;border-top:6px solid #ccc;border-bottom:0}.dropdown-wrapper .nav-dropdown{display:none;height:auto!important;box-sizing:border-box;max-height:calc(100vh - 2.7rem);overflow-y:auto;position:absolute;top:100%;right:0;background-color:#fff;padding:.6rem 0;border:1px solid;border-color:#ddd #ddd #ccc;text-align:left;border-radius:.25rem;white-space:nowrap;margin:0}}.nav-links{display:inline-block}.nav-links a{line-height:1.4rem;color:inherit}.nav-links a.router-link-active,.nav-links a:hover{color:#3eaf7c}.nav-links .nav-item{position:relative;display:inline-block;margin-left:1.5rem;line-height:2rem}.nav-links .nav-item:first-child{margin-left:0}.nav-links .repo-link{margin-left:1.5rem}@media (max-width:719px){.nav-links .nav-item,.nav-links .repo-link{margin-left:0}}@media (min-width:719px){.nav-links a.router-link-active,.nav-links a:hover{color:#2c3e50}.nav-item>a:not(.external).router-link-active,.nav-item>a:not(.external):hover{margin-bottom:-2px;border-bottom:2px solid #46bd87}}.navbar{padding:.7rem 1.5rem;line-height:2.2rem}.navbar a,.navbar img,.navbar span{display:inline-block}.navbar .logo{height:2.2rem;min-width:2.2rem;margin-right:.8rem;vertical-align:top}.navbar .site-name{font-size:1.3rem;font-weight:600;color:#2c3e50;position:relative}.navbar .links{padding-left:1.5rem;box-sizing:border-box;background-color:#fff;white-space:nowrap;font-size:.9rem;position:absolute;right:1.5rem;top:.7rem;display:flex}.navbar .links .search-box{flex:0 0 auto;vertical-align:top}@media (max-width:719px){.navbar{padding-left:4rem}.navbar .can-hide{display:none}.navbar .links{padding-left:1.5rem}}.page-edit,.page-nav{max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.page-edit,.page-nav{padding:2rem}}@media (max-width:419px){.page-edit,.page-nav{padding:1.5rem}}.page{padding-bottom:2rem;display:block}.page-edit{padding-top:1rem;padding-bottom:1rem;overflow:auto}.page-edit .edit-link{display:inline-block}.page-edit .edit-link a{color:#4e6e8e;margin-right:.25rem}.page-edit .last-updated{float:right;font-size:.9em}.page-edit .last-updated .prefix{font-weight:500;color:#4e6e8e}.page-edit .last-updated .time{font-weight:400;color:#aaa}.page-nav{padding-top:1rem;padding-bottom:0}.page-nav .inner{min-height:2rem;margin-top:0;border-top:1px solid #eaecef;padding-top:1rem;overflow:auto}.page-nav .next{float:right}@media (max-width:719px){.page-edit .edit-link{margin-bottom:.5rem}.page-edit .last-updated{font-size:.8em;float:none;text-align:left}}.sidebar-group .sidebar-group{padding-left:.5em}.sidebar-group:not(.collapsable) .sidebar-heading:not(.clickable){cursor:auto;color:inherit}.sidebar-group.is-sub-group{padding-left:0}.sidebar-group.is-sub-group>.sidebar-heading{font-size:.95em;line-height:1.4;font-weight:400;padding-left:2rem}.sidebar-group.is-sub-group>.sidebar-heading:not(.clickable){opacity:.5}.sidebar-group.is-sub-group>.sidebar-group-items{padding-left:1rem}.sidebar-group.is-sub-group>.sidebar-group-items>li>.sidebar-link{font-size:.95em;border-left:none}.sidebar-group.depth-2>.sidebar-heading{border-left:none}.sidebar-heading{color:#2c3e50;transition:color .15s ease;cursor:pointer;font-size:1.1em;font-weight:700;padding:.35rem 1.5rem .35rem 1.25rem;width:100%;box-sizing:border-box;margin:0;border-left:.25rem solid transparent}.sidebar-heading.open,.sidebar-heading:hover{color:inherit}.sidebar-heading .arrow{position:relative;top:-.12em;left:.5em}.sidebar-heading.clickable.active{font-weight:600;color:#3eaf7c;border-left-color:#3eaf7c}.sidebar-heading.clickable:hover{color:#3eaf7c}.sidebar-group-items{transition:height .1s ease-out;font-size:.95em;overflow:hidden}.sidebar .sidebar-sub-headers{padding-left:1rem;font-size:.95em}a.sidebar-link{font-size:1em;font-weight:400;display:inline-block;color:#2c3e50;border-left:.25rem solid transparent;padding:.35rem 1rem .35rem 1.25rem;line-height:1.4;width:100%;box-sizing:border-box}a.sidebar-link:hover{color:#3eaf7c}a.sidebar-link.active{font-weight:600;color:#3eaf7c;border-left-color:#3eaf7c}.sidebar-group a.sidebar-link{padding-left:2rem}.sidebar-sub-headers a.sidebar-link{padding-top:.25rem;padding-bottom:.25rem;border-left:none}.sidebar-sub-headers a.sidebar-link.active{font-weight:500}.sidebar ul{padding:0;margin:0;list-style-type:none}.sidebar a{display:inline-block}.sidebar .nav-links{display:none;border-bottom:1px solid #eaecef;padding:.5rem 0 .75rem}.sidebar .nav-links a{font-weight:600}.sidebar .nav-links .nav-item,.sidebar .nav-links .repo-link{display:block;line-height:1.25rem;font-size:1.1em;padding:.5rem 0 .5rem 1.5rem}.sidebar>.sidebar-links{padding:1.5rem 0}.sidebar>.sidebar-links>li>a.sidebar-link{font-size:1.1em;line-height:1.7;font-weight:700}.sidebar>.sidebar-links>li:not(:first-child){margin-top:.75rem}@media (max-width:719px){.sidebar .nav-links{display:block}.sidebar .nav-links .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active:after{top:calc(1rem - 2px)}.sidebar>.sidebar-links{padding:1rem 0}}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}.theme-default-content code{color:#476582;padding:.25rem .5rem;margin:0;font-size:.85em;background-color:rgba(27,31,35,.05);border-radius:3px}.theme-default-content code .token.deleted{color:#ec5975}.theme-default-content code .token.inserted{color:#3eaf7c}.theme-default-content pre,.theme-default-content pre[class*=language-]{line-height:1.4;padding:1.25rem 1.5rem;margin:.85rem 0;background-color:#282c34;border-radius:6px;overflow:auto}.theme-default-content pre[class*=language-] code,.theme-default-content pre code{color:#fff;padding:0;background-color:transparent;border-radius:0}div[class*=language-]{position:relative;background-color:#282c34;border-radius:6px}div[class*=language-] .highlight-lines{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding-top:1.3rem;position:absolute;top:0;left:0;width:100%;line-height:1.4}div[class*=language-] .highlight-lines .highlighted{background-color:rgba(0,0,0,.66)}div[class*=language-] pre,div[class*=language-] pre[class*=language-]{background:transparent;position:relative;z-index:1}div[class*=language-]:before{position:absolute;z-index:3;top:.8em;right:1em;font-size:.75rem;color:hsla(0,0%,100%,.4)}div[class*=language-]:not(.line-numbers-mode) .line-numbers-wrapper{display:none}div[class*=language-].line-numbers-mode .highlight-lines .highlighted{position:relative}div[class*=language-].line-numbers-mode .highlight-lines .highlighted:before{content:" ";position:absolute;z-index:3;left:0;top:0;display:block;width:3.5rem;height:100%;background-color:rgba(0,0,0,.66)}div[class*=language-].line-numbers-mode pre{padding-left:4.5rem;vertical-align:middle}div[class*=language-].line-numbers-mode .line-numbers-wrapper{position:absolute;top:0;width:3.5rem;text-align:center;color:hsla(0,0%,100%,.3);padding:1.25rem 0;line-height:1.4}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number,div[class*=language-].line-numbers-mode .line-numbers-wrapper br{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}div[class*=language-].line-numbers-mode .line-numbers-wrapper .line-number{position:relative;z-index:4;font-size:.85em}div[class*=language-].line-numbers-mode:after{content:"";position:absolute;z-index:2;top:0;left:0;width:3.5rem;height:100%;border-radius:6px 0 0 6px;border-right:1px solid rgba(0,0,0,.66);background-color:#282c34}div[class~=language-js]:before{content:"js"}div[class~=language-ts]:before{content:"ts"}div[class~=language-html]:before{content:"html"}div[class~=language-md]:before{content:"md"}div[class~=language-vue]:before{content:"vue"}div[class~=language-css]:before{content:"css"}div[class~=language-sass]:before{content:"sass"}div[class~=language-scss]:before{content:"scss"}div[class~=language-less]:before{content:"less"}div[class~=language-stylus]:before{content:"stylus"}div[class~=language-go]:before{content:"go"}div[class~=language-java]:before{content:"java"}div[class~=language-c]:before{content:"c"}div[class~=language-sh]:before{content:"sh"}div[class~=language-yaml]:before{content:"yaml"}div[class~=language-py]:before{content:"py"}div[class~=language-docker]:before{content:"docker"}div[class~=language-dockerfile]:before{content:"dockerfile"}div[class~=language-makefile]:before{content:"makefile"}div[class~=language-javascript]:before{content:"js"}div[class~=language-typescript]:before{content:"ts"}div[class~=language-markup]:before{content:"html"}div[class~=language-markdown]:before{content:"md"}div[class~=language-json]:before{content:"json"}div[class~=language-ruby]:before{content:"rb"}div[class~=language-python]:before{content:"py"}div[class~=language-bash]:before{content:"sh"}div[class~=language-php]:before{content:"php"}.custom-block .custom-block-title{font-weight:600;margin-bottom:-.4rem}.custom-block.danger,.custom-block.tip,.custom-block.warning{padding:.1rem 1.5rem;border-left-width:.5rem;border-left-style:solid;margin:1rem 0}.custom-block.tip{background-color:#f3f5f7;border-color:#42b983}.custom-block.warning{background-color:rgba(255,229,100,.3);border-color:#e7c000;color:#6b5900}.custom-block.warning .custom-block-title{color:#b29400}.custom-block.warning a{color:#2c3e50}.custom-block.danger{background-color:#ffe6e6;border-color:#c00;color:#4d0000}.custom-block.danger .custom-block-title{color:#900}.custom-block.danger a{color:#2c3e50}.arrow{display:inline-block;width:0;height:0}.arrow.up{border-bottom:6px solid #ccc}.arrow.down,.arrow.up{border-left:4px solid transparent;border-right:4px solid transparent}.arrow.down{border-top:6px solid #ccc}.arrow.right{border-left:6px solid #ccc}.arrow.left,.arrow.right{border-top:4px solid transparent;border-bottom:4px solid transparent}.arrow.left{border-right:6px solid #ccc}.theme-default-content:not(.custom){max-width:740px;margin:0 auto;padding:2rem 2.5rem}@media (max-width:959px){.theme-default-content:not(.custom){padding:2rem}}@media (max-width:419px){.theme-default-content:not(.custom){padding:1.5rem}}.table-of-contents .badge{vertical-align:middle}body,html{padding:0;margin:0;background-color:#fff}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;color:#2c3e50}.page{padding-left:20rem}.navbar{z-index:20;right:0;height:3.6rem;background-color:#fff;box-sizing:border-box;border-bottom:1px solid #eaecef}.navbar,.sidebar-mask{position:fixed;top:0;left:0}.sidebar-mask{z-index:9;width:100vw;height:100vh;display:none}.sidebar{font-size:16px;background-color:#fff;width:20rem;position:fixed;z-index:10;margin:0;top:3.6rem;left:0;bottom:0;box-sizing:border-box;border-right:1px solid #eaecef;overflow-y:auto}.theme-default-content:not(.custom)>:first-child{margin-top:3.6rem}.theme-default-content:not(.custom) a:hover{text-decoration:underline}.theme-default-content:not(.custom) p.demo{padding:1rem 1.5rem;border:1px solid #ddd;border-radius:4px}.theme-default-content:not(.custom) img{max-width:100%}.theme-default-content.custom{padding:0;margin:0}.theme-default-content.custom img{max-width:100%}a{font-weight:500;text-decoration:none}a,p a code{color:#3eaf7c}p a code{font-weight:400}kbd{background:#eee;border:.15rem solid #ddd;border-bottom:.25rem solid #ddd;border-radius:.15rem;padding:0 .15em}blockquote{font-size:1rem;color:#999;border-left:.2rem solid #dfe2e5;margin:1rem 0;padding:.25rem 0 .25rem 1rem}blockquote>p{margin:0}ol,ul{padding-left:1.2em}strong{font-weight:600}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.25}.theme-default-content:not(.custom)>h1,.theme-default-content:not(.custom)>h2,.theme-default-content:not(.custom)>h3,.theme-default-content:not(.custom)>h4,.theme-default-content:not(.custom)>h5,.theme-default-content:not(.custom)>h6{margin-top:-3.1rem;padding-top:4.6rem;margin-bottom:0}.theme-default-content:not(.custom)>h1:first-child,.theme-default-content:not(.custom)>h2:first-child,.theme-default-content:not(.custom)>h3:first-child,.theme-default-content:not(.custom)>h4:first-child,.theme-default-content:not(.custom)>h5:first-child,.theme-default-content:not(.custom)>h6:first-child{margin-top:-1.5rem;margin-bottom:1rem}.theme-default-content:not(.custom)>h1:first-child+.custom-block,.theme-default-content:not(.custom)>h1:first-child+p,.theme-default-content:not(.custom)>h1:first-child+pre,.theme-default-content:not(.custom)>h2:first-child+.custom-block,.theme-default-content:not(.custom)>h2:first-child+p,.theme-default-content:not(.custom)>h2:first-child+pre,.theme-default-content:not(.custom)>h3:first-child+.custom-block,.theme-default-content:not(.custom)>h3:first-child+p,.theme-default-content:not(.custom)>h3:first-child+pre,.theme-default-content:not(.custom)>h4:first-child+.custom-block,.theme-default-content:not(.custom)>h4:first-child+p,.theme-default-content:not(.custom)>h4:first-child+pre,.theme-default-content:not(.custom)>h5:first-child+.custom-block,.theme-default-content:not(.custom)>h5:first-child+p,.theme-default-content:not(.custom)>h5:first-child+pre,.theme-default-content:not(.custom)>h6:first-child+.custom-block,.theme-default-content:not(.custom)>h6:first-child+p,.theme-default-content:not(.custom)>h6:first-child+pre{margin-top:2rem}h1:hover .header-anchor,h2:hover .header-anchor,h3:hover .header-anchor,h4:hover .header-anchor,h5:hover .header-anchor,h6:hover .header-anchor{opacity:1}h1{font-size:2.2rem}h2{font-size:1.65rem;padding-bottom:.3rem;border-bottom:1px solid #eaecef}h3{font-size:1.35rem}a.header-anchor{font-size:.85em;float:left;margin-left:-.87em;padding-right:.23em;margin-top:.125em;opacity:0}a.header-anchor:hover{text-decoration:none}.line-number,code,kbd{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}ol,p,ul{line-height:1.7}hr{border:0;border-top:1px solid #eaecef}table{border-collapse:collapse;margin:1rem 0;display:block;overflow-x:auto}tr{border-top:1px solid #dfe2e5}tr:nth-child(2n){background-color:#f6f8fa}td,th{border:1px solid #dfe2e5;padding:.6em 1em}.theme-container.sidebar-open .sidebar-mask{display:block}.theme-container.no-navbar .theme-default-content:not(.custom)>h1,.theme-container.no-navbar h2,.theme-container.no-navbar h3,.theme-container.no-navbar h4,.theme-container.no-navbar h5,.theme-container.no-navbar h6{margin-top:1.5rem;padding-top:0}.theme-container.no-navbar .sidebar{top:0}@media (min-width:720px){.theme-container.no-sidebar .sidebar{display:none}.theme-container.no-sidebar .page{padding-left:0}}@media (max-width:959px){.sidebar{font-size:15px;width:16.4rem}.page{padding-left:16.4rem}}@media (max-width:719px){.sidebar{top:0;padding-top:3.6rem;transform:translateX(-100%);transition:transform .2s ease}.page{padding-left:0}.theme-container.sidebar-open .sidebar{transform:translateX(0)}.theme-container.no-navbar .sidebar{padding-top:0}}@media (max-width:419px){h1{font-size:1.9rem}.theme-default-content div[class*=language-]{margin:.85rem -1.5rem;border-radius:0}}.badge[data-v-c13ee5b0]{display:inline-block;font-size:14px;height:18px;line-height:18px;border-radius:3px;padding:0 6px;color:#fff}.badge.green[data-v-c13ee5b0],.badge.tip[data-v-c13ee5b0],.badge[data-v-c13ee5b0]{background-color:#42b983}.badge.error[data-v-c13ee5b0]{background-color:#da5961}.badge.warn[data-v-c13ee5b0],.badge.warning[data-v-c13ee5b0],.badge.yellow[data-v-c13ee5b0]{background-color:#e7c000}.badge+.badge[data-v-c13ee5b0]{margin-left:5px}
\ No newline at end of file
diff --git a/docs/.vuepress/dist/assets/js/2.768da08d.js b/docs/.vuepress/dist/assets/js/2.768da08d.js
deleted file mode 100644
index aa8e3f6..0000000
--- a/docs/.vuepress/dist/assets/js/2.768da08d.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[2],[,,,,,,,,,,function(t,e,n){var r=n(41)("wks"),i=n(42),o=n(12).Symbol,a="function"==typeof o;(t.exports=function(t){return r[t]||(r[t]=a&&o[t]||(a?o:i)("Symbol."+t))}).store=r},function(t,e,n){var r=n(12),i=n(28),o=n(15),a=n(25),s=n(45),u=function(t,e,n){var c,l,f,p,h=t&u.F,d=t&u.G,v=t&u.S,g=t&u.P,m=t&u.B,y=d?r:v?r[e]||(r[e]={}):(r[e]||{}).prototype,b=d?i:i[e]||(i[e]={}),x=b.prototype||(b.prototype={});for(c in d&&(n=e),n)f=((l=!h&&y&&void 0!==y[c])?y:n)[c],p=m&&l?s(f,r):g&&"function"==typeof f?s(Function.call,f):f,y&&a(y,c,f,t&u.U),b[c]!=f&&o(b,c,p),g&&x[c]!=f&&(x[c]=f)};r.core=i,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e,n){var r=n(94)("wks"),i=n(95),o=n(21).Symbol,a="function"==typeof o;(t.exports=function(t){return r[t]||(r[t]=a&&o[t]||(a?o:i)("Symbol."+t))}).store=r},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var r=n(24),i=n(43);t.exports=n(18)?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e,n){var r=n(17);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e,n){t.exports=!n(14)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e,n){"use strict";n.d(e,"d",function(){return r}),n.d(e,"a",function(){return o}),n.d(e,"i",function(){return a}),n.d(e,"f",function(){return u}),n.d(e,"g",function(){return c}),n.d(e,"h",function(){return l}),n.d(e,"b",function(){return f}),n.d(e,"e",function(){return p}),n.d(e,"k",function(){return h}),n.d(e,"l",function(){return d}),n.d(e,"c",function(){return v}),n.d(e,"j",function(){return g});const r=/#.*$/,i=/\.(md|html)$/,o=/\/$/,a=/^(https?:|mailto:|tel:|[a-zA-Z]{4,}:)/;function s(t){return decodeURI(t).replace(r,"").replace(i,"")}function u(t){return a.test(t)}function c(t){return/^mailto:/.test(t)}function l(t){return/^tel:/.test(t)}function f(t){if(u(t))return t;const e=t.match(r),n=e?e[0]:"",i=s(t);return o.test(i)?t:i+".html"+n}function p(t,e){const n=t.hash,i=function(t){const e=t.match(r);if(e)return e[0]}(e);return(!i||n===i)&&s(t.path)===s(e)}function h(t,e,n){if(u(e))return{type:"external",path:e};n&&(e=function(t,e,n){const r=t.charAt(0);if("/"===r)return t;if("?"===r||"#"===r)return e+t;const i=e.split("/");n&&i[i.length-1]||i.pop();const o=t.replace(/^\//,"").split("/");for(let t=0;t<o.length;t++){const e=o[t];".."===e?i.pop():"."!==e&&i.push(e)}""!==i[0]&&i.unshift("");return i.join("/")}(e,n));const r=s(e);for(let e=0;e<t.length;e++)if(s(t[e].regularPath)===r)return Object.assign({},t[e],{type:"page",path:f(t[e].path)});return console.error(`[vuepress] No matching page found for sidebar item "${e}"`),{}}function d(t,e,n,r){const{pages:i,themeConfig:o}=n,a=r&&o.locales&&o.locales[r]||o;if("auto"===(t.frontmatter.sidebar||a.sidebar||o.sidebar))return function(t){const e=v(t.headers||[]);return[{type:"group",collapsable:!1,title:t.title,path:null,children:e.map(e=>({type:"auto",title:e.title,basePath:t.path,path:t.path+"#"+e.slug,children:e.children||[]}))}]}(t);const s=a.sidebar||o.sidebar;if(s){const{base:t,config:n}=function(t,e){if(Array.isArray(e))return{base:"/",config:e};for(const r in e)if(0===(n=t,/(\.html|\/)$/.test(n)?n:n+"/").indexOf(encodeURI(r)))return{base:r,config:e[r]};var n;return{}}(e,s);return n?n.map(e=>(function t(e,n,r,i=1){if("string"==typeof e)return h(n,e,r);if(Array.isArray(e))return Object.assign(h(n,e[0],r),{title:e[1]});{i>3&&console.error("[vuepress] detected a too deep nested sidebar group.");const o=e.children||[];return 0===o.length&&e.path?Object.assign(h(n,e.path,r),{title:e.title}):{type:"group",path:e.path,title:e.title,sidebarDepth:e.sidebarDepth,children:o.map(e=>t(e,n,r,i+1)),collapsable:!1!==e.collapsable}}})(e,i,t)):[]}return[]}function v(t){let e;return(t=t.map(t=>Object.assign({},t))).forEach(t=>{2===t.level?e=t:e&&(e.children||(e.children=[])).push(t)}),t.filter(t=>2===t.level)}function g(t){return Object.assign(t,{type:t.items&&t.items.length?"links":"link"})}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on  "+t);return t}},function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(t,e){var n=t.exports={version:"2.6.9"};"number"==typeof __e&&(__e=n)},function(t,e){t.exports={}},function(t,e,n){var r=n(16),i=n(72),o=n(74),a=Object.defineProperty;e.f=n(18)?Object.defineProperty:function(t,e,n){if(r(t),e=o(e,!0),r(n),i)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(12),i=n(15),o=n(26),a=n(42)("src"),s=n(107),u=(""+s).split("toString");n(28).inspectSource=function(t){return s.call(t)},(t.exports=function(t,e,n,s){var c="function"==typeof n;c&&(o(n,"name")||i(n,"name",e)),t[e]!==n&&(c&&(o(n,a)||i(n,a,t[e]?""+t[e]:u.join(String(e)))),t===r?t[e]=n:s?t[e]?t[e]=n:i(t,e,n):(delete t[e],i(t,e,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[a]||s.call(this)})},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(37),i=n(54);t.exports=n(39)?function(t,e,n){return r.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},function(t,e){var n=t.exports={version:"2.6.9"};"number"==typeof __e&&(__e=n)},function(t,e,n){var r=n(75),i=n(20);t.exports=function(t){return r(i(t))}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e,n){var r=n(32),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e,n){var r=n(20);t.exports=function(t){return Object(r(t))}},function(t,e,n){"use strict";var r=n(11),i=n(35)(3);r(r.P+r.F*!n(36)([].some,!0),"Array",{some:function(t){return i(this,t,arguments[1])}})},function(t,e,n){var r=n(45),i=n(75),o=n(33),a=n(31),s=n(116);t.exports=function(t,e){var n=1==t,u=2==t,c=3==t,l=4==t,f=6==t,p=5==t||f,h=e||s;return function(e,s,d){for(var v,g,m=o(e),y=i(m),b=r(s,d,3),x=a(y.length),_=0,k=n?h(e,x):u?h(e,0):void 0;x>_;_++)if((p||_ in y)&&(g=b(v=y[_],_,m),t))if(n)k[_]=g;else if(g)switch(t){case 3:return!0;case 5:return v;case 6:return _;case 2:k.push(v)}else if(l)return!1;return f?-1:c||l?l:k}}},function(t,e,n){"use strict";var r=n(14);t.exports=function(t,e){return!!t&&r(function(){e?t.call(null,function(){},1):t.call(null)})}},function(t,e,n){var r=n(38),i=n(144),o=n(145),a=Object.defineProperty;e.f=n(39)?Object.defineProperty:function(t,e,n){if(r(t),e=o(e,!0),r(n),i)try{return a(t,e,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},function(t,e,n){var r=n(53);t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},function(t,e,n){t.exports=!n(88)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},function(t,e,n){var r=n(28),i=n(12),o=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(71)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){t.exports={}},function(t,e,n){var r=n(108);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},function(t,e,n){var r=n(76),i=n(48);t.exports=Object.keys||function(t){return r(t,i)}},function(t,e,n){var r=n(41)("keys"),i=n(42);t.exports=function(t){return r[t]||(r[t]=i(t))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){var r=n(21),i=n(22),o=n(87),a=n(27),s=n(40),u=function(t,e,n){var c,l,f,p=t&u.F,h=t&u.G,d=t&u.S,v=t&u.P,g=t&u.B,m=t&u.W,y=h?i:i[e]||(i[e]={}),b=y.prototype,x=h?r:d?r[e]:(r[e]||{}).prototype;for(c in h&&(n=e),n)(l=!p&&x&&void 0!==x[c])&&s(y,c)||(f=l?x[c]:n[c],y[c]=h&&"function"!=typeof x[c]?n[c]:g&&l?o(f,r):m&&x[c]==f?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(f):v&&"function"==typeof f?o(Function.call,f):f,v&&((y.virtual||(y.virtual={}))[c]=f,t&u.R&&b&&!b[c]&&a(b,c,f)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},function(t,e){var n={}.toString;t.exports=function(t){return n.call(t).slice(8,-1)}},function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},function(t,e){t.exports=function(t){if(null==t)throw TypeError("Can't call method on  "+t);return t}},function(t,e,n){var r=n(156),i=n(57);t.exports=function(t){return r(i(t))}},function(t,e,n){var r=n(94)("keys"),i=n(95);t.exports=function(t){return r[t]||(r[t]=i(t))}},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},function(t,e,n){},,function(t,e,n){for(var r=n(104),i=n(46),o=n(25),a=n(12),s=n(15),u=n(44),c=n(10),l=c("iterator"),f=c("toStringTag"),p=u.Array,h={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},d=i(h),v=0;v<d.length;v++){var g,m=d[v],y=h[m],b=a[m],x=b&&b.prototype;if(x&&(x[l]||s(x,l,p),x[f]||s(x,f,m),u[m]=p,y))for(g in r)x[g]||o(x,g,r[g],!0)}},function(t,e,n){var r=n(10)("unscopables"),i=Array.prototype;null==i[r]&&n(15)(i,r,{}),t.exports=function(t){i[r][t]=!0}},function(t,e){t.exports=!1},function(t,e,n){t.exports=!n(18)&&!n(14)(function(){return 7!=Object.defineProperty(n(73)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){var r=n(17),i=n(12).document,o=r(i)&&r(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},function(t,e,n){var r=n(17);t.exports=function(t,e){if(!r(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!r(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){var r=n(30);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(26),i=n(29),o=n(77)(!1),a=n(47)("IE_PROTO");t.exports=function(t,e){var n,s=i(t),u=0,c=[];for(n in s)n!=a&&r(s,n)&&c.push(n);for(;e.length>u;)r(s,n=e[u++])&&(~o(c,n)||c.push(n));return c}},function(t,e,n){var r=n(29),i=n(31),o=n(112);t.exports=function(t){return function(e,n,a){var s,u=r(e),c=i(u.length),l=o(a,c);if(t&&n!=n){for(;c>l;)if((s=u[l++])!=s)return!0}else for(;c>l;l++)if((t||l in u)&&u[l]===n)return t||l||0;return!t&&-1}}},function(t,e,n){var r=n(24).f,i=n(26),o=n(10)("toStringTag");t.exports=function(t,e,n){t&&!i(t=n?t:t.prototype,o)&&r(t,o,{configurable:!0,value:e})}},function(t,e,n){var r=n(33),i=n(46);n(115)("keys",function(){return function(t){return i(r(t))}})},function(t,e,n){var r=n(30);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){"use strict";var r=n(16),i=n(31),o=n(82),a=n(83);n(84)("match",1,function(t,e,n,s){return[function(n){var r=t(this),i=null==n?void 0:n[e];return void 0!==i?i.call(n,r):new RegExp(n)[e](String(r))},function(t){var e=s(n,t,this);if(e.done)return e.value;var u=r(t),c=String(this);if(!u.global)return a(u,c);var l=u.unicode;u.lastIndex=0;for(var f,p=[],h=0;null!==(f=a(u,c));){var d=String(f[0]);p[h]=d,""===d&&(u.lastIndex=o(c,i(u.lastIndex),l)),h++}return 0===h?null:p}]})},function(t,e,n){"use strict";var r=n(121)(!0);t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},function(t,e,n){"use strict";var r=n(122),i=RegExp.prototype.exec;t.exports=function(t,e){var n=t.exec;if("function"==typeof n){var o=n.call(t,e);if("object"!=typeof o)throw new TypeError("RegExp exec method returned something other than an Object or null");return o}if("RegExp"!==r(t))throw new TypeError("RegExp#exec called on incompatible receiver");return i.call(t,e)}},function(t,e,n){"use strict";n(123);var r=n(25),i=n(15),o=n(14),a=n(20),s=n(10),u=n(85),c=s("species"),l=!o(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}),f=function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();t.exports=function(t,e,n){var p=s(t),h=!o(function(){var e={};return e[p]=function(){return 7},7!=""[t](e)}),d=h?!o(function(){var e=!1,n=/a/;return n.exec=function(){return e=!0,null},"split"===t&&(n.constructor={},n.constructor[c]=function(){return n}),n[p](""),!e}):void 0;if(!h||!d||"replace"===t&&!l||"split"===t&&!f){var v=/./[p],g=n(a,p,""[t],function(t,e,n,r,i){return e.exec===u?h&&!i?{done:!0,value:v.call(e,n,r)}:{done:!0,value:t.call(n,e,r)}:{done:!1}}),m=g[0],y=g[1];r(String.prototype,t,m),i(RegExp.prototype,p,2==e?function(t,e){return y.call(t,this,e)}:function(t){return y.call(t,this)})}}},function(t,e,n){"use strict";var r,i,o=n(86),a=RegExp.prototype.exec,s=String.prototype.replace,u=a,c=(r=/a/,i=/b*/g,a.call(r,"a"),a.call(i,"a"),0!==r.lastIndex||0!==i.lastIndex),l=void 0!==/()??/.exec("")[1];(c||l)&&(u=function(t){var e,n,r,i,u=this;return l&&(n=new RegExp("^"+u.source+"$(?!\\s)",o.call(u))),c&&(e=u.lastIndex),r=a.call(u,t),c&&r&&(u.lastIndex=u.global?r.index+r[0].length:e),l&&r&&r.length>1&&s.call(r[0],n,function(){for(i=1;i<arguments.length-2;i++)void 0===arguments[i]&&(r[i]=void 0)}),r}),t.exports=u},function(t,e,n){"use strict";var r=n(16);t.exports=function(){var t=r(this),e="";return t.global&&(e+="g"),t.ignoreCase&&(e+="i"),t.multiline&&(e+="m"),t.unicode&&(e+="u"),t.sticky&&(e+="y"),e}},function(t,e,n){var r=n(143);t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,i){return t.call(e,n,r,i)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,n){var r=n(53),i=n(21).document,o=r(i)&&r(i.createElement);t.exports=function(t){return o?i.createElement(t):{}}},function(t,e,n){"use strict";var r=n(149)(!0);n(91)(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},function(t,e,n){"use strict";var r=n(92),i=n(52),o=n(150),a=n(27),s=n(23),u=n(151),c=n(97),l=n(160),f=n(13)("iterator"),p=!([].keys&&"next"in[].keys()),h=function(){return this};t.exports=function(t,e,n,d,v,g,m){u(n,e,d);var y,b,x,_=function(t){if(!p&&t in O)return O[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},k=e+" Iterator",S="values"==v,w=!1,O=t.prototype,C=O[f]||O["@@iterator"]||v&&O[v],L=C||_(v),$=v?S?_("entries"):L:void 0,j="Array"==e&&O.entries||C;if(j&&(x=l(j.call(new t)))!==Object.prototype&&x.next&&(c(x,k,!0),r||"function"==typeof x[f]||a(x,f,h)),S&&C&&"values"!==C.name&&(w=!0,L=function(){return C.call(this)}),r&&!m||!p&&!w&&O[f]||a(O,f,L),s[e]=L,s[k]=h,v)if(y={values:S?L:_("values"),keys:g?L:_("keys"),entries:$},m)for(b in y)b in O||o(O,b,y[b]);else i(i.P+i.F*(p||w),e,y);return y}},function(t,e){t.exports=!0},function(t,e,n){var r=n(56),i=Math.min;t.exports=function(t){return t>0?i(r(t),9007199254740991):0}},function(t,e,n){var r=n(22),i=n(21),o=i["__core-js_shared__"]||(i["__core-js_shared__"]={});(t.exports=function(t,e){return o[t]||(o[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n(92)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,n){var r=n(37).f,i=n(40),o=n(13)("toStringTag");t.exports=function(t,e,n){t&&!i(t=n?t:t.prototype,o)&&r(t,o,{configurable:!0,value:e})}},function(t,e,n){var r=n(57);t.exports=function(t){return Object(r(t))}},function(t,e,n){var r=n(55),i=n(13)("toStringTag"),o="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),i))?n:o?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,n){"use strict";var r=n(16),i=n(33),o=n(31),a=n(32),s=n(82),u=n(83),c=Math.max,l=Math.min,f=Math.floor,p=/\$([$&`']|\d\d?|<[^>]*>)/g,h=/\$([$&`']|\d\d?)/g;n(84)("replace",2,function(t,e,n,d){return[function(r,i){var o=t(this),a=null==r?void 0:r[e];return void 0!==a?a.call(r,o,i):n.call(String(o),r,i)},function(t,e){var i=d(n,t,this,e);if(i.done)return i.value;var f=r(t),p=String(this),h="function"==typeof e;h||(e=String(e));var g=f.global;if(g){var m=f.unicode;f.lastIndex=0}for(var y=[];;){var b=u(f,p);if(null===b)break;if(y.push(b),!g)break;""===String(b[0])&&(f.lastIndex=s(p,o(f.lastIndex),m))}for(var x,_="",k=0,S=0;S<y.length;S++){b=y[S];for(var w=String(b[0]),O=c(l(a(b.index),p.length),0),C=[],L=1;L<b.length;L++)C.push(void 0===(x=b[L])?x:String(x));var $=b.groups;if(h){var j=[w].concat(C,O,p);void 0!==$&&j.push($);var A=String(e.apply(void 0,j))}else A=v(w,p,O,C,$,e);O>=k&&(_+=p.slice(k,O)+A,k=O+w.length)}return _+p.slice(k)}];function v(t,e,r,o,a,s){var u=r+t.length,c=o.length,l=h;return void 0!==a&&(a=i(a),l=p),n.call(s,l,function(n,i){var s;switch(i.charAt(0)){case"$":return"$";case"&":return t;case"`":return e.slice(0,r);case"'":return e.slice(u);case"<":s=a[i.slice(1,-1)];break;default:var l=+i;if(0===l)return n;if(l>c){var p=f(l/10);return 0===p?n:p<=c?void 0===o[p-1]?i.charAt(1):o[p-1]+i.charAt(1):n}s=o[l-1]}return void 0===s?"":s})}})},function(t,e,n){"use strict";var r=n(11),i=n(35)(1);r(r.P+r.F*!n(36)([].map,!0),"Array",{map:function(t){return i(this,t,arguments[1])}})},function(t,e,n){"use strict";n.r(e);n(34);var r=n(19),i={name:"SidebarGroup",props:["item","open","collapsable","depth"],components:{DropdownTransition:n(103).a},beforeCreate:function(){this.$options.components.SidebarLinks=n(102).default},methods:{isActive:r.e}},o=(n(179),n(0)),a=Object(o.a)(i,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("section",{staticClass:"sidebar-group",class:[{collapsable:t.collapsable,"is-sub-group":0!==t.depth},"depth-"+t.depth]},[t.item.path?n("router-link",{staticClass:"sidebar-heading clickable",class:{open:t.open,active:t.isActive(t.$route,t.item.path)},attrs:{to:t.item.path},nativeOn:{click:function(e){return t.$emit("toggle")}}},[n("span",[t._v(t._s(t.item.title))]),t._v(" "),t.collapsable?n("span",{staticClass:"arrow",class:t.open?"down":"right"}):t._e()]):n("p",{staticClass:"sidebar-heading",class:{open:t.open},on:{click:function(e){return t.$emit("toggle")}}},[n("span",[t._v(t._s(t.item.title))]),t._v(" "),t.collapsable?n("span",{staticClass:"arrow",class:t.open?"down":"right"}):t._e()]),t._v(" "),n("DropdownTransition",[t.open||!t.collapsable?n("SidebarLinks",{staticClass:"sidebar-group-items",attrs:{items:t.item.children,sidebarDepth:t.item.sidebarDepth,depth:t.depth+1}}):t._e()],1)],1)},[],!1,null,null,null).exports;n(101),n(180);function s(t,e,n,r){return t("router-link",{props:{to:e,activeClass:"",exactActiveClass:""},class:{active:r,"sidebar-link":!0}},n)}function u(t,e,n,i,o){var a=arguments.length>5&&void 0!==arguments[5]?arguments[5]:1;return!e||a>o?null:t("ul",{class:"sidebar-sub-headers"},e.map(function(e){var c=Object(r.e)(i,n+"#"+e.slug);return t("li",{class:"sidebar-sub-header"},[s(t,n+"#"+e.slug,e.title,c),u(t,e.children,n,i,o,a+1)])}))}var c={functional:!0,props:["item","sidebarDepth"],render:function(t,e){var n=e.parent,i=n.$page,o=(n.$site,n.$route),a=n.$themeConfig,c=n.$themeLocaleConfig,l=e.props,f=l.item,p=l.sidebarDepth,h=Object(r.e)(o,f.path),d="auto"===f.type?h||f.children.some(function(t){return Object(r.e)(o,f.basePath+"#"+t.slug)}):h,v="external"===f.type?function(t,e,n){return t("a",{attrs:{href:e,target:"_blank",rel:"noopener noreferrer"},class:{"sidebar-link":!0}},[n,t("OutboundLink")])}(t,f.path,f.title||f.path):s(t,f.path,f.title||f.path,d),g=[i.frontmatter.sidebarDepth,p,c.sidebarDepth,a.sidebarDepth,1].find(function(t){return void 0!==t}),m=c.displayAllHeaders||a.displayAllHeaders;return"auto"===f.type?[v,u(t,f.children,f.basePath,o,g)]:(d||m)&&f.headers&&!r.d.test(f.path)?[v,u(t,Object(r.c)(f.headers),f.path,o,g)]:v}};n(181);var l={name:"SidebarLinks",components:{SidebarGroup:a,SidebarLink:Object(o.a)(c,void 0,void 0,!1,null,null,null).exports},props:["items","depth","sidebarDepth"],data:function(){return{openGroupIndex:0}},created:function(){this.refreshIndex()},watch:{$route:function(){this.refreshIndex()}},methods:{refreshIndex:function(){var t=function(t,e){for(var n=0;n<e.length;n++){var i=e[n];if("group"===i.type&&i.children.some(function(e){return"page"===e.type&&Object(r.e)(t,e.path)}))return n}return-1}(this.$route,this.items);t>-1&&(this.openGroupIndex=t)},toggleGroup:function(t){this.openGroupIndex=t===this.openGroupIndex?-1:t},isActive:function(t){return Object(r.e)(this.$route,t.regularPath)}}},f=Object(o.a)(l,function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.items.length?n("ul",{staticClass:"sidebar-links"},t._l(t.items,function(e,r){return n("li",{key:r},["group"===e.type?n("SidebarGroup",{attrs:{item:e,open:r===t.openGroupIndex,collapsable:e.collapsable||e.collapsible,depth:t.depth},on:{toggle:function(e){return t.toggleGroup(r)}}}):n("SidebarLink",{attrs:{sidebarDepth:t.sidebarDepth,item:e}})],1)}),0):t._e()},[],!1,null,null,null);e.default=f.exports},function(t,e,n){"use strict";var r={name:"DropdownTransition",methods:{setHeight:function(t){t.style.height=t.scrollHeight+"px"},unsetHeight:function(t){t.style.height=""}}},i=(n(174),n(0)),o=Object(i.a)(r,function(){var t=this.$createElement;return(this._self._c||t)("transition",{attrs:{name:"dropdown"},on:{enter:this.setHeight,"after-enter":this.unsetHeight,"before-leave":this.setHeight}},[this._t("default")],2)},[],!1,null,null,null);e.a=o.exports},function(t,e,n){"use strict";var r=n(70),i=n(105),o=n(44),a=n(29);t.exports=n(106)(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,i(1)):i(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){"use strict";var r=n(71),i=n(11),o=n(25),a=n(15),s=n(44),u=n(109),c=n(78),l=n(114),f=n(10)("iterator"),p=!([].keys&&"next"in[].keys()),h=function(){return this};t.exports=function(t,e,n,d,v,g,m){u(n,e,d);var y,b,x,_=function(t){if(!p&&t in O)return O[t];switch(t){case"keys":case"values":return function(){return new n(this,t)}}return function(){return new n(this,t)}},k=e+" Iterator",S="values"==v,w=!1,O=t.prototype,C=O[f]||O["@@iterator"]||v&&O[v],L=C||_(v),$=v?S?_("entries"):L:void 0,j="Array"==e&&O.entries||C;if(j&&(x=l(j.call(new t)))!==Object.prototype&&x.next&&(c(x,k,!0),r||"function"==typeof x[f]||a(x,f,h)),S&&C&&"values"!==C.name&&(w=!0,L=function(){return C.call(this)}),r&&!m||!p&&!w&&O[f]||a(O,f,L),s[e]=L,s[k]=h,v)if(y={values:S?L:_("values"),keys:g?L:_("keys"),entries:$},m)for(b in y)b in O||o(O,b,y[b]);else i(i.P+i.F*(p||w),e,y);return y}},function(t,e,n){t.exports=n(41)("native-function-to-string",Function.toString)},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,n){"use strict";var r=n(110),i=n(43),o=n(78),a={};n(15)(a,n(10)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:i(1,n)}),o(t,e+" Iterator")}},function(t,e,n){var r=n(16),i=n(111),o=n(48),a=n(47)("IE_PROTO"),s=function(){},u=function(){var t,e=n(73)("iframe"),r=o.length;for(e.style.display="none",n(113).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),u=t.F;r--;)delete u.prototype[o[r]];return u()};t.exports=Object.create||function(t,e){var n;return null!==t?(s.prototype=r(t),n=new s,s.prototype=null,n[a]=t):n=u(),void 0===e?n:i(n,e)}},function(t,e,n){var r=n(24),i=n(16),o=n(46);t.exports=n(18)?Object.defineProperties:function(t,e){i(t);for(var n,a=o(e),s=a.length,u=0;s>u;)r.f(t,n=a[u++],e[n]);return t}},function(t,e,n){var r=n(32),i=Math.max,o=Math.min;t.exports=function(t,e){return(t=r(t))<0?i(t+e,0):o(t,e)}},function(t,e,n){var r=n(12).document;t.exports=r&&r.documentElement},function(t,e,n){var r=n(26),i=n(33),o=n(47)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),r(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},function(t,e,n){var r=n(11),i=n(28),o=n(14);t.exports=function(t,e){var n=(i.Object||{})[t]||Object[t],a={};a[t]=e(n),r(r.S+r.F*o(function(){n(1)}),"Object",a)}},function(t,e,n){var r=n(117);t.exports=function(t,e){return new(r(t))(e)}},function(t,e,n){var r=n(17),i=n(80),o=n(10)("species");t.exports=function(t){var e;return i(t)&&("function"!=typeof(e=t.constructor)||e!==Array&&!i(e.prototype)||(e=void 0),r(e)&&null===(e=e[o])&&(e=void 0)),void 0===e?Array:e}},function(t,e,n){"use strict";n(119)("link",function(t){return function(e){return t(this,"a","href",e)}})},function(t,e,n){var r=n(11),i=n(14),o=n(20),a=/"/g,s=function(t,e,n,r){var i=String(o(t)),s="<"+e;return""!==n&&(s+=" "+n+'="'+String(r).replace(a,"&quot;")+'"'),s+">"+i+"</"+e+">"};t.exports=function(t,e){var n={};n[t]=e(s),r(r.P+r.F*i(function(){var e=""[t]('"');return e!==e.toLowerCase()||e.split('"').length>3}),"String",n)}},function(t,e,n){"use strict";var r=n(49);n.n(r).a},function(t,e,n){var r=n(32),i=n(20);t.exports=function(t){return function(e,n){var o,a,s=String(i(e)),u=r(n),c=s.length;return u<0||u>=c?t?"":void 0:(o=s.charCodeAt(u))<55296||o>56319||u+1===c||(a=s.charCodeAt(u+1))<56320||a>57343?t?s.charAt(u):o:t?s.slice(u,u+2):a-56320+(o-55296<<10)+65536}}},function(t,e,n){var r=n(30),i=n(10)("toStringTag"),o="Arguments"==r(function(){return arguments}());t.exports=function(t){var e,n,a;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=function(t,e){try{return t[e]}catch(t){}}(e=Object(t),i))?n:o?r(e):"Object"==(a=r(e))&&"function"==typeof e.callee?"Arguments":a}},function(t,e,n){"use strict";var r=n(85);n(11)({target:"RegExp",proto:!0,forced:r!==/./.exec},{exec:r})},function(t,e,n){"use strict";var r=n(11),i=n(35)(2);r(r.P+r.F*!n(36)([].filter,!0),"Array",{filter:function(t){return i(this,t,arguments[1])}})},function(t,e,n){var r=n(11);r(r.S,"Array",{isArray:n(80)})},function(t,e,n){"use strict";var r=n(11),i=n(77)(!1),o=[].indexOf,a=!!o&&1/[1].indexOf(1,-0)<0;r(r.P+r.F*(a||!n(36)(o)),"Array",{indexOf:function(t){return a?o.apply(this,arguments)||0:i(this,t,arguments[1])}})},function(t,e,n){"use strict";n(128)("trim",function(t){return function(){return t(this,3)}})},function(t,e,n){var r=n(11),i=n(20),o=n(14),a=n(129),s="["+a+"]",u=RegExp("^"+s+s+"*"),c=RegExp(s+s+"*$"),l=function(t,e,n){var i={},s=o(function(){return!!a[t]()||"​"!="​"[t]()}),u=i[t]=s?e(f):a[t];n&&(i[n]=u),r(r.P+r.F*s,"String",i)},f=l.trim=function(t,e){return t=String(i(t)),1&e&&(t=t.replace(u,"")),2&e&&(t=t.replace(c,"")),t};t.exports=l},function(t,e){t.exports="\t\n\v\f\r   ᠎             　\u2028\u2029\ufeff"},function(t,e,n){"use strict";var r=n(50);n.n(r).a},function(t,e,n){"use strict";var r=n(51);n.n(r).a},function(t,e,n){var r=n(12),i=n(133),o=n(24).f,a=n(137).f,s=n(138),u=n(86),c=r.RegExp,l=c,f=c.prototype,p=/a/g,h=/a/g,d=new c(p)!==p;if(n(18)&&(!d||n(14)(function(){return h[n(10)("match")]=!1,c(p)!=p||c(h)==h||"/a/i"!=c(p,"i")}))){c=function(t,e){var n=this instanceof c,r=s(t),o=void 0===e;return!n&&r&&t.constructor===c&&o?t:i(d?new l(r&&!o?t.source:t,e):l((r=t instanceof c)?t.source:t,r&&o?u.call(t):e),n?this:f,c)};for(var v=function(t){t in c||o(c,t,{configurable:!0,get:function(){return l[t]},set:function(e){l[t]=e}})},g=a(l),m=0;g.length>m;)v(g[m++]);f.constructor=c,c.prototype=f,n(25)(r,"RegExp",c)}n(139)("RegExp")},function(t,e,n){var r=n(17),i=n(134).set;t.exports=function(t,e,n){var o,a=e.constructor;return a!==n&&"function"==typeof a&&(o=a.prototype)!==n.prototype&&r(o)&&i&&i(t,o),t}},function(t,e,n){var r=n(17),i=n(16),o=function(t,e){if(i(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{(r=n(45)(Function.call,n(135).f(Object.prototype,"__proto__").set,2))(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,n){return o(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:o}},function(t,e,n){var r=n(136),i=n(43),o=n(29),a=n(74),s=n(26),u=n(72),c=Object.getOwnPropertyDescriptor;e.f=n(18)?c:function(t,e){if(t=o(t),e=a(e,!0),u)try{return c(t,e)}catch(t){}if(s(t,e))return i(!r.f.call(t,e),t[e])}},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,n){var r=n(76),i=n(48).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},function(t,e,n){var r=n(17),i=n(30),o=n(10)("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[o])?!!e:"RegExp"==i(t))}},function(t,e,n){"use strict";var r=n(12),i=n(24),o=n(18),a=n(10)("species");t.exports=function(t){var e=r[t];o&&e&&!e[a]&&i.f(e,a,{configurable:!0,get:function(){return this}})}},function(t,e,n){t.exports=n(141)},function(t,e,n){n(142),t.exports=n(22).Array.isArray},function(t,e,n){var r=n(52);r(r.S,"Array",{isArray:n(146)})},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,n){t.exports=!n(39)&&!n(88)(function(){return 7!=Object.defineProperty(n(89)("div"),"a",{get:function(){return 7}}).a})},function(t,e,n){var r=n(53);t.exports=function(t,e){if(!r(t))return t;var n,i;if(e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;if("function"==typeof(n=t.valueOf)&&!r(i=n.call(t)))return i;if(!e&&"function"==typeof(n=t.toString)&&!r(i=n.call(t)))return i;throw TypeError("Can't convert object to primitive value")}},function(t,e,n){var r=n(55);t.exports=Array.isArray||function(t){return"Array"==r(t)}},function(t,e,n){t.exports=n(148)},function(t,e,n){n(90),n(161),t.exports=n(22).Array.from},function(t,e,n){var r=n(56),i=n(57);t.exports=function(t){return function(e,n){var o,a,s=String(i(e)),u=r(n),c=s.length;return u<0||u>=c?t?"":void 0:(o=s.charCodeAt(u))<55296||o>56319||u+1===c||(a=s.charCodeAt(u+1))<56320||a>57343?t?s.charAt(u):o:t?s.slice(u,u+2):a-56320+(o-55296<<10)+65536}}},function(t,e,n){t.exports=n(27)},function(t,e,n){"use strict";var r=n(152),i=n(54),o=n(97),a={};n(27)(a,n(13)("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:i(1,n)}),o(t,e+" Iterator")}},function(t,e,n){var r=n(38),i=n(153),o=n(96),a=n(59)("IE_PROTO"),s=function(){},u=function(){var t,e=n(89)("iframe"),r=o.length;for(e.style.display="none",n(159).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write("<script>document.F=Object<\/script>"),t.close(),u=t.F;r--;)delete u.prototype[o[r]];return u()};t.exports=Object.create||function(t,e){var n;return null!==t?(s.prototype=r(t),n=new s,s.prototype=null,n[a]=t):n=u(),void 0===e?n:i(n,e)}},function(t,e,n){var r=n(37),i=n(38),o=n(154);t.exports=n(39)?Object.defineProperties:function(t,e){i(t);for(var n,a=o(e),s=a.length,u=0;s>u;)r.f(t,n=a[u++],e[n]);return t}},function(t,e,n){var r=n(155),i=n(96);t.exports=Object.keys||function(t){return r(t,i)}},function(t,e,n){var r=n(40),i=n(58),o=n(157)(!1),a=n(59)("IE_PROTO");t.exports=function(t,e){var n,s=i(t),u=0,c=[];for(n in s)n!=a&&r(s,n)&&c.push(n);for(;e.length>u;)r(s,n=e[u++])&&(~o(c,n)||c.push(n));return c}},function(t,e,n){var r=n(55);t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},function(t,e,n){var r=n(58),i=n(93),o=n(158);t.exports=function(t){return function(e,n,a){var s,u=r(e),c=i(u.length),l=o(a,c);if(t&&n!=n){for(;c>l;)if((s=u[l++])!=s)return!0}else for(;c>l;l++)if((t||l in u)&&u[l]===n)return t||l||0;return!t&&-1}}},function(t,e,n){var r=n(56),i=Math.max,o=Math.min;t.exports=function(t,e){return(t=r(t))<0?i(t+e,0):o(t,e)}},function(t,e,n){var r=n(21).document;t.exports=r&&r.documentElement},function(t,e,n){var r=n(40),i=n(98),o=n(59)("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=i(t),r(t,o)?t[o]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},function(t,e,n){"use strict";var r=n(87),i=n(52),o=n(98),a=n(162),s=n(163),u=n(93),c=n(164),l=n(165);i(i.S+i.F*!n(166)(function(t){Array.from(t)}),"Array",{from:function(t){var e,n,i,f,p=o(t),h="function"==typeof this?this:Array,d=arguments.length,v=d>1?arguments[1]:void 0,g=void 0!==v,m=0,y=l(p);if(g&&(v=r(v,d>2?arguments[2]:void 0,2)),null==y||h==Array&&s(y))for(n=new h(e=u(p.length));e>m;m++)c(n,m,g?v(p[m],m):p[m]);else for(f=y.call(p),n=new h;!(i=f.next()).done;m++)c(n,m,g?a(f,v,[i.value,m],!0):i.value);return n.length=m,n}})},function(t,e,n){var r=n(38);t.exports=function(t,e,n,i){try{return i?e(r(n)[0],n[1]):e(n)}catch(e){var o=t.return;throw void 0!==o&&r(o.call(t)),e}}},function(t,e,n){var r=n(23),i=n(13)("iterator"),o=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||o[i]===t)}},function(t,e,n){"use strict";var r=n(37),i=n(54);t.exports=function(t,e,n){e in t?r.f(t,e,i(0,n)):t[e]=n}},function(t,e,n){var r=n(99),i=n(13)("iterator"),o=n(23);t.exports=n(22).getIteratorMethod=function(t){if(null!=t)return t[i]||t["@@iterator"]||o[r(t)]}},function(t,e,n){var r=n(13)("iterator"),i=!1;try{var o=[7][r]();o.return=function(){i=!0},Array.from(o,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!i)return!1;var n=!1;try{var o=[7],a=o[r]();a.next=function(){return{done:n=!0}},o[r]=function(){return a},t(o)}catch(t){}return n}},function(t,e,n){t.exports=n(168)},function(t,e,n){n(169),n(90),t.exports=n(173)},function(t,e,n){n(170);for(var r=n(21),i=n(27),o=n(23),a=n(13)("toStringTag"),s="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),u=0;u<s.length;u++){var c=s[u],l=r[c],f=l&&l.prototype;f&&!f[a]&&i(f,a,c),o[c]=o.Array}},function(t,e,n){"use strict";var r=n(171),i=n(172),o=n(23),a=n(58);t.exports=n(91)(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,i(1)):i(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),o.Arguments=o.Array,r("keys"),r("values"),r("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,n){var r=n(99),i=n(13)("iterator"),o=n(23);t.exports=n(22).isIterable=function(t){var e=Object(t);return void 0!==e[i]||"@@iterator"in e||o.hasOwnProperty(r(e))}},function(t,e,n){"use strict";var r=n(60);n.n(r).a},function(t,e,n){"use strict";var r=n(61);n.n(r).a},function(t,e,n){"use strict";var r=n(62);n.n(r).a},function(t,e,n){"use strict";var r=n(63);n.n(r).a},function(t,e,n){"use strict";var r=n(64);n.n(r).a},function(t,e,n){"use strict";var r=n(65);n.n(r).a},function(t,e,n){"use strict";var r=n(11),i=n(35)(5),o=!0;"find"in[]&&Array(1).find(function(){o=!1}),r(r.P+r.F*o,"Array",{find:function(t){return i(this,t,arguments.length>1?arguments[1]:void 0)}}),n(70)("find")},function(t,e,n){"use strict";var r=n(66);n.n(r).a},function(t,e,n){"use strict";var r=n(67);n.n(r).a},,function(t,e,n){"use strict";n.r(e);n(69),n(79),n(34),n(118);var r=n(19),i={props:{item:{required:!0}},computed:{link:function(){return Object(r.b)(this.item.link)},exact:function(){var t=this;return this.$site.locales?Object.keys(this.$site.locales).some(function(e){return e===t.link}):"/"===this.link}},methods:{isExternal:r.f,isMailto:r.g,isTel:r.h}},o=n(0),a=Object(o.a)(i,function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.isExternal(t.link)?n("a",{staticClass:"nav-link external",attrs:{href:t.link,target:t.isMailto(t.link)||t.isTel(t.link)?null:"_blank",rel:t.isMailto(t.link)||t.isTel(t.link)?null:"noopener noreferrer"}},[t._v("\n  "+t._s(t.item.text)+"\n  "),n("OutboundLink")],1):n("router-link",{staticClass:"nav-link",attrs:{to:t.link,exact:t.exact}},[t._v(t._s(t.item.text))])},[],!1,null,null,null).exports,s={components:{NavLink:a},computed:{data:function(){return this.$page.frontmatter},actionLink:function(){return{link:this.data.actionLink,text:this.data.actionText}}}},u=(n(120),Object(o.a)(s,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("main",{staticClass:"home",attrs:{"aria-labelledby":"main-title"}},[n("header",{staticClass:"hero"},[t.data.heroImage?n("img",{attrs:{src:t.$withBase(t.data.heroImage),alt:t.data.heroAlt||"hero"}}):t._e(),t._v(" "),null!==t.data.heroText?n("h1",{attrs:{id:"main-title"}},[t._v(t._s(t.data.heroText||t.$title||"Hello"))]):t._e(),t._v(" "),n("p",{staticClass:"description"},[t._v("\n      "+t._s(t.data.tagline||t.$description||"Welcome to your VuePress site")+"\n    ")]),t._v(" "),t.data.actionText&&t.data.actionLink?n("p",{staticClass:"action"},[n("NavLink",{staticClass:"action-button",attrs:{item:t.actionLink}})],1):t._e()]),t._v(" "),t.data.features&&t.data.features.length?n("div",{staticClass:"features"},t._l(t.data.features,function(e,r){return n("div",{key:r,staticClass:"feature"},[n("h2",[t._v(t._s(e.title))]),t._v(" "),n("p",[t._v(t._s(e.details))])])}),0):t._e(),t._v(" "),n("Content",{staticClass:"theme-default-content custom"}),t._v(" "),t.data.footer?n("div",{staticClass:"footer"},[t._v("\n    "+t._s(t.data.footer)+"\n  ")]):t._e()],1)},[],!1,null,null,null).exports),c=(n(81),n(124),n(125),n(126),n(127),{data:function(){return{query:"",focused:!1,focusIndex:0}},computed:{showSuggestions:function(){return this.focused&&this.suggestions&&this.suggestions.length},suggestions:function(){var t=this.query.trim().toLowerCase();if(t){for(var e=this.$site.pages,n=this.$localePath,r=function(e){return e.title&&e.title.toLowerCase().indexOf(t)>-1},i=[],o=0;o<e.length&&!(i.length>=5);o++){var a=e[o];if(this.getPageLocalePath(a)===n&&this.isSearchable(a))if(r(a))i.push(a);else if(a.headers)for(var s=0;s<a.headers.length&&!(i.length>=5);s++){var u=a.headers[s];r(u)&&i.push(Object.assign({},a,{path:a.path+"#"+u.slug,header:u}))}}return i}},alignRight:function(){return(this.$site.themeConfig.nav||[]).length+(this.$site.repo?1:0)<=2}},methods:{getPageLocalePath:function(t){for(var e in this.$site.locales||{})if("/"!==e&&0===t.path.indexOf(e))return e;return"/"},isSearchable:function(t){var e=null;return null===e||(e=Array.isArray(e)?e:new Array(e)).filter(function(e){return t.path.match(e)}).length>0},onUp:function(){this.showSuggestions&&(this.focusIndex>0?this.focusIndex--:this.focusIndex=this.suggestions.length-1)},onDown:function(){this.showSuggestions&&(this.focusIndex<this.suggestions.length-1?this.focusIndex++:this.focusIndex=0)},go:function(t){this.showSuggestions&&(this.$router.push(this.suggestions[t].path),this.query="",this.focusIndex=0)},focus:function(t){this.focusIndex=t},unfocus:function(){this.focusIndex=-1}}}),l=(n(130),Object(o.a)(c,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"search-box"},[n("input",{class:{focused:t.focused},attrs:{"aria-label":"Search",autocomplete:"off",spellcheck:"false"},domProps:{value:t.query},on:{input:function(e){t.query=e.target.value},focus:function(e){t.focused=!0},blur:function(e){t.focused=!1},keyup:[function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"enter",13,e.key,"Enter")?null:t.go(t.focusIndex)},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"up",38,e.key,["Up","ArrowUp"])?null:t.onUp(e)},function(e){return!e.type.indexOf("key")&&t._k(e.keyCode,"down",40,e.key,["Down","ArrowDown"])?null:t.onDown(e)}]}}),t._v(" "),t.showSuggestions?n("ul",{staticClass:"suggestions",class:{"align-right":t.alignRight},on:{mouseleave:t.unfocus}},t._l(t.suggestions,function(e,r){return n("li",{staticClass:"suggestion",class:{focused:r===t.focusIndex},on:{mousedown:function(e){return t.go(r)},mouseenter:function(e){return t.focus(r)}}},[n("a",{attrs:{href:e.path},on:{click:function(t){t.preventDefault()}}},[n("span",{staticClass:"page-title"},[t._v(t._s(e.title||e.path))]),t._v(" "),e.header?n("span",{staticClass:"header"},[t._v("> "+t._s(e.header.title))]):t._e()])])}),0):t._e()])},[],!1,null,null,null).exports),f=(n(131),Object(o.a)({},function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"sidebar-button",on:{click:function(e){return t.$emit("toggle-sidebar")}}},[n("svg",{staticClass:"icon",attrs:{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",role:"img",viewBox:"0 0 448 512"}},[n("path",{attrs:{fill:"currentColor",d:"M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"}})])])},[],!1,null,null,null).exports),p=(n(132),n(140)),h=n.n(p);var d=n(147),v=n.n(d),g=n(167),m=n.n(g);function y(t){return function(t){if(h()(t)){for(var e=0,n=new Array(t.length);e<t.length;e++)n[e]=t[e];return n}}(t)||function(t){if(m()(Object(t))||"[object Arguments]"===Object.prototype.toString.call(t))return v()(t)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}n(100),n(101);var b={components:{NavLink:a,DropdownTransition:n(103).a},data:function(){return{open:!1}},props:{item:{required:!0}},methods:{toggle:function(){this.open=!this.open}}},x=(n(175),{components:{NavLink:a,DropdownLink:Object(o.a)(b,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"dropdown-wrapper",class:{open:t.open}},[n("a",{staticClass:"dropdown-title",on:{click:t.toggle}},[n("span",{staticClass:"title"},[t._v(t._s(t.item.text))]),t._v(" "),n("span",{staticClass:"arrow",class:t.open?"down":"right"})]),t._v(" "),n("DropdownTransition",[n("ul",{directives:[{name:"show",rawName:"v-show",value:t.open,expression:"open"}],staticClass:"nav-dropdown"},t._l(t.item.items,function(e,r){return n("li",{key:e.link||r,staticClass:"dropdown-item"},["links"===e.type?n("h4",[t._v(t._s(e.text))]):t._e(),t._v(" "),"links"===e.type?n("ul",{staticClass:"dropdown-subitem-wrapper"},t._l(e.items,function(t){return n("li",{key:t.link,staticClass:"dropdown-subitem"},[n("NavLink",{attrs:{item:t}})],1)}),0):n("NavLink",{attrs:{item:e}})],1)}),0)])],1)},[],!1,null,null,null).exports},computed:{userNav:function(){return this.$themeLocaleConfig.nav||this.$site.themeConfig.nav||[]},nav:function(){var t=this,e=this.$site.locales;if(e&&Object.keys(e).length>1){var n=this.$page.path,r=this.$router.options.routes,i=this.$site.themeConfig.locales||{},o={text:this.$themeLocaleConfig.selectText||"Languages",items:Object.keys(e).map(function(o){var a,s=e[o],u=i[o]&&i[o].label||s.lang;return s.lang===t.$lang?a=n:(a=n.replace(t.$localeConfig.path,o),r.some(function(t){return t.path===a})||(a=o)),{text:u,link:a}})};return[].concat(y(this.userNav),[o])}return this.userNav},userLinks:function(){return(this.nav||[]).map(function(t){return Object.assign(Object(r.j)(t),{items:(t.items||[]).map(r.j)})})},repoLink:function(){var t=this.$site.themeConfig.repo;if(t)return/^https?:/.test(t)?t:"https://github.com/".concat(t)},repoLabel:function(){if(this.repoLink){if(this.$site.themeConfig.repoLabel)return this.$site.themeConfig.repoLabel;for(var t=this.repoLink.match(/^https?:\/\/[^\/]+/)[0],e=["GitHub","GitLab","Bitbucket"],n=0;n<e.length;n++){var r=e[n];if(new RegExp(r,"i").test(t))return r}return"Source"}}}}),_=(n(176),Object(o.a)(x,function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.userLinks.length||t.repoLink?n("nav",{staticClass:"nav-links"},[t._l(t.userLinks,function(t){return n("div",{key:t.link,staticClass:"nav-item"},["links"===t.type?n("DropdownLink",{attrs:{item:t}}):n("NavLink",{attrs:{item:t}})],1)}),t._v(" "),t.repoLink?n("a",{staticClass:"repo-link",attrs:{href:t.repoLink,target:"_blank",rel:"noopener noreferrer"}},[t._v("\n    "+t._s(t.repoLabel)+"\n    "),n("OutboundLink")],1):t._e()],2):t._e()},[],!1,null,null,null).exports);function k(t,e){return t.ownerDocument.defaultView.getComputedStyle(t,null)[e]}var S={components:{SidebarButton:f,NavLinks:_,SearchBox:l,AlgoliaSearchBox:{}},data:function(){return{linksWrapMaxWidth:null}},mounted:function(){var t=this,e=parseInt(k(this.$el,"paddingLeft"))+parseInt(k(this.$el,"paddingRight")),n=function(){document.documentElement.clientWidth<719?t.linksWrapMaxWidth=null:t.linksWrapMaxWidth=t.$el.offsetWidth-e-(t.$refs.siteName&&t.$refs.siteName.offsetWidth||0)};n(),window.addEventListener("resize",n,!1)},computed:{algolia:function(){return this.$themeLocaleConfig.algolia||this.$site.themeConfig.algolia||{}},isAlgoliaSearch:function(){return this.algolia&&this.algolia.apiKey&&this.algolia.indexName}}},w=(n(177),Object(o.a)(S,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("header",{staticClass:"navbar"},[n("SidebarButton",{on:{"toggle-sidebar":function(e){return t.$emit("toggle-sidebar")}}}),t._v(" "),n("router-link",{staticClass:"home-link",attrs:{to:t.$localePath}},[t.$site.themeConfig.logo?n("img",{staticClass:"logo",attrs:{src:t.$withBase(t.$site.themeConfig.logo),alt:t.$siteTitle}}):t._e(),t._v(" "),t.$siteTitle?n("span",{ref:"siteName",staticClass:"site-name",class:{"can-hide":t.$site.themeConfig.logo}},[t._v(t._s(t.$siteTitle))]):t._e()]),t._v(" "),n("div",{staticClass:"links",style:t.linksWrapMaxWidth?{"max-width":t.linksWrapMaxWidth+"px"}:{}},[t.isAlgoliaSearch?n("AlgoliaSearchBox",{attrs:{options:t.algolia}}):!1!==t.$site.themeConfig.search&&!1!==t.$page.frontmatter.search?n("SearchBox"):t._e(),t._v(" "),n("NavLinks",{staticClass:"can-hide"})],1)],1)},[],!1,null,null,null).exports);function O(t,e,n){var r=[];!function t(e,n){for(var r=0,i=e.length;r<i;r++)"group"===e[r].type?t(e[r].children||[],n):n.push(e[r])}(e,r);for(var i=0;i<r.length;i++){var o=r[i];if("page"===o.type&&o.path===decodeURIComponent(t.path))return r[i+n]}}var C={props:["sidebarItems"],computed:{lastUpdated:function(){return this.$page.lastUpdated},lastUpdatedText:function(){return"string"==typeof this.$themeLocaleConfig.lastUpdated?this.$themeLocaleConfig.lastUpdated:"string"==typeof this.$site.themeConfig.lastUpdated?this.$site.themeConfig.lastUpdated:"Last Updated"},prev:function(){var t,e,n=this.$page.frontmatter.prev;return!1===n?void 0:n?Object(r.k)(this.$site.pages,n,this.$route.path):(t=this.$page,e=this.sidebarItems,O(t,e,-1))},next:function(){var t,e,n=this.$page.frontmatter.next;return!1===n?void 0:n?Object(r.k)(this.$site.pages,n,this.$route.path):(t=this.$page,e=this.sidebarItems,O(t,e,1))},editLink:function(){if(!1!==this.$page.frontmatter.editLink){var t=this.$site.themeConfig,e=t.repo,n=t.editLinks,r=t.docsDir,i=void 0===r?"":r,o=t.docsBranch,a=void 0===o?"master":o,s=t.docsRepo,u=void 0===s?e:s;return u&&n&&this.$page.relativePath?this.createEditLink(e,u,i,a,this.$page.relativePath):void 0}},editLinkText:function(){return this.$themeLocaleConfig.editLinkText||this.$site.themeConfig.editLinkText||"Edit this page"}},methods:{createEditLink:function(t,e,n,i,o){return/bitbucket.org/.test(t)?(r.i.test(e)?e:t).replace(r.a,"")+"/src"+"/".concat(i,"/")+(n?n.replace(r.a,"")+"/":"")+o+"?mode=edit&spa=0&at=".concat(i,"&fileviewer=file-view-default"):(r.i.test(e)?e:"https://github.com/".concat(e)).replace(r.a,"")+"/edit"+"/".concat(i,"/")+(n?n.replace(r.a,"")+"/":"")+o}}},L=(n(178),Object(o.a)(C,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("main",{staticClass:"page"},[t._t("top"),t._v(" "),n("Content",{staticClass:"theme-default-content"}),t._v(" "),n("footer",{staticClass:"page-edit"},[t.editLink?n("div",{staticClass:"edit-link"},[n("a",{attrs:{href:t.editLink,target:"_blank",rel:"noopener noreferrer"}},[t._v(t._s(t.editLinkText))]),t._v(" "),n("OutboundLink")],1):t._e(),t._v(" "),t.lastUpdated?n("div",{staticClass:"last-updated"},[n("span",{staticClass:"prefix"},[t._v(t._s(t.lastUpdatedText)+": ")]),t._v(" "),n("span",{staticClass:"time"},[t._v(t._s(t.lastUpdated))])]):t._e()]),t._v(" "),t.prev||t.next?n("div",{staticClass:"page-nav"},[n("p",{staticClass:"inner"},[t.prev?n("span",{staticClass:"prev"},[t._v("\n        ←\n        "),t.prev?n("router-link",{staticClass:"prev",attrs:{to:t.prev.path}},[t._v("\n          "+t._s(t.prev.title||t.prev.path)+"\n        ")]):t._e()],1):t._e(),t._v(" "),t.next?n("span",{staticClass:"next"},[t.next?n("router-link",{attrs:{to:t.next.path}},[t._v("\n          "+t._s(t.next.title||t.next.path)+"\n        ")]):t._e(),t._v("\n        →\n      ")],1):t._e()])]):t._e(),t._v(" "),t._t("bottom")],2)},[],!1,null,null,null).exports),$={name:"Sidebar",components:{SidebarLinks:n(102).default,NavLinks:_},props:["items"]},j=(n(182),{components:{Home:u,Page:L,Sidebar:Object(o.a)($,function(){var t=this.$createElement,e=this._self._c||t;return e("aside",{staticClass:"sidebar"},[e("NavLinks"),this._v(" "),this._t("top"),this._v(" "),e("SidebarLinks",{attrs:{depth:0,items:this.items}}),this._v(" "),this._t("bottom")],2)},[],!1,null,null,null).exports,Navbar:w},data:function(){return{isSidebarOpen:!1}},computed:{shouldShowNavbar:function(){var t=this.$site.themeConfig;return!1!==this.$page.frontmatter.navbar&&!1!==t.navbar&&(this.$title||t.logo||t.repo||t.nav||this.$themeLocaleConfig.nav)},shouldShowSidebar:function(){var t=this.$page.frontmatter;return!t.home&&!1!==t.sidebar&&this.sidebarItems.length},sidebarItems:function(){return Object(r.l)(this.$page,this.$page.regularPath,this.$site,this.$localePath)},pageClasses:function(){var t=this.$page.frontmatter.pageClass;return[{"no-navbar":!this.shouldShowNavbar,"sidebar-open":this.isSidebarOpen,"no-sidebar":!this.shouldShowSidebar},t]}},mounted:function(){var t=this;this.$router.afterEach(function(){t.isSidebarOpen=!1})},methods:{toggleSidebar:function(t){this.isSidebarOpen="boolean"==typeof t?t:!this.isSidebarOpen},onTouchStart:function(t){this.touchStart={x:t.changedTouches[0].clientX,y:t.changedTouches[0].clientY}},onTouchEnd:function(t){var e=t.changedTouches[0].clientX-this.touchStart.x,n=t.changedTouches[0].clientY-this.touchStart.y;Math.abs(e)>Math.abs(n)&&Math.abs(e)>40&&(e>0&&this.touchStart.x<=80?this.toggleSidebar(!0):this.toggleSidebar(!1))}}}),A=Object(o.a)(j,function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",{staticClass:"theme-container",class:t.pageClasses,on:{touchstart:t.onTouchStart,touchend:t.onTouchEnd}},[t.shouldShowNavbar?n("Navbar",{on:{"toggle-sidebar":t.toggleSidebar}}):t._e(),t._v(" "),n("div",{staticClass:"sidebar-mask",on:{click:function(e){return t.toggleSidebar(!1)}}}),t._v(" "),n("Sidebar",{attrs:{items:t.sidebarItems},on:{"toggle-sidebar":t.toggleSidebar}},[t._t("sidebar-top",null,{slot:"top"}),t._v(" "),t._t("sidebar-bottom",null,{slot:"bottom"})],2),t._v(" "),t.$page.frontmatter.home?n("Home"):n("Page",{attrs:{"sidebar-items":t.sidebarItems}},[t._t("page-top",null,{slot:"top"}),t._v(" "),t._t("page-bottom",null,{slot:"bottom"})],2)],1)},[],!1,null,null,null);e.default=A.exports}]]);
\ No newline at end of file
diff --git a/docs/.vuepress/dist/assets/js/5.e899ad0e.js b/docs/.vuepress/dist/assets/js/5.e899ad0e.js
deleted file mode 100644
index 53ec1a0..0000000
--- a/docs/.vuepress/dist/assets/js/5.e899ad0e.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{186:function(t,e,s){"use strict";s.r(e);var a=s(0),n=Object(a.a)({},function(){var t=this.$createElement,e=this._self._c||t;return e("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[e("h1",{attrs:{id:"getting-started"}},[e("a",{staticClass:"header-anchor",attrs:{href:"#getting-started","aria-hidden":"true"}},[this._v("#")]),this._v(" Getting Started")]),this._v(" "),e("p",[this._v("Download install etc..")])])},[],!1,null,null,null);e.default=n.exports}}]);
\ No newline at end of file
diff --git a/docs/.vuepress/dist/assets/js/6.2b62eeb2.js b/docs/.vuepress/dist/assets/js/6.2b62eeb2.js
deleted file mode 100644
index 2b4f30b..0000000
--- a/docs/.vuepress/dist/assets/js/6.2b62eeb2.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{188:function(t,s,i){"use strict";i.r(s);var e=i(0),n=Object(e.a)({},function(){var t=this.$createElement,s=this._self._c||t;return s("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}},[s("h1",{attrs:{id:"introduction"}},[s("a",{staticClass:"header-anchor",attrs:{href:"#introduction","aria-hidden":"true"}},[this._v("#")]),this._v(" Introduction")]),this._v(" "),s("p",[this._v("Some stuff about this library. The philosophy etc.")])])},[],!1,null,null,null);s.default=n.exports}}]);
\ No newline at end of file
diff --git a/docs/.vuepress/dist/assets/js/7.fa96c717.js b/docs/.vuepress/dist/assets/js/7.fa96c717.js
deleted file mode 100644
index 12d6883..0000000
--- a/docs/.vuepress/dist/assets/js/7.fa96c717.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{187:function(e,t,n){"use strict";n.r(t);var o=n(0),a=Object(o.a)({},function(){var e=this,t=e.$createElement,n=e._self._c||t;return n("ContentSlotsDistributor",{attrs:{"slot-key":e.$parent.slotKey}},[n("div",{staticClass:"features"},[n("div",{staticClass:"feature"},[n("h2",[e._v("Active Record Querying")]),e._v(" "),n("p"),n("p",[e._v("Querying any of the available "),n("a",{attrs:{href:"https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-provider",target:"_blank",rel:"noopener noreferrer"}},[e._v("Win32 Providers Classes"),n("OutboundLink")],1),e._v(" is as simple as "),n("code",[e._v("Model::query($connection)")]),e._v(".")]),e._v(" "),n("p")]),e._v(" "),n("div",{staticClass:"feature"},[n("h2",[e._v("Easily Testable")]),e._v(" "),n("p"),n("p",[e._v("You can easily create a fake model to test your code without having to actually query a connection with "),n("code",[e._v("Scripting::fake($testCase)->win32model(Model::class);")]),e._v(". Any calls to the given model will now use a fake connection.")]),e._v(" "),n("p")]),e._v(" "),n("div",{staticClass:"feature"},[n("h2",[e._v("Simple Configuration")]),e._v(" "),n("p"),n("p",[e._v("The only  thing that you need to provide is a Connection.")]),e._v(" "),n("p")])])])},[],!1,null,null,null);t.default=a.exports}}]);
\ No newline at end of file
diff --git a/docs/.vuepress/dist/assets/js/8.95fe297f.js b/docs/.vuepress/dist/assets/js/8.95fe297f.js
deleted file mode 100644
index 35ba440..0000000
--- a/docs/.vuepress/dist/assets/js/8.95fe297f.js
+++ /dev/null
@@ -1 +0,0 @@
-(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{9:function(n,w,o){}}]);
\ No newline at end of file
diff --git a/docs/.vuepress/dist/documentation/getting-started/index.html b/docs/.vuepress/dist/documentation/getting-started/index.html
deleted file mode 100644
index 7315e88..0000000
--- a/docs/.vuepress/dist/documentation/getting-started/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width,initial-scale=1">
-    <title>Getting Started | WMI Scripting</title>
-    <meta name="description" content="WMI Scripting in PHP made easy.">
-    <link rel="icon" href="/wmi-scripting/wmi-squares.png">
-    
-    <link rel="preload" href="/wmi-scripting/assets/css/0.styles.3dff6261.css" as="style"><link rel="preload" href="/wmi-scripting/assets/js/app.56813cc6.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/2.768da08d.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/5.e899ad0e.js" as="script"><link rel="prefetch" href="/wmi-scripting/assets/js/3.9aec9bee.js"><link rel="prefetch" href="/wmi-scripting/assets/js/4.2f35b444.js"><link rel="prefetch" href="/wmi-scripting/assets/js/6.2b62eeb2.js"><link rel="prefetch" href="/wmi-scripting/assets/js/7.fa96c717.js"><link rel="prefetch" href="/wmi-scripting/assets/js/8.95fe297f.js">
-    <link rel="stylesheet" href="/wmi-scripting/assets/css/0.styles.3dff6261.css">
-  </head>
-  <body>
-    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/wmi-scripting/" class="home-link router-link-active"><img src="/wmi-scripting/wmi-squares.svg" alt="WMI Scripting" class="logo"> <span class="site-name can-hide">WMI Scripting</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/wmi-scripting/" class="nav-link">Home</a></div><div class="nav-item"><a href="/wmi-scripting/documentation/" class="nav-link router-link-active">Documentation</a></div><div class="nav-item"><a href="https://github.com/phpwintools/wmi-scripting" target="_blank" rel="noopener noreferrer" class="nav-link external">
-  GitHub
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/wmi-scripting/" class="nav-link">Home</a></div><div class="nav-item"><a href="/wmi-scripting/documentation/" class="nav-link router-link-active">Documentation</a></div><div class="nav-item"><a href="https://github.com/phpwintools/wmi-scripting" target="_blank" rel="noopener noreferrer" class="nav-link external">
-  GitHub
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav>  <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Documentation</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/wmi-scripting/documentation/" class="sidebar-link">How It Works</a></li><li><a href="/wmi-scripting/documentation/getting-started/" class="active sidebar-link">Getting Started</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="getting-started"><a href="#getting-started" aria-hidden="true" class="header-anchor">#</a> Getting Started</h1> <p>Download install etc..</p></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
-        ←
-        <a href="/wmi-scripting/documentation/" class="prev router-link-active">
-          How It Works
-        </a></span> <!----></p></div> </main></div><div class="global-ui"></div></div>
-    <script src="/wmi-scripting/assets/js/app.56813cc6.js" defer></script><script src="/wmi-scripting/assets/js/2.768da08d.js" defer></script><script src="/wmi-scripting/assets/js/5.e899ad0e.js" defer></script>
-  </body>
-</html>
diff --git a/docs/.vuepress/dist/documentation/index.html b/docs/.vuepress/dist/documentation/index.html
deleted file mode 100644
index f67f19f..0000000
--- a/docs/.vuepress/dist/documentation/index.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width,initial-scale=1">
-    <title>Introduction | WMI Scripting</title>
-    <meta name="description" content="WMI Scripting in PHP made easy.">
-    <link rel="icon" href="/wmi-scripting/wmi-squares.png">
-    
-    <link rel="preload" href="/wmi-scripting/assets/css/0.styles.3dff6261.css" as="style"><link rel="preload" href="/wmi-scripting/assets/js/app.56813cc6.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/2.768da08d.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/6.2b62eeb2.js" as="script"><link rel="prefetch" href="/wmi-scripting/assets/js/3.9aec9bee.js"><link rel="prefetch" href="/wmi-scripting/assets/js/4.2f35b444.js"><link rel="prefetch" href="/wmi-scripting/assets/js/5.e899ad0e.js"><link rel="prefetch" href="/wmi-scripting/assets/js/7.fa96c717.js"><link rel="prefetch" href="/wmi-scripting/assets/js/8.95fe297f.js">
-    <link rel="stylesheet" href="/wmi-scripting/assets/css/0.styles.3dff6261.css">
-  </head>
-  <body>
-    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/wmi-scripting/" class="home-link router-link-active"><img src="/wmi-scripting/wmi-squares.svg" alt="WMI Scripting" class="logo"> <span class="site-name can-hide">WMI Scripting</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/wmi-scripting/" class="nav-link">Home</a></div><div class="nav-item"><a href="/wmi-scripting/documentation/" class="nav-link router-link-exact-active router-link-active">Documentation</a></div><div class="nav-item"><a href="https://github.com/phpwintools/wmi-scripting" target="_blank" rel="noopener noreferrer" class="nav-link external">
-  GitHub
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/wmi-scripting/" class="nav-link">Home</a></div><div class="nav-item"><a href="/wmi-scripting/documentation/" class="nav-link router-link-exact-active router-link-active">Documentation</a></div><div class="nav-item"><a href="https://github.com/phpwintools/wmi-scripting" target="_blank" rel="noopener noreferrer" class="nav-link external">
-  GitHub
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav>  <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Documentation</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/wmi-scripting/documentation/" class="active sidebar-link">How It Works</a></li><li><a href="/wmi-scripting/documentation/getting-started/" class="sidebar-link">Getting Started</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="introduction"><a href="#introduction" aria-hidden="true" class="header-anchor">#</a> Introduction</h1> <p>Some stuff about this library. The philosophy etc.</p></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><!----> <span class="next"><a href="/wmi-scripting/documentation/getting-started/">
-          Getting Started
-        </a>
-        →
-      </span></p></div> </main></div><div class="global-ui"></div></div>
-    <script src="/wmi-scripting/assets/js/app.56813cc6.js" defer></script><script src="/wmi-scripting/assets/js/2.768da08d.js" defer></script><script src="/wmi-scripting/assets/js/6.2b62eeb2.js" defer></script>
-  </body>
-</html>
diff --git a/docs/.vuepress/dist/index.html b/docs/.vuepress/dist/index.html
deleted file mode 100644
index c65e659..0000000
--- a/docs/.vuepress/dist/index.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!DOCTYPE html>
-<html lang="en-US">
-  <head>
-    <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width,initial-scale=1">
-    <title>WMI Scripting</title>
-    <meta name="description" content="WMI Scripting in PHP made easy.">
-    <link rel="icon" href="/wmi-scripting/wmi-squares.png">
-    
-    <link rel="preload" href="/wmi-scripting/assets/css/0.styles.3dff6261.css" as="style"><link rel="preload" href="/wmi-scripting/assets/js/app.56813cc6.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/2.768da08d.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/7.fa96c717.js" as="script"><link rel="prefetch" href="/wmi-scripting/assets/js/3.9aec9bee.js"><link rel="prefetch" href="/wmi-scripting/assets/js/4.2f35b444.js"><link rel="prefetch" href="/wmi-scripting/assets/js/5.e899ad0e.js"><link rel="prefetch" href="/wmi-scripting/assets/js/6.2b62eeb2.js"><link rel="prefetch" href="/wmi-scripting/assets/js/8.95fe297f.js">
-    <link rel="stylesheet" href="/wmi-scripting/assets/css/0.styles.3dff6261.css">
-  </head>
-  <body>
-    <div id="app" data-server-rendered="true"><div class="theme-container no-sidebar"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/wmi-scripting/" class="home-link router-link-exact-active router-link-active"><img src="/wmi-scripting/wmi-squares.svg" alt="WMI Scripting" class="logo"> <span class="site-name can-hide">WMI Scripting</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/wmi-scripting/" class="nav-link router-link-exact-active router-link-active">Home</a></div><div class="nav-item"><a href="/wmi-scripting/documentation/" class="nav-link">Documentation</a></div><div class="nav-item"><a href="https://github.com/phpwintools/wmi-scripting" target="_blank" rel="noopener noreferrer" class="nav-link external">
-  GitHub
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/wmi-scripting/" class="nav-link router-link-exact-active router-link-active">Home</a></div><div class="nav-item"><a href="/wmi-scripting/documentation/" class="nav-link">Documentation</a></div><div class="nav-item"><a href="https://github.com/phpwintools/wmi-scripting" target="_blank" rel="noopener noreferrer" class="nav-link external">
-  GitHub
-  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav>  <!----> </aside> <main aria-labelledby="main-title" class="home"><header class="hero"><img src="/wmi-scripting/hero-notext.png" alt="hero"> <h1 id="main-title">WMI Scripting</h1> <p class="description">
-      WMI Scripting in PHP made easy.
-    </p> <p class="action"><a href="/wmi-scripting/documentation/" class="nav-link action-button">Documentation</a></p></header> <!----> <div class="theme-default-content custom content__default"><div class="features"><div class="feature"><h2>Active Record Querying</h2> <p></p><p>Querying any of the available <a href="https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-provider" target="_blank" rel="noopener noreferrer">Win32 Providers Classes<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> is as simple as <code>Model::query($connection)</code>.</p> <p></p></div> <div class="feature"><h2>Easily Testable</h2> <p></p><p>You can easily create a fake model to test your code without having to actually query a connection with <code>Scripting::fake($testCase)-&gt;win32model(Model::class);</code>. Any calls to the given model will now use a fake connection.</p> <p></p></div> <div class="feature"><h2>Simple Configuration</h2> <p></p><p>The only  thing that you need to provide is a Connection.</p> <p></p></div></div></div> <!----></main></div><div class="global-ui"></div></div>
-    <script src="/wmi-scripting/assets/js/app.56813cc6.js" defer></script><script src="/wmi-scripting/assets/js/2.768da08d.js" defer></script><script src="/wmi-scripting/assets/js/7.fa96c717.js" defer></script>
-  </body>
-</html>
diff --git a/docs/.vuepress/public/hero-notext.png b/docs/.vuepress/public/hero-notext.png
deleted file mode 100644
index 9dca884..0000000
Binary files a/docs/.vuepress/public/hero-notext.png and /dev/null differ
diff --git a/docs/.vuepress/public/hero.png b/docs/.vuepress/public/hero.png
deleted file mode 100644
index 01f6772..0000000
Binary files a/docs/.vuepress/public/hero.png and /dev/null differ
diff --git a/docs/.vuepress/public/wmi-scripting.svg b/docs/.vuepress/public/wmi-scripting.svg
deleted file mode 100644
index 88ed318..0000000
--- a/docs/.vuepress/public/wmi-scripting.svg
+++ /dev/null
@@ -1,8 +0,0 @@
-<svg xmlns="http://www.w3.org/2000/svg" width="634" height="136">
-  <path fill="#a9b7c6" d="M497.5 69.281h66.719V136H497.5z"/>
-  <path fill="#000" d="M567.281 69.281H634V136h-66.719z"/>
-  <path fill="#9876aa" d="M567.281-.5H634v66.719h-66.719z"/>
-  <path fill="#cc7832" d="M497.5-.5h66.719v66.719H497.5z"/>
-  <path fill="#cc7832" d="M48.013 47.454L46.32 78.476l-.13 5.859-1.986-5.6-5.924-16.926h-4L29.133 77.6l-2.051 6.738-.488-7.943-1.66-28.939h-5.469L22.395 90h7.259l4.883-14.746 1.53-5.241 1.465 4.85L42.8 90h7.52l2.865-42.545h-5.172zm39.648 0H80.6l-6.024 16.015-1.79 5.4-1.856-5.4-5.73-16.015h-6.868L56.249 90h5.469l.749-26.074.133-10.646 1.986 6.575 5.99 16.276h4L80.858 59.2l1.986-5.925.356 10.194L84.048 90h5.664zm19.043 37.6h-9.8V90h25.456v-4.949h-9.8V52.336h9.8v-4.882H96.906v4.883h9.8v32.714z" fill-rule="evenodd"/>
-  <path fill="#9876aa" d="M183.494 73.082a11.107 11.107 0 0 0-2.523-3.239 16.63 16.63 0 0 0-3.564-2.393q-2-1.009-4.085-1.855t-4.086-1.644a22.293 22.293 0 0 1-3.564-1.774 9.544 9.544 0 0 1-2.523-2.214 4.686 4.686 0 0 1-.96-2.962 5.2 5.2 0 0 1 2.344-4.46q2.343-1.66 7.324-1.66a32.874 32.874 0 0 1 4.85.374 39.522 39.522 0 0 1 5.013 1.091v-5.208q-1.074-.26-2.327-.488t-2.539-.407q-1.287-.178-2.54-.277t-2.327-.1a22.689 22.689 0 0 0-7.178 1.009 14.667 14.667 0 0 0-4.931 2.653 10.282 10.282 0 0 0-2.832 3.76 10.766 10.766 0 0 0-.912 4.3 9.171 9.171 0 0 0 .96 4.329 10.838 10.838 0 0 0 2.523 3.174 16.88 16.88 0 0 0 3.565 2.344q2 .993 4.085 1.839t4.085 1.644a23.28 23.28 0 0 1 3.565 1.758 9.475 9.475 0 0 1 2.522 2.181 4.621 4.621 0 0 1 .961 2.943 6.7 6.7 0 0 1-.57 2.832 5.168 5.168 0 0 1-1.823 2.1 9.183 9.183 0 0 1-3.222 1.3 22.243 22.243 0 0 1-4.769.44 41.287 41.287 0 0 1-6.918-.521 30.293 30.293 0 0 1-5.485-1.432v5.6q1.107.293 2.474.553t2.913.458q1.545.2 3.222.325t3.369.13a29.284 29.284 0 0 0 6.853-.749 15.963 15.963 0 0 0 5.322-2.262 10.786 10.786 0 0 0 3.45-3.792 10.946 10.946 0 0 0 1.237-5.306 9.447 9.447 0 0 0-.959-4.394zm35.759 9.44a18.532 18.532 0 0 1-4.183 1.563 19.069 19.069 0 0 1-4.476.521q-5.112 0-7.992-2.946t-2.881-8.87a14.305 14.305 0 0 1 .847-5.078 11.323 11.323 0 0 1 2.311-3.809 10.031 10.031 0 0 1 3.4-2.392 10.334 10.334 0 0 1 4.117-.83 20.228 20.228 0 0 1 4.541.5 18 18 0 0 1 4.314 1.611v-5.4a19.739 19.739 0 0 0-4.232-1.172 29.807 29.807 0 0 0-4.753-.358 17.684 17.684 0 0 0-6.673 1.221 14.954 14.954 0 0 0-5.208 3.467 15.665 15.665 0 0 0-3.386 5.4 19.593 19.593 0 0 0-1.2 7.031q0 8.073 4.183 12.272t11.93 4.2a27.864 27.864 0 0 0 4.8-.407 24.487 24.487 0 0 0 4.541-1.253v-5.271zM231.85 89h5.729V68a42.624 42.624 0 0 1 2.93-3.385 21.371 21.371 0 0 1 2.588-2.295 9.293 9.293 0 0 1 2.376-1.3 6.876 6.876 0 0 1 2.295-.407 4.516 4.516 0 0 1 3.955 1.937q1.351 1.937 1.254 6.234h5.729q.195-6.477-2.425-9.766t-7.7-3.288a11.6 11.6 0 0 0-5.68 1.563 20.964 20.964 0 0 0-5.713 5.045l-.163-6.022h-5.175V89zm46.45-4.72h-10.74V89h26.2v-4.72h-9.733V56.318h-15.4v4.688h9.673V84.28zm.228-41.325a4.246 4.246 0 0 0-1.416.96 4.62 4.62 0 0 0-.944 1.416 4.564 4.564 0 0 0 0 3.467 4.556 4.556 0 0 0 .944 1.432 4.241 4.241 0 0 0 1.416.96 4.692 4.692 0 0 0 3.516 0 4.261 4.261 0 0 0 1.416-.96 4.574 4.574 0 0 0 .944-1.432 4.576 4.576 0 0 0 0-3.467 4.637 4.637 0 0 0-.944-1.416 4.267 4.267 0 0 0-1.416-.96 4.692 4.692 0 0 0-3.514 0zm52.506 22.4a15.623 15.623 0 0 0-2.148-5.143 10.21 10.21 0 0 0-3.548-3.3 9.983 9.983 0 0 0-4.916-1.172 13.469 13.469 0 0 0-5.989 1.351 14.576 14.576 0 0 0-5.208 4.7l-.359-5.469h-5.045v46.028h5.664V88.675a23.627 23.627 0 0 0 3.141.553 29.735 29.735 0 0 0 3.109.163 18.3 18.3 0 0 0 6.348-1.074 13.816 13.816 0 0 0 5.078-3.223 14.928 14.928 0 0 0 3.369-5.4 21.648 21.648 0 0 0 1.221-7.617 29.067 29.067 0 0 0-.715-6.726zm-7.682 16.341a8.877 8.877 0 0 1-7.192 3.104 15.915 15.915 0 0 1-3.385-.374 18.933 18.933 0 0 1-3.288-1.025V67.548a33.286 33.286 0 0 1 2.816-3.271 17.126 17.126 0 0 1 2.506-2.116 8.845 8.845 0 0 1 2.295-1.139 7.365 7.365 0 0 1 2.181-.342 5.257 5.257 0 0 1 3.027.863 6.53 6.53 0 0 1 2.084 2.393 12.347 12.347 0 0 1 1.188 3.678 27.632 27.632 0 0 1 .374 4.72q0 6.249-2.604 9.358zm43.457 1.969a32.474 32.474 0 0 1-3.874.765 26.319 26.319 0 0 1-3.417.244A7.828 7.828 0 0 1 354 82.929a6.843 6.843 0 0 1-1.872-5.257V61.07h14.681v-4.752H352.13V45.869l-5.664 1.465v8.984h-9.147v4.752h9.147v17.058q0 5.762 3.027 8.545t9.18 2.783a40.619 40.619 0 0 0 4.167-.212 27.652 27.652 0 0 0 3.971-.7v-4.882zm21.452.618h-10.74V89h26.2v-4.72h-9.733V56.318H378.6v4.688h9.668V84.28zm.228-41.325a4.246 4.246 0 0 0-1.416.96 4.62 4.62 0 0 0-.944 1.416 4.564 4.564 0 0 0 0 3.467 4.556 4.556 0 0 0 .944 1.432 4.241 4.241 0 0 0 1.416.96 4.689 4.689 0 0 0 3.515 0 4.255 4.255 0 0 0 1.417-.96 4.574 4.574 0 0 0 .944-1.432 4.576 4.576 0 0 0 0-3.467 4.637 4.637 0 0 0-.944-1.416 4.261 4.261 0 0 0-1.417-.96 4.689 4.689 0 0 0-3.513-.003zM413.784 89h5.664V67.32q1.563-1.953 2.816-3.255A17.084 17.084 0 0 1 424.591 62a7.431 7.431 0 0 1 2.067-1.074 6.809 6.809 0 0 1 2.035-.309 5.073 5.073 0 0 1 4.264 1.839q1.433 1.839 1.432 5.68V89h5.664V67.678q0-5.989-2.588-8.968t-7.633-2.978a13.617 13.617 0 0 0-2.767.277 9.805 9.805 0 0 0-2.62.96 15.152 15.152 0 0 0-2.621 1.807 23.616 23.616 0 0 0-2.767 2.816l-.228-5.273h-5.045V89zm65.43-28.06v-4.622h-11.849a13.343 13.343 0 0 0-1.954-.423 15.9 15.9 0 0 0-2.311-.163 15.653 15.653 0 0 0-5.224.83 11.915 11.915 0 0 0-4.037 2.327 10.386 10.386 0 0 0-2.6 3.6 11.344 11.344 0 0 0-.928 4.639 12.105 12.105 0 0 0 .179 2.2 8.984 8.984 0 0 0 1.335 3.337 16.873 16.873 0 0 0 1.09 1.465 19.92 19.92 0 0 0-2.36 3.32 7.739 7.739 0 0 0-.992 3.874 6.3 6.3 0 0 0 .195 1.53 5.989 5.989 0 0 0 .586 1.481 5.369 5.369 0 0 0 2.474 2.262 12.485 12.485 0 0 0-3.418 3.451 7.759 7.759 0 0 0-1.107 4.167 7.186 7.186 0 0 0 .814 3.4 7.09 7.09 0 0 0 2.6 2.669 14.779 14.779 0 0 0 4.574 1.758 30.848 30.848 0 0 0 6.754.635 25.981 25.981 0 0 0 7.194-.879 15.4 15.4 0 0 0 5-2.36 9.216 9.216 0 0 0 3.857-7.568 7.317 7.317 0 0 0-.83-3.548 7.479 7.479 0 0 0-2.311-2.572 11.119 11.119 0 0 0-3.548-1.6 19.45 19.45 0 0 0-4.509-.618l-8.593-.326a5.816 5.816 0 0 1-3.142-.879 2.414 2.414 0 0 1-1.188-2.051 3.894 3.894 0 0 1 .423-1.823 17.48 17.48 0 0 1 1.042-1.725 9.809 9.809 0 0 0 2.832 1.09 16.078 16.078 0 0 0 3.841.439 15.553 15.553 0 0 0 5.192-.83 12.1 12.1 0 0 0 4.053-2.327 10.3 10.3 0 0 0 2.62-3.6 11.344 11.344 0 0 0 .928-4.639 10.3 10.3 0 0 0-.5-3.271 8.541 8.541 0 0 0-1.416-2.653h5.241zm-24.74 31.36a5.356 5.356 0 0 1 .553-1.4 6.153 6.153 0 0 1 1.091-1.384 12.33 12.33 0 0 1 1.774-1.4l8.529.293a11.354 11.354 0 0 1 4.98 1.107 3.152 3.152 0 0 1 1.628 2.93 4.684 4.684 0 0 1-2.1 3.922 9.182 9.182 0 0 1-2.962 1.286 17.994 17.994 0 0 1-4.541.488 17.117 17.117 0 0 1-6.706-1.058 3.521 3.521 0 0 1-2.409-3.369 6.2 6.2 0 0 1 .163-1.415zm2.034-27.946a6.6 6.6 0 0 1 1.368-2.23 6.7 6.7 0 0 1 2.213-1.546A7.346 7.346 0 0 1 463.1 60a7.743 7.743 0 0 1 2.849.5 6.693 6.693 0 0 1 2.229 1.416 6.259 6.259 0 0 1 1.465 2.214 7.651 7.651 0 0 1 .521 2.865 7.521 7.521 0 0 1-.472 2.637 6.81 6.81 0 0 1-1.367 2.246 6.4 6.4 0 0 1-2.214 1.546 7.524 7.524 0 0 1-3.011.57 7.729 7.729 0 0 1-2.848-.5 6.672 6.672 0 0 1-2.23-1.416 6.25 6.25 0 0 1-1.465-2.214 7.649 7.649 0 0 1-.521-2.865 7.521 7.521 0 0 1 .472-2.641z"  fill-rule="evenodd"/>
-</svg>
diff --git a/docs/.vuepress/public/wmi-squares.png b/docs/.vuepress/public/wmi-squares.png
deleted file mode 100644
index 1943bea..0000000
Binary files a/docs/.vuepress/public/wmi-squares.png and /dev/null differ
diff --git a/docs/.vuepress/public/wmi-squares.svg b/docs/.vuepress/public/wmi-squares.svg
deleted file mode 100644
index 13f4f62..0000000
--- a/docs/.vuepress/public/wmi-squares.svg
+++ /dev/null
@@ -1,6 +0,0 @@
-<svg  xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="136" height="136" viewBox="0 0 136 136">
-  <rect fill="#a9b7c6" x="-0.5" y="69.281" width="66.719" height="66.719"/>
-  <rect fill="#000" x="69.281" y="69.281" width="66.719" height="66.719"/>
-  <rect fill="#9876aa" x="69.281" y="-0.5" width="66.719" height="66.719"/>
-  <rect fill="#cc7832" x="-0.5" y="-0.5" width="66.719" height="66.719"/>
-</svg>
diff --git a/docs/.vuepress/theme/components/AlgoliaSearchBox.vue b/docs/.vuepress/theme/components/AlgoliaSearchBox.vue
deleted file mode 100644
index f4ff3ff..0000000
--- a/docs/.vuepress/theme/components/AlgoliaSearchBox.vue
+++ /dev/null
@@ -1,159 +0,0 @@
-<template>
-  <form
-    id="search-form"
-    class="algolia-search-wrapper search-box"
-    role="search"
-  >
-    <input
-      id="algolia-search-input"
-      class="search-query"
-    >
-  </form>
-</template>
-
-<script>
-export default {
-  props: ['options'],
-
-  mounted () {
-    this.initialize(this.options, this.$lang)
-  },
-
-  methods: {
-    initialize (userOptions, lang) {
-      Promise.all([
-        import(/* webpackChunkName: "docsearch" */ 'docsearch.js/dist/cdn/docsearch.min.js'),
-        import(/* webpackChunkName: "docsearch" */ 'docsearch.js/dist/cdn/docsearch.min.css')
-      ]).then(([docsearch]) => {
-        docsearch = docsearch.default
-        const { algoliaOptions = {}} = userOptions
-        docsearch(Object.assign(
-          {},
-          userOptions,
-          {
-            inputSelector: '#algolia-search-input',
-            // #697 Make docsearch work well at i18n mode.
-            algoliaOptions: Object.assign({
-              'facetFilters': [`lang:${lang}`].concat(algoliaOptions.facetFilters || [])
-            }, algoliaOptions),
-            handleSelected: (input, event, suggestion) => {
-              const { pathname, hash } = new URL(suggestion.url)
-              this.$router.push(`${pathname}${hash}`)
-            }
-          }
-        ))
-      })
-    },
-
-    update (options, lang) {
-      this.$el.innerHTML = '<input id="algolia-search-input" class="search-query">'
-      this.initialize(options, lang)
-    }
-  },
-
-  watch: {
-    $lang (newValue) {
-      this.update(this.options, newValue)
-    },
-
-    options (newValue) {
-      this.update(newValue, this.$lang)
-    }
-  }
-}
-</script>
-
-<style lang="stylus">
-.algolia-search-wrapper
-  & > span
-    vertical-align middle
-  .algolia-autocomplete
-    line-height normal
-    .ds-dropdown-menu
-      background-color #fff
-      border 1px solid #999
-      border-radius 4px
-      font-size 16px
-      margin 6px 0 0
-      padding 4px
-      text-align left
-      &:before
-        border-color #999
-      [class*=ds-dataset-]
-        border none
-        padding 0
-      .ds-suggestions
-        margin-top 0
-      .ds-suggestion
-        border-bottom 1px solid $borderColor
-    .algolia-docsearch-suggestion--highlight
-      color #2c815b
-    .algolia-docsearch-suggestion
-      border-color $borderColor
-      padding 0
-      .algolia-docsearch-suggestion--category-header
-        padding 5px 10px
-        margin-top 0
-        background $accentColor
-        color #fff
-        font-weight 600
-        .algolia-docsearch-suggestion--highlight
-          background rgba(255, 255, 255, 0.6)
-      .algolia-docsearch-suggestion--wrapper
-        padding 0
-      .algolia-docsearch-suggestion--title
-        font-weight 600
-        margin-bottom 0
-        color $textColor
-      .algolia-docsearch-suggestion--subcategory-column
-        vertical-align top
-        padding 5px 7px 5px 5px
-        border-color $borderColor
-        background #f1f3f5
-        &:after
-          display none
-      .algolia-docsearch-suggestion--subcategory-column-text
-        color #555
-    .algolia-docsearch-footer
-      border-color $borderColor
-    .ds-cursor .algolia-docsearch-suggestion--content
-      background-color #e7edf3 !important
-      color $textColor
-
-@media (min-width: $MQMobile)
-  .algolia-search-wrapper
-    .algolia-autocomplete
-      .algolia-docsearch-suggestion
-        .algolia-docsearch-suggestion--subcategory-column
-          float none
-          width 150px
-          min-width 150px
-          display table-cell
-        .algolia-docsearch-suggestion--content
-          float none
-          display table-cell
-          width 100%
-          vertical-align top
-        .ds-dropdown-menu
-          min-width 515px !important
-
-@media (max-width: $MQMobile)
-  .algolia-search-wrapper
-    .ds-dropdown-menu
-      min-width calc(100vw - 4rem) !important
-      max-width calc(100vw - 4rem) !important
-    .algolia-docsearch-suggestion--wrapper
-      padding 5px 7px 5px 5px !important
-    .algolia-docsearch-suggestion--subcategory-column
-      padding 0 !important
-      background white !important
-    .algolia-docsearch-suggestion--subcategory-column-text:after
-      content " > "
-      font-size 10px
-      line-height 14.4px
-      display inline-block
-      width 5px
-      margin -3px 3px 0
-      vertical-align middle
-
-</style>
diff --git a/docs/.vuepress/theme/components/DropdownLink.vue b/docs/.vuepress/theme/components/DropdownLink.vue
deleted file mode 100644
index 0d36083..0000000
--- a/docs/.vuepress/theme/components/DropdownLink.vue
+++ /dev/null
@@ -1,179 +0,0 @@
-<template>
-  <div
-    class="dropdown-wrapper"
-    :class="{ open }"
-  >
-    <a
-      class="dropdown-title"
-      @click="toggle"
-    >
-      <span class="title">{{ item.text }}</span>
-      <span
-        class="arrow"
-        :class="open ? 'down' : 'right'"
-      ></span>
-    </a>
-
-    <DropdownTransition>
-      <ul
-        class="nav-dropdown"
-        v-show="open"
-      >
-        <li
-          class="dropdown-item"
-          :key="subItem.link || index"
-          v-for="(subItem, index) in item.items"
-        >
-          <h4 v-if="subItem.type === 'links'">{{ subItem.text }}</h4>
-
-          <ul
-            class="dropdown-subitem-wrapper"
-            v-if="subItem.type === 'links'"
-          >
-            <li
-              class="dropdown-subitem"
-              :key="childSubItem.link"
-              v-for="childSubItem in subItem.items"
-            >
-              <NavLink :item="childSubItem"/>
-            </li>
-          </ul>
-
-          <NavLink
-            v-else
-            :item="subItem"
-          />
-        </li>
-      </ul>
-    </DropdownTransition>
-  </div>
-</template>
-
-<script>
-import NavLink from '@theme/components/NavLink.vue'
-import DropdownTransition from '@theme/components/DropdownTransition.vue'
-
-export default {
-  components: { NavLink, DropdownTransition },
-
-  data () {
-    return {
-      open: false
-    }
-  },
-
-  props: {
-    item: {
-      required: true
-    }
-  },
-
-  methods: {
-    toggle () {
-      this.open = !this.open
-    }
-  }
-}
-</script>
-
-<style lang="stylus">
-.dropdown-wrapper
-  cursor pointer
-  .dropdown-title
-    display block
-    &:hover
-      border-color transparent
-    .arrow
-      vertical-align middle
-      margin-top -1px
-      margin-left 0.4rem
-  .nav-dropdown
-    .dropdown-item
-      color inherit
-      line-height 1.7rem
-      h4
-        margin 0.45rem 0 0
-        border-top 1px solid #eee
-        padding 0.45rem 1.5rem 0 1.25rem
-      .dropdown-subitem-wrapper
-        padding 0
-        list-style none
-        .dropdown-subitem
-          font-size 0.9em
-      a
-        display block
-        line-height 1.7rem
-        position relative
-        border-bottom none
-        font-weight 400
-        margin-bottom 0
-        padding 0 1.5rem 0 1.25rem
-        &:hover
-          color $accentColor
-        &.router-link-active
-          color $accentColor
-          &::after
-            content ""
-            width 0
-            height 0
-            border-left 5px solid $accentColor
-            border-top 3px solid transparent
-            border-bottom 3px solid transparent
-            position absolute
-            top calc(50% - 2px)
-            left 9px
-      &:first-child h4
-        margin-top 0
-        padding-top 0
-        border-top 0
-
-@media (max-width: $MQMobile)
-  .dropdown-wrapper
-    &.open .dropdown-title
-      margin-bottom 0.5rem
-    .nav-dropdown
-      transition height .1s ease-out
-      overflow hidden
-      .dropdown-item
-        h4
-          border-top 0
-          margin-top 0
-          padding-top 0
-        h4, & > a
-          font-size 15px
-          line-height 2rem
-        .dropdown-subitem
-          font-size 14px
-          padding-left 1rem
-
-@media (min-width: $MQMobile)
-  .dropdown-wrapper
-    height 1.8rem
-    &:hover .nav-dropdown
-      // override the inline style.
-      display block !important
-    .dropdown-title .arrow
-      // make the arrow always down at desktop
-      border-left 4px solid transparent
-      border-right 4px solid transparent
-      border-top 6px solid $arrowBgColor
-      border-bottom 0
-    .nav-dropdown
-      display none
-      // Avoid height shaked by clicking
-      height auto !important
-      box-sizing border-box;
-      max-height calc(100vh - 2.7rem)
-      overflow-y auto
-      position absolute
-      top 100%
-      right 0
-      background-color #fff
-      padding 0.6rem 0
-      border 1px solid #ddd
-      border-bottom-color #ccc
-      text-align left
-      border-radius 0.25rem
-      white-space nowrap
-      margin 0
-</style>
diff --git a/docs/.vuepress/theme/components/DropdownTransition.vue b/docs/.vuepress/theme/components/DropdownTransition.vue
deleted file mode 100644
index 8c711a1..0000000
--- a/docs/.vuepress/theme/components/DropdownTransition.vue
+++ /dev/null
@@ -1,33 +0,0 @@
-<template>
-  <transition
-    name="dropdown"
-    @enter="setHeight"
-    @after-enter="unsetHeight"
-    @before-leave="setHeight"
-  >
-    <slot/>
-  </transition>
-</template>
-
-<script>
-export default {
-  name: 'DropdownTransition',
-
-  methods: {
-    setHeight (items) {
-      // explicitly set height so that it can be transitioned
-      items.style.height = items.scrollHeight + 'px'
-    },
-
-    unsetHeight (items) {
-      items.style.height = ''
-    }
-  }
-}
-</script>
-
-<style lang="stylus">
-.dropdown-enter, .dropdown-leave-to
-  height 0 !important
-
-</style>
diff --git a/docs/.vuepress/theme/components/Footer.vue b/docs/.vuepress/theme/components/Footer.vue
deleted file mode 100644
index 19433c7..0000000
--- a/docs/.vuepress/theme/components/Footer.vue
+++ /dev/null
@@ -1,15 +0,0 @@
-<template>
-    <div>
-        MIT Licensed - Copyright © 2019-present Joe Springe - This library is not in any way associated with nor endorsed by Microsoft™.
-    </div>
-</template>
-
-<script>
-    export default {
-        name: "Footer"
-    }
-</script>
-
-<style scoped>
-
-</style>
\ No newline at end of file
diff --git a/docs/.vuepress/theme/components/Home.vue b/docs/.vuepress/theme/components/Home.vue
deleted file mode 100644
index 2f2e000..0000000
--- a/docs/.vuepress/theme/components/Home.vue
+++ /dev/null
@@ -1,163 +0,0 @@
-<template>
-  <main class="home" aria-labelledby="main-title">
-    <header class="hero">
-      <img
-        v-if="data.heroImage"
-        :src="$withBase(data.heroImage)"
-        :alt="data.heroAlt || 'hero'"
-      >
-
-      <h1 v-if="data.heroText !== null" id="main-title">{{ data.heroText || $title || 'Hello' }}</h1>
-
-      <p class="description">
-        {{ data.tagline || $description || 'Welcome to your VuePress site' }}
-      </p>
-
-      <p
-        class="action"
-        v-if="data.actionText && data.actionLink"
-      >
-        <NavLink
-          class="action-button"
-          :item="actionLink"
-        />
-      </p>
-    </header>
-
-    <div
-      class="features"
-      v-if="data.features && data.features.length"
-    >
-      <div
-        class="feature"
-        v-for="(feature, index) in data.features"
-        :key="index"
-      >
-        <h2>{{ feature.title }}</h2>
-        <p>{{ feature.details }}</p>
-      </div>
-    </div>
-
-    <Content class="theme-default-content custom"/>
-    <div
-      class="footer"
-      v-if="data.footer"
-    >
-      {{ data.footer }}
-    </div>
-    <Footer class="footer"></Footer>
-  </main>
-</template>
-
-<script>
-import NavLink from '@theme/components/NavLink.vue'
-import Footer from "./Footer";
-
-export default {
-  components: {Footer, NavLink },
-
-  computed: {
-    data () {
-      return this.$page.frontmatter
-    },
-
-    actionLink () {
-      return {
-        link: this.data.actionLink,
-        text: this.data.actionText
-      }
-    }
-  }
-}
-</script>
-
-<style lang="stylus">
-.home
-  padding $navbarHeight 2rem 0
-  max-width 960px
-  margin 0px auto
-  display block
-  .hero
-    text-align center
-    img
-      max-width: 100%
-      max-height 280px
-      display block
-      margin 3rem auto 1.5rem
-    h1
-      font-size 3rem
-    h1, .description, .action
-      margin 1.8rem auto
-    .description
-      max-width 35rem
-      font-size 1.6rem
-      line-height 1.3
-      color lighten($textColor, 40%)
-    .action-button
-      display inline-block
-      font-size 1.2rem
-      color #fff
-      background-color $accentColor
-      padding 0.8rem 1.6rem
-      border-radius 4px
-      transition background-color .1s ease
-      box-sizing border-box
-      border-bottom 1px solid darken($accentColor, 10%)
-      &:hover
-        background-color lighten($accentColor, 10%)
-  .features
-    border-top 1px solid $borderColor
-    padding 1.2rem 0
-    margin-top 2.5rem
-    display flex
-    flex-wrap wrap
-    align-items flex-start
-    align-content stretch
-    justify-content space-between
-  .feature
-    flex-grow 1
-    flex-basis 30%
-    max-width 30%
-    h2
-      font-size 1.4rem
-      font-weight 500
-      border-bottom none
-      padding-bottom 0
-      color lighten($textColor, 10%)
-    p
-      color lighten($textColor, 25%)
-  .footer
-    padding 2.5rem
-    border-top 1px solid $borderColor
-    text-align center
-    color lighten($textColor, 25%)
-
-@media (max-width: $MQMobile)
-  .home
-    .features
-      flex-direction column
-    .feature
-      max-width 100%
-      padding 0 2.5rem
-
-@media (max-width: $MQMobileNarrow)
-  .home
-    padding-left 1.5rem
-    padding-right 1.5rem
-    .hero
-      img
-        max-height 210px
-        margin 2rem auto 1.2rem
-      h1
-        font-size 2rem
-      h1, .description, .action
-        margin 1.2rem auto
-      .description
-        font-size 1.2rem
-      .action-button
-        font-size 1rem
-        padding 0.6rem 1.2rem
-    .feature
-      h2
-        font-size 1.25rem
-</style>
diff --git a/docs/.vuepress/theme/components/NavLink.vue b/docs/.vuepress/theme/components/NavLink.vue
deleted file mode 100644
index 452a1c6..0000000
--- a/docs/.vuepress/theme/components/NavLink.vue
+++ /dev/null
@@ -1,49 +0,0 @@
-<template>
-  <router-link
-    class="nav-link"
-    :to="link"
-    v-if="!isExternal(link)"
-    :exact="exact"
-  >{{ item.text }}</router-link>
-  <a
-    v-else
-    :href="link"
-    class="nav-link external"
-    :target="isMailto(link) || isTel(link) ? null : '_blank'"
-    :rel="isMailto(link) || isTel(link) ? null : 'noopener noreferrer'"
-  >
-    {{ item.text }}
-    <OutboundLink/>
-  </a>
-</template>
-
-<script>
-import { isExternal, isMailto, isTel, ensureExt } from '../util'
-
-export default {
-  props: {
-    item: {
-      required: true
-    }
-  },
-
-  computed: {
-    link () {
-      return ensureExt(this.item.link)
-    },
-
-    exact () {
-      if (this.$site.locales) {
-        return Object.keys(this.$site.locales).some(rootLink => rootLink === this.link)
-      }
-      return this.link === '/'
-    }
-  },
-
-  methods: {
-    isExternal,
-    isMailto,
-    isTel
-  }
-}
-</script>
diff --git a/docs/.vuepress/theme/components/NavLinks.vue b/docs/.vuepress/theme/components/NavLinks.vue
deleted file mode 100644
index 3174b82..0000000
--- a/docs/.vuepress/theme/components/NavLinks.vue
+++ /dev/null
@@ -1,149 +0,0 @@
-<template>
-  <nav
-    class="nav-links"
-    v-if="userLinks.length || repoLink"
-  >
-    <!-- user links -->
-    <div
-      class="nav-item"
-      v-for="item in userLinks"
-      :key="item.link"
-    >
-      <DropdownLink
-        v-if="item.type === 'links'"
-        :item="item"
-      />
-      <NavLink
-        v-else
-        :item="item"
-      />
-    </div>
-
-    <!-- repo link -->
-    <a
-      v-if="repoLink"
-      :href="repoLink"
-      class="repo-link"
-      target="_blank"
-      rel="noopener noreferrer"
-    >
-      {{ repoLabel }}
-      <OutboundLink/>
-    </a>
-  </nav>
-</template>
-
-<script>
-import DropdownLink from '@theme/components/DropdownLink.vue'
-import { resolveNavLinkItem } from '../util'
-import NavLink from '@theme/components/NavLink.vue'
-
-export default {
-  components: { NavLink, DropdownLink },
-
-  computed: {
-    userNav () {
-      return this.$themeLocaleConfig.nav || this.$site.themeConfig.nav || []
-    },
-
-    nav () {
-      const { locales } = this.$site
-      if (locales && Object.keys(locales).length > 1) {
-        const currentLink = this.$page.path
-        const routes = this.$router.options.routes
-        const themeLocales = this.$site.themeConfig.locales || {}
-        const languageDropdown = {
-          text: this.$themeLocaleConfig.selectText || 'Languages',
-          items: Object.keys(locales).map(path => {
-            const locale = locales[path]
-            const text = themeLocales[path] && themeLocales[path].label || locale.lang
-            let link
-            // Stay on the current page
-            if (locale.lang === this.$lang) {
-              link = currentLink
-            } else {
-              // Try to stay on the same page
-              link = currentLink.replace(this.$localeConfig.path, path)
-              // fallback to homepage
-              if (!routes.some(route => route.path === link)) {
-                link = path
-              }
-            }
-            return { text, link }
-          })
-        }
-        return [...this.userNav, languageDropdown]
-      }
-      return this.userNav
-    },
-
-    userLinks () {
-      return (this.nav || []).map(link => {
-        return Object.assign(resolveNavLinkItem(link), {
-          items: (link.items || []).map(resolveNavLinkItem)
-        })
-      })
-    },
-
-    repoLink () {
-      const { repo } = this.$site.themeConfig
-      if (repo) {
-        return /^https?:/.test(repo)
-          ? repo
-          : `https://github.com/${repo}`
-      }
-    },
-
-    repoLabel () {
-      if (!this.repoLink) return
-      if (this.$site.themeConfig.repoLabel) {
-        return this.$site.themeConfig.repoLabel
-      }
-
-      const repoHost = this.repoLink.match(/^https?:\/\/[^/]+/)[0]
-      const platforms = ['GitHub', 'GitLab', 'Bitbucket']
-      for (let i = 0; i < platforms.length; i++) {
-        const platform = platforms[i]
-        if (new RegExp(platform, 'i').test(repoHost)) {
-          return platform
-        }
-      }
-
-      return 'Source'
-    }
-  }
-}
-</script>
-
-<style lang="stylus">
-.nav-links
-  display inline-block
-  a
-    line-height 1.4rem
-    color inherit
-    &:hover, &.router-link-active
-      color $accentColor
-  .nav-item
-    position relative
-    display inline-block
-    margin-left 1.5rem
-    line-height 2rem
-    &:first-child
-      margin-left 0
-  .repo-link
-    margin-left 1.5rem
-
-@media (max-width: $MQMobile)
-  .nav-links
-    .nav-item, .repo-link
-      margin-left 0
-
-@media (min-width: $MQMobile)
-  .nav-links a
-    &:hover, &.router-link-active
-      color $textColor
-  .nav-item > a:not(.external)
-    &:hover, &.router-link-active
-      margin-bottom -2px
-      border-bottom 2px solid lighten($accentColor, 8%)
-</style>
diff --git a/docs/.vuepress/theme/components/Navbar.vue b/docs/.vuepress/theme/components/Navbar.vue
deleted file mode 100644
index d4f562c..0000000
--- a/docs/.vuepress/theme/components/Navbar.vue
+++ /dev/null
@@ -1,128 +0,0 @@
-<template>
-  <header class="navbar">
-    <SidebarButton @toggle-sidebar="$emit('toggle-sidebar')"/>
-
-    <router-link
-      :to="$localePath"
-      class="home-link"
-    >
-      <img
-        class="logo"
-        v-if="$site.themeConfig.logo"
-        :src="$withBase($site.themeConfig.logo)"
-        :alt="$siteTitle"
-      >
-      <span
-        ref="siteName"
-        class="site-name"
-        v-if="$siteTitle"
-        :class="{ 'can-hide': $site.themeConfig.logo }"
-      >{{ $siteTitle }}</span>
-    </router-link>
-
-    <div
-      class="links"
-      :style="linksWrapMaxWidth ? {
-        'max-width': linksWrapMaxWidth + 'px'
-      } : {}"
-    >
-      <AlgoliaSearchBox
-        v-if="isAlgoliaSearch"
-        :options="algolia"
-      />
-      <SearchBox v-else-if="$site.themeConfig.search !== false && $page.frontmatter.search !== false"/>
-      <NavLinks class="can-hide"/>
-    </div>
-  </header>
-</template>
-
-<script>
-import AlgoliaSearchBox from '@AlgoliaSearchBox'
-import SearchBox from '@SearchBox'
-import SidebarButton from '@theme/components/SidebarButton.vue'
-import NavLinks from '@theme/components/NavLinks.vue'
-
-export default {
-  components: { SidebarButton, NavLinks, SearchBox, AlgoliaSearchBox },
-
-  data () {
-    return {
-      linksWrapMaxWidth: null
-    }
-  },
-
-  mounted () {
-    const MOBILE_DESKTOP_BREAKPOINT = 719 // refer to config.styl
-    const NAVBAR_VERTICAL_PADDING = parseInt(css(this.$el, 'paddingLeft')) + parseInt(css(this.$el, 'paddingRight'))
-    const handleLinksWrapWidth = () => {
-      if (document.documentElement.clientWidth < MOBILE_DESKTOP_BREAKPOINT) {
-        this.linksWrapMaxWidth = null
-      } else {
-        this.linksWrapMaxWidth = this.$el.offsetWidth - NAVBAR_VERTICAL_PADDING
-          - (this.$refs.siteName && this.$refs.siteName.offsetWidth || 0)
-      }
-    }
-    handleLinksWrapWidth()
-    window.addEventListener('resize', handleLinksWrapWidth, false)
-  },
-
-  computed: {
-    algolia () {
-      return this.$themeLocaleConfig.algolia || this.$site.themeConfig.algolia || {}
-    },
-
-    isAlgoliaSearch () {
-      return this.algolia && this.algolia.apiKey && this.algolia.indexName
-    }
-  }
-}
-
-function css (el, property) {
-  // NOTE: Known bug, will return 'auto' if style value is 'auto'
-  const win = el.ownerDocument.defaultView
-  // null means not to return pseudo styles
-  return win.getComputedStyle(el, null)[property]
-}
-</script>
-
-<style lang="stylus">
-$navbar-vertical-padding = 0.7rem
-$navbar-horizontal-padding = 1.5rem
-
-.navbar
-  padding $navbar-vertical-padding $navbar-horizontal-padding
-  line-height $navbarHeight - 1.4rem
-  a, span, img
-    display inline-block
-  .logo
-    height $navbarHeight - 1.4rem
-    min-width $navbarHeight - 1.4rem
-    margin-right 0.8rem
-    vertical-align top
-  .site-name
-    font-size 1.3rem
-    font-weight 600
-    color $textColor
-    position relative
-  .links
-    padding-left 1.5rem
-    box-sizing border-box
-    background-color white
-    white-space nowrap
-    font-size 0.9rem
-    position absolute
-    right $navbar-horizontal-padding
-    top $navbar-vertical-padding
-    display flex
-    .search-box
-      flex: 0 0 auto
-      vertical-align top
-
-@media (max-width: $MQMobile)
-  .navbar
-    padding-left 4rem
-    .can-hide
-      display none
-    .links
-      padding-left 1.5rem
-</style>
diff --git a/docs/.vuepress/theme/components/Page.vue b/docs/.vuepress/theme/components/Page.vue
deleted file mode 100644
index b009366..0000000
--- a/docs/.vuepress/theme/components/Page.vue
+++ /dev/null
@@ -1,274 +0,0 @@
-<template>
-  <main class="page">
-    <slot name="top"/>
-
-    <Content class="theme-default-content"/>
-
-    <footer class="page-edit">
-      <div
-        class="edit-link"
-        v-if="editLink"
-      >
-        <a
-          :href="editLink"
-          target="_blank"
-          rel="noopener noreferrer"
-        >{{ editLinkText }}</a>
-        <OutboundLink/>
-      </div>
-
-      <div
-        class="last-updated"
-        v-if="lastUpdated"
-      >
-        <span class="prefix">{{ lastUpdatedText }}: </span>
-        <span class="time">{{ lastUpdated }}</span>
-      </div>
-    </footer>
-
-    <div class="page-nav" v-if="prev || next">
-      <p class="inner">
-        <span
-          v-if="prev"
-          class="prev"
-        >
-          ←
-          <router-link
-            v-if="prev"
-            class="prev"
-            :to="prev.path"
-          >
-            {{ prev.title || prev.path }}
-          </router-link>
-        </span>
-
-        <span
-          v-if="next"
-          class="next"
-        >
-          <router-link
-            v-if="next"
-            :to="next.path"
-          >
-            {{ next.title || next.path }}
-          </router-link>
-          →
-        </span>
-      </p>
-      <Footer class="footer"></Footer>
-    </div>
-
-    <slot name="bottom"/>
-  </main>
-</template>
-
-<script>
-import isString from 'lodash/isString'
-import isNil from 'lodash/isNil'
-
-import { resolvePage, outboundRE, endingSlashRE } from '../util'
-import Footer from "./Footer";
-
-export default {
-  components: {Footer},
-  props: ['sidebarItems'],
-
-  computed: {
-    lastUpdated () {
-      return this.$page.lastUpdated
-    },
-
-    lastUpdatedText () {
-      if (typeof this.$themeLocaleConfig.lastUpdated === 'string') {
-        return this.$themeLocaleConfig.lastUpdated
-      }
-      if (typeof this.$site.themeConfig.lastUpdated === 'string') {
-        return this.$site.themeConfig.lastUpdated
-      }
-      return 'Last Updated'
-    },
-
-    prev () {
-      return resolvePageLink(LINK_TYPES.PREV, this)
-    },
-
-    next () {
-      return resolvePageLink(LINK_TYPES.NEXT, this)
-    },
-
-    editLink () {
-      if (this.$page.frontmatter.editLink === false) {
-        return
-      }
-      const {
-        repo,
-        editLinks,
-        docsDir = '',
-        docsBranch = 'master',
-        docsRepo = repo
-      } = this.$site.themeConfig
-
-      if (docsRepo && editLinks && this.$page.relativePath) {
-        return this.createEditLink(repo, docsRepo, docsDir, docsBranch, this.$page.relativePath)
-      }
-    },
-
-    editLinkText () {
-      return (
-        this.$themeLocaleConfig.editLinkText
-        || this.$site.themeConfig.editLinkText
-        || `Edit this page`
-      )
-    }
-  },
-
-  methods: {
-    createEditLink (repo, docsRepo, docsDir, docsBranch, path) {
-      const bitbucket = /bitbucket.org/
-      if (bitbucket.test(repo)) {
-        const base = outboundRE.test(docsRepo)
-          ? docsRepo
-          : repo
-        return (
-          base.replace(endingSlashRE, '')
-           + `/src`
-           + `/${docsBranch}/`
-           + (docsDir ? docsDir.replace(endingSlashRE, '') + '/' : '')
-           + path
-           + `?mode=edit&spa=0&at=${docsBranch}&fileviewer=file-view-default`
-        )
-      }
-
-      const base = outboundRE.test(docsRepo)
-        ? docsRepo
-        : `https://github.com/${docsRepo}`
-      return (
-        base.replace(endingSlashRE, '')
-        + `/edit`
-        + `/${docsBranch}/`
-        + (docsDir ? docsDir.replace(endingSlashRE, '') + '/' : '')
-        + path
-      )
-    }
-  }
-}
-
-function resolvePrev (page, items) {
-  return find(page, items, -1)
-}
-
-function resolveNext (page, items) {
-  return find(page, items, 1)
-}
-
-const LINK_TYPES = {
-  NEXT: {
-    resolveLink: resolveNext,
-    getThemeLinkConfig: ({ nextLinks }) => nextLinks,
-    getPageLinkConfig: ({ frontmatter }) => frontmatter.next
-  },
-  PREV: {
-    resolveLink: resolvePrev,
-    getThemeLinkConfig: ({ prevLinks }) => prevLinks,
-    getPageLinkConfig: ({ frontmatter }) => frontmatter.prev
-  }
-}
-
-function resolvePageLink (linkType, { $themeConfig, $page, $route, $site, sidebarItems }) {
-  const { resolveLink, getThemeLinkConfig, getPageLinkConfig } = linkType
-
-  // Get link config from theme
-  const themeLinkConfig = getThemeLinkConfig($themeConfig)
-
-  // Get link config from current page
-  const pageLinkConfig = getPageLinkConfig($page)
-
-  // Page link config will overwrite global theme link config if defined
-  const link = isNil(pageLinkConfig) ? themeLinkConfig : pageLinkConfig
-
-  if (link === false) {
-    return
-  } else if (isString(link)) {
-    return resolvePage($site.pages, link, $route.path)
-  } else {
-    return resolveLink($page, sidebarItems)
-  }
-}
-
-function find (page, items, offset) {
-  const res = []
-  flatten(items, res)
-  for (let i = 0; i < res.length; i++) {
-    const cur = res[i]
-    if (cur.type === 'page' && cur.path === decodeURIComponent(page.path)) {
-      return res[i + offset]
-    }
-  }
-}
-
-function flatten (items, res) {
-  for (let i = 0, l = items.length; i < l; i++) {
-    if (items[i].type === 'group') {
-      flatten(items[i].children || [], res)
-    } else {
-      res.push(items[i])
-    }
-  }
-}
-
-</script>
-
-<style lang="stylus">
-@require '../styles/wrapper.styl'
-
-.page
-  padding-bottom 2rem
-  display block
-
-.page-edit
-  @extend $wrapper
-  padding-top 1rem
-  padding-bottom 1rem
-  overflow auto
-  .edit-link
-    display inline-block
-    a
-      color lighten($textColor, 25%)
-      margin-right 0.25rem
-  .last-updated
-    float right
-    font-size 0.9em
-    .prefix
-      font-weight 500
-      color lighten($textColor, 25%)
-    .time
-      font-weight 400
-      color #aaa
-
-.footer
-  font-size 0.9em
-  color lighten($textColor, 25%)
-
-.page-nav
-  @extend $wrapper
-  padding-top 1rem
-  padding-bottom 0
-  .inner
-    min-height 2rem
-    margin-top 0
-    border-top 1px solid $borderColor
-    padding-top 1rem
-    overflow auto // clear float
-  .next
-    float right
-
-@media (max-width: $MQMobile)
-  .page-edit
-    .edit-link
-      margin-bottom .5rem
-    .last-updated
-      font-size .8em
-      float none
-      text-align left
-
-</style>
diff --git a/docs/.vuepress/theme/components/Sidebar.vue b/docs/.vuepress/theme/components/Sidebar.vue
deleted file mode 100644
index 62f1286..0000000
--- a/docs/.vuepress/theme/components/Sidebar.vue
+++ /dev/null
@@ -1,59 +0,0 @@
-<template>
-  <aside class="sidebar">
-    <NavLinks/>
-    <slot name="top"/>
-    <SidebarLinks :depth="0" :items="items"/>
-    <slot name="bottom"/>
-  </aside>
-</template>
-
-<script>
-import SidebarLinks from '@theme/components/SidebarLinks.vue'
-import NavLinks from '@theme/components/NavLinks.vue'
-
-export default {
-  name: 'Sidebar',
-
-  components: { SidebarLinks, NavLinks },
-
-  props: ['items']
-}
-</script>
-
-<style lang="stylus">
-.sidebar
-  ul
-    padding 0
-    margin 0
-    list-style-type none
-  a
-    display inline-block
-  .nav-links
-    display none
-    border-bottom 1px solid $borderColor
-    padding 0.5rem 0 0.75rem 0
-    a
-      font-weight 600
-    .nav-item, .repo-link
-      display block
-      line-height 1.25rem
-      font-size 1.1em
-      padding 0.5rem 0 0.5rem 1.5rem
-  & > .sidebar-links
-    padding 1.5rem 0
-    & > li > a.sidebar-link
-      font-size 1.1em
-      line-height 1.7
-      font-weight bold
-    & > li:not(:first-child)
-      margin-top .75rem
-
-@media (max-width: $MQMobile)
-  .sidebar
-    .nav-links
-      display block
-      .dropdown-wrapper .nav-dropdown .dropdown-item a.router-link-active::after
-        top calc(1rem - 2px)
-    & > .sidebar-links
-      padding 1rem 0
-</style>
diff --git a/docs/.vuepress/theme/components/SidebarButton.vue b/docs/.vuepress/theme/components/SidebarButton.vue
deleted file mode 100644
index b8fb415..0000000
--- a/docs/.vuepress/theme/components/SidebarButton.vue
+++ /dev/null
@@ -1,27 +0,0 @@
-<template>
-  <div class="sidebar-button" @click="$emit('toggle-sidebar')">
-    <svg class="icon" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512">
-      <path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z" class=""></path>
-    </svg>
-  </div>
-</template>
-
-<style lang="stylus">
-.sidebar-button
-  cursor pointer
-  display none
-  width 1.25rem
-  height 1.25rem
-  position absolute
-  padding 0.6rem
-  top 0.6rem
-  left 1rem
-  .icon
-    display block
-    width 1.25rem
-    height 1.25rem
-
-@media (max-width: $MQMobile)
-  .sidebar-button
-    display block
-</style>
diff --git a/docs/.vuepress/theme/components/SidebarGroup.vue b/docs/.vuepress/theme/components/SidebarGroup.vue
deleted file mode 100644
index da7b5e8..0000000
--- a/docs/.vuepress/theme/components/SidebarGroup.vue
+++ /dev/null
@@ -1,129 +0,0 @@
-<template>
-  <section
-    class="sidebar-group"
-    :class="[
-      {
-        collapsable,
-        'is-sub-group': depth !== 0
-      },
-      `depth-${depth}`
-    ]"
-  >
-    <router-link
-      v-if="item.path"
-      class="sidebar-heading clickable"
-      :class="{
-        open,
-        'active': isActive($route, item.path)
-      }"
-      :to="item.path"
-      @click.native="$emit('toggle')"
-    >
-      <span>{{ item.title }}</span>
-      <span
-        class="arrow"
-        v-if="collapsable"
-        :class="open ? 'down' : 'right'">
-      </span>
-    </router-link>
-
-    <p
-      v-else
-      class="sidebar-heading"
-      :class="{ open }"
-      @click="$emit('toggle')"
-    >
-      <span>{{ item.title }}</span>
-      <span
-        class="arrow"
-        v-if="collapsable"
-        :class="open ? 'down' : 'right'">
-      </span>
-    </p>
-
-    <DropdownTransition>
-      <SidebarLinks
-        class="sidebar-group-items"
-        :items="item.children"
-        v-if="open || !collapsable"
-        :sidebarDepth="item.sidebarDepth"
-        :depth="depth + 1"
-      />
-    </DropdownTransition>
-  </section>
-</template>
-
-<script>
-import { isActive } from '../util'
-import DropdownTransition from '@theme/components/DropdownTransition.vue'
-
-export default {
-  name: 'SidebarGroup',
-  props: ['item', 'open', 'collapsable', 'depth'],
-  components: { DropdownTransition },
-  // ref: https://vuejs.org/v2/guide/components-edge-cases.html#Circular-References-Between-Components
-  beforeCreate () {
-    this.$options.components.SidebarLinks = require('./SidebarLinks.vue').default
-  },
-  methods: { isActive }
-}
-</script>
-
-<style lang="stylus">
-.sidebar-group
-  .sidebar-group
-    padding-left 0.5em
-  &:not(.collapsable)
-    .sidebar-heading:not(.clickable)
-      cursor auto
-      color inherit
-  // refine styles of nested sidebar groups
-  &.is-sub-group
-    padding-left 0
-    & > .sidebar-heading
-      font-size 0.95em
-      line-height 1.4
-      font-weight normal
-      padding-left 2rem
-      &:not(.clickable)
-        opacity 0.5
-    & > .sidebar-group-items
-      padding-left 1rem
-      & > li > .sidebar-link
-        font-size: 0.95em;
-        border-left none
-  &.depth-2
-    & > .sidebar-heading
-      border-left none
-
-.sidebar-heading
-  color $textColor
-  transition color .15s ease
-  cursor pointer
-  font-size 1.1em
-  font-weight bold
-  // text-transform uppercase
-  padding 0.35rem 1.5rem 0.35rem 1.25rem
-  width 100%
-  box-sizing border-box
-  margin 0
-  border-left 0.25rem solid transparent
-  &.open, &:hover
-    color inherit
-  .arrow
-    position relative
-    top -0.12em
-    left 0.5em
-  &.clickable
-    &.active
-      font-weight 600
-      color $accentColor
-      border-left-color $accentColor
-    &:hover
-      color $accentColor
-
-.sidebar-group-items
-  transition height .1s ease-out
-  font-size 0.95em
-  overflow hidden
-</style>
diff --git a/docs/.vuepress/theme/components/SidebarLink.vue b/docs/.vuepress/theme/components/SidebarLink.vue
deleted file mode 100644
index bc5de28..0000000
--- a/docs/.vuepress/theme/components/SidebarLink.vue
+++ /dev/null
@@ -1,125 +0,0 @@
-<script>
-import { isActive, hashRE, groupHeaders } from '../util'
-
-export default {
-  functional: true,
-
-  props: ['item', 'sidebarDepth'],
-
-  render (h,
-    {
-      parent: {
-        $page,
-        $site,
-        $route,
-        $themeConfig,
-        $themeLocaleConfig
-      },
-      props: {
-        item,
-        sidebarDepth
-      }
-    }) {
-    // use custom active class matching logic
-    // due to edge case of paths ending with / + hash
-    const selfActive = isActive($route, item.path)
-    // for sidebar: auto pages, a hash link should be active if one of its child
-    // matches
-    const active = item.type === 'auto'
-      ? selfActive || item.children.some(c => isActive($route, item.basePath + '#' + c.slug))
-      : selfActive
-    const link = item.type === 'external'
-      ? renderExternal(h, item.path, item.title || item.path)
-      : renderLink(h, item.path, item.title || item.path, active)
-
-    const maxDepth = [
-      $page.frontmatter.sidebarDepth,
-      sidebarDepth,
-      $themeLocaleConfig.sidebarDepth,
-      $themeConfig.sidebarDepth,
-      1
-    ].find(depth => depth !== undefined);
-
-    const displayAllHeaders = $themeLocaleConfig.displayAllHeaders
-      || $themeConfig.displayAllHeaders
-
-    if (item.type === 'auto') {
-      return [link, renderChildren(h, item.children, item.basePath, $route, maxDepth)]
-    } else if ((active || displayAllHeaders) && item.headers && !hashRE.test(item.path)) {
-      const children = groupHeaders(item.headers)
-      return [link, renderChildren(h, children, item.path, $route, maxDepth)]
-    } else {
-      return link
-    }
-  }
-}
-
-function renderLink (h, to, text, active) {
-  return h('router-link', {
-    props: {
-      to,
-      activeClass: '',
-      exactActiveClass: ''
-    },
-    class: {
-      active,
-      'sidebar-link': true
-    }
-  }, text)
-}
-
-function renderChildren (h, children, path, route, maxDepth, depth = 1) {
-  if (!children || depth > maxDepth) return null
-  return h('ul', { class: 'sidebar-sub-headers' }, children.map(c => {
-    const active = isActive(route, path + '#' + c.slug)
-    return h('li', { class: 'sidebar-sub-header' }, [
-      renderLink(h, path + '#' + c.slug, c.title, active),
-      renderChildren(h, c.children, path, route, maxDepth, depth + 1)
-    ])
-  }))
-}
-
-function renderExternal (h, to, text) {
-  return h('a', {
-    attrs: {
-      href: to,
-      target: '_blank',
-      rel: 'noopener noreferrer'
-    },
-    class: {
-      'sidebar-link': true
-    }
-  }, [text, h('OutboundLink')])
-}
-</script>
-
-<style lang="stylus">
-.sidebar .sidebar-sub-headers
-  padding-left 1rem
-  font-size 0.95em
-
-a.sidebar-link
-  font-size 1em
-  font-weight 400
-  display inline-block
-  color $textColor
-  border-left 0.25rem solid transparent
-  padding 0.35rem 1rem 0.35rem 1.25rem
-  line-height 1.4
-  width: 100%
-  box-sizing: border-box
-  &:hover
-    color $accentColor
-  &.active
-    font-weight 600
-    color $accentColor
-    border-left-color $accentColor
-  .sidebar-group &
-    padding-left 2rem
-  .sidebar-sub-headers &
-    padding-top 0.25rem
-    padding-bottom 0.25rem
-    border-left none
-    &.active
-      font-weight 500
-</style>
diff --git a/docs/.vuepress/theme/components/SidebarLinks.vue b/docs/.vuepress/theme/components/SidebarLinks.vue
deleted file mode 100644
index dfdb0be..0000000
--- a/docs/.vuepress/theme/components/SidebarLinks.vue
+++ /dev/null
@@ -1,86 +0,0 @@
-<template>
-  <ul
-    class="sidebar-links"
-    v-if="items.length"
-  >
-    <li v-for="(item, i) in items" :key="i">
-      <SidebarGroup
-        v-if="item.type === 'group'"
-        :item="item"
-        :open="i === openGroupIndex"
-        :collapsable="item.collapsable || item.collapsible"
-        :depth="depth"
-        @toggle="toggleGroup(i)"
-      />
-      <SidebarLink
-        v-else
-        :sidebarDepth="sidebarDepth"
-        :item="item"
-      />
-    </li>
-  </ul>
-</template>
-
-<script>
-import SidebarGroup from '@theme/components/SidebarGroup.vue'
-import SidebarLink from '@theme/components/SidebarLink.vue'
-import { isActive } from '../util'
-
-export default {
-  name: 'SidebarLinks',
-
-  components: { SidebarGroup, SidebarLink },
-
-  props: [
-    'items',
-    'depth',  // depth of current sidebar links
-    'sidebarDepth' // depth of headers to be extracted
-  ],
-
-  data () {
-    return {
-      openGroupIndex: 0
-    }
-  },
-
-  created () {
-    this.refreshIndex()
-  },
-
-  watch: {
-    '$route' () {
-      this.refreshIndex()
-    }
-  },
-
-  methods: {
-    refreshIndex () {
-      const index = resolveOpenGroupIndex(
-        this.$route,
-        this.items
-      )
-      if (index > -1) {
-        this.openGroupIndex = index
-      }
-    },
-
-    toggleGroup (index) {
-      this.openGroupIndex = index === this.openGroupIndex ? -1 : index
-    },
-
-    isActive (page) {
-      return isActive(this.$route, page.regularPath)
-    }
-  }
-}
-
-function resolveOpenGroupIndex (route, items) {
-  for (let i = 0; i < items.length; i++) {
-    const item = items[i]
-    if (item.type === 'group' && item.children.some(c => c.type === 'page' && isActive(route, c.path))) {
-      return i
-    }
-  }
-  return -1
-}
-</script>
diff --git a/docs/.vuepress/theme/global-components/Badge.vue b/docs/.vuepress/theme/global-components/Badge.vue
deleted file mode 100644
index 8255293..0000000
--- a/docs/.vuepress/theme/global-components/Badge.vue
+++ /dev/null
@@ -1,44 +0,0 @@
-<script>
-export default {
-  functional: true,
-  props: {
-    type: {
-      type: String,
-      default: 'tip'
-    },
-    text: String,
-    vertical: {
-      type: String,
-      default: 'top'
-    }
-  },
-  render (h, { props, slots }) {
-    return h('span', {
-      class: ['badge', props.type],
-      style: {
-        verticalAlign: props.vertical
-      }
-    }, props.text || slots().default)
-  }
-}
-</script>
-
-<style lang="stylus" scoped>
-.badge
-  display inline-block
-  font-size 14px
-  height 18px
-  line-height 18px
-  border-radius 3px
-  padding 0 6px
-  color white
-  background-color #42b983
-  &.tip, &.green
-    background-color #42b983
-  &.error
-    background-color #DA5961 //#f66
-  &.warning, &.warn, &.yellow
-    background-color darken(#ffe564, 35%)
-  & + &
-    margin-left 5px
-</style>
diff --git a/docs/.vuepress/theme/index.js b/docs/.vuepress/theme/index.js
deleted file mode 100644
index 01de7b1..0000000
--- a/docs/.vuepress/theme/index.js
+++ /dev/null
@@ -1,43 +0,0 @@
-const path = require('path')
-
-// Theme API.
-module.exports = (options, ctx) => ({
-  alias () {
-    const { themeConfig, siteConfig } = ctx
-    // resolve algolia
-    const isAlgoliaSearch = (
-      themeConfig.algolia
-      || Object.keys(siteConfig.locales && themeConfig.locales || {})
-        .some(base => themeConfig.locales[base].algolia)
-    )
-    return {
-      '@AlgoliaSearchBox': isAlgoliaSearch
-        ? path.resolve(__dirname, 'components/AlgoliaSearchBox.vue')
-        : path.resolve(__dirname, 'noopModule.js')
-    }
-  },
-
-  plugins: [
-    ['@vuepress/active-header-links', options.activeHeaderLinks],
-    '@vuepress/search',
-    '@vuepress/plugin-nprogress',
-    ['container', {
-      type: 'tip',
-      defaultTitle: {
-        '/zh/': '提示'
-      }
-    }],
-    ['container', {
-      type: 'warning',
-      defaultTitle: {
-        '/zh/': '注意'
-      }
-    }],
-    ['container', {
-      type: 'danger',
-      defaultTitle: {
-        '/zh/': '警告'
-      }
-    }]
-  ]
-})
diff --git a/docs/.vuepress/theme/layouts/404.vue b/docs/.vuepress/theme/layouts/404.vue
deleted file mode 100644
index 3dc84dc..0000000
--- a/docs/.vuepress/theme/layouts/404.vue
+++ /dev/null
@@ -1,26 +0,0 @@
-<template>
-  <div class="theme-container">
-    <div class="theme-default-content">
-      <h1>404</h1>
-      <blockquote>{{ getMsg() }}</blockquote>
-      <router-link to="/">Take me home.</router-link>
-    </div>
-  </div>
-</template>
-
-<script>
-const msgs = [
-  `There's nothing here.`,
-  `How did we get here?`,
-  `That's a Four-Oh-Four.`,
-  `Looks like we've got some broken links.`
-]
-
-export default {
-  methods: {
-    getMsg () {
-      return msgs[Math.floor(Math.random() * msgs.length)]
-    }
-  }
-}
-</script>
diff --git a/docs/.vuepress/theme/layouts/Layout.vue b/docs/.vuepress/theme/layouts/Layout.vue
deleted file mode 100644
index ee228ff..0000000
--- a/docs/.vuepress/theme/layouts/Layout.vue
+++ /dev/null
@@ -1,149 +0,0 @@
-<template>
-  <div
-    class="theme-container"
-    :class="pageClasses"
-    @touchstart="onTouchStart"
-    @touchend="onTouchEnd"
-  >
-    <Navbar
-      v-if="shouldShowNavbar"
-      @toggle-sidebar="toggleSidebar"
-    />
-
-    <div
-      class="sidebar-mask"
-      @click="toggleSidebar(false)"
-    ></div>
-
-    <Sidebar
-      :items="sidebarItems"
-      @toggle-sidebar="toggleSidebar"
-    >
-      <slot
-        name="sidebar-top"
-        slot="top"
-      />
-      <slot
-        name="sidebar-bottom"
-        slot="bottom"
-      />
-    </Sidebar>
-
-    <Home v-if="$page.frontmatter.home"/>
-
-    <Page
-      v-else
-      :sidebar-items="sidebarItems"
-    >
-      <slot
-        name="page-top"
-        slot="top"
-      />
-      <slot
-        name="page-bottom"
-        slot="bottom"
-      />
-    </Page>
-  </div>
-</template>
-
-<script>
-import Home from '@theme/components/Home.vue'
-import Navbar from '@theme/components/Navbar.vue'
-import Page from '@theme/components/Page.vue'
-import Sidebar from '@theme/components/Sidebar.vue'
-import Footer from "@theme/components/Footer";
-
-import { resolveSidebarItems } from '../util'
-
-export default {
-  components: { Home, Page, Sidebar, Navbar, Footer },
-
-  data () {
-    return {
-      isSidebarOpen: false
-    }
-  },
-
-  computed: {
-    shouldShowNavbar () {
-      const { themeConfig } = this.$site;
-      const { frontmatter } = this.$page
-      if (
-        frontmatter.navbar === false
-        || themeConfig.navbar === false) {
-        return false
-      }
-      return (
-        this.$title
-        || themeConfig.logo
-        || themeConfig.repo
-        || themeConfig.nav
-        || this.$themeLocaleConfig.nav
-      )
-    },
-
-    shouldShowSidebar () {
-      const { frontmatter } = this.$page
-      return (
-        !frontmatter.home
-        && frontmatter.sidebar !== false
-        && this.sidebarItems.length
-      )
-    },
-
-    sidebarItems () {
-      return resolveSidebarItems(
-        this.$page,
-        this.$page.regularPath,
-        this.$site,
-        this.$localePath
-      )
-    },
-
-    pageClasses () {
-      const userPageClass = this.$page.frontmatter.pageClass
-      return [
-        {
-          'no-navbar': !this.shouldShowNavbar,
-          'sidebar-open': this.isSidebarOpen,
-          'no-sidebar': !this.shouldShowSidebar
-        },
-        userPageClass
-      ]
-    }
-  },
-
-  mounted () {
-    this.$router.afterEach(() => {
-      this.isSidebarOpen = false
-    })
-  },
-
-  methods: {
-    toggleSidebar (to) {
-      this.isSidebarOpen = typeof to === 'boolean' ? to : !this.isSidebarOpen
-    },
-
-    // side swipe
-    onTouchStart (e) {
-      this.touchStart = {
-        x: e.changedTouches[0].clientX,
-        y: e.changedTouches[0].clientY
-      }
-    },
-
-    onTouchEnd (e) {
-      const dx = e.changedTouches[0].clientX - this.touchStart.x
-      const dy = e.changedTouches[0].clientY - this.touchStart.y
-      if (Math.abs(dx) > Math.abs(dy) && Math.abs(dx) > 40) {
-        if (dx > 0 && this.touchStart.x <= 80) {
-          this.toggleSidebar(true)
-        } else {
-          this.toggleSidebar(false)
-        }
-      }
-    }
-  }
-}
-</script>
diff --git a/docs/.vuepress/theme/noopModule.js b/docs/.vuepress/theme/noopModule.js
deleted file mode 100644
index b1c6ea4..0000000
--- a/docs/.vuepress/theme/noopModule.js
+++ /dev/null
@@ -1 +0,0 @@
-export default {}
diff --git a/docs/.vuepress/theme/styles/arrow.styl b/docs/.vuepress/theme/styles/arrow.styl
deleted file mode 100644
index 20bffc0..0000000
--- a/docs/.vuepress/theme/styles/arrow.styl
+++ /dev/null
@@ -1,22 +0,0 @@
-@require './config'
-
-.arrow
-  display inline-block
-  width 0
-  height 0
-  &.up
-    border-left 4px solid transparent
-    border-right 4px solid transparent
-    border-bottom 6px solid $arrowBgColor
-  &.down
-    border-left 4px solid transparent
-    border-right 4px solid transparent
-    border-top 6px solid $arrowBgColor
-  &.right
-    border-top 4px solid transparent
-    border-bottom 4px solid transparent
-    border-left 6px solid $arrowBgColor
-  &.left
-    border-top 4px solid transparent
-    border-bottom 4px solid transparent
-    border-right 6px solid $arrowBgColor
diff --git a/docs/.vuepress/theme/styles/code.styl b/docs/.vuepress/theme/styles/code.styl
deleted file mode 100644
index 1565213..0000000
--- a/docs/.vuepress/theme/styles/code.styl
+++ /dev/null
@@ -1,149 +0,0 @@
-{$contentClass}
-  code
-    color lighten($textColor, 20%)
-    padding 0.25rem 0.5rem
-    margin 0
-    font-size 0.85em
-    background-color rgba(27,31,35,0.05)
-    border-radius 3px
-    .token
-      &.deleted
-        color #EC5975
-      &.inserted
-        color $accentColor
-{$contentClass}
-  pre, pre[class*="language-"]
-    line-height 1.4
-    padding 1.25rem 1.5rem
-    margin 0.85rem 0
-    background-color $codeBgColor
-    border-radius 6px
-    overflow auto
-    code
-      color lighten(#A9B7C6, 40%)
-      padding 0
-      background-color transparent
-      border-radius 0
-
-div[class*="language-"]
-  position relative
-  background-color $codeBgColor
-  border-radius 6px
-  .highlight-lines
-    user-select none
-    padding-top 1.3rem
-    position absolute
-    top 0
-    left 0
-    width 100%
-    line-height 1.4
-    .highlighted
-      background-color rgba(0, 0, 0, 66%)
-  pre, pre[class*="language-"]
-    background transparent
-    position relative
-    z-index 1
-  &::before
-    position absolute
-    z-index 3
-    top 0.8em
-    right 1em
-    font-size 0.75rem
-    color rgba(255, 255, 255, 0.4)
-  &:not(.line-numbers-mode)
-    .line-numbers-wrapper
-      display none
-  &.line-numbers-mode
-    .highlight-lines .highlighted
-        position relative
-        &:before
-          content ' '
-          position absolute
-          z-index 3
-          left 0
-          top 0
-          display block
-          width $lineNumbersWrapperWidth
-          height 100%
-          background-color rgba(0, 0, 0, 66%)
-    pre
-      padding-left $lineNumbersWrapperWidth + 1 rem
-      vertical-align middle
-    .line-numbers-wrapper
-      position absolute
-      top 0
-      width $lineNumbersWrapperWidth
-      text-align center
-      color rgba(255, 255, 255, 0.3)
-      padding 1.25rem 0
-      line-height 1.4
-      br
-        user-select none
-      .line-number
-        position relative
-        z-index 4
-        user-select none
-        font-size 0.85em
-    &::after
-      content ''
-      position absolute
-      z-index 2
-      top 0
-      left 0
-      width $lineNumbersWrapperWidth
-      height 100%
-      border-radius 6px 0 0 6px
-      border-right 1px solid rgba(0, 0, 0, 66%)
-      background-color $codeBgColor
-
-
-for lang in $codeLang
-  div{'[class~="language-' + lang + '"]'}
-    &:before
-      content ('' + lang)
-
-div[class~="language-javascript"]
-  &:before
-    content "js"
-
-div[class~="language-typescript"]
-  &:before
-    content "ts"
-
-div[class~="language-markup"]
-  &:before
-    content "html"
-
-div[class~="language-markdown"]
-  &:before
-    content "md"
-
-div[class~="language-json"]:before
-  content "json"
-
-div[class~="language-ruby"]:before
-  content "rb"
-
-div[class~="language-python"]:before
-  content "py"
-
-div[class~="language-bash"]:before
-  content "sh"
-
-div[class~="language-php"]
-  .token.keyword
-    color saturate(#CC7832, 40%)
-  .token.variable
-    color saturate(#9876AA, 40%)
-  .token.comment
-    font-style italic
-    color saturate(#629755, 40%)
-  .token.string
-    color saturate(#6A8759, 40%)
-  .token.class-name
-  .token.operator
-    color lighten(#A9B7C6, 40%)
-  &:before
-    content "php"
-
-@import '~prismjs/themes/prism-tomorrow.css'
diff --git a/docs/.vuepress/theme/styles/config.styl b/docs/.vuepress/theme/styles/config.styl
deleted file mode 100644
index be2f0e0..0000000
--- a/docs/.vuepress/theme/styles/config.styl
+++ /dev/null
@@ -1,2 +0,0 @@
-$contentClass = '.theme-default-content'
-$codeBgColor = #232525
\ No newline at end of file
diff --git a/docs/.vuepress/theme/styles/custom-blocks.styl b/docs/.vuepress/theme/styles/custom-blocks.styl
deleted file mode 100644
index 2d07835..0000000
--- a/docs/.vuepress/theme/styles/custom-blocks.styl
+++ /dev/null
@@ -1,30 +0,0 @@
-.custom-block
-  .custom-block-title
-    font-weight 600
-    margin-bottom -0.4rem
-  &.tip, &.warning, &.danger
-    padding .1rem 1.5rem
-    border-left-width .5rem
-    border-left-style solid
-    margin 1rem 0
-  &.tip
-    background-color #f3f5f7
-    border-color #42b983
-  &.warning
-    background-color rgba(255,229,100,.3)
-    border-color darken(#ffe564, 35%)
-    color darken(#ffe564, 70%)
-    .custom-block-title
-      color darken(#ffe564, 50%)
-    a
-      color $textColor
-  &.danger
-    background-color #ffe6e6
-    border-color darken(red, 20%)
-    color darken(red, 70%)
-    .custom-block-title
-      color darken(red, 40%)
-    a
-      color $textColor
-
-
diff --git a/docs/.vuepress/theme/styles/index.styl b/docs/.vuepress/theme/styles/index.styl
deleted file mode 100644
index 976bfb0..0000000
--- a/docs/.vuepress/theme/styles/index.styl
+++ /dev/null
@@ -1,201 +0,0 @@
-@require './config'
-@require './code'
-@require './custom-blocks'
-@require './arrow'
-@require './wrapper'
-@require './toc'
-
-html, body
-  padding 0
-  margin 0
-  background-color #fff
-
-body
-  font-family -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif
-  -webkit-font-smoothing antialiased
-  -moz-osx-font-smoothing grayscale
-  font-size 16px
-  color $textColor
-
-.page
-  padding-left $sidebarWidth
-
-.navbar
-  position fixed
-  z-index 20
-  top 0
-  left 0
-  right 0
-  height $navbarHeight
-  background-color #fff
-  box-sizing border-box
-  border-bottom 1px solid $borderColor
-
-.sidebar-mask
-  position fixed
-  z-index 9
-  top 0
-  left 0
-  width 100vw
-  height 100vh
-  display none
-
-.sidebar
-  font-size 16px
-  background-color #fff
-  width $sidebarWidth
-  position fixed
-  z-index 10
-  margin 0
-  top $navbarHeight
-  left 0
-  bottom 0
-  box-sizing border-box
-  border-right 1px solid $borderColor
-  overflow-y auto
-
-{$contentClass}:not(.custom)
-  @extend $wrapper
-  > *:first-child
-    margin-top $navbarHeight
-
-  a:hover
-    text-decoration underline
-
-  p.demo
-    padding 1rem 1.5rem
-    border 1px solid #ddd
-    border-radius 4px
-
-  img
-    max-width 100%
-
-{$contentClass}.custom
-  padding 0
-  margin 0
-
-  img
-    max-width 100%
-
-a
-  font-weight 500
-  color $accentColor
-  text-decoration none
-
-p a code
-  font-weight 400
-  color $accentColor
-
-kbd
-  background #eee
-  border solid 0.15rem #ddd
-  border-bottom solid 0.25rem #ddd
-  border-radius 0.15rem
-  padding 0 0.15em
-
-blockquote
-  font-size 1rem
-  color #999;
-  border-left .2rem solid #dfe2e5
-  margin 1rem 0
-  padding .25rem 0 .25rem 1rem
-
-  & > p
-    margin 0
-
-ul, ol
-  padding-left 1.2em
-
-strong
-  font-weight 600
-
-h1, h2, h3, h4, h5, h6
-  font-weight 600
-  line-height 1.25
-
-  {$contentClass}:not(.custom) > &
-    margin-top (0.5rem - $navbarHeight)
-    padding-top ($navbarHeight + 1rem)
-    margin-bottom 0
-
-    &:first-child
-      margin-top -1.5rem
-      margin-bottom 1rem
-
-      + p, + pre, + .custom-block
-        margin-top 2rem
-
-  &:hover .header-anchor
-    opacity: 1
-
-h1
-  font-size 2.2rem
-
-h2
-  font-size 1.65rem
-  padding-bottom .3rem
-  border-bottom 1px solid $borderColor
-
-h3
-  font-size 1.35rem
-
-a.header-anchor
-  font-size 0.85em
-  float left
-  margin-left -0.87em
-  padding-right 0.23em
-  margin-top 0.125em
-  opacity 0
-
-  &:hover
-    text-decoration none
-
-code, kbd, .line-number
-  font-family source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace
-
-p, ul, ol
-  line-height 1.7
-
-hr
-  border 0
-  border-top 1px solid $borderColor
-
-table
-  border-collapse collapse
-  margin 1rem 0
-  display: block
-  overflow-x: auto
-
-tr
-  border-top 1px solid #dfe2e5
-
-  &:nth-child(2n)
-    background-color #f6f8fa
-
-th, td
-  border 1px solid #dfe2e5
-  padding .6em 1em
-
-.theme-container
-  &.sidebar-open
-    .sidebar-mask
-      display: block
-
-  &.no-navbar
-    {$contentClass}:not(.custom) > h1, h2, h3, h4, h5, h6
-      margin-top 1.5rem
-      padding-top 0
-
-    .sidebar
-      top 0
-
-
-@media (min-width: ($MQMobile + 1px))
-  .theme-container.no-sidebar
-    .sidebar
-      display none
-
-    .page
-      padding-left 0
-
-@require 'mobile.styl'
diff --git a/docs/.vuepress/theme/styles/mobile.styl b/docs/.vuepress/theme/styles/mobile.styl
deleted file mode 100644
index f5bd327..0000000
--- a/docs/.vuepress/theme/styles/mobile.styl
+++ /dev/null
@@ -1,37 +0,0 @@
-@require './config'
-
-$mobileSidebarWidth = $sidebarWidth * 0.82
-
-// narrow desktop / iPad
-@media (max-width: $MQNarrow)
-  .sidebar
-    font-size 15px
-    width $mobileSidebarWidth
-  .page
-    padding-left $mobileSidebarWidth
-
-// wide mobile
-@media (max-width: $MQMobile)
-  .sidebar
-    top 0
-    padding-top $navbarHeight
-    transform translateX(-100%)
-    transition transform .2s ease
-  .page
-    padding-left 0
-  .theme-container
-    &.sidebar-open
-      .sidebar
-        transform translateX(0)
-    &.no-navbar
-      .sidebar
-        padding-top: 0
-
-// narrow mobile
-@media (max-width: $MQMobileNarrow)
-  h1
-    font-size 1.9rem
-  {$contentClass}
-    div[class*="language-"]
-      margin 0.85rem -1.5rem
-      border-radius 0
diff --git a/docs/.vuepress/theme/styles/toc.styl b/docs/.vuepress/theme/styles/toc.styl
deleted file mode 100644
index d3e7106..0000000
--- a/docs/.vuepress/theme/styles/toc.styl
+++ /dev/null
@@ -1,3 +0,0 @@
-.table-of-contents
-  .badge
-    vertical-align middle
diff --git a/docs/.vuepress/theme/styles/wrapper.styl b/docs/.vuepress/theme/styles/wrapper.styl
deleted file mode 100644
index a99262c..0000000
--- a/docs/.vuepress/theme/styles/wrapper.styl
+++ /dev/null
@@ -1,9 +0,0 @@
-$wrapper
-  max-width $contentWidth
-  margin 0 auto
-  padding 2rem 2.5rem
-  @media (max-width: $MQNarrow)
-    padding 2rem
-  @media (max-width: $MQMobileNarrow)
-    padding 1.5rem
-
diff --git a/docs/.vuepress/theme/util/index.js b/docs/.vuepress/theme/util/index.js
deleted file mode 100644
index fbf6416..0000000
--- a/docs/.vuepress/theme/util/index.js
+++ /dev/null
@@ -1,245 +0,0 @@
-export const hashRE = /#.*$/
-export const extRE = /\.(md|html)$/
-export const endingSlashRE = /\/$/
-export const outboundRE = /^[a-z]+:/i
-
-export function normalize (path) {
-  return decodeURI(path)
-    .replace(hashRE, '')
-    .replace(extRE, '')
-}
-
-export function getHash (path) {
-  const match = path.match(hashRE)
-  if (match) {
-    return match[0]
-  }
-}
-
-export function isExternal (path) {
-  return outboundRE.test(path)
-}
-
-export function isMailto (path) {
-  return /^mailto:/.test(path)
-}
-
-export function isTel (path) {
-  return /^tel:/.test(path)
-}
-
-export function ensureExt (path) {
-  if (isExternal(path)) {
-    return path
-  }
-  const hashMatch = path.match(hashRE)
-  const hash = hashMatch ? hashMatch[0] : ''
-  const normalized = normalize(path)
-
-  if (endingSlashRE.test(normalized)) {
-    return path
-  }
-  return normalized + '.html' + hash
-}
-
-export function isActive (route, path) {
-  const routeHash = route.hash
-  const linkHash = getHash(path)
-  if (linkHash && routeHash !== linkHash) {
-    return false
-  }
-  const routePath = normalize(route.path)
-  const pagePath = normalize(path)
-  return routePath === pagePath
-}
-
-export function resolvePage (pages, rawPath, base) {
-  if (isExternal(rawPath)) {
-    return {
-      type: 'external',
-      path: rawPath
-    }
-  }
-  if (base) {
-    rawPath = resolvePath(rawPath, base)
-  }
-  const path = normalize(rawPath)
-  for (let i = 0; i < pages.length; i++) {
-    if (normalize(pages[i].regularPath) === path) {
-      return Object.assign({}, pages[i], {
-        type: 'page',
-        path: ensureExt(pages[i].path)
-      })
-    }
-  }
-  console.error(`[vuepress] No matching page found for sidebar item "${rawPath}"`)
-  return {}
-}
-
-function resolvePath (relative, base, append) {
-  const firstChar = relative.charAt(0)
-  if (firstChar === '/') {
-    return relative
-  }
-
-  if (firstChar === '?' || firstChar === '#') {
-    return base + relative
-  }
-
-  const stack = base.split('/')
-
-  // remove trailing segment if:
-  // - not appending
-  // - appending to trailing slash (last segment is empty)
-  if (!append || !stack[stack.length - 1]) {
-    stack.pop()
-  }
-
-  // resolve relative path
-  const segments = relative.replace(/^\//, '').split('/')
-  for (let i = 0; i < segments.length; i++) {
-    const segment = segments[i]
-    if (segment === '..') {
-      stack.pop()
-    } else if (segment !== '.') {
-      stack.push(segment)
-    }
-  }
-
-  // ensure leading slash
-  if (stack[0] !== '') {
-    stack.unshift('')
-  }
-
-  return stack.join('/')
-}
-
-/**
- * @param { Page } page
- * @param { string } regularPath
- * @param { SiteData } site
- * @param { string } localePath
- * @returns { SidebarGroup }
- */
-export function resolveSidebarItems (page, regularPath, site, localePath) {
-  const { pages, themeConfig } = site
-
-  const localeConfig = localePath && themeConfig.locales
-    ? themeConfig.locales[localePath] || themeConfig
-    : themeConfig
-
-  const pageSidebarConfig = page.frontmatter.sidebar || localeConfig.sidebar || themeConfig.sidebar
-  if (pageSidebarConfig === 'auto') {
-    return resolveHeaders(page)
-  }
-
-  const sidebarConfig = localeConfig.sidebar || themeConfig.sidebar
-  if (!sidebarConfig) {
-    return []
-  } else {
-    const { base, config } = resolveMatchingConfig(regularPath, sidebarConfig)
-    return config
-      ? config.map(item => resolveItem(item, pages, base))
-      : []
-  }
-}
-
-/**
- * @param { Page } page
- * @returns { SidebarGroup }
- */
-function resolveHeaders (page) {
-  const headers = groupHeaders(page.headers || [])
-  return [{
-    type: 'group',
-    collapsable: false,
-    title: page.title,
-    path: null,
-    children: headers.map(h => ({
-      type: 'auto',
-      title: h.title,
-      basePath: page.path,
-      path: page.path + '#' + h.slug,
-      children: h.children || []
-    }))
-  }]
-}
-
-export function groupHeaders (headers) {
-  // group h3s under h2
-  headers = headers.map(h => Object.assign({}, h))
-  let lastH2
-  headers.forEach(h => {
-    if (h.level === 2) {
-      lastH2 = h
-    } else if (lastH2) {
-      (lastH2.children || (lastH2.children = [])).push(h)
-    }
-  })
-  return headers.filter(h => h.level === 2)
-}
-
-export function resolveNavLinkItem (linkItem) {
-  return Object.assign(linkItem, {
-    type: linkItem.items && linkItem.items.length ? 'links' : 'link'
-  })
-}
-
-/**
- * @param { Route } route
- * @param { Array<string|string[]> | Array<SidebarGroup> | [link: string]: SidebarConfig } config
- * @returns { base: string, config: SidebarConfig }
- */
-export function resolveMatchingConfig (regularPath, config) {
-  if (Array.isArray(config)) {
-    return {
-      base: '/',
-      config: config
-    }
-  }
-  for (const base in config) {
-    if (ensureEndingSlash(regularPath).indexOf(encodeURI(base)) === 0) {
-      return {
-        base,
-        config: config[base]
-      }
-    }
-  }
-  return {}
-}
-
-function ensureEndingSlash (path) {
-  return /(\.html|\/)$/.test(path)
-    ? path
-    : path + '/'
-}
-
-function resolveItem (item, pages, base, groupDepth = 1) {
-  if (typeof item === 'string') {
-    return resolvePage(pages, item, base)
-  } else if (Array.isArray(item)) {
-    return Object.assign(resolvePage(pages, item[0], base), {
-      title: item[1]
-    })
-  } else {
-    if (groupDepth > 3) {
-      console.error(
-        '[vuepress] detected a too deep nested sidebar group.'
-      )
-    }
-    const children = item.children || []
-    if (children.length === 0 && item.path) {
-      return Object.assign(resolvePage(pages, item.path, base), {
-        title: item.title
-      })
-    }
-    return {
-      type: 'group',
-      path: item.path,
-      title: item.title,
-      sidebarDepth: item.sidebarDepth,
-      children: children.map(child => resolveItem(child, pages, base, groupDepth + 1)),
-      collapsable: item.collapsable !== false
-    }
-  }
-}
diff --git a/docs/documentation/digging-deeper/readme.md b/docs/documentation/digging-deeper/readme.md
deleted file mode 100644
index 3bac7d2..0000000
--- a/docs/documentation/digging-deeper/readme.md
+++ /dev/null
@@ -1,4 +0,0 @@
-# Introduction
-
-The following section will dive into the internals of the library. You typically do not need to dive this
-deep, but I feel it would be good to document it for all of our benefit.
\ No newline at end of file
diff --git a/docs/documentation/digging-deeper/the-config-instance.md b/docs/documentation/digging-deeper/the-config-instance.md
deleted file mode 100644
index be95cd5..0000000
--- a/docs/documentation/digging-deeper/the-config-instance.md
+++ /dev/null
@@ -1,149 +0,0 @@
-# The Config Instance
-
-The configuration instance, `Config`, is the core of this library. Upon instantiation of a model or the `Scripting`
-object an instance of `Config` will be created.
-
-`Config` uses a singleton-like pattern to make directly querying on a model possible.
-Due to the usage of this pattern, you typically would not `new` the `Config` object directly. However, if you feel
-you need to access the `Config` directly you should do so using the `::instance()` static method.
-
-## Defaults
-
-The only default setting that I'm currently outlining are the connections. If not defined, the default connection is
-the machine that is currently running PHP.
-
-``` php
-config/connections.php
-
-return [
-    'default' => 'local',
-
-    'servers' => [
-        'local' => [
-            'server'          => '.',
-            'namespace'       => 'Root\CIMv2',
-            'user'            => null,
-            'password'        => null,
-            'locale'          => null,
-            'authority'       => null,
-            'security_flags'  => null,
-        ],
-    ],
-];
-```
-
-If you would like to define a list of connections from a file or array you should construct the array and
-instantiate `Config` as follows:
-
-``` php
-$connections = [
-    'wmi' => [
-        'connections' => [
-            'default' => 'computer-two',
-
-            'servers' => [
-                'computer-one' => [
-                    'server'          => 'computer1',
-                    'user'            => 'admin',
-                    'password'        => 'password',
-                    // All options below are optional.
-                    'namespace'       => null,
-                    'locale'          => null,
-                    'authority'       => null,
-                    'security_flags'  => null,
-                ],
-
-                'computer-two' => [
-                    'server'          => 'computer2',
-                    'user'            => 'admin',
-                    'password'        => 'password',
-                    'locale'          => null,
-                    'authority'       => null,
-                    'security_flags'  => null,
-                ],
-            ]
-        ]
-    ]
-];
-
-Config::instance($connections);
-// or
-new Config($connections);
-```
-
-Either method above will instantiate the `Config` object to be used later. Again, be sure to do this prior to any
-calls to `Config` to assure predictable behavior. If you use `Config::instance($connections)` the new connections will
-simply be merged i to an already started instance, if one exists, or a new instance will be started with the given
-configuration.
-
-Accessing the configuration object in the following way keeps you from trampling over the current configuration and
-allows you to make global changes.
-
-``` php
-// This is how the library accesses the Config object.
-$config = Config::instance();
-```
-
-## Config Methods
-
-While not all of the `Config` methods are outlined here below are the ones that may be most useful to you.
-
-### instance
-#### `Config::instance(array $items = [], Resolver $resolver = null)`
-
-If called without any arguments this will either return the currently instantiated instance or return a new instance
-with default setting.
-
-If called with the `$items` array set this will merge the given configuration into the currently existing configuration.
-
-If called with `$resolver` set then it will replace the current `Resolver` instance with the one given. You shouldn't
-need to override this, but it could be useful when testing.
-
-### newInstance
-#### `Config::newInstance(array $items = [], Resolver $resolver = null)`
-
-Operates the same as above with the exception that this will always return a brand new instance. This is also useful
-when testing to assure that previously set configuration options do not leak into other tests.
-
-```php
-class FeatureTest extends TestCase
-{
-    /** @var Config */
-    protected $config;
-
-    protected function setUp(): void
-    {
-        $this->config = Config::newInstance();
-    }
-}
-```
-
-### getConnection
-#### `$config->getConnection(string $name = null)`
-
-Returns a connection from the `Config` container by name. If `$name` is not provided or set to `'default'` then it will
-return the default connection.
-
-If a connection is not found it will simply return `null`.
-
-### addConnection
-#### `$config->addConnection(string $name, Connection $connection)`
-
-Add a connection to the `Config` instance.
-
-### setDefaultConnection
-#### `$config->setDefaultConnection(string $name)`
-
-This will set the default connection by its name. If the connection name does not exist then it will throw an 
-`InvalidConnectionException`.
-
-
-### getDefaultConnectionName
-#### `$config->getDefaultConnectionName()`
-
-Returns the currently set default connection name.
-
-### getDefaultConnection
-#### `$config->getDefaultConnection()`
-
-Returns the currently set default connection.
\ No newline at end of file
diff --git a/docs/documentation/digging-deeper/win32-model.md b/docs/documentation/digging-deeper/win32-model.md
deleted file mode 100644
index b1d8b06..0000000
--- a/docs/documentation/digging-deeper/win32-model.md
+++ /dev/null
@@ -1,155 +0,0 @@
-# Win32Model
-
-The `Win32Model` is the base class for all of the models that represent the
-[Win32 provider classes](https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-provider). Each model is
-composed of either another model or classes that represent
-[CIM providers](https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-wmi-provider).
-
-## Example Composition
-```
-PHPWinTools\WmiScripting\Models\UserAccount
-    → Models\Account
-        → CIM\CimLogicalElement
-            → CIM\CimManagedSystemElement
-                → Models\Win32Model
-```
-
-## Properties and Attributes
-
-While each model has all of its possible properties defined, the intended method to get the value of these properties
-is [`getAttribute`](#getattribute). This allows for mutating or [casting](#attribute-casting) the value upon retrieval
-via an [attribute method](#attribute-methods), as well as, defining [calculated attributes](#calculated-attributes).
-
-There are also a couple of properties that should be considered when extending from an existing model.
-
-### $connection
-#### `protected $connection = 'default'`
-
-This is the name of connection that should be used when calling [`query`](#query) and [`all`](#all)
-without providing a value for `$connection`.
-
-### $wmi_class_name
-#### `protected $wmi_class_name`
-
-This is an optional property, but only if the model you are calling extends an existing `Win32Model`. If you do not
-define this property and a class name cannot determine the WMI class name an exception will be thrown.
-
-### $attribute_casting
-#### `protected $attribute_casting = []`
-
-Attributes will attempted to be casted to the given type if defined within this array. All definitions of
-`$attribute_casting` are merged from the models ancestors by default. This allows you to define `$attribute_casting` in
-both a parent and a child without risk of having the values overridden. In the case where both the child and parent
-class both define the same attribute to be casted the child casting will be used.
-
-```php
-Available castings
-
-protected $attribute_casting = [
-    'attribute' => 'array',
-    'attribute' => 'bool',
-    'attribute' => 'int',
-    'attribute' => 'string',
-]
-
-```
-
-### $merge_parent_casting
-#### `protected $merge_parent_casting = true`
-
-If set to `false` then the `$attribute_casting` will not be merged from the ancestors and only the castings defined
-within the child's `$attribute_casting` will be considered.
-
-### $hidden_attributes
-#### `protected $hidden_attributes = []`
-
-Any attributes listed in this array will not be included when casting a [model to array](#toarray). Like
-[`$attribute_casting`](#attribute-casting), the values in this array are merged from the model's ancestors.
-
-### $merge_parent_hidden_attributes
-#### `protected $merge_parent_hidden_attributes = true`
-
-If set to `false` then the `$hidden_attributes` will not be merged from the ancestors and only the castings defined
-within the child's `$hidden_attributes` will be considered.
-
-### Calculated Attributes
-
-Calculated attributes are simply [attribute methods](#attribute-methods) without an associated property.
-
-## Methods
-
-Below are the most useful methods available to all classes that extend `Win32Model`.
-
-### Attribute Methods
-#### `getSomePropertyAttribute($value)`
-#### `getSomePropertyAttribute()`
-
-Attribute methods are getter methods that are named after the associated property sandwiched by `get` and `Attribute`.
-This is very similar and absolutely inspired by Laravel's Eloquent attribute mutator.
-
-```php
-public function getSomePropertyAttribute($value)
-{
-    return strtoupper($value);
-}
-```
-
-If there is a property that matches the name within `get` `Attribute` then the value of that property will be passed to
-the method otherwise nothing is passed. This can be used to create calculated attributes that have may not have an
-associated property.
-
-These are evaluated during [`getAttribute`](#getattribute) calls and when calling [`toArray`](#toarray).
-
-### mapConstant
-#### `protected function mapConstant(string $mapping_string_class, $constant)`
-
-This method can be used with an [attribute method](#attribute-methods) to convert a property that typically returns
-an integer that is mappable to a string.
-
-The `$mapping_string_class` parameter expects a class name of a class that extends `MappingString\Mappings` and are
-meant to represent
-[MappingStrings](https://docs.microsoft.com/en-us/windows/win32/wmisdk/standard-qualifiers#mappingstrings).
-
-### query
-#### `Win32Model::query($connection = null)`
-
-This method allows you to query a model directly and returns an instance of `Query\Builder`. It accepts a `$connection`
-argument that can be provided in a number of ways.
-
-```php
-// Uses default model connection or falls back to default Config connection.
-Win32Model::query();
-
-// Finds the connection by its name.
-Win32Model::query('named_connection');
-
-// Uses the connection as is.
-Win32Model::query(Connection::simple('computer', 'user', 'password'));
-```
-
-If you pass a `Connection` instance it will not be stored in the `Config` container. This can be useful if you have a
-number of connections you do not wish to persist.
-
-### all
-#### `Win32Model::all($connection = null)`
-
-This method will call `all` on the `Query\Builder` and return an instance of `ModelCollection`. You can pass a
-connection to this method in the same ways that are available to [`query`](#query).
-
-### getAttribute
-#### `$model->getAttribute($attribute, $default = null)`
-
-This is the preferred method for retrieving values from a model. When using this method the property will be evaluated
-for [castings](#attribute-casting), [attribute methods](#attribute-methods), and
-[calculated attributes](#attribute-methods).
-
-The second parameter, `$default`, allows you to set a default value if no value could be determined otherwise `null` is
-returned.
-
-### toArray
-#### `$model->toArray()`
-
-Transforms the model class into an array.
-
-This is accomplished by evaluating each property, [attribute method](#attribute-methods), [casting](#attribute-casting),
-and [hidden attribute](#hidden-attribute).
\ No newline at end of file
diff --git a/docs/documentation/getting-started.md b/docs/documentation/getting-started.md
deleted file mode 100644
index d4972f1..0000000
--- a/docs/documentation/getting-started.md
+++ /dev/null
@@ -1,88 +0,0 @@
-# Getting Started
-
-:::warning
-#### REQUIREMENTS
-\>= PHP 7.1
-
-Windows and the `com_dotnet` extension enabled (available in every [`Windows PHP`](https://windows.php.net/download/) release).
-:::
-
-## Install
-``` sh
-composer require phpwintools/wmi-scripting
-```
-
-## Basic Configuration
-
-There isn't much configuration that needs to be done to get started with this library. You only need to set the
-connections before using this in your own application.
-
-### Local Connection
-``` php
-// Returns a ModelCollection of LoggedOnUser models from the local machine
-$local = LoggedOnUser::query()->get();
-
-$scripting = new Scripting;
-// Same as above
-$local = $scripting->query()->loggedOnUser()->get();
-```
-
-If no configuration is provided, the library's default connection is localhost.
-
-### Static call on Win32Model class
-``` php
-$connection = Connection::simple('computer-one', 'admin', 'password');
-
-// Returns an instance of Query\Builder
-$builder = LoggedOnUser::query($connection);
-
-// Returns a ModelCollection of Models\LoggedOnUsers
-$loggedOnUsers = $builder->get();
-```
-
-A connection defined in this way will not be stored in the `Config` container. This is useful when you need to reference
-many connections in an array to poll many computers across your network.
-
-``` php
-$username = 'admin';
-$password = 'password';
-$computers = ['computer_one', 'computer_two'];
-
-$results = [];
-
-foreach ($computers as $computer) {
-    // $results becomes an array of ModelCollections
-    $results[] = LoggedOnUser::query(Connection::simple($computer, $user $password));
-}
-```
-
-### With `Scripting` Class
-``` php
-$scripting = new Scripting(Connection::simple('computer-one', 'admin', 'password));
-
-// Returns and instance of Query\Builder (same as above)
-$builder = $scripting->query()->loggedOnUser();
-```
-
-This will set the given connection as the default connection. All models queried without a given connection will use
-this connection.
-
-``` php
-$scripting = new Scripting;
-$scripting->addConnection(
-    'computer-one',
-    Connection::simple('computer-one', 'admin', 'password')
-);
-
-$builder = $scripting->query('computer-one)->loggedOnUser();
-
-// This connection is also available to the Models
-$builder = LoggedOnUser::query('computer-one');
-```
-
-Adding a connection in this way will store the connection for later and repeated use.
-
-::: danger
-`Scripting` should only be instantiated once. If it is instantiated more than once then the last configuration options
-will be used.
-:::
\ No newline at end of file
diff --git a/docs/documentation/readme.md b/docs/documentation/readme.md
deleted file mode 100644
index 8a2a61a..0000000
--- a/docs/documentation/readme.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# How It Works
-
-The basic goal of this library is to make querying information from Windows systems on your network as easy as possible.
-This is accomplished by adopting an active record approach similar to
-[Laravel's Eloquent](https://laravel.com/docs/5.8/eloquent).
-
-The WMI Scripting library consists of models that represent the
-[WMI Win32 Provider classes](https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-provider)
-and a basic query builder using [WQL](https://docs.microsoft.com/en-us/windows/win32/wmisdk/querying-with-wql)
-as it's target language.
-
-I also take advantage of [Laravel's Collections](https://laravel.com/docs/5.8/collections) via the extraction done by
-[TightenCo](https://github.com/tightenco/collect), so you are not bound directly to the Laravel framework. Anytime you
-query a model you will get back an instance of `ModelCollection` which extends Laravel's `Collection`. This allows for
-fluent access to this data: `$modelCollection->map->getAttribute('name);` returns a collection of only the model names.
-
-The Win32Models extend either another Win32 model, or more likely, a
-[CIM](https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cimwin32-wmi-providers) object. This follows the way
-that Win32 models are composed.
-
-## Todo
-
-I'm still working through the API and some of the core code to make this library as clean and resilient as possible.
-The current wish list consists of at least the following:
-
-* Near 100% test coverage
-* Expand testing system
-* Event system
\ No newline at end of file
diff --git a/docs/readme.md b/docs/readme.md
deleted file mode 100644
index 8b6a6e7..0000000
--- a/docs/readme.md
+++ /dev/null
@@ -1,69 +0,0 @@
----
-home: true
-heroImage: /hero-notext.png
-actionText: Documentation
-actionLink: /documentation/
----
-
-<div class="features">
-  <div class="feature">
-    <h2>Active Record Querying</h2>
-    <p>
-        
-</p>
-  </div>
-  <div class="feature">
-    <h2>Easily Testable</h2>
-    <p>
-
-    
-</p>
-  </div>
-  <div class="feature">
-    <h2>Simple API</h2>
-    <p>
-    
-    
-</p>
-  </div>
-</div>
-
-
-## Quick Start
-
-### Install
-
-:::warning
-#### REQUIREMENTS
-\>= PHP 7.1
-
-Windows and the `com_dotnet` extension enabled (available in every [`Windows PHP`](https://windows.php.net/download/) release).
-:::
-
-```sh
-composer require phpwintools/wmi-scripting
-```
-
-### Connections with instantiation
-
-```php
-$scripting = new Scripting;
-
-// These connections can be called by name.
-$scripting->addConnection('server1', Connection::simple('server1', 'user', 'password'));
-$scripting->addConnection('server2', Connection::simple('server2', 'user', 'password'));
-
-$scripting->query('server2')->loggedOnUser()->get();
-
-// This will set 'server1' as the default connection.
-$scripting->setDefaultConnection('server1');
-
-// If no connection is referenced then the default connection will be used.
-$scripting->query()->loggedOnUser()->get();
-```
-
-### Connections with static calls
-
-```php
-LoggedOnUser::query(Connection::simple('server1', 'user', 'password'))->get();
-```
\ No newline at end of file
diff --git a/documentation/digging-deeper/index.html b/documentation/digging-deeper/index.html
new file mode 100644
index 0000000..573f0f0
--- /dev/null
+++ b/documentation/digging-deeper/index.html
@@ -0,0 +1,32 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1">
+    <title>Introduction | WMI Scripting</title>
+    <meta name="description" content="WMI Scripting and Querying made easy.">
+    <link rel="icon" href="/wmi-scripting/wmi-squares.png">
+    
+    <link rel="preload" href="/wmi-scripting/assets/css/0.styles.69febe6e.css" as="style"><link rel="preload" href="/wmi-scripting/assets/js/app.fbd390b3.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/3.30bc9dac.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/2.bbe9884b.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/6.5ba71b34.js" as="script"><link rel="prefetch" href="/wmi-scripting/assets/js/10.26623230.js"><link rel="prefetch" href="/wmi-scripting/assets/js/11.045108de.js"><link rel="prefetch" href="/wmi-scripting/assets/js/12.6a6b2ef0.js"><link rel="prefetch" href="/wmi-scripting/assets/js/4.b2559bf1.js"><link rel="prefetch" href="/wmi-scripting/assets/js/5.4bd79ff2.js"><link rel="prefetch" href="/wmi-scripting/assets/js/7.7458681b.js"><link rel="prefetch" href="/wmi-scripting/assets/js/8.25d2004c.js"><link rel="prefetch" href="/wmi-scripting/assets/js/9.2d3c2ea0.js">
+    <link rel="stylesheet" href="/wmi-scripting/assets/css/0.styles.69febe6e.css">
+  </head>
+  <body>
+    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/wmi-scripting/" class="home-link router-link-active"><img src="/wmi-scripting/wmi-squares.svg" alt="WMI Scripting" class="logo"> <span class="site-name can-hide">WMI Scripting</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/wmi-scripting/" class="nav-link">Home</a></div><div class="nav-item"><a href="/wmi-scripting/documentation/" class="nav-link router-link-active">Documentation</a></div><div class="nav-item"><a href="https://github.com/phpwintools/wmi-scripting" target="_blank" rel="noopener noreferrer" class="nav-link external">
+  GitHub
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/wmi-scripting/" class="nav-link">Home</a></div><div class="nav-item"><a href="/wmi-scripting/documentation/" class="nav-link router-link-active">Documentation</a></div><div class="nav-item"><a href="https://github.com/phpwintools/wmi-scripting" target="_blank" rel="noopener noreferrer" class="nav-link external">
+  GitHub
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav>  <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>Quick Start</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/wmi-scripting/documentation/" class="sidebar-link">How It Works</a></li><li><a href="/wmi-scripting/documentation/getting-started.html" class="sidebar-link">Getting Started</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Digging Deeper</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/wmi-scripting/documentation/digging-deeper/" class="active sidebar-link">Introduction</a></li><li><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html" class="sidebar-link">Win32Model</a></li><li><a href="/wmi-scripting/documentation/digging-deeper/the-config-instance.html" class="sidebar-link">The Config Instance</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="introduction"><a href="#introduction" aria-hidden="true" class="header-anchor">#</a> Introduction</h1> <p>The following section will dive into the internals of the library. You typically do not need to dive this
+deep, but I feel it would be good to document it for all of our benefit.</p></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
+        ←
+        <a href="/wmi-scripting/documentation/getting-started.html" class="prev">
+          Getting Started
+        </a></span> <span class="next"><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html">
+          Win32Model
+        </a>
+        →
+      </span></p> <div class="footer" data-v-22968384>
+    MIT Licensed - Copyright © 2019-present Joe Springe - This library is not in any way associated with nor endorsed by Microsoft™.
+</div></div> </main></div><div class="global-ui"></div></div>
+    <script src="/wmi-scripting/assets/js/app.fbd390b3.js" defer></script><script src="/wmi-scripting/assets/js/3.30bc9dac.js" defer></script><script src="/wmi-scripting/assets/js/2.bbe9884b.js" defer></script><script src="/wmi-scripting/assets/js/6.5ba71b34.js" defer></script>
+  </body>
+</html>
diff --git a/documentation/digging-deeper/the-config-instance.html b/documentation/digging-deeper/the-config-instance.html
new file mode 100644
index 0000000..666ff53
--- /dev/null
+++ b/documentation/digging-deeper/the-config-instance.html
@@ -0,0 +1,103 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1">
+    <title>The Config Instance | WMI Scripting</title>
+    <meta name="description" content="WMI Scripting and Querying made easy.">
+    <link rel="icon" href="/wmi-scripting/wmi-squares.png">
+    
+    <link rel="preload" href="/wmi-scripting/assets/css/0.styles.69febe6e.css" as="style"><link rel="preload" href="/wmi-scripting/assets/js/app.fbd390b3.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/3.30bc9dac.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/2.bbe9884b.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/7.7458681b.js" as="script"><link rel="prefetch" href="/wmi-scripting/assets/js/10.26623230.js"><link rel="prefetch" href="/wmi-scripting/assets/js/11.045108de.js"><link rel="prefetch" href="/wmi-scripting/assets/js/12.6a6b2ef0.js"><link rel="prefetch" href="/wmi-scripting/assets/js/4.b2559bf1.js"><link rel="prefetch" href="/wmi-scripting/assets/js/5.4bd79ff2.js"><link rel="prefetch" href="/wmi-scripting/assets/js/6.5ba71b34.js"><link rel="prefetch" href="/wmi-scripting/assets/js/8.25d2004c.js"><link rel="prefetch" href="/wmi-scripting/assets/js/9.2d3c2ea0.js">
+    <link rel="stylesheet" href="/wmi-scripting/assets/css/0.styles.69febe6e.css">
+  </head>
+  <body>
+    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/wmi-scripting/" class="home-link router-link-active"><img src="/wmi-scripting/wmi-squares.svg" alt="WMI Scripting" class="logo"> <span class="site-name can-hide">WMI Scripting</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/wmi-scripting/" class="nav-link">Home</a></div><div class="nav-item"><a href="/wmi-scripting/documentation/" class="nav-link router-link-active">Documentation</a></div><div class="nav-item"><a href="https://github.com/phpwintools/wmi-scripting" target="_blank" rel="noopener noreferrer" class="nav-link external">
+  GitHub
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/wmi-scripting/" class="nav-link">Home</a></div><div class="nav-item"><a href="/wmi-scripting/documentation/" class="nav-link router-link-active">Documentation</a></div><div class="nav-item"><a href="https://github.com/phpwintools/wmi-scripting" target="_blank" rel="noopener noreferrer" class="nav-link external">
+  GitHub
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav>  <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>Quick Start</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/wmi-scripting/documentation/" class="sidebar-link">How It Works</a></li><li><a href="/wmi-scripting/documentation/getting-started.html" class="sidebar-link">Getting Started</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Digging Deeper</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/wmi-scripting/documentation/digging-deeper/" class="sidebar-link">Introduction</a></li><li><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html" class="sidebar-link">Win32Model</a></li><li><a href="/wmi-scripting/documentation/digging-deeper/the-config-instance.html" class="active sidebar-link">The Config Instance</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/the-config-instance.html#defaults" class="sidebar-link">Defaults</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/the-config-instance.html#config-methods" class="sidebar-link">Config Methods</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/the-config-instance.html#instance" class="sidebar-link">instance</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/the-config-instance.html#newinstance" class="sidebar-link">newInstance</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/the-config-instance.html#getconnection" class="sidebar-link">getConnection</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/the-config-instance.html#addconnection" class="sidebar-link">addConnection</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/the-config-instance.html#setdefaultconnection" class="sidebar-link">setDefaultConnection</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/the-config-instance.html#getdefaultconnectionname" class="sidebar-link">getDefaultConnectionName</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/the-config-instance.html#getdefaultconnection" class="sidebar-link">getDefaultConnection</a></li></ul></li></ul></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="the-config-instance"><a href="#the-config-instance" aria-hidden="true" class="header-anchor">#</a> The Config Instance</h1> <p>The configuration instance, <code>Config</code>, is the core of this library. Upon instantiation of a model or the <code>Scripting</code>
+object an instance of <code>Config</code> will be created.</p> <p><code>Config</code> uses a singleton-like pattern to make directly querying on a model possible.
+Due to the usage of this pattern, you typically would not <code>new</code> the <code>Config</code> object directly. However, if you feel
+you need to access the <code>Config</code> directly you should do so using the <code>::instance()</code> static method.</p> <h2 id="defaults"><a href="#defaults" aria-hidden="true" class="header-anchor">#</a> Defaults</h2> <p>The only default setting that I'm currently outlining are the connections. If not defined, the default connection is
+the machine that is currently running PHP.</p> <div class="language-php line-numbers-mode"><pre class="language-php"><code>config<span class="token operator">/</span>connections<span class="token punctuation">.</span>php
+
+<span class="token keyword">return</span> <span class="token punctuation">[</span>
+    <span class="token single-quoted-string string">'default'</span> <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token single-quoted-string string">'local'</span><span class="token punctuation">,</span>
+
+    <span class="token single-quoted-string string">'servers'</span> <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token punctuation">[</span>
+        <span class="token single-quoted-string string">'local'</span> <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token punctuation">[</span>
+            <span class="token single-quoted-string string">'server'</span>          <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token single-quoted-string string">'.'</span><span class="token punctuation">,</span>
+            <span class="token single-quoted-string string">'namespace'</span>       <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token single-quoted-string string">'Root\CIMv2'</span><span class="token punctuation">,</span>
+            <span class="token single-quoted-string string">'user'</span>            <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token constant">null</span><span class="token punctuation">,</span>
+            <span class="token single-quoted-string string">'password'</span>        <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token constant">null</span><span class="token punctuation">,</span>
+            <span class="token single-quoted-string string">'locale'</span>          <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token constant">null</span><span class="token punctuation">,</span>
+            <span class="token single-quoted-string string">'authority'</span>       <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token constant">null</span><span class="token punctuation">,</span>
+            <span class="token single-quoted-string string">'security_flags'</span>  <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token constant">null</span><span class="token punctuation">,</span>
+        <span class="token punctuation">]</span><span class="token punctuation">,</span>
+    <span class="token punctuation">]</span><span class="token punctuation">,</span>
+<span class="token punctuation">]</span><span class="token punctuation">;</span>
+</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br></div></div><p>If you would like to define a list of connections from a file or array you should construct the array and
+instantiate <code>Config</code> as follows:</p> <div class="language-php line-numbers-mode"><pre class="language-php"><code><span class="token variable">$connections</span> <span class="token operator">=</span> <span class="token punctuation">[</span>
+    <span class="token single-quoted-string string">'wmi'</span> <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token punctuation">[</span>
+        <span class="token single-quoted-string string">'connections'</span> <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token punctuation">[</span>
+            <span class="token single-quoted-string string">'default'</span> <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token single-quoted-string string">'computer-two'</span><span class="token punctuation">,</span>
+
+            <span class="token single-quoted-string string">'servers'</span> <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token punctuation">[</span>
+                <span class="token single-quoted-string string">'computer-one'</span> <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token punctuation">[</span>
+                    <span class="token single-quoted-string string">'server'</span>          <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token single-quoted-string string">'computer1'</span><span class="token punctuation">,</span>
+                    <span class="token single-quoted-string string">'user'</span>            <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token single-quoted-string string">'admin'</span><span class="token punctuation">,</span>
+                    <span class="token single-quoted-string string">'password'</span>        <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token single-quoted-string string">'password'</span><span class="token punctuation">,</span>
+                    <span class="token comment">// All options below are optional.</span>
+                    <span class="token single-quoted-string string">'namespace'</span>       <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token constant">null</span><span class="token punctuation">,</span>
+                    <span class="token single-quoted-string string">'locale'</span>          <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token constant">null</span><span class="token punctuation">,</span>
+                    <span class="token single-quoted-string string">'authority'</span>       <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token constant">null</span><span class="token punctuation">,</span>
+                    <span class="token single-quoted-string string">'security_flags'</span>  <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token constant">null</span><span class="token punctuation">,</span>
+                <span class="token punctuation">]</span><span class="token punctuation">,</span>
+
+                <span class="token single-quoted-string string">'computer-two'</span> <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token punctuation">[</span>
+                    <span class="token single-quoted-string string">'server'</span>          <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token single-quoted-string string">'computer2'</span><span class="token punctuation">,</span>
+                    <span class="token single-quoted-string string">'user'</span>            <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token single-quoted-string string">'admin'</span><span class="token punctuation">,</span>
+                    <span class="token single-quoted-string string">'password'</span>        <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token single-quoted-string string">'password'</span><span class="token punctuation">,</span>
+                    <span class="token single-quoted-string string">'locale'</span>          <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token constant">null</span><span class="token punctuation">,</span>
+                    <span class="token single-quoted-string string">'authority'</span>       <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token constant">null</span><span class="token punctuation">,</span>
+                    <span class="token single-quoted-string string">'security_flags'</span>  <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token constant">null</span><span class="token punctuation">,</span>
+                <span class="token punctuation">]</span><span class="token punctuation">,</span>
+            <span class="token punctuation">]</span>
+        <span class="token punctuation">]</span>
+    <span class="token punctuation">]</span>
+<span class="token punctuation">]</span><span class="token punctuation">;</span>
+
+Config<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">instance</span><span class="token punctuation">(</span><span class="token variable">$connections</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+<span class="token comment">// or</span>
+<span class="token keyword">new</span> <span class="token class-name">Config</span><span class="token punctuation">(</span><span class="token variable">$connections</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br><span class="line-number">14</span><br><span class="line-number">15</span><br><span class="line-number">16</span><br><span class="line-number">17</span><br><span class="line-number">18</span><br><span class="line-number">19</span><br><span class="line-number">20</span><br><span class="line-number">21</span><br><span class="line-number">22</span><br><span class="line-number">23</span><br><span class="line-number">24</span><br><span class="line-number">25</span><br><span class="line-number">26</span><br><span class="line-number">27</span><br><span class="line-number">28</span><br><span class="line-number">29</span><br><span class="line-number">30</span><br><span class="line-number">31</span><br><span class="line-number">32</span><br><span class="line-number">33</span><br></div></div><p>Either method above will instantiate the <code>Config</code> object to be used later. Again, be sure to do this prior to any
+calls to <code>Config</code> to assure predictable behavior. If you use <code>Config::instance($connections)</code> the new connections will
+simply be merged i to an already started instance, if one exists, or a new instance will be started with the given
+configuration.</p> <p>Accessing the configuration object in the following way keeps you from trampling over the current configuration and
+allows you to make global changes.</p> <div class="language-php line-numbers-mode"><pre class="language-php"><code><span class="token comment">// This is how the library accesses the Config object.</span>
+<span class="token variable">$config</span> <span class="token operator">=</span> Config<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">instance</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br></div></div><h2 id="config-methods"><a href="#config-methods" aria-hidden="true" class="header-anchor">#</a> Config Methods</h2> <p>While not all of the <code>Config</code> methods are outlined here below are the ones that may be most useful to you.</p> <h3 id="instance"><a href="#instance" aria-hidden="true" class="header-anchor">#</a> instance</h3> <h4 id="config-instance-array-items-resolver-resolver-null"><a href="#config-instance-array-items-resolver-resolver-null" aria-hidden="true" class="header-anchor">#</a> <code>Config::instance(array $items = [], Resolver $resolver = null)</code></h4> <p>If called without any arguments this will either return the currently instantiated instance or return a new instance
+with default setting.</p> <p>If called with the <code>$items</code> array set this will merge the given configuration into the currently existing configuration.</p> <p>If called with <code>$resolver</code> set then it will replace the current <code>Resolver</code> instance with the one given. You shouldn't
+need to override this, but it could be useful when testing.</p> <h3 id="newinstance"><a href="#newinstance" aria-hidden="true" class="header-anchor">#</a> newInstance</h3> <h4 id="config-newinstance-array-items-resolver-resolver-null"><a href="#config-newinstance-array-items-resolver-resolver-null" aria-hidden="true" class="header-anchor">#</a> <code>Config::newInstance(array $items = [], Resolver $resolver = null)</code></h4> <p>Operates the same as above with the exception that this will always return a brand new instance. This is also useful
+when testing to assure that previously set configuration options do not leak into other tests.</p> <div class="language-php line-numbers-mode"><pre class="language-php"><code><span class="token keyword">class</span> <span class="token class-name">FeatureTest</span> <span class="token keyword">extends</span> <span class="token class-name">TestCase</span>
+<span class="token punctuation">{</span>
+    <span class="token comment">/** @var Config */</span>
+    <span class="token keyword">protected</span> <span class="token variable">$config</span><span class="token punctuation">;</span>
+
+    <span class="token keyword">protected</span> <span class="token keyword">function</span> <span class="token function">setUp</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">:</span> void
+    <span class="token punctuation">{</span>
+        <span class="token variable">$this</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token property">config</span> <span class="token operator">=</span> Config<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">newInstance</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+    <span class="token punctuation">}</span>
+<span class="token punctuation">}</span>
+</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br></div></div><h3 id="getconnection"><a href="#getconnection" aria-hidden="true" class="header-anchor">#</a> getConnection</h3> <h4 id="config-getconnection-string-name-null"><a href="#config-getconnection-string-name-null" aria-hidden="true" class="header-anchor">#</a> <code>$config-&gt;getConnection(string $name = null)</code></h4> <p>Returns a connection from the <code>Config</code> container by name. If <code>$name</code> is not provided or set to <code>'default'</code> then it will
+return the default connection.</p> <p>If a connection is not found it will simply return <code>null</code>.</p> <h3 id="addconnection"><a href="#addconnection" aria-hidden="true" class="header-anchor">#</a> addConnection</h3> <h4 id="config-addconnection-string-name-connection-connection"><a href="#config-addconnection-string-name-connection-connection" aria-hidden="true" class="header-anchor">#</a> <code>$config-&gt;addConnection(string $name, Connection $connection)</code></h4> <p>Add a connection to the <code>Config</code> instance.</p> <h3 id="setdefaultconnection"><a href="#setdefaultconnection" aria-hidden="true" class="header-anchor">#</a> setDefaultConnection</h3> <h4 id="config-setdefaultconnection-string-name"><a href="#config-setdefaultconnection-string-name" aria-hidden="true" class="header-anchor">#</a> <code>$config-&gt;setDefaultConnection(string $name)</code></h4> <p>This will set the default connection by its name. If the connection name does not exist then it will throw an
+<code>InvalidConnectionException</code>.</p> <h3 id="getdefaultconnectionname"><a href="#getdefaultconnectionname" aria-hidden="true" class="header-anchor">#</a> getDefaultConnectionName</h3> <h4 id="config-getdefaultconnectionname"><a href="#config-getdefaultconnectionname" aria-hidden="true" class="header-anchor">#</a> <code>$config-&gt;getDefaultConnectionName()</code></h4> <p>Returns the currently set default connection name.</p> <h3 id="getdefaultconnection"><a href="#getdefaultconnection" aria-hidden="true" class="header-anchor">#</a> getDefaultConnection</h3> <h4 id="config-getdefaultconnection"><a href="#config-getdefaultconnection" aria-hidden="true" class="header-anchor">#</a> <code>$config-&gt;getDefaultConnection()</code></h4> <p>Returns the currently set default connection.</p></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
+        ←
+        <a href="/wmi-scripting/documentation/digging-deeper/win32-model.html" class="prev">
+          Win32Model
+        </a></span> <!----></p> <div class="footer" data-v-22968384>
+    MIT Licensed - Copyright © 2019-present Joe Springe - This library is not in any way associated with nor endorsed by Microsoft™.
+</div></div> </main></div><div class="global-ui"></div></div>
+    <script src="/wmi-scripting/assets/js/app.fbd390b3.js" defer></script><script src="/wmi-scripting/assets/js/3.30bc9dac.js" defer></script><script src="/wmi-scripting/assets/js/2.bbe9884b.js" defer></script><script src="/wmi-scripting/assets/js/7.7458681b.js" defer></script>
+  </body>
+</html>
diff --git a/documentation/digging-deeper/win32-model.html b/documentation/digging-deeper/win32-model.html
new file mode 100644
index 0000000..68da459
--- /dev/null
+++ b/documentation/digging-deeper/win32-model.html
@@ -0,0 +1,83 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1">
+    <title>Win32Model | WMI Scripting</title>
+    <meta name="description" content="WMI Scripting and Querying made easy.">
+    <link rel="icon" href="/wmi-scripting/wmi-squares.png">
+    
+    <link rel="preload" href="/wmi-scripting/assets/css/0.styles.69febe6e.css" as="style"><link rel="preload" href="/wmi-scripting/assets/js/app.fbd390b3.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/3.30bc9dac.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/2.bbe9884b.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/8.25d2004c.js" as="script"><link rel="prefetch" href="/wmi-scripting/assets/js/10.26623230.js"><link rel="prefetch" href="/wmi-scripting/assets/js/11.045108de.js"><link rel="prefetch" href="/wmi-scripting/assets/js/12.6a6b2ef0.js"><link rel="prefetch" href="/wmi-scripting/assets/js/4.b2559bf1.js"><link rel="prefetch" href="/wmi-scripting/assets/js/5.4bd79ff2.js"><link rel="prefetch" href="/wmi-scripting/assets/js/6.5ba71b34.js"><link rel="prefetch" href="/wmi-scripting/assets/js/7.7458681b.js"><link rel="prefetch" href="/wmi-scripting/assets/js/9.2d3c2ea0.js">
+    <link rel="stylesheet" href="/wmi-scripting/assets/css/0.styles.69febe6e.css">
+  </head>
+  <body>
+    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/wmi-scripting/" class="home-link router-link-active"><img src="/wmi-scripting/wmi-squares.svg" alt="WMI Scripting" class="logo"> <span class="site-name can-hide">WMI Scripting</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/wmi-scripting/" class="nav-link">Home</a></div><div class="nav-item"><a href="/wmi-scripting/documentation/" class="nav-link router-link-active">Documentation</a></div><div class="nav-item"><a href="https://github.com/phpwintools/wmi-scripting" target="_blank" rel="noopener noreferrer" class="nav-link external">
+  GitHub
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/wmi-scripting/" class="nav-link">Home</a></div><div class="nav-item"><a href="/wmi-scripting/documentation/" class="nav-link router-link-active">Documentation</a></div><div class="nav-item"><a href="https://github.com/phpwintools/wmi-scripting" target="_blank" rel="noopener noreferrer" class="nav-link external">
+  GitHub
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav>  <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>Quick Start</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/wmi-scripting/documentation/" class="sidebar-link">How It Works</a></li><li><a href="/wmi-scripting/documentation/getting-started.html" class="sidebar-link">Getting Started</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Digging Deeper</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/wmi-scripting/documentation/digging-deeper/" class="sidebar-link">Introduction</a></li><li><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html" class="active sidebar-link">Win32Model</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html#example-composition" class="sidebar-link">Example Composition</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html#properties-and-attributes" class="sidebar-link">Properties and Attributes</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html#connection" class="sidebar-link">$connection</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html#wmi-class-name" class="sidebar-link">$wmiclassname</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html#attribute-casting" class="sidebar-link">$attribute_casting</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html#merge-parent-casting" class="sidebar-link">$mergeparentcasting</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html#hidden-attributes" class="sidebar-link">$hidden_attributes</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html#merge-parent-hidden-attributes" class="sidebar-link">$mergeparenthidden_attributes</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html#calculated-attributes" class="sidebar-link">Calculated Attributes</a></li></ul></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html#methods" class="sidebar-link">Methods</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html#attribute-methods" class="sidebar-link">Attribute Methods</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html#mapconstant" class="sidebar-link">mapConstant</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html#query" class="sidebar-link">query</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html#all" class="sidebar-link">all</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html#getattribute" class="sidebar-link">getAttribute</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html#toarray" class="sidebar-link">toArray</a></li></ul></li></ul></li><li><a href="/wmi-scripting/documentation/digging-deeper/the-config-instance.html" class="sidebar-link">The Config Instance</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="win32model"><a href="#win32model" aria-hidden="true" class="header-anchor">#</a> Win32Model</h1> <p>The <code>Win32Model</code> is the base class for all of the models that represent the
+<a href="https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-provider" target="_blank" rel="noopener noreferrer">Win32 provider classes<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>. Each model is
+composed of either another model or classes that represent
+<a href="https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-wmi-provider" target="_blank" rel="noopener noreferrer">CIM providers<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>.</p> <h2 id="example-composition"><a href="#example-composition" aria-hidden="true" class="header-anchor">#</a> Example Composition</h2> <div class="language- line-numbers-mode"><pre class="language-text"><code>PHPWinTools\WmiScripting\Models\UserAccount
+    → Models\Account
+        → CIM\CimLogicalElement
+            → CIM\CimManagedSystemElement
+                → Models\Win32Model
+</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br></div></div><h2 id="properties-and-attributes"><a href="#properties-and-attributes" aria-hidden="true" class="header-anchor">#</a> Properties and Attributes</h2> <p>While each model has all of its possible properties defined, the intended method to get the value of these properties
+is <a href="#getattribute"><code>getAttribute</code></a>. This allows for mutating or <a href="#attribute-casting">casting</a> the value upon retrieval
+via an <a href="#attribute-methods">attribute method</a>, as well as, defining <a href="#calculated-attributes">calculated attributes</a>.</p> <p>There are also a couple of properties that should be considered when extending from an existing model.</p> <h3 id="connection"><a href="#connection" aria-hidden="true" class="header-anchor">#</a> $connection</h3> <h4 id="protected-connection-default"><a href="#protected-connection-default" aria-hidden="true" class="header-anchor">#</a> <code>protected $connection = 'default'</code></h4> <p>This is the name of connection that should be used when calling <a href="#query"><code>query</code></a> and <a href="#all"><code>all</code></a>
+without providing a value for <code>$connection</code>.</p> <h3 id="wmi-class-name"><a href="#wmi-class-name" aria-hidden="true" class="header-anchor">#</a> $wmi_class_name</h3> <h4 id="protected-wmi-class-name"><a href="#protected-wmi-class-name" aria-hidden="true" class="header-anchor">#</a> <code>protected $wmi_class_name</code></h4> <p>This is an optional property, but only if the model you are calling extends an existing <code>Win32Model</code>. If you do not
+define this property and a class name cannot determine the WMI class name an exception will be thrown.</p> <h3 id="attribute-casting"><a href="#attribute-casting" aria-hidden="true" class="header-anchor">#</a> $attribute_casting</h3> <h4 id="protected-attribute-casting"><a href="#protected-attribute-casting" aria-hidden="true" class="header-anchor">#</a> <code>protected $attribute_casting = []</code></h4> <p>Attributes will attempted to be casted to the given type if defined within this array. All definitions of
+<code>$attribute_casting</code> are merged from the models ancestors by default. This allows you to define <code>$attribute_casting</code> in
+both a parent and a child without risk of having the values overridden. In the case where both the child and parent
+class both define the same attribute to be casted the child casting will be used.</p> <div class="language-php line-numbers-mode"><pre class="language-php"><code>Available castings
+
+<span class="token keyword">protected</span> <span class="token variable">$attribute_casting</span> <span class="token operator">=</span> <span class="token punctuation">[</span>
+    <span class="token single-quoted-string string">'attribute'</span> <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token single-quoted-string string">'array'</span><span class="token punctuation">,</span>
+    <span class="token single-quoted-string string">'attribute'</span> <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token single-quoted-string string">'bool'</span><span class="token punctuation">,</span>
+    <span class="token single-quoted-string string">'attribute'</span> <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token single-quoted-string string">'int'</span><span class="token punctuation">,</span>
+    <span class="token single-quoted-string string">'attribute'</span> <span class="token operator">=</span><span class="token operator">&gt;</span> <span class="token single-quoted-string string">'string'</span><span class="token punctuation">,</span>
+<span class="token punctuation">]</span>
+
+</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br></div></div><h3 id="merge-parent-casting"><a href="#merge-parent-casting" aria-hidden="true" class="header-anchor">#</a> $merge_parent_casting</h3> <h4 id="protected-merge-parent-casting-true"><a href="#protected-merge-parent-casting-true" aria-hidden="true" class="header-anchor">#</a> <code>protected $merge_parent_casting = true</code></h4> <p>If set to <code>false</code> then the <code>$attribute_casting</code> will not be merged from the ancestors and only the castings defined
+within the child's <code>$attribute_casting</code> will be considered.</p> <h3 id="hidden-attributes"><a href="#hidden-attributes" aria-hidden="true" class="header-anchor">#</a> $hidden_attributes</h3> <h4 id="protected-hidden-attributes"><a href="#protected-hidden-attributes" aria-hidden="true" class="header-anchor">#</a> <code>protected $hidden_attributes = []</code></h4> <p>Any attributes listed in this array will not be included when casting a <a href="#toarray">model to array</a>. Like
+<a href="#attribute-casting"><code>$attribute_casting</code></a>, the values in this array are merged from the model's ancestors.</p> <h3 id="merge-parent-hidden-attributes"><a href="#merge-parent-hidden-attributes" aria-hidden="true" class="header-anchor">#</a> $merge_parent_hidden_attributes</h3> <h4 id="protected-merge-parent-hidden-attributes-true"><a href="#protected-merge-parent-hidden-attributes-true" aria-hidden="true" class="header-anchor">#</a> <code>protected $merge_parent_hidden_attributes = true</code></h4> <p>If set to <code>false</code> then the <code>$hidden_attributes</code> will not be merged from the ancestors and only the castings defined
+within the child's <code>$hidden_attributes</code> will be considered.</p> <h3 id="calculated-attributes"><a href="#calculated-attributes" aria-hidden="true" class="header-anchor">#</a> Calculated Attributes</h3> <p>Calculated attributes are simply <a href="#attribute-methods">attribute methods</a> without an associated property.</p> <h2 id="methods"><a href="#methods" aria-hidden="true" class="header-anchor">#</a> Methods</h2> <p>Below are the most useful methods available to all classes that extend <code>Win32Model</code>.</p> <h3 id="attribute-methods"><a href="#attribute-methods" aria-hidden="true" class="header-anchor">#</a> Attribute Methods</h3> <h4 id="getsomepropertyattribute-value"><a href="#getsomepropertyattribute-value" aria-hidden="true" class="header-anchor">#</a> <code>getSomePropertyAttribute($value)</code></h4> <h4 id="getsomepropertyattribute"><a href="#getsomepropertyattribute" aria-hidden="true" class="header-anchor">#</a> <code>getSomePropertyAttribute()</code></h4> <p>Attribute methods are getter methods that are named after the associated property sandwiched by <code>get</code> and <code>Attribute</code>.
+This is very similar and absolutely inspired by Laravel's Eloquent attribute mutator.</p> <div class="language-php line-numbers-mode"><pre class="language-php"><code><span class="token keyword">public</span> <span class="token keyword">function</span> <span class="token function">getSomePropertyAttribute</span><span class="token punctuation">(</span><span class="token variable">$value</span><span class="token punctuation">)</span>
+<span class="token punctuation">{</span>
+    <span class="token keyword">return</span> <span class="token function">strtoupper</span><span class="token punctuation">(</span><span class="token variable">$value</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+<span class="token punctuation">}</span>
+</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br></div></div><p>If there is a property that matches the name within <code>get</code> <code>Attribute</code> then the value of that property will be passed to
+the method otherwise nothing is passed. This can be used to create calculated attributes that have may not have an
+associated property.</p> <p>These are evaluated during <a href="#getattribute"><code>getAttribute</code></a> calls and when calling <a href="#toarray"><code>toArray</code></a>.</p> <h3 id="mapconstant"><a href="#mapconstant" aria-hidden="true" class="header-anchor">#</a> mapConstant</h3> <h4 id="protected-function-mapconstant-string-mapping-string-class-constant"><a href="#protected-function-mapconstant-string-mapping-string-class-constant" aria-hidden="true" class="header-anchor">#</a> <code>protected function mapConstant(string $mapping_string_class, $constant)</code></h4> <p>This method can be used with an <a href="#attribute-methods">attribute method</a> to convert a property that typically returns
+an integer that is mappable to a string.</p> <p>The <code>$mapping_string_class</code> parameter expects a class name of a class that extends <code>MappingString\Mappings</code> and are
+meant to represent
+<a href="https://docs.microsoft.com/en-us/windows/win32/wmisdk/standard-qualifiers#mappingstrings" target="_blank" rel="noopener noreferrer">MappingStrings<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>.</p> <h3 id="query"><a href="#query" aria-hidden="true" class="header-anchor">#</a> query</h3> <h4 id="win32model-query-connection-null"><a href="#win32model-query-connection-null" aria-hidden="true" class="header-anchor">#</a> <code>Win32Model::query($connection = null)</code></h4> <p>This method allows you to query a model directly and returns an instance of <code>Query\Builder</code>. It accepts a <code>$connection</code>
+argument that can be provided in a number of ways.</p> <div class="language-php line-numbers-mode"><pre class="language-php"><code><span class="token comment">// Uses default model connection or falls back to default Config connection.</span>
+Win32Model<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+
+<span class="token comment">// Finds the connection by its name.</span>
+Win32Model<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'named_connection'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+
+<span class="token comment">// Uses the connection as is.</span>
+Win32Model<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">query</span><span class="token punctuation">(</span>Connection<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">simple</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'computer'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'user'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'password'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br></div></div><p>If you pass a <code>Connection</code> instance it will not be stored in the <code>Config</code> container. This can be useful if you have a
+number of connections you do not wish to persist.</p> <h3 id="all"><a href="#all" aria-hidden="true" class="header-anchor">#</a> all</h3> <h4 id="win32model-all-connection-null"><a href="#win32model-all-connection-null" aria-hidden="true" class="header-anchor">#</a> <code>Win32Model::all($connection = null)</code></h4> <p>This method will call <code>all</code> on the <code>Query\Builder</code> and return an instance of <code>ModelCollection</code>. You can pass a
+connection to this method in the same ways that are available to <a href="#query"><code>query</code></a>.</p> <h3 id="getattribute"><a href="#getattribute" aria-hidden="true" class="header-anchor">#</a> getAttribute</h3> <h4 id="model-getattribute-attribute-default-null"><a href="#model-getattribute-attribute-default-null" aria-hidden="true" class="header-anchor">#</a> <code>$model-&gt;getAttribute($attribute, $default = null)</code></h4> <p>This is the preferred method for retrieving values from a model. When using this method the property will be evaluated
+for <a href="#attribute-casting">castings</a>, <a href="#attribute-methods">attribute methods</a>, and
+<a href="#attribute-methods">calculated attributes</a>.</p> <p>The second parameter, <code>$default</code>, allows you to set a default value if no value could be determined otherwise <code>null</code> is
+returned.</p> <h3 id="toarray"><a href="#toarray" aria-hidden="true" class="header-anchor">#</a> toArray</h3> <h4 id="model-toarray"><a href="#model-toarray" aria-hidden="true" class="header-anchor">#</a> <code>$model-&gt;toArray()</code></h4> <p>Transforms the model class into an array.</p> <p>This is accomplished by evaluating each property, <a href="#attribute-methods">attribute method</a>, <a href="#attribute-casting">casting</a>,
+and <a href="#hidden-attribute">hidden attribute</a>.</p></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
+        ←
+        <a href="/wmi-scripting/documentation/digging-deeper/" class="prev router-link-active">
+          Introduction
+        </a></span> <span class="next"><a href="/wmi-scripting/documentation/digging-deeper/the-config-instance.html">
+          The Config Instance
+        </a>
+        →
+      </span></p> <div class="footer" data-v-22968384>
+    MIT Licensed - Copyright © 2019-present Joe Springe - This library is not in any way associated with nor endorsed by Microsoft™.
+</div></div> </main></div><div class="global-ui"></div></div>
+    <script src="/wmi-scripting/assets/js/app.fbd390b3.js" defer></script><script src="/wmi-scripting/assets/js/3.30bc9dac.js" defer></script><script src="/wmi-scripting/assets/js/2.bbe9884b.js" defer></script><script src="/wmi-scripting/assets/js/8.25d2004c.js" defer></script>
+  </body>
+</html>
diff --git a/documentation/getting-started.html b/documentation/getting-started.html
new file mode 100644
index 0000000..792c60c
--- /dev/null
+++ b/documentation/getting-started.html
@@ -0,0 +1,73 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1">
+    <title>Getting Started | WMI Scripting</title>
+    <meta name="description" content="WMI Scripting and Querying made easy.">
+    <link rel="icon" href="/wmi-scripting/wmi-squares.png">
+    
+    <link rel="preload" href="/wmi-scripting/assets/css/0.styles.69febe6e.css" as="style"><link rel="preload" href="/wmi-scripting/assets/js/app.fbd390b3.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/3.30bc9dac.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/2.bbe9884b.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/9.2d3c2ea0.js" as="script"><link rel="prefetch" href="/wmi-scripting/assets/js/10.26623230.js"><link rel="prefetch" href="/wmi-scripting/assets/js/11.045108de.js"><link rel="prefetch" href="/wmi-scripting/assets/js/12.6a6b2ef0.js"><link rel="prefetch" href="/wmi-scripting/assets/js/4.b2559bf1.js"><link rel="prefetch" href="/wmi-scripting/assets/js/5.4bd79ff2.js"><link rel="prefetch" href="/wmi-scripting/assets/js/6.5ba71b34.js"><link rel="prefetch" href="/wmi-scripting/assets/js/7.7458681b.js"><link rel="prefetch" href="/wmi-scripting/assets/js/8.25d2004c.js">
+    <link rel="stylesheet" href="/wmi-scripting/assets/css/0.styles.69febe6e.css">
+  </head>
+  <body>
+    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/wmi-scripting/" class="home-link router-link-active"><img src="/wmi-scripting/wmi-squares.svg" alt="WMI Scripting" class="logo"> <span class="site-name can-hide">WMI Scripting</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/wmi-scripting/" class="nav-link">Home</a></div><div class="nav-item"><a href="/wmi-scripting/documentation/" class="nav-link router-link-active">Documentation</a></div><div class="nav-item"><a href="https://github.com/phpwintools/wmi-scripting" target="_blank" rel="noopener noreferrer" class="nav-link external">
+  GitHub
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/wmi-scripting/" class="nav-link">Home</a></div><div class="nav-item"><a href="/wmi-scripting/documentation/" class="nav-link router-link-active">Documentation</a></div><div class="nav-item"><a href="https://github.com/phpwintools/wmi-scripting" target="_blank" rel="noopener noreferrer" class="nav-link external">
+  GitHub
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav>  <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Quick Start</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/wmi-scripting/documentation/" class="sidebar-link">How It Works</a></li><li><a href="/wmi-scripting/documentation/getting-started.html" class="active sidebar-link">Getting Started</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/getting-started.html#install" class="sidebar-link">Install</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/getting-started.html#basic-configuration" class="sidebar-link">Basic Configuration</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/getting-started.html#local-connection" class="sidebar-link">Local Connection</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/getting-started.html#static-call-on-win32model-class" class="sidebar-link">Static call on Win32Model class</a></li><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/getting-started.html#with-scripting-class" class="sidebar-link">With Scripting Class</a></li></ul></li></ul></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>Digging Deeper</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/wmi-scripting/documentation/digging-deeper/" class="sidebar-link">Introduction</a></li><li><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html" class="sidebar-link">Win32Model</a></li><li><a href="/wmi-scripting/documentation/digging-deeper/the-config-instance.html" class="sidebar-link">The Config Instance</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="getting-started"><a href="#getting-started" aria-hidden="true" class="header-anchor">#</a> Getting Started</h1> <div class="warning custom-block"><h4 id="requirements"><a href="#requirements" aria-hidden="true" class="header-anchor">#</a> REQUIREMENTS</h4> <p>&gt;= PHP 7.1</p> <p>Windows and the <code>com_dotnet</code> extension enabled (available in every <a href="https://windows.php.net/download/" target="_blank" rel="noopener noreferrer"><code>Windows PHP</code><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> release).</p></div> <h2 id="install"><a href="#install" aria-hidden="true" class="header-anchor">#</a> Install</h2> <div class="language-sh line-numbers-mode"><pre class="language-sh"><code>composer require phpwintools/wmi-scripting
+</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><h2 id="basic-configuration"><a href="#basic-configuration" aria-hidden="true" class="header-anchor">#</a> Basic Configuration</h2> <p>There isn't much configuration that needs to be done to get started with this library. You only need to set the
+connections before using this in your own application.</p> <h3 id="local-connection"><a href="#local-connection" aria-hidden="true" class="header-anchor">#</a> Local Connection</h3> <div class="language-php line-numbers-mode"><pre class="language-php"><code><span class="token comment">// Returns a ModelCollection of LoggedOnUser models from the local machine</span>
+<span class="token variable">$local</span> <span class="token operator">=</span> LoggedOnUser<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+
+<span class="token variable">$scripting</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Scripting</span><span class="token punctuation">;</span>
+<span class="token comment">// Same as above</span>
+<span class="token variable">$local</span> <span class="token operator">=</span> <span class="token variable">$scripting</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">loggedOnUser</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br></div></div><p>If no configuration is provided, the library's default connection is localhost.</p> <h3 id="static-call-on-win32model-class"><a href="#static-call-on-win32model-class" aria-hidden="true" class="header-anchor">#</a> Static call on Win32Model class</h3> <div class="language-php line-numbers-mode"><pre class="language-php"><code><span class="token variable">$connection</span> <span class="token operator">=</span> Connection<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">simple</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'computer-one'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'admin'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'password'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+
+<span class="token comment">// Returns an instance of Query\Builder</span>
+<span class="token variable">$builder</span> <span class="token operator">=</span> LoggedOnUser<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token variable">$connection</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+
+<span class="token comment">// Returns a ModelCollection of Models\LoggedOnUsers</span>
+<span class="token variable">$loggedOnUsers</span> <span class="token operator">=</span> <span class="token variable">$builder</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br></div></div><p>A connection defined in this way will not be stored in the <code>Config</code> container. This is useful when you need to reference
+many connections in an array to poll many computers across your network.</p> <div class="language-php line-numbers-mode"><pre class="language-php"><code><span class="token variable">$username</span> <span class="token operator">=</span> <span class="token single-quoted-string string">'admin'</span><span class="token punctuation">;</span>
+<span class="token variable">$password</span> <span class="token operator">=</span> <span class="token single-quoted-string string">'password'</span><span class="token punctuation">;</span>
+<span class="token variable">$computers</span> <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token single-quoted-string string">'computer_one'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'computer_two'</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
+
+<span class="token variable">$results</span> <span class="token operator">=</span> <span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
+
+<span class="token keyword">foreach</span> <span class="token punctuation">(</span><span class="token variable">$computers</span> <span class="token keyword">as</span> <span class="token variable">$computer</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
+    <span class="token comment">// $results becomes an array of ModelCollections</span>
+    <span class="token variable">$results</span><span class="token punctuation">[</span><span class="token punctuation">]</span> <span class="token operator">=</span> LoggedOnUser<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">query</span><span class="token punctuation">(</span>Connection<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">simple</span><span class="token punctuation">(</span><span class="token variable">$computer</span><span class="token punctuation">,</span> <span class="token variable">$user</span> <span class="token variable">$password</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+<span class="token punctuation">}</span>
+</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br></div></div><h3 id="with-scripting-class"><a href="#with-scripting-class" aria-hidden="true" class="header-anchor">#</a> With <code>Scripting</code> Class</h3> <div class="language-php line-numbers-mode"><pre class="language-php"><code><span class="token variable">$scripting</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Scripting</span><span class="token punctuation">(</span>Connection<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">simple</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'computer-one'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'admin'</span><span class="token punctuation">,</span> 'password<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+
+<span class="token comment">// Returns and instance of Query\Builder (same as above)</span>
+<span class="token variable">$builder</span> <span class="token operator">=</span> <span class="token variable">$scripting</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">loggedOnUser</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br></div></div><p>This will set the given connection as the default connection. All models queried without a given connection will use
+this connection.</p> <div class="language-php line-numbers-mode"><pre class="language-php"><code><span class="token variable">$scripting</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Scripting</span><span class="token punctuation">;</span>
+<span class="token variable">$scripting</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">addConnection</span><span class="token punctuation">(</span>
+    <span class="token single-quoted-string string">'computer-one'</span><span class="token punctuation">,</span>
+    Connection<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">simple</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'computer-one'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'admin'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'password'</span><span class="token punctuation">)</span>
+<span class="token punctuation">)</span><span class="token punctuation">;</span>
+
+<span class="token variable">$builder</span> <span class="token operator">=</span> <span class="token variable">$scripting</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'computer-one)-&gt;loggedOnUser();
+
+// This connection is also available to the Models
+$builder = LoggedOnUser::query('</span>computer<span class="token operator">-</span>one'<span class="token punctuation">)</span><span class="token punctuation">;</span>
+</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br></div></div><p>Adding a connection in this way will store the connection for later and repeated use.</p> <div class="danger custom-block"><p><code>Scripting</code> should only be instantiated once. If it is instantiated more than once then the last configuration options
+will be used.</p></div></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
+        ←
+        <a href="/wmi-scripting/documentation/" class="prev router-link-active">
+          How It Works
+        </a></span> <span class="next"><a href="/wmi-scripting/documentation/digging-deeper/">
+          Introduction
+        </a>
+        →
+      </span></p> <div class="footer" data-v-22968384>
+    MIT Licensed - Copyright © 2019-present Joe Springe - This library is not in any way associated with nor endorsed by Microsoft™.
+</div></div> </main></div><div class="global-ui"></div></div>
+    <script src="/wmi-scripting/assets/js/app.fbd390b3.js" defer></script><script src="/wmi-scripting/assets/js/3.30bc9dac.js" defer></script><script src="/wmi-scripting/assets/js/2.bbe9884b.js" defer></script><script src="/wmi-scripting/assets/js/9.2d3c2ea0.js" defer></script>
+  </body>
+</html>
diff --git a/documentation/index.html b/documentation/index.html
new file mode 100644
index 0000000..869b709
--- /dev/null
+++ b/documentation/index.html
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1">
+    <title>How It Works | WMI Scripting</title>
+    <meta name="description" content="WMI Scripting and Querying made easy.">
+    <link rel="icon" href="/wmi-scripting/wmi-squares.png">
+    
+    <link rel="preload" href="/wmi-scripting/assets/css/0.styles.69febe6e.css" as="style"><link rel="preload" href="/wmi-scripting/assets/js/app.fbd390b3.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/3.30bc9dac.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/2.bbe9884b.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/10.26623230.js" as="script"><link rel="prefetch" href="/wmi-scripting/assets/js/11.045108de.js"><link rel="prefetch" href="/wmi-scripting/assets/js/12.6a6b2ef0.js"><link rel="prefetch" href="/wmi-scripting/assets/js/4.b2559bf1.js"><link rel="prefetch" href="/wmi-scripting/assets/js/5.4bd79ff2.js"><link rel="prefetch" href="/wmi-scripting/assets/js/6.5ba71b34.js"><link rel="prefetch" href="/wmi-scripting/assets/js/7.7458681b.js"><link rel="prefetch" href="/wmi-scripting/assets/js/8.25d2004c.js"><link rel="prefetch" href="/wmi-scripting/assets/js/9.2d3c2ea0.js">
+    <link rel="stylesheet" href="/wmi-scripting/assets/css/0.styles.69febe6e.css">
+  </head>
+  <body>
+    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/wmi-scripting/" class="home-link router-link-active"><img src="/wmi-scripting/wmi-squares.svg" alt="WMI Scripting" class="logo"> <span class="site-name can-hide">WMI Scripting</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/wmi-scripting/" class="nav-link">Home</a></div><div class="nav-item"><a href="/wmi-scripting/documentation/" class="nav-link router-link-exact-active router-link-active">Documentation</a></div><div class="nav-item"><a href="https://github.com/phpwintools/wmi-scripting" target="_blank" rel="noopener noreferrer" class="nav-link external">
+  GitHub
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/wmi-scripting/" class="nav-link">Home</a></div><div class="nav-item"><a href="/wmi-scripting/documentation/" class="nav-link router-link-exact-active router-link-active">Documentation</a></div><div class="nav-item"><a href="https://github.com/phpwintools/wmi-scripting" target="_blank" rel="noopener noreferrer" class="nav-link external">
+  GitHub
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav>  <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>Quick Start</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/wmi-scripting/documentation/" class="active sidebar-link">How It Works</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/wmi-scripting/documentation/#todo" class="sidebar-link">Todo</a></li></ul></li><li><a href="/wmi-scripting/documentation/getting-started.html" class="sidebar-link">Getting Started</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>Digging Deeper</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/wmi-scripting/documentation/digging-deeper/" class="sidebar-link">Introduction</a></li><li><a href="/wmi-scripting/documentation/digging-deeper/win32-model.html" class="sidebar-link">Win32Model</a></li><li><a href="/wmi-scripting/documentation/digging-deeper/the-config-instance.html" class="sidebar-link">The Config Instance</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="how-it-works"><a href="#how-it-works" aria-hidden="true" class="header-anchor">#</a> How It Works</h1> <p>The basic goal of this library is to make querying information from Windows systems on your network as easy as possible.
+This is accomplished by adopting an active record approach similar to
+<a href="https://laravel.com/docs/5.8/eloquent" target="_blank" rel="noopener noreferrer">Laravel's Eloquent<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>.</p> <p>The WMI Scripting library consists of models that represent the
+<a href="https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-provider" target="_blank" rel="noopener noreferrer">WMI Win32 Provider classes<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>
+and a basic query builder using <a href="https://docs.microsoft.com/en-us/windows/win32/wmisdk/querying-with-wql" target="_blank" rel="noopener noreferrer">WQL<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>
+as it's target language.</p> <p>I also take advantage of <a href="https://laravel.com/docs/5.8/collections" target="_blank" rel="noopener noreferrer">Laravel's Collections<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> via the extraction done by
+<a href="https://github.com/tightenco/collect" target="_blank" rel="noopener noreferrer">TightenCo<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a>, so you are not bound directly to the Laravel framework. Anytime you
+query a model you will get back an instance of <code>ModelCollection</code> which extends Laravel's <code>Collection</code>. This allows for
+fluent access to this data: <code>$modelCollection-&gt;map-&gt;getAttribute('name);</code> returns a collection of only the model names.</p> <p>The Win32Models extend either another Win32 model, or more likely, a
+<a href="https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cimwin32-wmi-providers" target="_blank" rel="noopener noreferrer">CIM<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> object. This follows the way
+that Win32 models are composed.</p> <h2 id="todo"><a href="#todo" aria-hidden="true" class="header-anchor">#</a> Todo</h2> <p>I'm still working through the API and some of the core code to make this library as clean and resilient as possible.
+The current wish list consists of at least the following:</p> <ul><li>Near 100% test coverage</li> <li>Expand testing system</li> <li>Event system</li></ul></div> <footer class="page-edit"><!----> <!----></footer> <div class="page-nav"><p class="inner"><!----> <span class="next"><a href="/wmi-scripting/documentation/getting-started.html">
+          Getting Started
+        </a>
+        →
+      </span></p> <div class="footer" data-v-22968384>
+    MIT Licensed - Copyright © 2019-present Joe Springe - This library is not in any way associated with nor endorsed by Microsoft™.
+</div></div> </main></div><div class="global-ui"></div></div>
+    <script src="/wmi-scripting/assets/js/app.fbd390b3.js" defer></script><script src="/wmi-scripting/assets/js/3.30bc9dac.js" defer></script><script src="/wmi-scripting/assets/js/2.bbe9884b.js" defer></script><script src="/wmi-scripting/assets/js/10.26623230.js" defer></script>
+  </body>
+</html>
diff --git a/docs/.vuepress/dist/hero-notext.png b/hero-notext.png
similarity index 100%
rename from docs/.vuepress/dist/hero-notext.png
rename to hero-notext.png
diff --git a/docs/.vuepress/dist/hero.png b/hero.png
similarity index 100%
rename from docs/.vuepress/dist/hero.png
rename to hero.png
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..76e2a60
--- /dev/null
+++ b/index.html
@@ -0,0 +1,40 @@
+<!DOCTYPE html>
+<html lang="en-US">
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width,initial-scale=1">
+    <title>WMI Scripting</title>
+    <meta name="description" content="WMI Scripting and Querying made easy.">
+    <link rel="icon" href="/wmi-scripting/wmi-squares.png">
+    
+    <link rel="preload" href="/wmi-scripting/assets/css/0.styles.69febe6e.css" as="style"><link rel="preload" href="/wmi-scripting/assets/js/app.fbd390b3.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/3.30bc9dac.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/2.bbe9884b.js" as="script"><link rel="preload" href="/wmi-scripting/assets/js/11.045108de.js" as="script"><link rel="prefetch" href="/wmi-scripting/assets/js/10.26623230.js"><link rel="prefetch" href="/wmi-scripting/assets/js/12.6a6b2ef0.js"><link rel="prefetch" href="/wmi-scripting/assets/js/4.b2559bf1.js"><link rel="prefetch" href="/wmi-scripting/assets/js/5.4bd79ff2.js"><link rel="prefetch" href="/wmi-scripting/assets/js/6.5ba71b34.js"><link rel="prefetch" href="/wmi-scripting/assets/js/7.7458681b.js"><link rel="prefetch" href="/wmi-scripting/assets/js/8.25d2004c.js"><link rel="prefetch" href="/wmi-scripting/assets/js/9.2d3c2ea0.js">
+    <link rel="stylesheet" href="/wmi-scripting/assets/css/0.styles.69febe6e.css">
+  </head>
+  <body>
+    <div id="app" data-server-rendered="true"><div class="theme-container no-sidebar"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/wmi-scripting/" class="home-link router-link-exact-active router-link-active"><img src="/wmi-scripting/wmi-squares.svg" alt="WMI Scripting" class="logo"> <span class="site-name can-hide">WMI Scripting</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/wmi-scripting/" class="nav-link router-link-exact-active router-link-active">Home</a></div><div class="nav-item"><a href="/wmi-scripting/documentation/" class="nav-link">Documentation</a></div><div class="nav-item"><a href="https://github.com/phpwintools/wmi-scripting" target="_blank" rel="noopener noreferrer" class="nav-link external">
+  GitHub
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/wmi-scripting/" class="nav-link router-link-exact-active router-link-active">Home</a></div><div class="nav-item"><a href="/wmi-scripting/documentation/" class="nav-link">Documentation</a></div><div class="nav-item"><a href="https://github.com/phpwintools/wmi-scripting" target="_blank" rel="noopener noreferrer" class="nav-link external">
+  GitHub
+  <svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></div> <!----></nav>  <!----> </aside> <main aria-labelledby="main-title" class="home"><header class="hero"><img src="/wmi-scripting/hero-notext.png" alt="hero"> <h1 id="main-title">WMI Scripting</h1> <p class="description">
+      WMI Scripting and Querying made easy.
+    </p> <p class="action"><a href="/wmi-scripting/documentation/" class="nav-link action-button">Documentation</a></p></header> <!----> <div class="theme-default-content custom content__default"><div class="features"><div class="feature"><h2>Active Record Querying</h2> <p></p></div> <div class="feature"><h2>Easily Testable</h2> <p></p></div> <div class="feature"><h2>Simple API</h2> <p></p></div></div> <h2 id="quick-start"><a href="#quick-start" aria-hidden="true" class="header-anchor">#</a> Quick Start</h2> <h3 id="install"><a href="#install" aria-hidden="true" class="header-anchor">#</a> Install</h3> <div class="warning custom-block"><h4 id="requirements"><a href="#requirements" aria-hidden="true" class="header-anchor">#</a> REQUIREMENTS</h4> <p>&gt;= PHP 7.1</p> <p>Windows and the <code>com_dotnet</code> extension enabled (available in every <a href="https://windows.php.net/download/" target="_blank" rel="noopener noreferrer"><code>Windows PHP</code><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a> release).</p></div> <div class="language-sh line-numbers-mode"><pre class="language-sh"><code>composer require phpwintools/wmi-scripting
+</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div><h3 id="connections-with-instantiation"><a href="#connections-with-instantiation" aria-hidden="true" class="header-anchor">#</a> Connections with instantiation</h3> <div class="language-php line-numbers-mode"><pre class="language-php"><code><span class="token variable">$scripting</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Scripting</span><span class="token punctuation">;</span>
+
+<span class="token comment">// These connections can be called by name.</span>
+<span class="token variable">$scripting</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">addConnection</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'server1'</span><span class="token punctuation">,</span> Connection<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">simple</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'server1'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'user'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'password'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+<span class="token variable">$scripting</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">addConnection</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'server2'</span><span class="token punctuation">,</span> Connection<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">simple</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'server2'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'user'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'password'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+
+<span class="token variable">$scripting</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'server2'</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">loggedOnUser</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+
+<span class="token comment">// This will set 'server1' as the default connection.</span>
+<span class="token variable">$scripting</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">setDefaultConnection</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'server1'</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+
+<span class="token comment">// If no connection is referenced then the default connection will be used.</span>
+<span class="token variable">$scripting</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">query</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">loggedOnUser</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br><span class="line-number">2</span><br><span class="line-number">3</span><br><span class="line-number">4</span><br><span class="line-number">5</span><br><span class="line-number">6</span><br><span class="line-number">7</span><br><span class="line-number">8</span><br><span class="line-number">9</span><br><span class="line-number">10</span><br><span class="line-number">11</span><br><span class="line-number">12</span><br><span class="line-number">13</span><br></div></div><h3 id="connections-with-static-calls"><a href="#connections-with-static-calls" aria-hidden="true" class="header-anchor">#</a> Connections with static calls</h3> <div class="language-php line-numbers-mode"><pre class="language-php"><code>LoggedOnUser<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">query</span><span class="token punctuation">(</span>Connection<span class="token punctuation">:</span><span class="token punctuation">:</span><span class="token function">simple</span><span class="token punctuation">(</span><span class="token single-quoted-string string">'server1'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'user'</span><span class="token punctuation">,</span> <span class="token single-quoted-string string">'password'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token operator">-</span><span class="token operator">&gt;</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
+</code></pre> <div class="line-numbers-wrapper"><span class="line-number">1</span><br></div></div></div> <!----> <div class="footer" data-v-22968384>
+    MIT Licensed - Copyright © 2019-present Joe Springe - This library is not in any way associated with nor endorsed by Microsoft™.
+</div></main></div><div class="global-ui"></div></div>
+    <script src="/wmi-scripting/assets/js/app.fbd390b3.js" defer></script><script src="/wmi-scripting/assets/js/3.30bc9dac.js" defer></script><script src="/wmi-scripting/assets/js/2.bbe9884b.js" defer></script><script src="/wmi-scripting/assets/js/11.045108de.js" defer></script>
+  </body>
+</html>
diff --git a/package.json b/package.json
deleted file mode 100644
index fb88588..0000000
--- a/package.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
-  "scripts": {
-    "docs:dev": "vuepress dev docs --host localhost --port 8080 --temp docs/.vuepress/.temp",
-    "docs:build": "vuepress build docs",
-    "docs:deploy:windows:ci": "yarn docs:build && cd docs\\.vuepress\\dist && git init && git add -A && git commit -m \"deploy\" && git push -f git@github.com:phpwintools/wmi-scripting.git master:gh-pages",
-    "docs:deploy:windows": "yarn docs:build && cd docs\\.vuepress\\dist && git init && git add -A && git commit -m \"deploy\" && git push -f https://github.com/phpwintools/wmi-scripting.git master:gh-pages",
-    "docs:deploy:linux": "yarn docs:build && cd docs/.vuepress/dist && git init &&  git add -A && git commit -m \"deploy\" && git push -f https://github.com/phpwintools/wmi-scripting.git master:gh-pages"
-  },
-  "dependencies": {
-    "vuepress": "^1.0.4"
-  },
-  "resolutions": {
-    "webpack-dev-middleware": "3.6.0"
-  }
-}
diff --git a/phpunit.xml b/phpunit.xml
deleted file mode 100644
index 123bcb2..0000000
--- a/phpunit.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<phpunit backupGlobals="false"
-         backupStaticAttributes="false"
-         bootstrap="vendor/autoload.php"
-         colors="true"
-         convertErrorsToExceptions="true"
-         convertNoticesToExceptions="true"
-         convertWarningsToExceptions="true"
-         processIsolation="false"
-         stopOnFailure="false">
-    <testsuites>
-        <testsuite name="Library">
-            <directory suffix="Test.php">./tests</directory>
-        </testsuite>
-    </testsuites>
-    <filter>
-        <whitelist processUncoveredFilesFromWhitelist="true">
-            <directory suffix=".php">./src</directory>
-        </whitelist>
-    </filter>
-    <php>
-        <server name="BCRYPT_ROUNDS" value="4"/>
-    </php>
-</phpunit>
diff --git a/src/Support/BooleanModule.php b/src/Support/BooleanModule.php
deleted file mode 100644
index c6b9039..0000000
--- a/src/Support/BooleanModule.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-namespace PhpWinTools\Support;
-
-class BooleanModule
-{
-    public static function makeBoolean($value): bool
-    {
-        if ($value === true || $value === false) {
-            return $value;
-        }
-
-        if (is_array($value)) {
-            return !empty($value);
-        }
-
-        if ($value === 1 || $value === '1') {
-            return true;
-        }
-
-        if ($value === 0 || $value === '0') {
-            return false;
-        }
-
-        $value = strtolower($value);
-
-        if ($value === 'true') {
-            return true;
-        }
-
-        if ($value === 'false') {
-            return false;
-        }
-
-        if (trim($value) !== '') {
-            return true;
-        } else {
-            return false;
-        }
-    }
-}
diff --git a/src/Support/COM/ComVariantWrapper.php b/src/Support/COM/ComVariantWrapper.php
deleted file mode 100644
index be537e2..0000000
--- a/src/Support/COM/ComVariantWrapper.php
+++ /dev/null
@@ -1,169 +0,0 @@
-<?php
-
-namespace PhpWinTools\Support\COM;
-
-use ArrayIterator;
-use COM as ComExt;
-use IteratorAggregate;
-use VARIANT as VariantExt;
-use PhpWinTools\Support\COM\Testing\COMObjectFake;
-use PhpWinTools\WmiScripting\Configuration\Config;
-use PhpWinTools\Support\COM\Testing\ComVariantWrapperFake;
-use PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces\AllVariantsInterface;
-
-class ComVariantWrapper implements IteratorAggregate
-{
-    /** @var ComExt|VariantExt */
-    protected $comObject;
-
-    protected $config;
-
-    public function __construct($comObject, Config $config = null)
-    {
-        $this->comObject = $comObject;
-        $this->config = $config ?? Config::instance();
-    }
-
-    public static function comToString(self $com)
-    {
-        ob_start();
-        com_print_typeinfo($com->getComObject());
-        $com_string = ob_get_contents();
-        ob_end_clean();
-
-        return $com_string;
-    }
-
-    public static function getComClassName(self $com)
-    {
-        if ($com->getComObject() instanceof COMObjectFake) {
-            return ComVariantWrapperFake::comToString($com);
-        }
-
-        preg_match('~(?<=\bclass\s)(\w+)~', self::comToString($com), $matches, 0, 0);
-
-        return $matches[0];
-    }
-
-    public function getComObject()
-    {
-        return $this->comObject;
-    }
-
-    public function canIterateObject()
-    {
-        try {
-            foreach ($this->comObject as $item) {
-                return true;
-            }
-        } catch (\Exception $exception) {
-            return false;
-        }
-
-        return true;
-    }
-
-    public function propertyExists(string $property)
-    {
-        try {
-            $this->comObject->{$property};
-
-            return true;
-        } catch (\Exception $exception) {
-            return false;
-        }
-    }
-
-    public function canIterateProperty(string $property)
-    {
-        if (!$this->propertyExists($property)) {
-            return false;
-        }
-
-        try {
-            foreach ($this->comObject->{$property} as $item) {
-                return true;
-            }
-        } catch (\Exception $exception) {
-            return false;
-        }
-
-        return true;
-    }
-
-    public function propertyToArray(string $property)
-    {
-        if (!$this->canIterateProperty($property)) {
-            return [];
-        }
-
-        $items = [];
-
-        foreach ($this->comObject->{$property} as $item) {
-            $items[] = $this->transformResult($item);
-        }
-
-        return $items;
-    }
-
-    /**
-     * @param $property
-     *
-     * @return mixed|AllVariantsInterface|ComWrapper|VariantWrapper
-     */
-    public function __get($property)
-    {
-        $result = $this->comObject->{$property};
-        // this could fail so add exception
-
-        return $this->transformResult($result);
-    }
-
-    /**
-     * @param $method
-     * @param $arguments
-     *
-     * @return mixed|AllVariantsInterface|ComWrapper|VariantWrapper
-     */
-    public function __call($method, $arguments)
-    {
-        $result = $this->comObject->{$method}(...$arguments);
-        // this could fail so add exception
-
-        return $this->transformResult($result);
-    }
-
-    protected function resolve(string $class = null, ...$parameters)
-    {
-        return ($this->config)($class, $parameters);
-    }
-
-    /**
-     * @param $result
-     *
-     * @return mixed|AllVariantsInterface|ComWrapper|VariantWrapper
-     */
-    protected function transformResult($result)
-    {
-        if ($result instanceof VariantExt) {
-            $result = $this->resolve()->variantWrapper($result, $this->config);
-        }
-
-        if ($result instanceof ComExt) {
-            $result = $this->resolve()->comWrapper($result, $this->config);
-        }
-
-        return $result;
-    }
-
-    public function getIterator()
-    {
-        $items = [];
-
-        foreach ($this->comObject as $item) {
-            $items[] = $this->transformResult($item);
-        }
-
-        return new ArrayIterator($items);
-    }
-}
diff --git a/src/Support/COM/ComWrapper.php b/src/Support/COM/ComWrapper.php
deleted file mode 100644
index 7738f09..0000000
--- a/src/Support/COM/ComWrapper.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace PhpWinTools\Support\COM;
-
-use COM as ComExt;
-use PhpWinTools\Support\COM\Testing\COMFake;
-use PhpWinTools\WmiScripting\Configuration\Config;
-use PhpWinTools\WmiScripting\Exceptions\ComWrapperException;
-
-class ComWrapper extends ComVariantWrapper
-{
-    public function __construct($com, Config $config = null)
-    {
-        if (!$com instanceof Comext && !$com instanceof COMFake) {
-            throw new ComWrapperException('Must be an instance of COM or COMFake Given: '
-                . get_class($com));
-        }
-
-        parent::__construct($com, $config);
-    }
-}
diff --git a/src/Support/COM/Testing/COMFake.php b/src/Support/COM/Testing/COMFake.php
deleted file mode 100644
index ea43d94..0000000
--- a/src/Support/COM/Testing/COMFake.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-namespace PhpWinTools\Support\COM\Testing;
-
-class COMFake extends COMObjectFake
-{
-    public $module_name;
-
-    public $server_name;
-
-    public $code_page;
-
-    public $type_lib;
-
-    public $expectations;
-
-    public function __construct($module_name, $server_name = null, $code_page = null, $type_lib = null)
-    {
-        parent::__construct();
-
-        $this->module_name = $module_name;
-        $this->server_name = $server_name;
-        $this->code_page = $code_page;
-        $this->type_lib = $type_lib;
-    }
-}
diff --git a/src/Support/COM/Testing/COMObjectFake.php b/src/Support/COM/Testing/COMObjectFake.php
deleted file mode 100644
index cddb9d3..0000000
--- a/src/Support/COM/Testing/COMObjectFake.php
+++ /dev/null
@@ -1,79 +0,0 @@
-<?php
-
-namespace PhpWinTools\Support\COM\Testing;
-
-use PhpWinTools\Support\COM\VariantWrapper;
-use PhpWinTools\WmiScripting\Testing\Support\ComResolver;
-use PhpWinTools\WmiScripting\Testing\Support\VARIANTFake;
-use PhpWinTools\WmiScripting\Testing\CallStacks\ComCallStack;
-
-class COMObjectFake
-{
-    protected $stack;
-
-    protected $response = [];
-
-    public function __construct()
-    {
-        $this->stack = ComCallStack::instance();
-    }
-
-    /**
-     * @param $method
-     * @param $response
-     *
-     * @return COMObjectFake|VARIANTFake
-     */
-    public static function withResponse($method, $response)
-    {
-        return (new static())->addResponse($method, $response);
-    }
-
-    public function addResponse($method, $response)
-    {
-        $this->response[$method] = $response;
-
-        return $this;
-    }
-
-    public function call($type, $method, $args = [])
-    {
-        $this->stack->add($type, $method, $args);
-
-        $response = null;
-
-        if (array_key_exists($method, $this->response)) {
-            return $this->response[$method];
-        }
-
-//        if ($type === 'getIterator') {
-//            dd(ApiObjectCallStack::instance());
-//            return new ArrayIterator([
-//                new VariantWrapper(new VARIANTFake()),
-//            ]);
-//        }
-
-        $response = ComResolver::instance($this->stack)->resolve()->{$method}($args);
-
-        if ($response instanceof VARIANTFake || $response instanceof COMFake) {
-            return new VariantWrapper($response);
-        }
-
-        return $response;
-    }
-
-    public function __get($property)
-    {
-        return $this->call(__FUNCTION__, $property);
-    }
-
-    public function __set($method, $value)
-    {
-        return $this->call(__FUNCTION__, $method, $value);
-    }
-
-    public function __call($method, $args)
-    {
-        return $this->call(__FUNCTION__, $method, $args);
-    }
-}
diff --git a/src/Support/COM/Testing/ComVariantWrapperFake.php b/src/Support/COM/Testing/ComVariantWrapperFake.php
deleted file mode 100644
index f299d60..0000000
--- a/src/Support/COM/Testing/ComVariantWrapperFake.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace PhpWinTools\Support\COM\Testing;
-
-use PhpWinTools\Support\COM\ComVariantWrapper;
-use PhpWinTools\WmiScripting\Configuration\Config;
-
-class ComVariantWrapperFake extends ComVariantWrapper
-{
-    public function __construct(COMObjectFake $comObject, Config $config = null)
-    {
-        parent::__construct($comObject, $config);
-    }
-
-    public static function comToString(ComVariantWrapper $com)
-    {
-        return '';
-    }
-
-    /**
-     * @return COMObjectFake
-     */
-    public function getComObject()
-    {
-        return parent::getComObject();
-    }
-}
diff --git a/src/Support/COM/VariantWrapper.php b/src/Support/COM/VariantWrapper.php
deleted file mode 100644
index 6aa9362..0000000
--- a/src/Support/COM/VariantWrapper.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace PhpWinTools\Support\COM;
-
-use VARIANT as VariantExt;
-use PhpWinTools\WmiScripting\Configuration\Config;
-use PhpWinTools\WmiScripting\Testing\Support\VARIANTFake;
-use PhpWinTools\WmiScripting\Exceptions\VariantWrapperException;
-
-class VariantWrapper extends ComVariantWrapper
-{
-    public function __construct($variant, Config $config = null)
-    {
-        if (!$variant instanceof VariantExt && !$variant instanceof VARIANTFake) {
-            throw new VariantWrapperException('Must be an instance of VARIANT or VARIANTFake. Given: '
-                . get_class($variant));
-        }
-
-        parent::__construct($variant, $config);
-    }
-}
diff --git a/src/Support/StringModule.php b/src/Support/StringModule.php
deleted file mode 100644
index 775e31d..0000000
--- a/src/Support/StringModule.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-namespace PhpWinTools\Support;
-
-/**
- * Clone of Str in Laravel.
- */
-class StringModule
-{
-    public static function camel(string $string)
-    {
-        return lcfirst(self::studly($string));
-    }
-
-    public static function snake(string $string)
-    {
-        $string = preg_replace('/\s+/u', '', ucwords($string));
-
-        return strtolower(preg_replace('/(.)(?=[A-Z])/u', '$1_', $string));
-    }
-
-    public static function studly(string $string)
-    {
-        $string = ucwords(str_replace(['-', '_'], ' ', $string));
-
-        return str_replace(' ', '', $string);
-    }
-}
diff --git a/src/WmiScripting/Cim/CimBiosElement.php b/src/WmiScripting/Cim/CimBiosElement.php
deleted file mode 100644
index acbe2da..0000000
--- a/src/WmiScripting/Cim/CimBiosElement.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-bioselement
- */
-class CimBiosElement extends CimSoftwareElement
-{
-    protected $uuid = '{8502C562-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $primaryBIOS;
-}
diff --git a/src/WmiScripting/Cim/CimCacheMemory.php b/src/WmiScripting/Cim/CimCacheMemory.php
deleted file mode 100644
index ac2d2d1..0000000
--- a/src/WmiScripting/Cim/CimCacheMemory.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-cachememory
- */
-class CimCacheMemory extends CimMemory
-{
-    protected $uuid = '{FAF76B65-798C-11D2-AAD1-006008C78BC7}';
-
-    protected $associativity;
-
-    protected $cacheType;
-
-    protected $flushTimer;
-
-    protected $level;
-
-    protected $lineSize;
-
-    protected $readPolicy;
-
-    protected $replacementPolicy;
-
-    protected $writePolicy;
-}
diff --git a/src/WmiScripting/Cim/CimComponent.php b/src/WmiScripting/Cim/CimComponent.php
deleted file mode 100644
index 51809cf..0000000
--- a/src/WmiScripting/Cim/CimComponent.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-use PhpWinTools\WmiScripting\Models\Win32Model;
-use PhpWinTools\WmiScripting\Query\ComponentBuilder;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-component
- */
-class CimComponent extends Win32Model
-{
-    protected $uuid = '{8502C573-5FBB-11D2-AAC1-006008C78BC7}';
-
-    /** @var CimManagedSystemElement */
-    protected $groupComponent;
-
-    /** @var CimManagedSystemElement */
-    protected $partComponent;
-
-    public static function query($connection = null)
-    {
-        return new ComponentBuilder($self = new static(), $self->getConnection($connection));
-    }
-}
diff --git a/src/WmiScripting/Cim/CimComputerSystem.php b/src/WmiScripting/Cim/CimComputerSystem.php
deleted file mode 100644
index 0a5ca2e..0000000
--- a/src/WmiScripting/Cim/CimComputerSystem.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-computersystem
- */
-class CimComputerSystem extends CimSystem
-{
-    protected $uuid = '{8502C525-5FBB-11D2-AAC1-006008C78BC7}';
-}
diff --git a/src/WmiScripting/Cim/CimController.php b/src/WmiScripting/Cim/CimController.php
deleted file mode 100644
index a23eee7..0000000
--- a/src/WmiScripting/Cim/CimController.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-controller
- */
-class CimController extends CimLogicalDevice
-{
-    protected $uuid = '{8502C531-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $maxNumberControlled;
-
-    protected $protocolSupported;
-
-    protected $timeOfLastReset;
-}
diff --git a/src/WmiScripting/Cim/CimCoolingDevice.php b/src/WmiScripting/Cim/CimCoolingDevice.php
deleted file mode 100644
index 5e83c98..0000000
--- a/src/WmiScripting/Cim/CimCoolingDevice.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-coolingdevice
- */
-class CimCoolingDevice extends CimLogicalDevice
-{
-    protected $uuid = '{9565979A-7D80-11D2-AAD3-006008C78BC7}';
-
-    protected $activeCooling;
-}
diff --git a/src/WmiScripting/Cim/CimCurrentSensor.php b/src/WmiScripting/Cim/CimCurrentSensor.php
deleted file mode 100644
index 038e48d..0000000
--- a/src/WmiScripting/Cim/CimCurrentSensor.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-currentsensor
- */
-class CimCurrentSensor extends CimNumericSensor
-{
-    protected $uuid = '{DCA1D084-E3D3-11d2-8601-0000F8102E5F}';
-}
diff --git a/src/WmiScripting/Cim/CimDependency.php b/src/WmiScripting/Cim/CimDependency.php
deleted file mode 100644
index 05a6182..0000000
--- a/src/WmiScripting/Cim/CimDependency.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-use PhpWinTools\WmiScripting\Models\Win32Model;
-use PhpWinTools\WmiScripting\Query\DependencyBuilder;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-dependency
- */
-class CimDependency extends Win32Model
-{
-    protected $uuid = '{8502C53A-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $antecedent;
-
-    protected $dependent;
-
-    public static function query($connection = null)
-    {
-        return new DependencyBuilder($self = new static(), $self->getConnection($connection));
-    }
-}
diff --git a/src/WmiScripting/Cim/CimDesktopMonitor.php b/src/WmiScripting/Cim/CimDesktopMonitor.php
deleted file mode 100644
index 6ea9b7d..0000000
--- a/src/WmiScripting/Cim/CimDesktopMonitor.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-desktopmonitor
- */
-class CimDesktopMonitor extends CimDisplay
-{
-    protected $uuid = '{1008CCE8-7BFF-11D2-AAD2-006008C78BC7}';
-
-    protected $bandwidth;
-
-    protected $displayType;
-
-    protected $screenHeight;
-
-    protected $screenWidth;
-}
diff --git a/src/WmiScripting/Cim/CimDiskDrive.php b/src/WmiScripting/Cim/CimDiskDrive.php
deleted file mode 100644
index 79debdd..0000000
--- a/src/WmiScripting/Cim/CimDiskDrive.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-diskdrive
- */
-class CimDiskDrive extends CimMediaAccessDevice
-{
-    protected $uuid = '{8502C52C-5FBB-11D2-AAC1-006008C78BC7}';
-}
diff --git a/src/WmiScripting/Cim/CimDiskPartition.php b/src/WmiScripting/Cim/CimDiskPartition.php
deleted file mode 100644
index a60cb30..0000000
--- a/src/WmiScripting/Cim/CimDiskPartition.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-diskpartition
- */
-class CimDiskPartition extends CimStorageExtent
-{
-    protected $uuid = '{8502C541-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $bootable;
-
-    protected $primaryPartition;
-}
diff --git a/src/WmiScripting/Cim/CimDisplay.php b/src/WmiScripting/Cim/CimDisplay.php
deleted file mode 100644
index f2e6cc4..0000000
--- a/src/WmiScripting/Cim/CimDisplay.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-display
- */
-class CimDisplay extends CimUserDevice
-{
-    protected $uuid = '{1008CCE7-7BFF-11D2-AAD2-006008C78BC7}';
-}
diff --git a/src/WmiScripting/Cim/CimFan.php b/src/WmiScripting/Cim/CimFan.php
deleted file mode 100644
index 5fbe73e..0000000
--- a/src/WmiScripting/Cim/CimFan.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-fan
- */
-class CimFan extends CimCoolingDevice
-{
-    protected $uuid = '{0A59C856-E3D4-11d2-8601-0000F8102E5F}';
-
-    protected $desiredSpeed;
-
-    protected $variableSpeed;
-
-    public function setSpeed()
-    {
-        //
-    }
-}
diff --git a/src/WmiScripting/Cim/CimKeyboard.php b/src/WmiScripting/Cim/CimKeyboard.php
deleted file mode 100644
index 4dcce40..0000000
--- a/src/WmiScripting/Cim/CimKeyboard.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-keyboard
- */
-class CimKeyboard extends CimUserDevice
-{
-    protected $uuid = '{8502C534-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $layout;
-
-    protected $numberOfFunctionKeys;
-
-    protected $password;
-}
diff --git a/src/WmiScripting/Cim/CimLogicalDevice.php b/src/WmiScripting/Cim/CimLogicalDevice.php
deleted file mode 100644
index 4f4d4d0..0000000
--- a/src/WmiScripting/Cim/CimLogicalDevice.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-logicaldevice
- */
-class CimLogicalDevice extends CimLogicalElement
-{
-    protected $uuid = '{8502C529-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $availability;
-
-    protected $configManagerErrorCode;
-
-    protected $configManagerUserConfig;
-
-    protected $creationClassName;
-
-    protected $deviceID;
-
-    protected $errorCleared;
-
-    protected $errorDescription;
-
-    protected $lastErrorCode;
-
-    protected $pNPDeviceID;
-
-    protected $powerManagementCapabilities = [];
-
-    protected $powerManagementSupported;
-
-    protected $statusInfo;
-
-    protected $systemCreationClassName;
-
-    protected $systemName;
-
-    protected $attribute_casting = [
-        'systemName' => 'string',
-    ];
-
-    public function reset()
-    {
-        //
-    }
-
-    public function setPowerState()
-    {
-        //
-    }
-
-    public function getDeviceId()
-    {
-        return $this->getAttribute('deviceID');
-    }
-}
diff --git a/src/WmiScripting/Cim/CimLogicalDisk.php b/src/WmiScripting/Cim/CimLogicalDisk.php
deleted file mode 100644
index d4acf21..0000000
--- a/src/WmiScripting/Cim/CimLogicalDisk.php
+++ /dev/null
@@ -1,42 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-logicaldisk
- */
-class CimLogicalDisk extends CimStorageExtent
-{
-    protected $byte_suffixes = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];
-
-    protected $uuid = '{8502C539-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $freeSpace;
-
-    protected $size;
-
-    protected $hidden_attributes = ['byte_suffixes'];
-
-    protected $attribute_casting = [
-        'freeSpace' => 'int',
-        'size'      => 'int',
-    ];
-
-    public function getFreeSpace(int $decimal_places = 2, array $byte_suffixes = null)
-    {
-        return $this->convertBytes($this->getAttribute('freeSpace'), $decimal_places, $byte_suffixes);
-    }
-
-    public function getSize(int $decimal_places = 2, array $byte_suffixes = null)
-    {
-        return $this->convertBytes($this->getAttribute('size'), $decimal_places, $byte_suffixes);
-    }
-
-    protected function convertBytes($bytes, int $decimal_places = 2, array $byte_suffixes = null)
-    {
-        $byte_suffixes = $byte_suffixes ?? $this->byte_suffixes;
-        $factor = floor((strlen($bytes) - 1) / 3);
-
-        return sprintf("%.{$decimal_places}f", $bytes / pow(1024, $factor)) . ' ' . $byte_suffixes[(int) $factor] ?? '';
-    }
-}
diff --git a/src/WmiScripting/Cim/CimLogicalElement.php b/src/WmiScripting/Cim/CimLogicalElement.php
deleted file mode 100644
index 53dc849..0000000
--- a/src/WmiScripting/Cim/CimLogicalElement.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-logicalelement
- */
-class CimLogicalElement extends CimManagedSystemElement
-{
-    protected $uuid = '{8502C518-5FBB-11D2-AAC1-006008C78BC7}';
-}
diff --git a/src/WmiScripting/Cim/CimManagedSystemElement.php b/src/WmiScripting/Cim/CimManagedSystemElement.php
deleted file mode 100644
index 2cfc60f..0000000
--- a/src/WmiScripting/Cim/CimManagedSystemElement.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-use PhpWinTools\WmiScripting\Models\Win32Model;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-managedsystemelement
- */
-class CimManagedSystemElement extends Win32Model
-{
-    protected $uuid = '{8502C517-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $caption;
-
-    protected $description;
-
-    protected $installDate;
-
-    protected $name;
-
-    protected $status;
-}
diff --git a/src/WmiScripting/Cim/CimMediaAccessDevice.php b/src/WmiScripting/Cim/CimMediaAccessDevice.php
deleted file mode 100644
index 08b8d2b..0000000
--- a/src/WmiScripting/Cim/CimMediaAccessDevice.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-mediaaccessdevice
- */
-class CimMediaAccessDevice extends CimLogicalDevice
-{
-    protected $uuid = '{8502C52A-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $capabilities;
-
-    protected $capabilityDescriptions;
-
-    protected $compressionMethod;
-
-    protected $defaultBlockSize;
-
-    protected $errorMethodology;
-
-    protected $maxBlockSize;
-
-    protected $maxMediaSize;
-
-    protected $minBlockSize;
-
-    protected $needsCleaning;
-
-    protected $numberOfMediaSupported;
-}
diff --git a/src/WmiScripting/Cim/CimMemory.php b/src/WmiScripting/Cim/CimMemory.php
deleted file mode 100644
index 6584963..0000000
--- a/src/WmiScripting/Cim/CimMemory.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-memory
- */
-class CimMemory extends CimStorageExtent
-{
-    protected $uuid = '{FAF76B64-798C-11D2-AAD1-006008C78BC7}';
-
-    protected $additionalErrorData;
-
-    protected $correctableError;
-
-    protected $endingAddress;
-
-    protected $errorAccess;
-
-    protected $errorAddress;
-
-    protected $errorData;
-
-    protected $errorDataOrder;
-
-    protected $errorInfo;
-
-    protected $errorResolution;
-
-    protected $errorTime;
-
-    protected $errorTransferSize;
-
-    protected $otherErrorDescription;
-
-    protected $startingAddress;
-
-    protected $systemLevelAddress;
-}
diff --git a/src/WmiScripting/Cim/CimNetworkAdapter.php b/src/WmiScripting/Cim/CimNetworkAdapter.php
deleted file mode 100644
index ad3abde..0000000
--- a/src/WmiScripting/Cim/CimNetworkAdapter.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-networkadapter
- */
-class CimNetworkAdapter extends CimLogicalDevice
-{
-    protected $uuid = '{8502C532-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $autoSense;
-
-    protected $maxSpeed;
-
-    protected $networkAddresses;
-
-    protected $permanentAddress;
-
-    protected $speed;
-}
diff --git a/src/WmiScripting/Cim/CimNumericSensor.php b/src/WmiScripting/Cim/CimNumericSensor.php
deleted file mode 100644
index 7c6ce79..0000000
--- a/src/WmiScripting/Cim/CimNumericSensor.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-numericsensor
- */
-class CimNumericSensor extends CimSensor
-{
-    protected $uuid = '{9565979C-7D80-11D2-AAD3-006008C78BC7}';
-
-    protected $accuracy;
-
-    protected $currentReading;
-
-    protected $isLinear;
-
-    protected $lowerThresholdCritical;
-
-    protected $lowerThresholdFatal;
-
-    protected $lowerThresholdNonCritical;
-
-    protected $maxReadable;
-
-    protected $minReadable;
-
-    protected $nominalReading;
-
-    protected $normalMax;
-
-    protected $normalMin;
-
-    protected $resolution;
-
-    protected $tolerance;
-
-    protected $upperThresholdCritical;
-
-    protected $upperThresholdFatal;
-
-    protected $upperThresholdNonCritical;
-}
diff --git a/src/WmiScripting/Cim/CimOperatingSystem.php b/src/WmiScripting/Cim/CimOperatingSystem.php
deleted file mode 100644
index 92c3baa..0000000
--- a/src/WmiScripting/Cim/CimOperatingSystem.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-use PhpWinTools\WmiScripting\MappingStrings\OSType;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-operatingsystem
- */
-class CimOperatingSystem extends CimLogicalElement
-{
-    protected $uuid = '{8502C565-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $creationClassName;
-
-    protected $cSCreationClassName;
-
-    protected $cSName;
-
-    protected $currentTimeZone;
-
-    protected $distributed;
-
-    protected $freePhysicalMemory;
-
-    protected $freeSpaceInPagingFiles;
-
-    protected $freeVirtualMemory;
-
-    protected $lastBootUpTime;
-
-    protected $localDateTime;
-
-    protected $maxNumberOfProcesses;
-
-    protected $maxProcessMemorySize;
-
-    protected $numberOfLicensedUsers;
-
-    protected $numberOfProcesses;
-
-    protected $numberOfUsers;
-
-    protected $oSType;
-
-    protected $otherTypeDescription;
-
-    protected $sizeStoredInPagingFiles;
-
-    protected $totalSwapSpaceSize;
-
-    protected $totalVirtualMemorySize;
-
-    protected $totalVisibleMemorySize;
-
-    protected $version;
-
-    public function getOSTypeAttribute($value)
-    {
-        return $this->mapConstant(OSType::class, $value);
-    }
-
-    public function reboot()
-    {
-        //
-    }
-
-    public function shutdown()
-    {
-        //
-    }
-}
diff --git a/src/WmiScripting/Cim/CimPCVideoController.php b/src/WmiScripting/Cim/CimPCVideoController.php
deleted file mode 100644
index e96adb0..0000000
--- a/src/WmiScripting/Cim/CimPCVideoController.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-pcvideocontroller
- */
-class CimPCVideoController extends CimVideoController
-{
-    protected $uuid = '{1008CCE6-7BFF-11D2-AAD2-006008C78BC7}';
-
-    protected $numberOfColorPlanes;
-
-    protected $videoArchitecture;
-
-    protected $videoMode;
-}
diff --git a/src/WmiScripting/Cim/CimPointingDevice.php b/src/WmiScripting/Cim/CimPointingDevice.php
deleted file mode 100644
index be37e8d..0000000
--- a/src/WmiScripting/Cim/CimPointingDevice.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-pointingdevice
- */
-class CimPointingDevice extends CimUserDevice
-{
-    protected $uuid = '{8502C535-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $handedness;
-
-    protected $numberOfButtons;
-
-    protected $pointingType;
-
-    protected $resolution;
-}
diff --git a/src/WmiScripting/Cim/CimPrinter.php b/src/WmiScripting/Cim/CimPrinter.php
deleted file mode 100644
index acc7fb3..0000000
--- a/src/WmiScripting/Cim/CimPrinter.php
+++ /dev/null
@@ -1,75 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-printer
- */
-class CimPrinter extends CimLogicalDevice
-{
-    protected $uuid = '{8502C54A-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $availableJobSheets;
-
-    protected $capabilities;
-
-    protected $capabilityDescriptions;
-
-    protected $charSetsSupported;
-
-    protected $currentCapabilities;
-
-    protected $currentCharSet;
-
-    protected $currentLanguage;
-
-    protected $currentMimeType;
-
-    protected $currentNaturalLanguage;
-
-    protected $currentPaperType;
-
-    protected $defaultCapabilities;
-
-    protected $defaultCopies;
-
-    protected $defaultLanguage;
-
-    protected $defaultMimeType;
-
-    protected $defaultNumberUp;
-
-    protected $defaultPaperType;
-
-    protected $detectedErrorState;
-
-    protected $errorInformation;
-
-    protected $horizontalResolution;
-
-    protected $jobCountSinceLastReset;
-
-    protected $languagesSupported;
-
-    protected $markingTechnology;
-
-    protected $maxCopies;
-
-    protected $maxNumberUp;
-
-    protected $maxSizeSupported;
-
-    protected $mimeTypesSupported;
-
-    protected $naturalLanguagesSupported;
-
-    protected $paperSizesSupported;
-
-    protected $paperTypesAvailable;
-
-    protected $printerStatus;
-
-    protected $timeOfLastReset;
-
-    protected $verticalResolution;
-}
diff --git a/src/WmiScripting/Cim/CimProcess.php b/src/WmiScripting/Cim/CimProcess.php
deleted file mode 100644
index 80e8568..0000000
--- a/src/WmiScripting/Cim/CimProcess.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-process
- */
-class CimProcess extends CimLogicalElement
-{
-    protected $uuid = '{8502C566-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $creationClassName;
-
-    protected $creationDate;
-
-    protected $cSCreationClassName;
-
-    protected $cSName;
-
-    protected $executionState;
-
-    protected $handle;
-
-    protected $kernelModeTime;
-
-    protected $oSCreationClassName;
-
-    protected $oSName;
-
-    protected $priority;
-
-    protected $terminationDate;
-
-    protected $userModeTime;
-
-    protected $workingSetSize;
-}
diff --git a/src/WmiScripting/Cim/CimProcessor.php b/src/WmiScripting/Cim/CimProcessor.php
deleted file mode 100644
index 092f7d9..0000000
--- a/src/WmiScripting/Cim/CimProcessor.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-processor
- */
-class CimProcessor extends CimLogicalDevice
-{
-    protected $addressWidth;
-
-    protected $currentClockSpeed;
-
-    protected $dataWidth;
-
-    protected $family;
-
-    protected $loadPercentage;
-
-    protected $maxClockSpeed;
-
-    protected $otherFamilyDescription;
-
-    protected $role;
-
-    protected $stepping;
-
-    protected $uniqueId;
-
-    protected $upgradeMethod;
-}
diff --git a/src/WmiScripting/Cim/CimSCSIController.php b/src/WmiScripting/Cim/CimSCSIController.php
deleted file mode 100644
index 07a15c4..0000000
--- a/src/WmiScripting/Cim/CimSCSIController.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-scsicontroller
- */
-class CimSCSIController extends CimController
-{
-    protected $uuid = '{8502C553-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $controllerTimeouts;
-
-    protected $maxDataWidth;
-
-    protected $maxTransferRate;
-
-    protected $protectionManagement;
-}
diff --git a/src/WmiScripting/Cim/CimSensor.php b/src/WmiScripting/Cim/CimSensor.php
deleted file mode 100644
index a51b237..0000000
--- a/src/WmiScripting/Cim/CimSensor.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-sensor
- */
-class CimSensor extends CimLogicalDevice
-{
-    protected $uuid = '{9565979B-7D80-11D2-AAD3-006008C78BC7}';
-}
diff --git a/src/WmiScripting/Cim/CimSerialController.php b/src/WmiScripting/Cim/CimSerialController.php
deleted file mode 100644
index 31d5664..0000000
--- a/src/WmiScripting/Cim/CimSerialController.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-serialcontroller
- */
-class CimSerialController extends CimController
-{
-    protected $uuid = '{8502C554-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $capabilities;
-
-    protected $capabilityDescriptions;
-
-    protected $maxBaudRate;
-}
diff --git a/src/WmiScripting/Cim/CimSoftwareElement.php b/src/WmiScripting/Cim/CimSoftwareElement.php
deleted file mode 100644
index 1dc0a64..0000000
--- a/src/WmiScripting/Cim/CimSoftwareElement.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-use PhpWinTools\WmiScripting\MappingStrings\SoftwareElementState;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-softwareelement
- */
-class CimSoftwareElement extends CimLogicalElement
-{
-    protected $uuid = '{8502C561-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $buildNumber;
-
-    protected $codeSet;
-
-    protected $identificationCode;
-
-    protected $languageEdition;
-
-    protected $manufacturer;
-
-    protected $otherTargetOS;
-
-    protected $serialNumber;
-
-    protected $softwareElementID;
-
-    protected $softwareElementState;
-
-    protected $targetOperatingSystem;
-
-    protected $version;
-
-    public function __construct(array $attributes = [])
-    {
-        $this->attribute_casting['softwareElementState'] = function ($value) {
-            return SoftwareElementState::string($value);
-        };
-
-        parent::__construct($attributes);
-    }
-}
diff --git a/src/WmiScripting/Cim/CimStorageExtent.php b/src/WmiScripting/Cim/CimStorageExtent.php
deleted file mode 100644
index b494df1..0000000
--- a/src/WmiScripting/Cim/CimStorageExtent.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-storageextent
- */
-class CimStorageExtent extends CimLogicalDevice
-{
-    protected $uuid = '{8502C538-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $access;
-
-    protected $blockSize;
-
-    protected $errorMethodology;
-
-    protected $numberOfBlocks;
-
-    protected $purpose;
-}
diff --git a/src/WmiScripting/Cim/CimStorageVolume.php b/src/WmiScripting/Cim/CimStorageVolume.php
deleted file mode 100644
index b029fd0..0000000
--- a/src/WmiScripting/Cim/CimStorageVolume.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/previous-versions/windows/desktop/iscsitarg/cim-storagevolume
- * @link https://wutils.com/wmi/root/cimv2/cim_storagevolume/
- */
-class CimStorageVolume extends CimStorageExtent
-{
-}
diff --git a/src/WmiScripting/Cim/CimSystem.php b/src/WmiScripting/Cim/CimSystem.php
deleted file mode 100644
index c2f50e2..0000000
--- a/src/WmiScripting/Cim/CimSystem.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-system
- */
-class CimSystem extends CimLogicalElement
-{
-    protected $uuid = '{8502C524-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $creationClassName;
-
-    protected $nameFormat;
-
-    protected $primaryOwnerContact;
-
-    protected $primaryOwnerName;
-
-    protected $roles;
-}
diff --git a/src/WmiScripting/Cim/CimSystemComponent.php b/src/WmiScripting/Cim/CimSystemComponent.php
deleted file mode 100644
index d754f9e..0000000
--- a/src/WmiScripting/Cim/CimSystemComponent.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-systemcomponent
- */
-class CimSystemComponent extends CimComponent
-{
-    protected $uuid = '{527BC6CE-BAFE-11d2-85E5-0000F8102E5F}';
-}
diff --git a/src/WmiScripting/Cim/CimSystemDevice.php b/src/WmiScripting/Cim/CimSystemDevice.php
deleted file mode 100644
index 8523aaa..0000000
--- a/src/WmiScripting/Cim/CimSystemDevice.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-systemdevice
- */
-class CimSystemDevice extends CimSystemComponent
-{
-    protected $uuid = '{4B2C30D7-BAFE-11d2-85E5-0000F8102E5F}';
-}
diff --git a/src/WmiScripting/Cim/CimTemperatureSensor.php b/src/WmiScripting/Cim/CimTemperatureSensor.php
deleted file mode 100644
index ab45085..0000000
--- a/src/WmiScripting/Cim/CimTemperatureSensor.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-temperaturesensor
- */
-class CimTemperatureSensor extends CimNumericSensor
-{
-    protected $uuid = '{9565979D-7D80-11D2-AAD3-006008C78BC7}';
-}
diff --git a/src/WmiScripting/Cim/CimUSBController.php b/src/WmiScripting/Cim/CimUSBController.php
deleted file mode 100644
index 629ecc7..0000000
--- a/src/WmiScripting/Cim/CimUSBController.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-usbcontroller
- */
-class CimUSBController extends CimController
-{
-    protected $uuid = '{FAF76B5B-798C-11D2-AAD1-006008C78BC7}';
-
-    protected $manufacturer;
-}
diff --git a/src/WmiScripting/Cim/CimUSBDevice.php b/src/WmiScripting/Cim/CimUSBDevice.php
deleted file mode 100644
index 3155b72..0000000
--- a/src/WmiScripting/Cim/CimUSBDevice.php
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-usbdevice
- */
-class CimUSBDevice extends CimLogicalDevice
-{
-    protected $uuid = '';
-
-    protected $classCode;
-
-    protected $currentAlternateSettings;
-
-    protected $currentConfigValue;
-
-    protected $numberOfConfigs;
-
-    protected $protocolCode;
-
-    protected $subclassCode;
-
-    protected $uSBVersion;
-
-    public function getDescriptor()
-    {
-        //
-    }
-}
diff --git a/src/WmiScripting/Cim/CimUSBHub.php b/src/WmiScripting/Cim/CimUSBHub.php
deleted file mode 100644
index d4377e4..0000000
--- a/src/WmiScripting/Cim/CimUSBHub.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-usbhub
- */
-class CimUSBHub extends CimUSBDevice
-{
-    protected $gangSwitched;
-
-    protected $numberOfPorts;
-}
diff --git a/src/WmiScripting/Cim/CimUnitaryComputerSystem.php b/src/WmiScripting/Cim/CimUnitaryComputerSystem.php
deleted file mode 100644
index 772c6ab..0000000
--- a/src/WmiScripting/Cim/CimUnitaryComputerSystem.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-unitarycomputersystem
- */
-class CimUnitaryComputerSystem extends CimComputerSystem
-{
-    protected $uuid = '{8502C526-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $initialLoadInfo;
-
-    protected $lastLoadInfo;
-
-    protected $powerManagementCapabilities;
-
-    protected $powerManagementSupported;
-
-    protected $powerState;
-
-    protected $resetCapability;
-
-    public function setPowerState()
-    {
-        //
-    }
-}
diff --git a/src/WmiScripting/Cim/CimUserDevice.php b/src/WmiScripting/Cim/CimUserDevice.php
deleted file mode 100644
index 2e8f4d0..0000000
--- a/src/WmiScripting/Cim/CimUserDevice.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-userdevice
- */
-class CimUserDevice extends CimLogicalDevice
-{
-    protected $uuid = '{8502C533-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $isLocked;
-}
diff --git a/src/WmiScripting/Cim/CimVideoController.php b/src/WmiScripting/Cim/CimVideoController.php
deleted file mode 100644
index 1b9ef14..0000000
--- a/src/WmiScripting/Cim/CimVideoController.php
+++ /dev/null
@@ -1,43 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-videocontroller
- */
-class CimVideoController extends CimController
-{
-    protected $uuid = '{1008CCE5-7BFF-11D2-AAD2-006008C78BC7}';
-
-    protected $acceleratorCapabilities;
-
-    protected $capabilityDescriptions;
-
-    protected $currentBitsPerPixel;
-
-    protected $currentHorizontalResolution;
-
-    protected $currentNumberOfColors;
-
-    protected $currentNumberOfColumns;
-
-    protected $currentNumberOfRows;
-
-    protected $currentRefreshRate;
-
-    protected $currentScanMode;
-
-    protected $currentVerticalResolution;
-
-    protected $maxMemorySupported;
-
-    protected $maxRefreshRate;
-
-    protected $minRefreshRate;
-
-    protected $numberOfVideoPages;
-
-    protected $videoMemoryType;
-
-    protected $videoProcessor;
-}
diff --git a/src/WmiScripting/Cim/CimVoltageSensor.php b/src/WmiScripting/Cim/CimVoltageSensor.php
deleted file mode 100644
index 7022938..0000000
--- a/src/WmiScripting/Cim/CimVoltageSensor.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Cim;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-voltagesensor
- */
-class CimVoltageSensor extends CimNumericSensor
-{
-    protected $uuid = '{A998F9B4-E3D4-11d2-8601-0000F8102E5F}';
-}
diff --git a/src/WmiScripting/Collections/ArrayCollection.php b/src/WmiScripting/Collections/ArrayCollection.php
deleted file mode 100644
index 10c0d3b..0000000
--- a/src/WmiScripting/Collections/ArrayCollection.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Collections;
-
-use Illuminate\Support\Collection;
-
-class ArrayCollection extends Collection
-{
-    /**
-     * @param array $items
-     *
-     * @return ArrayCollection
-     */
-    public static function collect(array $items = [])
-    {
-        return new static($items);
-    }
-}
diff --git a/src/WmiScripting/Collections/ModelCollection.php b/src/WmiScripting/Collections/ModelCollection.php
deleted file mode 100644
index 50dae0b..0000000
--- a/src/WmiScripting/Collections/ModelCollection.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Collections;
-
-use Illuminate\Support\Collection;
-use PhpWinTools\WmiScripting\Models\Win32Model;
-use PhpWinTools\WmiScripting\Contracts\Arrayable;
-use Illuminate\Support\HigherOrderCollectionProxy;
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemObject;
-use Illuminate\Contracts\Support\Arrayable as IlluminateArrayable;
-
-/**
- * @property-read HigherOrderCollectionProxy|SWbemObject map
- */
-class ModelCollection extends Collection
-{
-    /**
-     * @param callable|null $callback
-     * @param null|mixed    $default
-     *
-     * @return Win32Model
-     */
-    public function first(callable $callback = null, $default = null)
-    {
-        return parent::first($callback, $default);
-    }
-
-    public function toArray()
-    {
-        return array_map(function ($value) {
-            return $value instanceof Arrayable || $value instanceof IlluminateArrayable ? $value->toArray() : $value;
-        }, $this->items);
-    }
-}
diff --git a/src/WmiScripting/Collections/ObjectSetCollection.php b/src/WmiScripting/Collections/ObjectSetCollection.php
deleted file mode 100644
index 1143f87..0000000
--- a/src/WmiScripting/Collections/ObjectSetCollection.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Collections;
-
-class ObjectSetCollection extends ModelCollection
-{
-}
diff --git a/src/WmiScripting/Concerns/HasArrayableAttributes.php b/src/WmiScripting/Concerns/HasArrayableAttributes.php
deleted file mode 100644
index 6810410..0000000
--- a/src/WmiScripting/Concerns/HasArrayableAttributes.php
+++ /dev/null
@@ -1,225 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Concerns;
-
-use Exception;
-use PhpWinTools\Support\StringModule;
-use PhpWinTools\WmiScripting\Contracts\Arrayable;
-use PhpWinTools\WmiScripting\Collections\ArrayCollection;
-use function PhpWinTools\WmiScripting\Support\class_has_trait;
-use function PhpWinTools\WmiScripting\Support\class_has_property;
-use Illuminate\Contracts\Support\Arrayable as IlluminateArrayable;
-
-trait HasArrayableAttributes
-{
-    protected $unmapped_attributes = [];
-
-    protected $attribute_name_replacements = [];
-
-    public function getAttribute($attribute, $default = null)
-    {
-        if ($this->hasAttributeMethod($attribute)) {
-            return $this->getAttributeMethodValue('get' . StringModule::studly($attribute) . 'Attribute', $attribute);
-        }
-
-        $value = $default;
-
-        if (class_has_property(get_called_class(), $attribute)) {
-            $value = $this->{$attribute};
-        }
-
-        if ($key = array_search($attribute, $this->attribute_name_replacements)) {
-            $value = $this->{$key};
-        }
-
-        if (array_key_exists($attribute, $this->unmapped_attributes)) {
-            $value = $this->unmapped_attributes[$attribute];
-        }
-
-        if (class_has_trait(get_called_class(), HasCastableAttributes::class) && $this->hasCast($attribute)) {
-            $value = $this->cast($attribute, $value);
-        }
-
-        return $value;
-    }
-
-    public function toArray(): array
-    {
-        return array_merge(
-            $this->getCalculatedAttributes(),
-            $this->iterateAttributes(get_class_vars(get_called_class())),
-            $this->iterateAttributes($this->unmapped_attributes)
-        );
-    }
-
-    public function collect(array $array)
-    {
-        return ArrayCollection::collect($array);
-    }
-
-    public function setUnmappedAttribute($key, $value)
-    {
-        $this->unmapped_attributes[$key] = $value;
-
-        return $this;
-    }
-
-    protected function getAttributeMethodValue($method, $attribute)
-    {
-        if (class_has_property(get_called_class(), $attribute)) {
-            return $this->{$method}($this->{$attribute});
-        }
-
-        if ($this->hasUnmappedAttribute($attribute)) {
-            return  $this->{$method}($this->unmapped_attributes[$attribute]);
-        }
-
-        return $this->{$method}($attribute);
-    }
-
-    protected function getCalculatedAttributes()
-    {
-        return $this->collect($this->calculatedAttributes())->mapWithKeys(function ($attribute) {
-            return [$attribute => $this->{'get' . lcfirst($attribute) . 'Attribute'}()];
-        })->toArray();
-    }
-
-    protected function calculatedAttributes()
-    {
-        return $this->collect($this->getAttributeMethods())->map(function ($method) {
-            return $this->getAttributeNameFromMethod($method);
-        })->filter(function ($attribute) {
-            return !class_has_property(get_called_class(), $attribute) && !$this->hasUnmappedAttribute($attribute);
-        })->values()->toArray();
-    }
-
-    protected function hasUnmappedAttribute($attribute)
-    {
-        return array_key_exists($attribute, $this->unmapped_attributes);
-    }
-
-    protected function hasAttributeMethod($attribute)
-    {
-        return $this->collect($this->getAttributeMethods())->filter(function ($method) use ($attribute) {
-            if (($method_name = $this->getAttributeNameFromMethod($method)) === $attribute) {
-                return true;
-            }
-
-            $method_name = StringModule::snake($method_name);
-
-            if ($method_name === $attribute) {
-                return true;
-            }
-
-            return false;
-        })->isNotEmpty();
-    }
-
-    protected function getAttributeNameFromMethod($method)
-    {
-        return lcfirst(substr($method, 3, -9));
-    }
-
-    protected function getAttributeMethods()
-    {
-        return $this->collect(get_class_methods(get_called_class()))->filter(function ($method) {
-            return substr($method, 0, 3) === 'get' && substr($method, -9) === 'Attribute' && $method !== 'getAttribute';
-        })->values()->toArray();
-    }
-
-    protected function replaceAttributeName($key)
-    {
-        if (array_key_exists($key, $this->attribute_name_replacements)) {
-            return $this->attribute_name_replacements[$key];
-        }
-
-        return $key;
-    }
-
-    protected function objectToArray($value)
-    {
-        if (!is_object($value)) {
-            return $value;
-        }
-
-        $array = (array) $value;
-
-        foreach ($array as $key => $value) {
-            if (strpos($key, "\x00*\x00") === 0) {
-                $array[substr($key, 3)] = $value;
-                unset($array[$key]);
-            }
-        }
-
-        return $array;
-    }
-
-    protected function tryToArrayMethod($value)
-    {
-        if (!is_object($value)) {
-            return $value;
-        }
-
-        if (is_object($value) && $this->hasToArrayMethod($value)) {
-            try {
-                $array = $value->toArray();
-                if (is_array($array)) {
-                    return $array;
-                }
-            } catch (Exception $exception) {
-                return $value;
-            }
-        }
-
-        return $value;
-    }
-
-    protected function hasToArrayMethod($value)
-    {
-        if (!is_object($value)) {
-            return false;
-        }
-
-        if (in_array('toArray', get_class_methods($value))) {
-            return true;
-        }
-
-        return false;
-    }
-
-    protected function transformToArray($value)
-    {
-        if (is_object($value) && ($value instanceof Arrayable || $value instanceof IlluminateArrayable)) {
-            return $value->toArray();
-        }
-
-        if (is_object($value) && is_array(($array = $this->tryToArrayMethod($value)))) {
-            return $array;
-        }
-
-        if (is_object($value)) {
-            return $this->objectToArray($value);
-        }
-
-        if (is_array($value)) {
-            return $this->iterateAttributes($value);
-        }
-
-        return $value;
-    }
-
-    protected function iterateAttributes(array $attributes)
-    {
-        $results = [];
-
-        foreach ($attributes as $key => $value) {
-            if (class_has_trait(get_called_class(), HasHiddenAttributes::class) && $this->isHidden($key)) {
-                continue;
-            }
-
-            $results[$this->replaceAttributeName($key)] = $this->transformToArray($this->getAttribute($key, $value));
-        }
-
-        return $results;
-    }
-}
diff --git a/src/WmiScripting/Concerns/HasCastableAttributes.php b/src/WmiScripting/Concerns/HasCastableAttributes.php
deleted file mode 100644
index 32646fb..0000000
--- a/src/WmiScripting/Concerns/HasCastableAttributes.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Concerns;
-
-use PhpWinTools\Support\BooleanModule;
-use function PhpWinTools\WmiScripting\Support\class_has_property;
-use function PhpWinTools\WmiScripting\Support\get_ancestor_property;
-
-trait HasCastableAttributes
-{
-    protected $casts_booted = false;
-
-    public function getCasts(): array
-    {
-        if (!$this->casts_booted) {
-            $this->bootCasts();
-        }
-
-        return $this->attribute_casting;
-    }
-
-    public function getCast($attribute)
-    {
-        $casts = $this->getCasts();
-
-        return $casts[$attribute] ?? null;
-    }
-
-    public function hasCast($attribute): bool
-    {
-        return array_key_exists($attribute, $this->getCasts());
-    }
-
-    protected function cast($key, $value)
-    {
-        $casts = $this->getCasts();
-
-        if (!$this->hasCast($key)) {
-            return $value;
-        }
-
-        switch ($casts[$key]) {
-            case 'array':
-                return is_array($value) ? $value : [$value];
-            case 'bool':
-            case 'boolean':
-                return BooleanModule::makeBoolean($value);
-            case 'int':
-            case 'integer':
-                // Prevent integer overflow
-                return $value >= PHP_INT_MAX || $value <= PHP_INT_MIN ? (string) $value : (int) $value;
-            case 'string':
-                if ($value === true) {
-                    return 'true';
-                }
-
-                if ($value === false) {
-                    return 'false';
-                }
-
-                if (is_array($value)) {
-                    return json_encode($value);
-                }
-
-                return (string) $value;
-            default:
-                return $value;
-        }
-    }
-
-    protected function bootCasts()
-    {
-        $merge_casting = true;
-        $attribute_casting = [];
-
-        if (class_has_property(get_called_class(), 'merge_parent_casting')) {
-            $merge_casting = $this->merge_parent_casting;
-        }
-
-        if (class_has_property(get_called_class(), 'attribute_casting')) {
-            $attribute_casting = $this->attribute_casting;
-        }
-
-        $this->attribute_casting = $merge_casting
-            ? array_merge(get_ancestor_property(get_called_class(), 'attribute_casting'), $attribute_casting)
-            : $attribute_casting;
-
-        $this->casts_booted = true;
-    }
-}
diff --git a/src/WmiScripting/Concerns/HasHiddenAttributes.php b/src/WmiScripting/Concerns/HasHiddenAttributes.php
deleted file mode 100644
index 0a59541..0000000
--- a/src/WmiScripting/Concerns/HasHiddenAttributes.php
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Concerns;
-
-use function PhpWinTools\WmiScripting\Support\get_ancestor_property;
-
-trait HasHiddenAttributes
-{
-    protected $hidden_booted = false;
-
-    protected $trait_hidden_attributes = [
-        'trait_hidden_attributes',
-        'trait_name_replacements',
-
-        'attribute_name_replacements',
-        'unmapped_attributes',
-
-        'hidden_attributes',
-        'merge_parent_hidden_attributes',
-
-        'attribute_casting',
-        'merge_parent_casting',
-    ];
-
-    public function mergeHiddenAttributes(array $hidden_attributes, bool $merge_hidden = true)
-    {
-        $hidden_attributes = $merge_hidden
-            ? array_merge(get_ancestor_property(get_called_class(), 'hidden_attributes'), $hidden_attributes)
-            : $hidden_attributes;
-
-        $this->trait_hidden_attributes = array_merge($this->trait_hidden_attributes, $hidden_attributes);
-
-        $this->bootHiddenAttributes();
-
-        return $this;
-    }
-
-    public function getHiddenAttributes()
-    {
-        if (!$this->hidden_booted) {
-            $this->bootHiddenAttributes();
-        }
-
-        return $this->trait_hidden_attributes;
-    }
-
-    public function isHidden($key): bool
-    {
-        return array_key_exists($key, $this->getHiddenAttributes());
-    }
-
-    protected function bootHiddenAttributes()
-    {
-        $this->trait_hidden_attributes = array_combine($this->trait_hidden_attributes, $this->trait_hidden_attributes);
-
-        $this->hidden_booted = true;
-    }
-}
diff --git a/src/WmiScripting/Configuration/Config.php b/src/WmiScripting/Configuration/Config.php
deleted file mode 100644
index ffae3e4..0000000
--- a/src/WmiScripting/Configuration/Config.php
+++ /dev/null
@@ -1,410 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Configuration;
-
-use Illuminate\Support\Arr;
-use PhpWinTools\Support\COM\ComWrapper;
-use PhpWinTools\Support\COM\VariantWrapper;
-use PhpWinTools\Support\COM\ComVariantWrapper;
-use PhpWinTools\WmiScripting\Containers\Connections;
-use PhpWinTools\WmiScripting\Connections\ComConnection;
-use PhpWinTools\WmiScripting\Exceptions\InvalidConnectionException;
-use PhpWinTools\WmiScripting\Exceptions\UnresolvableClassException;
-
-class Config
-{
-    /** @var Config|null */
-    protected static $instance = null;
-
-    protected static $test_mode = false;
-
-    protected $config;
-
-    protected $resolver;
-
-    protected $resolve_stack = [];
-
-    public function __construct(array $config = [], Resolver $resolver = null)
-    {
-        $this->resolver = $resolver ?? new Resolver($this);
-        $this->boot($config);
-
-        static::$instance = $this;
-    }
-
-    /**
-     * Returns current instance if available and merges any available configuration.
-     * This is the method used throughout the library to retrieve configuration.
-     *
-     * @param array         $items
-     * @param Resolver|null $resolver
-     *
-     * @return Config
-     */
-    public static function instance(array $items = [], Resolver $resolver = null)
-    {
-        if (static::$instance && !empty($items)) {
-            return static::newInstance(array_merge(static::$instance->config, $items), $resolver);
-        }
-
-        if (static::$instance && $resolver) {
-            static::$instance->resolver = $resolver;
-        }
-
-        return static::$instance ?? static::newInstance($items, $resolver);
-    }
-
-    /**
-     * Always returns a new instance. Used primary for testing. If used be aware that any previous changes
-     * to the instance will be lost. If it's in test mode it will remain until you explicitly remove it.
-     * You should never need to reference this directly except inside of tests.
-     *
-     * @param array         $items
-     * @param Resolver|null $resolver
-     *
-     * @return Config
-     */
-    public static function newInstance(array $items = [], Resolver $resolver = null)
-    {
-        return new static($items, $resolver);
-    }
-
-    /**
-     * This merges in a testing configuration. Any instance from this point will use that configuration.
-     *
-     * @param array         $items
-     * @param Resolver|null $resolver
-     *
-     * @return Config
-     */
-    public static function testInstance(array $items = [], Resolver $resolver = null)
-    {
-        if (static::$test_mode === false && !is_null(static::$instance)) {
-            static::$instance = null;
-        }
-
-        static::$test_mode = true;
-
-        return static::instance($items, $resolver);
-    }
-
-    /**
-     * Same as endTest, but also returns a fresh instance.
-     *
-     * @param array         $items
-     * @param Resolver|null $resolver
-     *
-     * @return Config
-     */
-    public static function killTestInstance(array $items = [], Resolver $resolver = null)
-    {
-        (new static())->endTest();
-
-        return static::instance($items, $resolver);
-    }
-
-    /**
-     * This removes the testing flag and allow the normal configuration to return. This must be called to have
-     * the library behave normally when testing.
-     *
-     * @return Config
-     */
-    public function endTest()
-    {
-        static::$test_mode = false;
-        static::$instance = null;
-
-        return $this;
-    }
-
-    /**
-     * Returns the Resolver if no class is specified otherwise it attempts to resolve the given class.
-     *
-     * @param string|null $class
-     * @param mixed       ...$parameters
-     *
-     * @return Resolver|mixed|null
-     */
-    public function __invoke(string $class = null, ...$parameters)
-    {
-        if (is_null($class)) {
-            return $this->resolve();
-        }
-
-        if ($this->hasResolvable($class)) {
-            return $this->resolveFromStack($class);
-        }
-
-        if (array_key_exists($class, $this->apiObjects())) {
-            return $this->resolve()->make($this->getApiObject($class), ...$parameters);
-        }
-
-        if (array_key_exists($class, $this->com())) {
-            return $this->resolve()->make($this->com()[$class], ...$parameters);
-        }
-
-        throw UnresolvableClassException::default($class);
-    }
-
-    /**
-     * @return Resolver
-     */
-    public function resolve()
-    {
-        return $this->resolver;
-    }
-
-    /**
-     * Returns the current resolve stack.
-     *
-     * @return array
-     */
-    public function resolveStack()
-    {
-        return $this->resolve_stack;
-    }
-
-    /**
-     * This attempts to get a resolvable item from the stack. Items on the stack are FIFO (First In First Out).
-     * This is only ever utilized if using the Config classes' __invoke capability.
-     *
-     * @param $abstract
-     *
-     * @return mixed|null
-     */
-    public function resolveFromStack($abstract)
-    {
-        foreach ($this->resolve_stack as $key => $resolvable) {
-            if (array_key_exists($abstract, $resolvable)) {
-                $result = $resolvable[$abstract];
-                unset($this->resolve_stack[$key]);
-
-                return $result;
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * Add new resolvable to the end of the stack.
-     *
-     * @param $abstract
-     * @param $concrete
-     *
-     * @return Config
-     */
-    public function addResolvable($abstract, $concrete)
-    {
-        $this->resolve_stack[] = [$abstract => $concrete];
-
-        return $this;
-    }
-
-    /**
-     * Check stack for resolvable. There may be a chance for caching pointers for resolvable abstracts.
-     *
-     * @param $abstract
-     *
-     * @return bool
-     */
-    public function hasResolvable($abstract): bool
-    {
-        foreach ($this->resolve_stack as $key => $resolvable) {
-            if (array_key_exists($abstract, $resolvable)) {
-                return true;
-            }
-        }
-
-        return false;
-    }
-
-    /**
-     * @return array
-     */
-    public function apiObjects()
-    {
-        return $this->get('wmi.api_objects', []);
-    }
-
-    /**
-     * @param string                 $abstract_class
-     * @param string|callable|object $concrete_class
-     *
-     * @return Config
-     */
-    public function addApiObject(string $abstract_class, $concrete_class)
-    {
-        $this->set("wmi.api_objects.{$abstract_class}", $concrete_class);
-
-        return $this;
-    }
-
-    /**
-     * @param string $class
-     *
-     * @return string
-     */
-    public function getApiObject(string $class)
-    {
-        return $this->get("wmi.api_objects.{$class}");
-    }
-
-    /**
-     * @return array
-     */
-    public function com()
-    {
-        return $this->get('com', []);
-    }
-
-    /**
-     * @param string                 $abstract_class
-     * @param string|callable|object $concrete_class
-     *
-     * @return Config
-     */
-    public function addComObject(string $abstract_class, $concrete_class)
-    {
-        $this->set("com.{$abstract_class}", $concrete_class);
-
-        return $this;
-    }
-
-    /**
-     * @return string
-     */
-    public function getComClass()
-    {
-        return $this->get('com.com_class');
-    }
-
-    /**
-     * @return string
-     */
-    public function getVariantClass()
-    {
-        return $this->get('com.variant_class');
-    }
-
-    /**
-     * @return string
-     */
-    public function getComVariantWrapper()
-    {
-        return $this->get('com.' . ComVariantWrapper::class);
-    }
-
-    /**
-     * @return string
-     */
-    public function getComWrapper()
-    {
-        return $this->get('com.' . ComWrapper::class);
-    }
-
-    /**
-     * @return string
-     */
-    public function getVariantWrapper()
-    {
-        return $this->get('com.' . VariantWrapper::class);
-    }
-
-    /**
-     * @return Connections
-     */
-    public function connections()
-    {
-        return $this->get('wmi.connections.servers');
-    }
-
-    /**
-     * @param string $name
-     *
-     * @return ComConnection|null
-     */
-    public function getConnection(string $name = null)
-    {
-        if ($name === 'default' || is_null($name)) {
-            $name = $this->get('wmi.connections.default');
-        }
-
-        return $this->connections()->get($name);
-    }
-
-    /**
-     * @param string        $name
-     * @param ComConnection $connection
-     *
-     * @return Config
-     */
-    public function addConnection(string $name, ComConnection $connection): self
-    {
-        $this->connections()->set($name, $connection);
-
-        return $this;
-    }
-
-    public function getDefaultConnection()
-    {
-        return $this->getConnection($this->getDefaultConnectionName());
-    }
-
-    public function getDefaultConnectionName()
-    {
-        return $this->get('wmi.connections.default');
-    }
-
-    public function setDefaultConnection(string $name)
-    {
-        if (!$this->getConnection($name)) {
-            throw InvalidConnectionException::new($name);
-        }
-
-        $this->set('wmi.connections.default', $name);
-
-        return $this;
-    }
-
-    public function get($key, $default = null)
-    {
-        return Arr::get($this->config, $key, $default);
-    }
-
-    public function set($key, $value = null)
-    {
-        $keys = is_array($key) ? $key : [$key => $value];
-
-        foreach ($keys as $key => $value) {
-            Arr::set($this->config, $key, $value);
-        }
-    }
-
-    protected function boot(array $config)
-    {
-        if (static::$test_mode) {
-            $this->merge(include(__DIR__ . '/../config/testing.php'));
-        }
-
-        if (!empty($config)) {
-            $this->merge($config);
-        }
-
-        $this->merge(include(__DIR__ . '/../config/bootstrap.php'));
-
-        $this->bootConnections();
-    }
-
-    protected function merge(array $config)
-    {
-        foreach (Arr::dot($config) as $key => $value) {
-            $this->config = Arr::add($this->config, $key, $value);
-        }
-    }
-
-    protected function bootConnections()
-    {
-        Arr::set($this->config, 'wmi.connections.servers', new Connections($this));
-    }
-}
diff --git a/src/WmiScripting/Configuration/Resolver.php b/src/WmiScripting/Configuration/Resolver.php
deleted file mode 100644
index 10cd1f7..0000000
--- a/src/WmiScripting/Configuration/Resolver.php
+++ /dev/null
@@ -1,229 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Configuration;
-
-use COM;
-use VARIANT;
-use PhpWinTools\Support\COM\ComWrapper;
-use PhpWinTools\Support\COM\VariantWrapper;
-use PhpWinTools\Support\COM\Testing\COMFake;
-use PhpWinTools\Support\COM\ComVariantWrapper;
-use PhpWinTools\WmiScripting\Connections\ComConnection;
-use PhpWinTools\WmiScripting\Testing\Support\VARIANTFake;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\Locator;
-use PhpWinTools\WmiScripting\Exceptions\UnresolvableClassException;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\Property;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\Services;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\ObjectSet;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\Qualifier;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\ObjectItem;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\ObjectPath;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\PropertySet;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\ObjectItemEx;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\QualifierSet;
-
-class Resolver
-{
-    /** @var Config */
-    protected $config;
-
-    public function __construct(Config $config = null)
-    {
-        $this->config = $config ?? Config::instance();
-    }
-
-    /**
-     * @param string|callable|object $resolvable
-     * @param mixed                  ...$parameters
-     *
-     * @return mixed
-     */
-    public function make($resolvable, ...$parameters)
-    {
-        if (is_callable($resolvable)) {
-            return $resolvable(...$parameters);
-        }
-
-        if (is_object($resolvable)) {
-            return $resolvable;
-        }
-
-        if (is_string($resolvable) && class_exists($resolvable)) {
-            return new $resolvable(...$parameters);
-        }
-
-        throw UnresolvableClassException::default($resolvable);
-    }
-
-    public function comClass($module_name, $server_name = null, $code_page = null, $type_lib = null)
-    {
-        return $this->make(
-            $this->config->getComClass(),
-            $module_name,
-            $server_name = null,
-            $code_page = null,
-            $type_lib = null
-        );
-    }
-
-    public function variantClass($value = null, string $class_name = null, $code_page = null)
-    {
-        return $this->make($this->config->getVariantClass(), $value = null, $class_name = null, $code_page = null);
-    }
-
-    /**
-     * @param COM|COMFake $com
-     * @param Config|null $config
-     *
-     * @return ComVariantWrapper
-     */
-    public function comVariantWrapper($com, Config $config = null)
-    {
-        return $this->make($this->config->getComVariantWrapper(), $com, $config ?? $config);
-    }
-
-    /**
-     * @param COM|COMFake $com
-     * @param Config|null $config
-     *
-     * @return ComWrapper
-     */
-    public function comWrapper($com, Config $config = null)
-    {
-        return $this->make($this->config->getComWrapper(), $com, $config ?? $this->config);
-    }
-
-    /**
-     * @param VARIANT|VARIANTFake $variant
-     * @param Config|null         $config
-     *
-     * @return VariantWrapper
-     */
-    public function variantWrapper($variant, Config $config = null)
-    {
-        return $this->make($this->config->getVariantWrapper(), $variant, $config ?? $this->config);
-    }
-
-    /**
-     * @param ComVariantWrapper|null $wrapper
-     * @param Config|null            $config
-     *
-     * @return Locator
-     */
-    public function locator(ComVariantWrapper $wrapper = null, Config $config = null)
-    {
-        return $this->make($this->config->getApiObject(Locator::class), $wrapper, $config ?? $this->config);
-    }
-
-    public function objectItem(VariantWrapper $variant, array $resolve = [], Config $config = null)
-    {
-        return $this->make(
-            $this->config->getApiObject(ObjectItem::class),
-            $variant,
-            $resolve,
-            $config ?? $this->config
-        );
-    }
-
-    /**
-     * @param VariantWrapper $variant
-     * @param array          $resolve
-     * @param Config|null    $config
-     *
-     * @return ObjectItemEx
-     */
-    public function objectItemEx(VariantWrapper $variant, array $resolve = [], Config $config = null)
-    {
-        return $this->make(
-            $this->config->getApiObject(ObjectItemEx::class),
-            $variant,
-            $resolve,
-            $config ?? $this->config
-        );
-    }
-
-    /**
-     * @param VariantWrapper $variant
-     * @param Config|null    $config
-     *
-     * @return ObjectPath
-     */
-    public function objectPath(VariantWrapper $variant, Config $config = null)
-    {
-        return $this->make($this->config->getApiObject(ObjectPath::class), $variant, $config ?? $this->config);
-    }
-
-    /**
-     * @param VariantWrapper $variant
-     * @param array          $resolve
-     * @param Config|null    $config
-     *
-     * @return ObjectSet
-     */
-    public function objectSet(VariantWrapper $variant, array $resolve = [], Config $config = null)
-    {
-        return $this->make($this->config->getApiObject(ObjectSet::class), $variant, $resolve, $config ?? $this->config);
-    }
-
-    /**
-     * @param VariantWrapper $variant
-     * @param Config|null    $config
-     *
-     * @return Property
-     */
-    public function property(VariantWrapper $variant, Config $config = null)
-    {
-        return $this->make($this->config->getApiObject(Property::class), $variant, $config ?? $this->config);
-    }
-
-    /**
-     * @param VariantWrapper $variant
-     * @param array          $resolve
-     * @param Config|null    $config
-     *
-     * @return PropertySet
-     */
-    public function propertySet(VariantWrapper $variant, array $resolve = [], Config $config = null)
-    {
-        return $this->make(
-            $this->config->getApiObject(PropertySet::class),
-            $variant,
-            $resolve,
-            $config ?? $this->config
-        );
-    }
-
-    /**
-     * @param VariantWrapper $variant
-     * @param Config|null    $config
-     *
-     * @return Qualifier
-     */
-    public function qualifier(VariantWrapper $variant, Config $config = null)
-    {
-        return $this->make($this->config->getApiObject(Qualifier::class), $variant, $config ?? $this->config);
-    }
-
-    /**
-     * @param VariantWrapper $variant
-     * @param Config|null    $config
-     *
-     * @return QualifierSet
-     */
-    public function qualifierSet(VariantWrapper $variant, Config $config = null)
-    {
-        return $this->make($this->config->getApiObject(QualifierSet::class), $variant, $config ?? $this->config);
-    }
-
-    /**
-     * @param ComVariantWrapper|null $com
-     * @param ComConnection|null     $connection
-     * @param Config|null            $config
-     *
-     * @return Services
-     */
-    public function services(ComVariantWrapper $com = null, ComConnection $connection = null, Config $config = null)
-    {
-        return $this->make($this->config->getApiObject(Services::class), $com, $connection, $config ?? $this->config);
-    }
-}
diff --git a/src/WmiScripting/Connections/ComConnection.php b/src/WmiScripting/Connections/ComConnection.php
deleted file mode 100644
index c5c6400..0000000
--- a/src/WmiScripting/Connections/ComConnection.php
+++ /dev/null
@@ -1,188 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Connections;
-
-use function PhpWinTools\WmiScripting\Support\resolve;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\Services;
-
-class ComConnection
-{
-    const DEFAULT_SERVER = '.';
-
-    const DEFAULT_NAMESPACE = 'Root\CIMv2';
-
-    /** @var float */
-    private $time_to_connect = 0.0;
-
-    /** @var string */
-    private $server;
-
-    /** @var string */
-    private $namespace;
-
-    /** @var string|null */
-    private $user;
-
-    /** @var string|null */
-    private $password;
-
-    private $locale;
-
-    /** @var null */
-    private $authority;
-
-    /** @var null */
-    private $security_flags;
-
-    private $services;
-
-    public function __construct(
-        string $server = self::DEFAULT_SERVER,
-        string $namespace = self::DEFAULT_NAMESPACE,
-        string $user = null,
-        string $password = null,
-        $locale = null,
-        $authority = null,
-        $security_flags = null
-    ) {
-        $this->server = $server;
-        $this->namespace = $namespace;
-        $this->user = $user;
-        $this->password = $password;
-        $this->locale = $locale;
-        $this->authority = $authority;
-        $this->security_flags = $security_flags;
-    }
-
-    /**
-     * @param string      $server
-     * @param string|null $user
-     * @param string|null $password
-     * @param mixed|null  $locale
-     * @param mixed|null  $authority
-     * @param mixed|null  $security_flags
-     *
-     * @return ComConnection
-     */
-    public static function defaultNamespace(
-        string $server,
-        string $user = null,
-        string $password = null,
-        $locale = null,
-        $authority = null,
-        $security_flags = null
-    ): self {
-        return new self($server, self::DEFAULT_NAMESPACE, $user, $password, $locale, $authority, $security_flags);
-    }
-
-    /**
-     * @param string $server
-     * @param string $user
-     * @param string $password
-     *
-     * @return ComConnection
-     */
-    public static function simple(string $server, string $user, string $password): self
-    {
-        return static::defaultNamespace($server, $user, $password);
-    }
-
-    /**
-     * @return Services
-     */
-    public function connect(): Services
-    {
-        if (is_null($this->services)) {
-            $start = microtime(true);
-            $this->services = resolve()->locator()->connectServer($this);
-            $this->time_to_connect = microtime(true) - $start;
-        }
-
-        return $this->services;
-    }
-
-    /**
-     * @return float
-     */
-    public function getTimeToConnect()
-    {
-        return $this->time_to_connect;
-    }
-
-    /**
-     * @return string
-     */
-    public function getServer(): string
-    {
-        return $this->server;
-    }
-
-    /**
-     * @return string
-     */
-    public function getNamespace(): string
-    {
-        return $this->namespace;
-    }
-
-    /**
-     * @return string|null
-     */
-    public function getUser(): ?string
-    {
-        return $this->user;
-    }
-
-    /**
-     * @return string|null
-     */
-    public function getPassword(): ?string
-    {
-        return $this->password;
-    }
-
-    public function getLocale()
-    {
-        return $this->locale;
-    }
-
-    /**
-     * @return null
-     */
-    public function getAuthority()
-    {
-        return $this->authority;
-    }
-
-    /**
-     * @param $authority
-     *
-     * @return self
-     */
-    public function setAuthority($authority)
-    {
-        $this->authority = $authority;
-
-        return $this;
-    }
-
-    /**
-     * @return null
-     */
-    public function getSecurityFlags()
-    {
-        return $this->security_flags;
-    }
-
-    /**
-     * @param int $flags
-     *
-     * @return self
-     */
-    public function setSecurityFlags(int $flags)
-    {
-        $this->security_flags = $flags;
-
-        return $this;
-    }
-}
diff --git a/src/WmiScripting/Connections/Connection.php b/src/WmiScripting/Connections/Connection.php
deleted file mode 100644
index 616a122..0000000
--- a/src/WmiScripting/Connections/Connection.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Connections;
-
-interface Connection
-{
-}
diff --git a/src/WmiScripting/Containers/Connections.php b/src/WmiScripting/Containers/Connections.php
deleted file mode 100644
index b12927b..0000000
--- a/src/WmiScripting/Containers/Connections.php
+++ /dev/null
@@ -1,46 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Containers;
-
-use PhpWinTools\WmiScripting\Configuration\Config;
-use PhpWinTools\WmiScripting\Connections\ComConnection;
-
-class Connections extends Container
-{
-    public function __construct(Config $config)
-    {
-        $items = [];
-
-        foreach ($config->get('wmi.connections.servers') as $key => $value) {
-            $items[$key] = new ComConnection(
-                $value['server'] ?? ComConnection::DEFAULT_SERVER,
-                $value['namespace'] ?? ComConnection::DEFAULT_NAMESPACE,
-                $value['user'] ?? null,
-                $value['password'] ?? null,
-                $value['locale'] ?? null,
-                $value['authority'] ?? null,
-                $value['security_flags'] ?? null
-            );
-        }
-
-        parent::__construct($items);
-    }
-
-    public function set($key, ComConnection $connection)
-    {
-        $this->offsetSet($key, $connection);
-
-        return $this;
-    }
-
-    /**
-     * @param string                   $key
-     * @param mixed|ComConnection|null $default
-     *
-     * @return ComConnection|null
-     */
-    public function get($key, $default = null)
-    {
-        return parent::get($key, $default); // TODO: Change the autogenerated stub
-    }
-}
diff --git a/src/WmiScripting/Containers/Container.php b/src/WmiScripting/Containers/Container.php
deleted file mode 100644
index 549c483..0000000
--- a/src/WmiScripting/Containers/Container.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Containers;
-
-use Illuminate\Support\Collection;
-
-class Container extends Collection
-{
-}
diff --git a/src/WmiScripting/Contracts/Arrayable.php b/src/WmiScripting/Contracts/Arrayable.php
deleted file mode 100644
index 77e08c2..0000000
--- a/src/WmiScripting/Contracts/Arrayable.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Contracts;
-
-interface Arrayable
-{
-    public function toArray(): array;
-}
diff --git a/src/WmiScripting/Contracts/CastsAttributes.php b/src/WmiScripting/Contracts/CastsAttributes.php
deleted file mode 100644
index efa24e0..0000000
--- a/src/WmiScripting/Contracts/CastsAttributes.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Contracts;
-
-interface CastsAttributes extends HasAttributes
-{
-    public function getCasts(): array;
-
-    public function getCast($attribute);
-}
diff --git a/src/WmiScripting/Contracts/HasAttributes.php b/src/WmiScripting/Contracts/HasAttributes.php
deleted file mode 100644
index 7546768..0000000
--- a/src/WmiScripting/Contracts/HasAttributes.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Contracts;
-
-interface HasAttributes extends Arrayable
-{
-    public function getAttribute($attribute, $default = null);
-}
diff --git a/src/WmiScripting/Contracts/HidesAttributes.php b/src/WmiScripting/Contracts/HidesAttributes.php
deleted file mode 100644
index 654ba41..0000000
--- a/src/WmiScripting/Contracts/HidesAttributes.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Contracts;
-
-interface HidesAttributes extends HasAttributes
-{
-    public function mergeHiddenAttributes(array $hidden_attributes, bool $merge_hidden = true);
-
-    public function getHiddenAttributes();
-
-    public function isHidden($attribute): bool;
-}
diff --git a/src/WmiScripting/Contracts/Jsonable.php b/src/WmiScripting/Contracts/Jsonable.php
deleted file mode 100644
index a60aa51..0000000
--- a/src/WmiScripting/Contracts/Jsonable.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Contracts;
-
-interface Jsonable extends Arrayable
-{
-    public function toJson(): string;
-
-    public function toString(): string;
-
-    public function __toString();
-}
diff --git a/src/WmiScripting/Exceptions/ComWrapperException.php b/src/WmiScripting/Exceptions/ComWrapperException.php
deleted file mode 100644
index 1240bbd..0000000
--- a/src/WmiScripting/Exceptions/ComWrapperException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Exceptions;
-
-class ComWrapperException extends \RuntimeException
-{
-}
diff --git a/src/WmiScripting/Exceptions/InvalidArgumentException.php b/src/WmiScripting/Exceptions/InvalidArgumentException.php
deleted file mode 100644
index 50d9ce1..0000000
--- a/src/WmiScripting/Exceptions/InvalidArgumentException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Exceptions;
-
-class InvalidArgumentException extends \InvalidArgumentException
-{
-}
diff --git a/src/WmiScripting/Exceptions/InvalidConfigArgumentException.php b/src/WmiScripting/Exceptions/InvalidConfigArgumentException.php
deleted file mode 100644
index 9c4cd15..0000000
--- a/src/WmiScripting/Exceptions/InvalidConfigArgumentException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Exceptions;
-
-class InvalidConfigArgumentException extends \InvalidArgumentException
-{
-}
diff --git a/src/WmiScripting/Exceptions/InvalidConnectionException.php b/src/WmiScripting/Exceptions/InvalidConnectionException.php
deleted file mode 100644
index 8fe529a..0000000
--- a/src/WmiScripting/Exceptions/InvalidConnectionException.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Exceptions;
-
-class InvalidConnectionException extends \InvalidArgumentException
-{
-    public static function new($connection_name)
-    {
-        return new static("Could not find connection: {$connection_name}");
-    }
-}
diff --git a/src/WmiScripting/Exceptions/UnresolvableClassException.php b/src/WmiScripting/Exceptions/UnresolvableClassException.php
deleted file mode 100644
index 5b13f79..0000000
--- a/src/WmiScripting/Exceptions/UnresolvableClassException.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Exceptions;
-
-class UnresolvableClassException extends \InvalidArgumentException
-{
-    public static function default($class)
-    {
-        return new static("{$class} could not be resolved.");
-    }
-}
diff --git a/src/WmiScripting/Exceptions/VariantWrapperException.php b/src/WmiScripting/Exceptions/VariantWrapperException.php
deleted file mode 100644
index 8457089..0000000
--- a/src/WmiScripting/Exceptions/VariantWrapperException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Exceptions;
-
-class VariantWrapperException extends ComWrapperException
-{
-}
diff --git a/src/WmiScripting/Exceptions/WmiClassNotFoundException.php b/src/WmiScripting/Exceptions/WmiClassNotFoundException.php
deleted file mode 100644
index 4c249a2..0000000
--- a/src/WmiScripting/Exceptions/WmiClassNotFoundException.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Exceptions;
-
-class WmiClassNotFoundException extends \RuntimeException
-{
-}
diff --git a/src/WmiScripting/Flags/WbemFlags.php b/src/WmiScripting/Flags/WbemFlags.php
deleted file mode 100644
index 7ced45a..0000000
--- a/src/WmiScripting/Flags/WbemFlags.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Flags;
-
-abstract class WbemFlags
-{
-    /** ExecQuery Flags: https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemservices-execquery */
-    const BIDIRECTIONAL = 0x0;
-    const FORWARD_ONLY = 0x20;
-    const QUERY_FLAG_PROTOTYPE = 0x2;
-    const RETURN_IMMEDIATELY = 0x10;
-    const RETURN_WHEN_COMPLETE = 0x0;
-    const USE_AMENDED_QUALIFIERS = 0x20000;
-
-    /** ConnectServer Flag: https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemlocator-connectserver */
-    const CONNECT_FLAG_USE_MAX_WAIT = 0x80;
-}
diff --git a/src/WmiScripting/MappingStrings/AccountType.php b/src/WmiScripting/MappingStrings/AccountType.php
deleted file mode 100644
index 33b963f..0000000
--- a/src/WmiScripting/MappingStrings/AccountType.php
+++ /dev/null
@@ -1,20 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\MappingStrings;
-
-class AccountType extends Mappings
-{
-    const UF_TEMP_DUPLICATE_ACCOUNT = 256;
-    const UF_NORMAL_ACCOUNT = 512;
-    const UF_INTERDOMAIN_TRUST_ACCOUNT = 2048;
-    const UF_WORKSTATION_TRUST_ACCOUNT = 4096;
-    const UF_SERVER_TRUST_ACCOUNT = 8192;
-
-    const STRING_ARRAY = [
-        self::UF_TEMP_DUPLICATE_ACCOUNT     => 'Duplicate Account',
-        self::UF_NORMAL_ACCOUNT             => 'Normal Account',
-        self::UF_INTERDOMAIN_TRUST_ACCOUNT  => 'Interdomain Trust Account',
-        self::UF_WORKSTATION_TRUST_ACCOUNT  => 'Workstation Trust Account',
-        self::UF_SERVER_TRUST_ACCOUNT       => 'Server Trust Account',
-    ];
-}
diff --git a/src/WmiScripting/MappingStrings/BiosCharacteristics.php b/src/WmiScripting/MappingStrings/BiosCharacteristics.php
deleted file mode 100644
index 8254bd9..0000000
--- a/src/WmiScripting/MappingStrings/BiosCharacteristics.php
+++ /dev/null
@@ -1,99 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\MappingStrings;
-
-class BiosCharacteristics extends Mappings
-{
-    const RESERVED = 0;
-    const RESERVED_ = 1;
-    const UNKNOWN = 2;
-    const BIOS_CHARACTERISTICS_NOT_SUPPORTED = 3;
-    const ISA_IS_SUPPORTED = 4;
-    const MCA_IS_SUPPORTED = 5;
-    const EISA_IS_SUPPORTED = 6;
-    const PCI_IS_SUPPORTED = 7;
-    const PC_CARD_PCMCIA_IS_SUPPORTED = 8;
-    const PLUG_AND_PLAY_IS_SUPPORTED = 9;
-    const APM_IS_SUPPORTED = 10;
-    const BIOS_IS_UPGRADEABLE_FLASH = 11;
-    const BIOS_SHADOWING_IS_ALLOWED = 12;
-    const VL_VESA_IS_SUPPORTED = 13;
-    const ESCD_SUPPORT_IS_AVAILABLE = 14;
-    const BOOT_FROM_CD_IS_SUPPORTED = 15;
-    const SELECTABLE_BOOT_IS_SUPPORTED = 16;
-    const BIOS_ROM_IS_SOCKETED = 17;
-    const BOOT_FROM_PC_CARD_PCMCIA_IS_SUPPORTED = 18;
-    const EDD_ENHANCED_DISK_DRIVE_SPECIFICATION_IS_SUPPORTED = 19;
-    const INT_13H_JAPANESE_FLOPPY_FOR_NEC_9800_1_2MB_3_5_1K_BYTES_SECTOR_360_RPM_IS_SUPPORTED = 20;
-    const INT_13H_JAPANESE_FLOPPY_FOR_TOSHIBA_1_2MB_3_5_360_RPM_IS_SUPPORTED = 21;
-    const INT_13H_5_25__360_KB_FLOPPY_SERVICES_ARE_SUPPORTED = 22;
-    const INT_13H_5_25_1_2MB_FLOPPY_SERVICES_ARE_SUPPORTED = 23;
-    const INT_13H_3_5__720_KB_FLOPPY_SERVICES_ARE_SUPPORTED = 24;
-    const INT_13H_3_5__2_88_MB_FLOPPY_SERVICES_ARE_SUPPORTED = 25;
-    const INT_5H_PRINT_SCREEN_SERVICE_IS_SUPPORTED = 26;
-    const INT_9H_8042_KEYBOARD_SERVICES_ARE_SUPPORTED = 27;
-    const INT_14H_SERIAL_SERVICES_ARE_SUPPORTED = 28;
-    const INT_17H_PRINTER_SERVICES_ARE_SUPPORTED = 29;
-    const INT_10H_CGA_MONO_VIDEO_SERVICES_ARE_SUPPORTED = 30;
-    const NEC_PC98 = 31;
-    const ACPI_SUPPORTED = 32;
-    const USB_LEGACY_IS_SUPPORTED = 33;
-    const AGP_IS_SUPPORTED = 34;
-    const I2O_BOOT_IS_SUPPORTED = 35;
-    const LS120_BOOT_IS_SUPPORTED = 36;
-    const ATAPI_ZIP_DRIVE_BOOT_IS_SUPPORTED = 37;
-    const _1394_BOOT_IS_SUPPORTED = 38;
-    const SMART_BATTERY_SUPPORTED = 39;
-
-    const STRING_ARRAY = [
-        self::RESERVED => 'RESERVED',
-        self::RESERVED_ => 'RESERVED_',
-        self::UNKNOWN => 'UNKNOWN',
-        self::BIOS_CHARACTERISTICS_NOT_SUPPORTED => 'BIOS_CHARACTERISTICS_NOT_SUPPORTED',
-        self::ISA_IS_SUPPORTED => 'ISA_IS_SUPPORTED',
-        self::MCA_IS_SUPPORTED => 'MCA_IS_SUPPORTED',
-        self::EISA_IS_SUPPORTED => 'EISA_IS_SUPPORTED',
-        self::PCI_IS_SUPPORTED => 'PCI_IS_SUPPORTED',
-        self::PC_CARD_PCMCIA_IS_SUPPORTED => 'PC_CARD_PCMCIA_IS_SUPPORTED',
-        self::PLUG_AND_PLAY_IS_SUPPORTED => 'PLUG_AND_PLAY_IS_SUPPORTED',
-        self::APM_IS_SUPPORTED => 'APM_IS_SUPPORTED',
-        self::BIOS_IS_UPGRADEABLE_FLASH => 'BIOS_IS_UPGRADEABLE_FLASH',
-        self::BIOS_SHADOWING_IS_ALLOWED => 'BIOS_SHADOWING_IS_ALLOWED',
-        self::VL_VESA_IS_SUPPORTED => 'VL_VESA_IS_SUPPORTED',
-        self::ESCD_SUPPORT_IS_AVAILABLE => 'ESCD_SUPPORT_IS_AVAILABLE',
-        self::BOOT_FROM_CD_IS_SUPPORTED => 'BOOT_FROM_CD_IS_SUPPORTED',
-        self::SELECTABLE_BOOT_IS_SUPPORTED => 'SELECTABLE_BOOT_IS_SUPPORTED',
-        self::BIOS_ROM_IS_SOCKETED => 'BIOS_ROM_IS_SOCKETED',
-        self::BOOT_FROM_PC_CARD_PCMCIA_IS_SUPPORTED => 'BOOT_FROM_PC_CARD_PCMCIA_IS_SUPPORTED',
-        self::EDD_ENHANCED_DISK_DRIVE_SPECIFICATION_IS_SUPPORTED
-            => 'EDD_ENHANCED_DISK_DRIVE_SPECIFICATION_IS_SUPPORTED',
-        self::INT_13H_JAPANESE_FLOPPY_FOR_NEC_9800_1_2MB_3_5_1K_BYTES_SECTOR_360_RPM_IS_SUPPORTED
-            => 'INT_13H_JAPANESE_FLOPPY_FOR_NEC_9800_1_2MB_3_5_1K_BYTES_SECTOR_360_RPM_IS_SUPPORTED',
-        self::INT_13H_JAPANESE_FLOPPY_FOR_TOSHIBA_1_2MB_3_5_360_RPM_IS_SUPPORTED
-            => 'INT_13H_JAPANESE_FLOPPY_FOR_TOSHIBA_1_2MB_3_5_360_RPM_IS_SUPPORTED',
-        self::INT_13H_5_25__360_KB_FLOPPY_SERVICES_ARE_SUPPORTED
-            => 'INT_13H_5_25__360_KB_FLOPPY_SERVICES_ARE_SUPPORTED',
-        self::INT_13H_5_25_1_2MB_FLOPPY_SERVICES_ARE_SUPPORTED => 'INT_13H_5_25_1_2MB_FLOPPY_SERVICES_ARE_SUPPORTED',
-        self::INT_13H_3_5__720_KB_FLOPPY_SERVICES_ARE_SUPPORTED => 'INT_13H_3_5__720_KB_FLOPPY_SERVICES_ARE_SUPPORTED',
-        self::INT_13H_3_5__2_88_MB_FLOPPY_SERVICES_ARE_SUPPORTED
-            => 'INT_13H_3_5__2_88_MB_FLOPPY_SERVICES_ARE_SUPPORTED',
-        self::INT_5H_PRINT_SCREEN_SERVICE_IS_SUPPORTED => 'INT_5H_PRINT_SCREEN_SERVICE_IS_SUPPORTED',
-        self::INT_9H_8042_KEYBOARD_SERVICES_ARE_SUPPORTED => 'INT_9H_8042_KEYBOARD_SERVICES_ARE_SUPPORTED',
-        self::INT_14H_SERIAL_SERVICES_ARE_SUPPORTED => 'INT_14H_SERIAL_SERVICES_ARE_SUPPORTED',
-        self::INT_17H_PRINTER_SERVICES_ARE_SUPPORTED => 'INT_17H_PRINTER_SERVICES_ARE_SUPPORTED',
-        self::INT_10H_CGA_MONO_VIDEO_SERVICES_ARE_SUPPORTED => 'INT_10H_CGA_MONO_VIDEO_SERVICES_ARE_SUPPORTED',
-        self::NEC_PC98 => 'NEC_PC98',
-        self::ACPI_SUPPORTED => 'ACPI_SUPPORTED',
-        self::USB_LEGACY_IS_SUPPORTED => 'USB_LEGACY_IS_SUPPORTED',
-        self::AGP_IS_SUPPORTED => 'AGP_IS_SUPPORTED',
-        self::I2O_BOOT_IS_SUPPORTED => 'I2O_BOOT_IS_SUPPORTED',
-        self::LS120_BOOT_IS_SUPPORTED => 'LS120_BOOT_IS_SUPPORTED',
-        self::ATAPI_ZIP_DRIVE_BOOT_IS_SUPPORTED => 'ATAPI_ZIP_DRIVE_BOOT_IS_SUPPORTED',
-        self::_1394_BOOT_IS_SUPPORTED => '_1394_BOOT_IS_SUPPORTED',
-        self::SMART_BATTERY_SUPPORTED => 'SMART_BATTERY_SUPPORTED',
-        40 => 'SMART_BATTERY_SUPPORTED',
-        47 => 'SMART_BATTERY_SUPPORTED',
-        48 => 'RESERVED_FOR_BIOS_VENDOR',
-        63 => 'RESERVED_FOR_BIOS_VENDOR',
-    ];
-}
diff --git a/src/WmiScripting/MappingStrings/DriveType.php b/src/WmiScripting/MappingStrings/DriveType.php
deleted file mode 100644
index d7a99ab..0000000
--- a/src/WmiScripting/MappingStrings/DriveType.php
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\MappingStrings;
-
-abstract class DriveType extends Mappings
-{
-    const STRING_ARRAY_CONSTANT_NAME = 'DRIVE_TYPES';
-
-    const UNKNOWN = 0;
-    const NO_ROOT_DIRECTORY = 1;
-    const REMOVABLE_DISK = 2;
-    const LOCAL_DISK = 3;
-    const NETWORK_DRIVE = 4;
-    const COMPACT_DISC = 5;
-    const RAM_DISK = 6;
-
-    const DRIVE_TYPES = [
-        self::UNKNOWN           => 'Unknown',
-        self::NO_ROOT_DIRECTORY => 'No Root Directory',
-        self::REMOVABLE_DISK    => 'Removable Disk',
-        self::LOCAL_DISK        => 'Local Disk',
-        self::NETWORK_DRIVE     => 'Network Drive',
-        self::COMPACT_DISC      => 'Compact Disc',
-        self::RAM_DISK          => 'RAM Disk',
-    ];
-}
diff --git a/src/WmiScripting/MappingStrings/Mappings.php b/src/WmiScripting/MappingStrings/Mappings.php
deleted file mode 100644
index e5c52aa..0000000
--- a/src/WmiScripting/MappingStrings/Mappings.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\MappingStrings;
-
-abstract class Mappings
-{
-    const STRING_ARRAY_CONSTANT_NAME = 'STRING_ARRAY';
-
-    const STRING_ARRAY = [];
-
-    public static function string(string $constant): string
-    {
-        $string_constant = static::STRING_ARRAY_CONSTANT_NAME;
-
-        if (array_key_exists($constant, constant(get_called_class() . "::{$string_constant}"))) {
-            return constant(get_called_class() . "::{$string_constant}")[$constant];
-        }
-
-        return '';
-    }
-}
diff --git a/src/WmiScripting/MappingStrings/OSType.php b/src/WmiScripting/MappingStrings/OSType.php
deleted file mode 100644
index bcc1b26..0000000
--- a/src/WmiScripting/MappingStrings/OSType.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\MappingStrings;
-
-class OSType extends Mappings
-{
-    const UNKNOWN = 0;
-    const OTHER = 1;
-    const MACOS = 2;
-    const ATTUNIX = 3;
-    const DGUX = 4;
-    const DECNT = 5;
-    const DIGITAL_UNIX = 6;
-    const OPENVMS = 7;
-    const HPUX = 8;
-    const AIX = 9;
-    const MVS = 10;
-    const OS400 = 11;
-    const OS_2 = 12;
-    const JAVAVM = 13;
-    const MSDOS = 14;
-    const WIN3X = 15;
-    const WIN95 = 16;
-    const WIN98 = 17;
-    const WINNT = 18;
-    const WINCE = 19;
-    const NCR3000 = 20;
-    const NETWARE = 21;
-    const OSF = 22;
-    const DC_OS = 23;
-    const RELIANT_UNIX = 24;
-    const SCO_UNIXWARE = 25;
-    const SCO_OPENSERVER = 26;
-    const SEQUENT = 27;
-    const IRIX = 28;
-    const SOLARIS = 29;
-    const SUNOS = 30;
-    const U6000 = 31;
-    const ASERIES = 32;
-    const TANDEMNSK = 33;
-    const TANDEMNT = 34;
-    const BS2000 = 35;
-    const LINUX = 36;
-    const LYNX = 37;
-    const XENIX = 38;
-    const VM_ESA = 39;
-    const INTERACTIVE_UNIX = 40;
-    const BSDUNIX = 41;
-    const FREEBSD = 42;
-    const NETBSD = 43;
-    const GNU_HURD = 44;
-    const OS9 = 45;
-    const MACH_KERNEL = 46;
-    const INFERNO = 47;
-    const QNX = 48;
-    const EPOC = 49;
-    const IXWORKS = 50;
-    const VXWORKS = 51;
-    const MINT = 52;
-    const BEOS = 53;
-    const HP_MPE = 54;
-    const NEXTSTEP = 55;
-    const PALMPILOT = 56;
-    const RHAPSODY = 57;
-    const WINDOWS_2000 = 58;
-    const DEDICATED = 59;
-    const OS_390 = 60;
-    const VSE = 61;
-    const TPF = 62;
-
-    const STRING_ARRAY = [
-        self::UNKNOWN           => 'UNKNOWN',
-        self::OTHER             => 'OTHER',
-        self::MACOS             => 'MACOS',
-        self::ATTUNIX           => 'ATTUNIX',
-        self::DGUX              => 'DGUX',
-        self::DECNT             => 'DECNT',
-        self::DIGITAL_UNIX      => 'DIGITAL_UNIX',
-        self::OPENVMS           => 'OPENVMS',
-        self::HPUX              => 'HPUX',
-        self::AIX               => 'AIX',
-        self::MVS               => 'MVS',
-        self::OS400             => 'OS400',
-        self::OS_2              => 'OS_2',
-        self::JAVAVM            => 'JAVAVM',
-        self::MSDOS             => 'MSDOS',
-        self::WIN3X             => 'WIN3X',
-        self::WIN95             => 'WIN95',
-        self::WIN98             => 'WIN98',
-        self::WINNT             => 'WINNT',
-        self::WINCE             => 'WINCE',
-        self::NCR3000           => 'NCR3000',
-        self::NETWARE           => 'NETWARE',
-        self::OSF               => 'OSF',
-        self::DC_OS             => 'DC_OS',
-        self::RELIANT_UNIX      => 'RELIANT_UNIX',
-        self::SCO_UNIXWARE      => 'SCO_UNIXWARE',
-        self::SCO_OPENSERVER    => 'SCO_OPENSERVER',
-        self::SEQUENT           => 'SEQUENT',
-        self::IRIX              => 'IRIX',
-        self::SOLARIS           => 'SOLARIS',
-        self::SUNOS             => 'SUNOS',
-        self::U6000             => 'U6000',
-        self::ASERIES           => 'ASERIES',
-        self::TANDEMNSK         => 'TANDEMNSK',
-        self::TANDEMNT          => 'TANDEMNT',
-        self::BS2000            => 'BS2000',
-        self::LINUX             => 'LINUX',
-        self::LYNX              => 'LYNX',
-        self::XENIX             => 'XENIX',
-        self::VM_ESA            => 'VM_ESA',
-        self::INTERACTIVE_UNIX  => 'INTERACTIVE_UNIX=>',
-        self::BSDUNIX           => 'BSDUNIX',
-        self::FREEBSD           => 'FREEBSD',
-        self::NETBSD            => 'NETBSD',
-        self::GNU_HURD          => 'GNU_HURD',
-        self::OS9               => 'OS9',
-        self::MACH_KERNEL       => 'MACH_KERNEL',
-        self::INFERNO           => 'INFERNO',
-        self::QNX               => 'QNX',
-        self::EPOC              => 'EPOC',
-        self::IXWORKS           => 'IXWORKS',
-        self::VXWORKS           => 'VXWORKS',
-        self::MINT              => 'MINT',
-        self::BEOS              => 'BEOS',
-        self::HP_MPE            => 'HP_MPE',
-        self::NEXTSTEP          => 'NEXTSTEP',
-        self::PALMPILOT         => 'PALMPILOT',
-        self::RHAPSODY          => 'RHAPSODY',
-        self::WINDOWS_2000      => 'WINDOWS_2000',
-        self::DEDICATED         => 'DEDICATED',
-        self::OS_390            => 'OS_390',
-        self::VSE               => 'VSE',
-        self::TPF               => 'TPF',
-    ];
-}
diff --git a/src/WmiScripting/MappingStrings/ProcessorArchitecture.php b/src/WmiScripting/MappingStrings/ProcessorArchitecture.php
deleted file mode 100644
index b020f40..0000000
--- a/src/WmiScripting/MappingStrings/ProcessorArchitecture.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\MappingStrings;
-
-class ProcessorArchitecture extends Mappings
-{
-    const X86 = 0;
-    const MIPS = 1;
-    const ALPHA = 2;
-    const POWER_PC = 3;
-    const ARM = 5;
-    const IA64 = 6;
-    const X64 = 9;
-
-    const STRING_ARRAY = [
-        self::X86       => 'x86',
-        self::MIPS      => 'MIPS',
-        self::ALPHA     => 'Alpha',
-        self::POWER_PC  => 'Power PC',
-        self::ARM       => 'ARM',
-        self::IA64      => 'ia64',
-        self::X64       => 'x64',
-    ];
-}
diff --git a/src/WmiScripting/MappingStrings/SidType.php b/src/WmiScripting/MappingStrings/SidType.php
deleted file mode 100644
index fd41b9e..0000000
--- a/src/WmiScripting/MappingStrings/SidType.php
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\MappingStrings;
-
-class SidType extends Mappings
-{
-    const USER = 1;
-    const GROUP = 2;
-    const DOMAIN = 3;
-    const ALIAS = 4;
-    const WELL_KNOWN_GROUP = 5;
-    const DELETED_ACCOUNT = 6;
-    const INVALID = 7;
-    const UNKNOWN = 8;
-    const COMPUTER = 9;
-
-    const STRING_ARRAY = [
-        self::USER              => 'User',
-        self::GROUP             => 'Group',
-        self::DOMAIN            => 'Domain',
-        self::ALIAS             => 'Alias',
-        self::WELL_KNOWN_GROUP  => 'Well Known Group',
-        self::DELETED_ACCOUNT   => 'Deleted Account',
-        self::INVALID           => 'Invalid',
-        self::UNKNOWN           => 'Unknown',
-        self::COMPUTER          => 'Computer',
-    ];
-}
diff --git a/src/WmiScripting/MappingStrings/SoftwareElementState.php b/src/WmiScripting/MappingStrings/SoftwareElementState.php
deleted file mode 100644
index 68cfce2..0000000
--- a/src/WmiScripting/MappingStrings/SoftwareElementState.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\MappingStrings;
-
-class SoftwareElementState extends Mappings
-{
-    const DEPLOYABLE = 0;
-    const INSTALLABLE = 1;
-    const EXECUTABLE = 2;
-    const RUNNING = 3;
-
-    const STRING_ARRAY = [
-        self::DEPLOYABLE  => 'Deployable',
-        self::INSTALLABLE => 'Installable',
-        self::EXECUTABLE  => 'Executable',
-        self::RUNNING     => 'Running',
-    ];
-}
diff --git a/src/WmiScripting/Models/Account.php b/src/WmiScripting/Models/Account.php
deleted file mode 100644
index e77d0fb..0000000
--- a/src/WmiScripting/Models/Account.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimLogicalElement;
-use PhpWinTools\WmiScripting\MappingStrings\SidType;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-account
- */
-class Account extends CimLogicalElement
-{
-    protected $uuid = '{8502C4C9-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $domain;
-
-    protected $localAccount;
-
-    protected $sID;
-
-    protected $sIDType;
-
-    public function getSIDTypeAttribute($value)
-    {
-        return $this->mapConstant(SidType::class, $value);
-    }
-}
diff --git a/src/WmiScripting/Models/Bios.php b/src/WmiScripting/Models/Bios.php
deleted file mode 100644
index b38c794..0000000
--- a/src/WmiScripting/Models/Bios.php
+++ /dev/null
@@ -1,62 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimBiosElement;
-use PhpWinTools\WmiScripting\MappingStrings\BiosCharacteristics;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-bios
- */
-class Bios extends CimBiosElement
-{
-    protected $uuid = '{8502C4E1-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $biosCharacteristics;
-
-    protected $bIOSVersion;
-
-    protected $currentLanguage;
-
-    protected $embeddedControllerMajorVersion;
-
-    protected $embeddedControllerMinorVersion;
-
-    protected $installableLanguages;
-
-    protected $listOfLanguages;
-
-    protected $releaseDate;
-
-    protected $sMBIOSBIOSVersion;
-
-    protected $sMBIOSMajorVersion;
-
-    protected $sMBIOSMinorVersion;
-
-    protected $sMBIOSPresent;
-
-    protected $systemBiosMajorVersion;
-
-    protected $systemBiosMinorVersion;
-
-    public function __construct(array $attributes = [])
-    {
-        $this->attribute_casting['biosCharacteristics'] = function ($values) {
-            $characteristics = [];
-
-            foreach ($values as $constant) {
-                if (trim($characteristic = BiosCharacteristics::string($constant)) === '') {
-                    $characteristics[$constant] = 'UNKNOWN';
-                    continue;
-                }
-
-                $characteristics[$constant] = $characteristic;
-            }
-
-            return $characteristics;
-        };
-
-        parent::__construct($attributes);
-    }
-}
diff --git a/src/WmiScripting/Models/Bus.php b/src/WmiScripting/Models/Bus.php
deleted file mode 100644
index 6ff812e..0000000
--- a/src/WmiScripting/Models/Bus.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimLogicalDevice;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-bus
- */
-class Bus extends CimLogicalDevice
-{
-    protected $uuid = '{8502C50E-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $busNum;
-
-    protected $busType;
-}
diff --git a/src/WmiScripting/Models/CacheMemory.php b/src/WmiScripting/Models/CacheMemory.php
deleted file mode 100644
index d3e9358..0000000
--- a/src/WmiScripting/Models/CacheMemory.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimCacheMemory;
-
-class CacheMemory extends CimCacheMemory
-{
-    protected $uuid = '{FAF76B97-798C-11D2-AAD1-006008C78BC7}';
-
-    protected $cacheSpeed;
-
-    protected $currentSRAM;
-
-    protected $errorCorrectType;
-
-    protected $installedSize;
-
-    protected $location;
-
-    protected $maxCacheSize;
-
-    protected $supportedSRAM;
-}
diff --git a/src/WmiScripting/Models/Classes.php b/src/WmiScripting/Models/Classes.php
deleted file mode 100644
index ccc1b8a..0000000
--- a/src/WmiScripting/Models/Classes.php
+++ /dev/null
@@ -1,136 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-abstract class Classes
-{
-    /**
-     * Computer System Hardware Classes.
-     *
-     * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/computer-system-hardware-classes
-     */
-    const BIOS = 'Win32_BIOS';
-    const BUS = 'Win32_Bus';
-    const CACHE_MEMORY = 'Win32_CacheMemory';
-    const COMPUTER_SYSTEM_PROCESSOR = 'Win32_ComputerSystemProcessor';
-    const CURRENT_PROBE = 'Win32_CurrentProbe';
-    const DESKTOP_MONITOR = 'Win32_DesktopMonitor';
-    const DISK_DRIVE = 'Win32_DiskDrive';
-    const DISK_PARTITION = 'Win32_DiskPartition';
-    const FAN = 'Win32_Fan';
-    const IDE_CONTROLLER = 'Win32_IDEController';
-    const KEYBOARD = 'Win32_Keyboard';
-    const LOGICAL_DISK = 'Win32_LogicalDisk';
-    const LOGICAL_PROGRAM_GROUP = 'Win32_LogicalProgramGroup';
-    const LOGICAL_PROGRAM_GROUP_ITEM = 'Win32_LogicalProgramGroupItem';
-    const MAPPED_LOGICAL_DISK = 'Win32_MappedLogicalDisk';
-    const MEMORY_ARRAY = 'Win32_MemoryArray';
-    const MEMORY_DEVICE = 'Win32_MemoryDevice';
-    const MOTHERBOARD_DEVICE = 'Win32_MotherboardDevice';
-    const NETWORK_ADAPTER = 'Win32_NetworkAdapter';
-    const PNP_ENTITY = 'Win32_PnPEntity';
-    const POINTING_DEVICE = 'Win32_PointingDevice';
-    const PRINTER = 'Win32_Printer';
-    const PROCESSOR = 'Win32_Processor';
-    const SCSI_CONTROLLER = 'Win32_SCSIController';
-    const SERIAL_PORT = 'Win32_SerialPort';
-    const SMBIOS_MEMORY = 'Win32_SMBIOSMemory';
-    const SOUND_DEVICE = 'Win32_SoundDevice';
-    const TEMPERATURE_PROBE = 'Win32_TemperatureProbe';
-    const USB_CONTROLLER = 'Win32_USBController';
-    const USB_HUB = 'Win32_USBHub';
-    const VIDEO_CONTROLLER = 'Win32_VideoController';
-    const VOLTAGE_SENSOR = 'Win32_VoltageProbe';
-    const VOLUME = 'Win32_Volume';
-
-    /**
-     * Operating System Classes.
-     *
-     * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/operating-system-classes
-     */
-    const ACCOUNT = 'Win32_Account';
-    const COMPUTER_SYSTEM = 'Win32_ComputerSystem';
-    const GROUP = 'Win32_Group';
-    const LOGGED_ON_USER = 'Win32_LoggedOnUser';
-    const LOGON_SESSION = 'Win32_LogonSession';
-    const OPERATING_SYSTEM = 'Win32_OperatingSystem';
-    const PROCESS = 'Win32_Process';
-    const PROGRAM_GROUP_CONTENTS = 'Win32_ProgramGroupContents';
-    const PROGRAM_GROUP_OR_ITEM = 'Win32_ProgramGroupOrItem';
-    const SYSTEM_BIOS = 'Win32_SystemBIOS';
-    const SYSTEM_DEVICES = 'Win32_SystemDevices';
-    const SYSTEM_PARTITIONS = 'Win32_SystemPartitions';
-    const USER_ACCOUNT = 'Win32_UserAccount';
-
-    const CLASS_MAP = [
-        /* Computer System Hardware Classes */
-        self::BIOS                          => Bios::class,
-        self::BUS                           => Bus::class,
-        self::CACHE_MEMORY                  => CacheMemory::class,
-        self::COMPUTER_SYSTEM_PROCESSOR     => ComputerSystemProcessor::class,
-        self::CURRENT_PROBE                 => CurrentProbe::class,
-        self::DESKTOP_MONITOR               => DesktopMonitor::class,
-        self::DISK_DRIVE                    => DiskDrive::class,
-        self::DISK_PARTITION                => DiskPartition::class,
-        self::FAN                           => Fan::class,
-        self::IDE_CONTROLLER                => IDEController::class,
-        self::KEYBOARD                      => Keyboard::class,
-        self::LOGICAL_DISK                  => LogicalDisk::class,
-        self::LOGICAL_PROGRAM_GROUP         => LogicalProgramGroup::class,
-        self::LOGICAL_PROGRAM_GROUP_ITEM    => LogicalProgramGroupItem::class,
-        self::MAPPED_LOGICAL_DISK           => MappedLogicalDisk::class,
-        self::MEMORY_DEVICE                 => MemoryDevice::class,
-        self::MEMORY_ARRAY                  => MemoryArray::class,
-        self::MOTHERBOARD_DEVICE            => MotherboardDevice::class,
-        self::NETWORK_ADAPTER               => NetworkAdapter::class,
-        self::PNP_ENTITY                    => PnPEntity::class,
-        self::POINTING_DEVICE               => PointingDevice::class,
-        self::PRINTER                       => Printer::class,
-        self::PROCESSOR                     => Processor::class,
-        self::SCSI_CONTROLLER               => SCSIController::class,
-        self::SERIAL_PORT                   => SerialPort::class,
-        self::SMBIOS_MEMORY                 => SMBIOSMemory::class,
-        self::SOUND_DEVICE                  => SoundDevice::class,
-        self::TEMPERATURE_PROBE             => TemperatureProbe::class,
-        self::USB_CONTROLLER                => USBController::class,
-        self::USB_HUB                       => USBHub::class,
-        self::VIDEO_CONTROLLER              => VideoController::class,
-        self::VOLTAGE_SENSOR                => VoltageProbe::class,
-        self::VOLUME                        => Volume::class,
-
-        /* Operating System Classes */
-        self::ACCOUNT                       => Account::class,
-        self::COMPUTER_SYSTEM               => ComputerSystem::class,
-        self::GROUP                         => Group::class,
-        self::LOGGED_ON_USER                => LoggedOnUser::class,
-        self::LOGON_SESSION                 => LogonSession::class,
-        self::PROCESS                       => Process::class,
-        self::PROGRAM_GROUP_CONTENTS        => ProgramGroupContents::class,
-        self::PROGRAM_GROUP_OR_ITEM         => ProgramGroupOrItem::class,
-        self::OPERATING_SYSTEM              => OperatingSystem::class,
-        self::SYSTEM_BIOS                   => SystemBios::class,
-        self::SYSTEM_DEVICES                => SystemDevices::class,
-        self::SYSTEM_PARTITIONS             => SystemPartitions::class,
-        self::USER_ACCOUNT                  => UserAccount::class,
-    ];
-
-    public static function win32ClassFromPHPClass(string $class_name)
-    {
-        $win32_class = array_search($class_name, self::CLASS_MAP);
-
-        if ($win32_class === false) {
-            return Win32Model::class;
-        }
-
-        return $win32_class;
-    }
-
-    public static function getClass(string $classes_constant)
-    {
-        if (array_key_exists($classes_constant, self::CLASS_MAP)) {
-            return self::CLASS_MAP[$classes_constant];
-        }
-
-        return Win32Model::class;
-    }
-}
diff --git a/src/WmiScripting/Models/ComputerSystem.php b/src/WmiScripting/Models/ComputerSystem.php
deleted file mode 100644
index 06ed370..0000000
--- a/src/WmiScripting/Models/ComputerSystem.php
+++ /dev/null
@@ -1,109 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimUnitaryComputerSystem;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-computersystem
- */
-class ComputerSystem extends CimUnitaryComputerSystem
-{
-    protected $uuid = '{8502C4B0-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $adminPasswordStatus;
-
-    protected $automaticManagedPagefile;
-
-    protected $automaticResetBootOption;
-
-    protected $automaticResetCapability;
-
-    protected $bootOptionOnLimit;
-
-    protected $bootOptionOnWatchDog;
-
-    protected $bootROMSupported;
-
-    protected $bootupState;
-
-    protected $bootStatus;
-
-    protected $chassisBootupState;
-
-    protected $chassisSKUNumber;
-
-    protected $currentTimeZone;
-
-    protected $daylightInEffect;
-
-    protected $dNSHostName;
-
-    protected $domain;
-
-    protected $domainRole;
-
-    protected $enableDaylightSavingsTime;
-
-    protected $frontPanelResetStatus;
-
-    protected $hypervisorPresent;
-
-    protected $infraredSupported;
-
-    protected $keyboardPasswordStatus;
-
-    protected $manufacturer;
-
-    protected $model;
-
-    protected $networkServerModeEnabled;
-
-    protected $numberOfLogicalProcessors;
-
-    protected $numberOfProcessors;
-
-    protected $oEMLogoBitmap;
-
-    protected $oEMStringArray;
-
-    protected $partOfDomain;
-
-    protected $pauseAfterReset;
-
-    protected $pCSystemType;
-
-    protected $pCSystemTypeEx;
-
-    protected $powerOnPasswordStatus;
-
-    protected $powerSupplyState;
-
-    protected $resetCount;
-
-    protected $resetLimit;
-
-    protected $supportContactDescription;
-
-    protected $systemFamily;
-
-    protected $systemSKUNumber;
-
-    protected $systemStartupDelay;
-
-    protected $systemStartupOptions;
-
-    protected $systemStartupSetting;
-
-    protected $systemType;
-
-    protected $thermalState;
-
-    protected $totalPhysicalMemory;
-
-    protected $userName;
-
-    protected $wakeUpType;
-
-    protected $workgroup;
-}
diff --git a/src/WmiScripting/Models/ComputerSystemProcessor.php b/src/WmiScripting/Models/ComputerSystemProcessor.php
deleted file mode 100644
index c76078e..0000000
--- a/src/WmiScripting/Models/ComputerSystemProcessor.php
+++ /dev/null
@@ -1,8 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-class ComputerSystemProcessor extends SystemDevices
-{
-    protected $uuid = '{719A6839-C124-11d2-85E8-0000F8102E5F}';
-}
diff --git a/src/WmiScripting/Models/CurrentProbe.php b/src/WmiScripting/Models/CurrentProbe.php
deleted file mode 100644
index 57fc544..0000000
--- a/src/WmiScripting/Models/CurrentProbe.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimCurrentSensor;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-currentprobe
- */
-class CurrentProbe extends CimCurrentSensor
-{
-    protected $uuid = '{464FFABA-946F-11d2-AAE2-006008C78BC7}';
-}
diff --git a/src/WmiScripting/Models/DesktopMonitor.php b/src/WmiScripting/Models/DesktopMonitor.php
deleted file mode 100644
index 0d89771..0000000
--- a/src/WmiScripting/Models/DesktopMonitor.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimDesktopMonitor;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-desktopmonitor
- */
-class DesktopMonitor extends CimDesktopMonitor
-{
-    protected $uuid = '{1008CCF0-7BFF-11D2-AAD2-006008C78BC7}';
-
-    protected $monitorManufacturer;
-
-    protected $monitorType;
-
-    protected $pixelsPerXLogicalInch;
-
-    protected $pixelsPerYLogicalInch;
-}
diff --git a/src/WmiScripting/Models/DiskDrive.php b/src/WmiScripting/Models/DiskDrive.php
deleted file mode 100644
index 361188c..0000000
--- a/src/WmiScripting/Models/DiskDrive.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimDiskDrive;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-diskdrive
- */
-class DiskDrive extends CimDiskDrive
-{
-    protected $uuid = '{8502C4B2-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $bytesPerSector;
-
-    protected $firmwareRevision;
-
-    protected $index;
-
-    protected $interfaceType;
-
-    protected $manufacturer;
-
-    protected $mediaLoaded;
-
-    protected $mediaType;
-
-    protected $model;
-
-    protected $partitions;
-
-    protected $sCSIBus;
-
-    protected $sCSILogicalUnit;
-
-    protected $sCSIPort;
-
-    protected $sCSITargetId;
-
-    protected $sectorsPerTrack;
-
-    protected $serialNumber;
-
-    protected $signature;
-
-    protected $size;
-
-    protected $totalCylinders;
-
-    protected $totalHeads;
-
-    protected $totalSectors;
-
-    protected $totalTracks;
-
-    protected $tracksPerCylinder;
-}
diff --git a/src/WmiScripting/Models/DiskPartition.php b/src/WmiScripting/Models/DiskPartition.php
deleted file mode 100644
index 7029410..0000000
--- a/src/WmiScripting/Models/DiskPartition.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimDiskPartition;
-
-/**
- * @@link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-diskpartition
- */
-class DiskPartition extends CimDiskPartition
-{
-    protected $uuid = '{8502C4B8-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $additionalAvailability;
-
-    protected $identifyingDescriptions;
-
-    protected $maxQuiesceTime;
-
-    protected $otherIdentifyingInfo;
-
-    protected $powerOnHours;
-
-    protected $totalPowerOnHours;
-
-    protected $bootPartition;
-
-    protected $diskIndex;
-
-    protected $hiddenSectors;
-
-    protected $index;
-
-    protected $rewritePartition;
-
-    protected $size;
-
-    protected $startingOffset;
-
-    protected $type;
-}
diff --git a/src/WmiScripting/Models/Fan.php b/src/WmiScripting/Models/Fan.php
deleted file mode 100644
index d3a822d..0000000
--- a/src/WmiScripting/Models/Fan.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimFan;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-fan
- */
-class Fan extends CimFan
-{
-    protected $uuid = '{464FFAB5-946F-11d2-AAE2-006008C78BC7}';
-}
diff --git a/src/WmiScripting/Models/Group.php b/src/WmiScripting/Models/Group.php
deleted file mode 100644
index a6cfbe6..0000000
--- a/src/WmiScripting/Models/Group.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-group
- */
-class Group extends Account
-{
-    protected $uuid = '{8502C4CB-5FBB-11D2-AAC1-006008C78BC7}';
-}
diff --git a/src/WmiScripting/Models/IDEController.php b/src/WmiScripting/Models/IDEController.php
deleted file mode 100644
index ad40781..0000000
--- a/src/WmiScripting/Models/IDEController.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimController;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-idecontroller
- */
-class IDEController extends CimController
-{
-    protected $uuid = '{9ABA5122-C7A1-11d2-911D-0060081A46FD}';
-
-    protected $manufacturer;
-}
diff --git a/src/WmiScripting/Models/Keyboard.php b/src/WmiScripting/Models/Keyboard.php
deleted file mode 100644
index 975c7e0..0000000
--- a/src/WmiScripting/Models/Keyboard.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimKeyboard;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-keyboard
- */
-class Keyboard extends CimKeyboard
-{
-    protected $uuid = '{8502C4B5-5FBB-11D2-AAC1-006008C78BC7}';
-}
diff --git a/src/WmiScripting/Models/LoggedOnUser.php b/src/WmiScripting/Models/LoggedOnUser.php
deleted file mode 100644
index ff8468c..0000000
--- a/src/WmiScripting/Models/LoggedOnUser.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimDependency;
-use PhpWinTools\WmiScripting\Query\LoggedOnUserBuilder;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-loggedonuser
- */
-class LoggedOnUser extends CimDependency
-{
-    protected $uuid = '{8BB5B3EC-E1F7-4b39-942A-605D5F55789A}';
-
-    protected $attribute_name_replacements = [
-        'antecedent' => 'userAccount',
-        'dependent'  => 'logonSession',
-    ];
-
-    public static function query($connection = null)
-    {
-        return new LoggedOnUserBuilder($self = new static(), $self->getConnection($connection));
-    }
-}
diff --git a/src/WmiScripting/Models/LogicalDisk.php b/src/WmiScripting/Models/LogicalDisk.php
deleted file mode 100644
index fa8588e..0000000
--- a/src/WmiScripting/Models/LogicalDisk.php
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimLogicalDisk;
-use PhpWinTools\WmiScripting\Query\LogicalDiskBuilder;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-logicaldisk
- */
-class LogicalDisk extends CimLogicalDisk
-{
-    protected $uuid = '{8502C52C-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $compressed;
-
-    protected $driveType;
-
-    protected $fileSystem;
-
-    protected $maximumComponentLength;
-
-    protected $mediaType;
-
-    protected $providerName;
-
-    protected $quotasDisabled;
-
-    protected $quotasIncomplete;
-
-    protected $quotasRebuilding;
-
-    protected $supportsDiskQuotas;
-
-    protected $supportsFileBasedCompression;
-
-    protected $volumeDirty;
-
-    protected $volumeName;
-
-    protected $volumeSerialNumber;
-
-    protected $attribute_casting = [
-        'driveType' => 'int',
-    ];
-
-    public static function query($connection = null)
-    {
-        return new LogicalDiskBuilder($self = new static(), $self->getConnection($connection));
-    }
-
-    public function getVolumeName()
-    {
-        return $this->getAttribute('volumeName');
-    }
-}
diff --git a/src/WmiScripting/Models/LogicalProgramGroup.php b/src/WmiScripting/Models/LogicalProgramGroup.php
deleted file mode 100644
index 43b125c..0000000
--- a/src/WmiScripting/Models/LogicalProgramGroup.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-logicalprogramgroup
- */
-class LogicalProgramGroup extends ProgramGroupOrItem
-{
-    protected $uuid = '{D52706F2-8045-11d2-90CE-0060081A46FD}';
-
-    protected $groupName;
-
-    protected $userName;
-}
diff --git a/src/WmiScripting/Models/LogicalProgramGroupItem.php b/src/WmiScripting/Models/LogicalProgramGroupItem.php
deleted file mode 100644
index 1f94b2c..0000000
--- a/src/WmiScripting/Models/LogicalProgramGroupItem.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-logicalprogramgroupitem
- */
-class LogicalProgramGroupItem extends ProgramGroupOrItem
-{
-    protected $uuid = '{86E30E82-7DB2-11d2-90CB-0060081A46FD}';
-}
diff --git a/src/WmiScripting/Models/LogonSession.php b/src/WmiScripting/Models/LogonSession.php
deleted file mode 100644
index 3f083fa..0000000
--- a/src/WmiScripting/Models/LogonSession.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-logonsession
- */
-class LogonSession extends Session
-{
-    protected $uuid = '{9083C21E-7D58-4e0e-BC30-0BC8922AFB8B}';
-
-    protected $authenticationPackage;
-
-    protected $logonId;
-
-    protected $logonType;
-}
diff --git a/src/WmiScripting/Models/LogonSessionMappedDisk.php b/src/WmiScripting/Models/LogonSessionMappedDisk.php
deleted file mode 100644
index 3f868bf..0000000
--- a/src/WmiScripting/Models/LogonSessionMappedDisk.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimDependency;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-logonsessionmappeddisk
- */
-class LogonSessionMappedDisk extends CimDependency
-{
-}
diff --git a/src/WmiScripting/Models/MappedLogicalDisk.php b/src/WmiScripting/Models/MappedLogicalDisk.php
deleted file mode 100644
index 0f38bba..0000000
--- a/src/WmiScripting/Models/MappedLogicalDisk.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimLogicalDisk;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-mappedlogicaldisk
- */
-class MappedLogicalDisk extends CimLogicalDisk
-{
-    protected $uuid = '{BCF02FFE-5560-4de2-B419-272918693426}';
-
-    protected $compressed;
-
-    protected $fileSystem;
-
-    protected $maximumComponentLength;
-
-    protected $providerName;
-
-    protected $quotasDisabled;
-
-    protected $quotasIncomplete;
-
-    protected $quotasRebuilding;
-
-    protected $sessionID;
-
-    protected $supportsDiskQuotas;
-
-    protected $supportsFileBasedCompression;
-
-    protected $volumeName;
-
-    protected $volumeSerialNumber;
-}
diff --git a/src/WmiScripting/Models/MemoryArray.php b/src/WmiScripting/Models/MemoryArray.php
deleted file mode 100644
index 3feb502..0000000
--- a/src/WmiScripting/Models/MemoryArray.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-memoryarray
- */
-class MemoryArray extends SMBIOSMemory
-{
-    protected $uuid = '{FAF76B9A-798C-11D2-AAD1-006008C78BC7}';
-
-    protected $errorGranularity;
-}
diff --git a/src/WmiScripting/Models/MemoryDevice.php b/src/WmiScripting/Models/MemoryDevice.php
deleted file mode 100644
index e0e2b27..0000000
--- a/src/WmiScripting/Models/MemoryDevice.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-memorydevice
- */
-class MemoryDevice extends SMBIOSMemory
-{
-    protected $uuid = '{FAF76B9B-798C-11D2-AAD1-006008C78BC7}';
-
-    protected $errorGranularity;
-}
diff --git a/src/WmiScripting/Models/MotherboardDevice.php b/src/WmiScripting/Models/MotherboardDevice.php
deleted file mode 100644
index ac4110a..0000000
--- a/src/WmiScripting/Models/MotherboardDevice.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimLogicalDevice;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-motherboarddevice
- */
-class MotherboardDevice extends CimLogicalDevice
-{
-    protected $uuid = '{8502C4BA-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $primaryBusType;
-
-    protected $revisionNumber;
-
-    protected $secondaryBusType;
-}
diff --git a/src/WmiScripting/Models/NetworkAdapter.php b/src/WmiScripting/Models/NetworkAdapter.php
deleted file mode 100644
index d9e1e40..0000000
--- a/src/WmiScripting/Models/NetworkAdapter.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimNetworkAdapter;
-
-class NetworkAdapter extends CimNetworkAdapter
-{
-    protected $uuid = '{8502C4C0-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $adapterType;
-
-    protected $adapterTypeID;
-
-    protected $gUID;
-
-    protected $index;
-
-    protected $installed;
-
-    protected $interfaceIndex;
-
-    protected $mACAddress;
-
-    protected $manufacturer;
-
-    protected $maxNumberControlled;
-
-    protected $netConnectionID;
-
-    protected $netConnectionStatus;
-
-    protected $netEnabled;
-
-    protected $physicalAdapter;
-
-    protected $productName;
-
-    protected $serviceName;
-
-    protected $timeOfLastReset;
-
-    public function enable()
-    {
-        //
-    }
-
-    public function disable()
-    {
-        //
-    }
-}
diff --git a/src/WmiScripting/Models/OperatingSystem.php b/src/WmiScripting/Models/OperatingSystem.php
deleted file mode 100644
index 037f0b6..0000000
--- a/src/WmiScripting/Models/OperatingSystem.php
+++ /dev/null
@@ -1,91 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimOperatingSystem;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-operatingsystem
- */
-class OperatingSystem extends CimOperatingSystem
-{
-    protected $uuid = '{8502C4DE-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $bootDevice;
-
-    protected $buildNumber;
-
-    protected $buildType;
-
-    protected $codeSet;
-
-    protected $countryCode;
-
-    protected $cSDVersion;
-
-    protected $dataExecutionPrevention_Available;
-
-    protected $dataExecutionPrevention_32BitApplications;
-
-    protected $dataExecutionPrevention_Drivers;
-
-    protected $dataExecutionPrevention_SupportPolicy;
-
-    protected $debug;
-
-    protected $encryptionLevel;
-
-    protected $foregroundApplicationBoost = 2;
-
-    protected $largeSystemCache;
-
-    protected $locale;
-
-    protected $manufacturer;
-
-    protected $mUILanguages;
-
-    protected $operatingSystemSKU;
-
-    protected $organization;
-
-    protected $oSArchitecture;
-
-    protected $oSLanguage;
-
-    protected $oSProductSuite;
-
-    protected $pAEEnabled;
-
-    protected $plusProductID;
-
-    protected $plusVersionNumber;
-
-    protected $portableOperatingSystem;
-
-    protected $primary;
-
-    protected $productType;
-
-    protected $registeredUser;
-
-    protected $serialNumber;
-
-    protected $servicePackMajorVersion;
-
-    protected $servicePackMinorVersion;
-
-    protected $suiteMask;
-
-    protected $systemDevice;
-
-    protected $systemDirectory;
-
-    protected $systemDrive;
-
-    protected $windowsDirectory;
-
-    protected $quantumLength;
-
-    protected $quantumType;
-}
diff --git a/src/WmiScripting/Models/PnPEntity.php b/src/WmiScripting/Models/PnPEntity.php
deleted file mode 100644
index 8608fd7..0000000
--- a/src/WmiScripting/Models/PnPEntity.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimLogicalDevice;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-pnpentity
- */
-class PnPEntity extends CimLogicalDevice
-{
-    protected $uuid = '{FE28FD98-C875-11d2-B352-00104BC97924}';
-
-    protected $classGuid;
-
-    protected $compatibleID;
-
-    protected $hardwareID;
-
-    protected $manufacturer;
-
-    protected $pNPClass;
-
-    protected $present;
-
-    protected $service;
-}
diff --git a/src/WmiScripting/Models/PointingDevice.php b/src/WmiScripting/Models/PointingDevice.php
deleted file mode 100644
index 02152d4..0000000
--- a/src/WmiScripting/Models/PointingDevice.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimPointingDevice;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-pointingdevice
- */
-class PointingDevice extends CimPointingDevice
-{
-    protected $uuid = '{8502C4B4-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $deviceInterface;
-
-    protected $doubleSpeedThreshold;
-
-    protected $hardwareType;
-
-    protected $infFileName;
-
-    protected $infSection;
-
-    protected $manufacturer;
-
-    protected $quadSpeedThreshold;
-
-    protected $sampleRate;
-
-    protected $synch;
-}
diff --git a/src/WmiScripting/Models/Printer.php b/src/WmiScripting/Models/Printer.php
deleted file mode 100644
index 1aff434..0000000
--- a/src/WmiScripting/Models/Printer.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimPrinter;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-printer
- */
-class Printer extends CimPrinter
-{
-    protected $attributes;
-
-    protected $averagePagesPerMinute;
-
-    protected $comment;
-
-    protected $default;
-
-    protected $defaultPriority;
-
-    protected $direct;
-
-    protected $doCompleteFirst;
-
-    protected $driverName;
-
-    protected $enableBIDI;
-
-    protected $enableDevQueryPrint;
-
-    protected $extendedDetectedErrorState;
-
-    protected $extendedPrinterStatus;
-
-    protected $hidden;
-
-    protected $keepPrintedJobs;
-
-    protected $local;
-
-    protected $location;
-
-    protected $network;
-
-    protected $parameters;
-
-    protected $portName;
-
-    protected $printerPaperNames;
-
-    protected $printerState;
-
-    protected $printJobDataType;
-
-    protected $printProcessor;
-
-    protected $priority;
-
-    protected $published;
-
-    protected $queued;
-
-    protected $rawOnly;
-
-    protected $separatorFile;
-
-    protected $serverName;
-
-    protected $shared;
-
-    protected $shareName;
-
-    protected $spoolEnabled;
-
-    protected $startTime;
-
-    protected $untilTime;
-
-    protected $workOffline;
-}
diff --git a/src/WmiScripting/Models/Process.php b/src/WmiScripting/Models/Process.php
deleted file mode 100644
index 9f3926c..0000000
--- a/src/WmiScripting/Models/Process.php
+++ /dev/null
@@ -1,67 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimProcess;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-process
- */
-class Process extends CimProcess
-{
-    protected $uuid = '{8502C4DC-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $commandLine;
-
-    protected $executablePath;
-
-    protected $handleCount;
-
-    protected $maximumWorkingSetSize;
-
-    protected $minimumWorkingSetSize;
-
-    protected $otherOperationCount;
-
-    protected $otherTransferCount;
-
-    protected $pageFaults;
-
-    protected $pageFileUsage;
-
-    protected $parentProcessId;
-
-    protected $peakPageFileUsage;
-
-    protected $peakVirtualSize;
-
-    protected $peakWorkingSetSize;
-
-    protected $privatePageCount;
-
-    protected $processId;
-
-    protected $quotaNonPagedPoolUsage;
-
-    protected $quotaPagedPoolUsage;
-
-    protected $quotaPeakNonPagedPoolUsage;
-
-    protected $quotaPeakPagedPoolUsage;
-
-    protected $readOperationCount;
-
-    protected $readTransferCount;
-
-    protected $sessionId;
-
-    protected $threadCount;
-
-    protected $virtualSize;
-
-    protected $windowsVersion;
-
-    protected $writeOperationCount;
-
-    protected $writeTransferCount;
-}
diff --git a/src/WmiScripting/Models/Processor.php b/src/WmiScripting/Models/Processor.php
deleted file mode 100644
index 36c1f4e..0000000
--- a/src/WmiScripting/Models/Processor.php
+++ /dev/null
@@ -1,73 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimProcessor;
-use PhpWinTools\WmiScripting\MappingStrings\ProcessorArchitecture;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-processor
- */
-class Processor extends CimProcessor
-{
-    protected $uuid = '{8502C4BB-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $architecture;
-
-    protected $assetTag;
-
-    protected $characteristics;
-
-    protected $cpuStatus;
-
-    protected $currentVoltage;
-
-    protected $extClock;
-
-    protected $l2CacheSize;
-
-    protected $l2CacheSpeed;
-
-    protected $l3CacheSize;
-
-    protected $l3CacheSpeed;
-
-    protected $level;
-
-    protected $manufacturer;
-
-    protected $numberOfCores;
-
-    protected $numberOfEnabledCore;
-
-    protected $numberOfLogicalProcessors;
-
-    protected $partNumber;
-
-    protected $processorId;
-
-    protected $processorType;
-
-    protected $revision;
-
-    protected $secondLevelAddressTranslationExtensions;
-
-    protected $serialNumber;
-
-    protected $socketDesignation;
-
-    protected $threadCount;
-
-    protected $version;
-
-    protected $virtualizationFirmwareEnabled;
-
-    protected $vMMonitorModeExtensions;
-
-    protected $voltageCaps;
-
-    public function getArchitectureAttribute($value)
-    {
-        return $this->mapConstant(ProcessorArchitecture::class, $value);
-    }
-}
diff --git a/src/WmiScripting/Models/ProgramGroupContents.php b/src/WmiScripting/Models/ProgramGroupContents.php
deleted file mode 100644
index 7c92b97..0000000
--- a/src/WmiScripting/Models/ProgramGroupContents.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimComponent;
-
-class ProgramGroupContents extends CimComponent
-{
-    protected $uuid = '{86E30E83-7DB2-11d2-90CB-0060081A46FD}';
-}
diff --git a/src/WmiScripting/Models/ProgramGroupOrItem.php b/src/WmiScripting/Models/ProgramGroupOrItem.php
deleted file mode 100644
index 3cbc665..0000000
--- a/src/WmiScripting/Models/ProgramGroupOrItem.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimLogicalElement;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-programgrouporitem
- */
-class ProgramGroupOrItem extends CimLogicalElement
-{
-    protected $uuid = '{86E30E86-7DB2-11d2-90CB-0060081A46FD}';
-}
diff --git a/src/WmiScripting/Models/SCSIController.php b/src/WmiScripting/Models/SCSIController.php
deleted file mode 100644
index 5465ac4..0000000
--- a/src/WmiScripting/Models/SCSIController.php
+++ /dev/null
@@ -1,23 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimSCSIController;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-scsicontroller
- */
-class SCSIController extends CimSCSIController
-{
-    protected $uuid = '{8502C4C1-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $deviceMap;
-
-    protected $driverName;
-
-    protected $hardwareVersion;
-
-    protected $index;
-
-    protected $manufacturer;
-}
diff --git a/src/WmiScripting/Models/SMBIOSMemory.php b/src/WmiScripting/Models/SMBIOSMemory.php
deleted file mode 100644
index 1e1a5fa..0000000
--- a/src/WmiScripting/Models/SMBIOSMemory.php
+++ /dev/null
@@ -1,41 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimStorageExtent;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-smbiosmemory
- */
-class SMBIOSMemory extends CimStorageExtent
-{
-    protected $uuid = '{FECB095B-F0FA-11d2-8617-0000F8102E5F}';
-
-    protected $additionalErrorData;
-
-    protected $correctableError;
-
-    protected $endingAddress;
-
-    protected $errorAccess;
-
-    protected $errorAddress;
-
-    protected $errorData;
-
-    protected $errorDataOrder;
-
-    protected $errorInfo;
-
-    protected $errorResolution;
-
-    protected $errorTime;
-
-    protected $errorTransferSize;
-
-    protected $otherErrorDescription;
-
-    protected $startingAddress;
-
-    protected $systemLevelAddress;
-}
diff --git a/src/WmiScripting/Models/SerialPort.php b/src/WmiScripting/Models/SerialPort.php
deleted file mode 100644
index 1c737b6..0000000
--- a/src/WmiScripting/Models/SerialPort.php
+++ /dev/null
@@ -1,57 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimSerialController;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-serialport
- */
-class SerialPort extends CimSerialController
-{
-    protected $uuid = '{8502C4BF-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $binary;
-
-    protected $maximumInputBufferSize;
-
-    protected $maximumOutputBufferSize;
-
-    protected $oSAutoDiscovered;
-
-    protected $providerType;
-
-    protected $settableBaudRate;
-
-    protected $settableDataBits;
-
-    protected $settableFlowControl;
-
-    protected $settableParity;
-
-    protected $settableParityCheck;
-
-    protected $settableRLSD;
-
-    protected $settableStopBits;
-
-    protected $supports16BitMode;
-
-    protected $supportsDTRDSR;
-
-    protected $supportsElapsedTimeouts;
-
-    protected $supportsIntTimeouts;
-
-    protected $supportsParityCheck;
-
-    protected $supportsRLSD;
-
-    protected $supportsRTSCTS;
-
-    protected $supportsSpecialCharacters;
-
-    protected $supportsXOnXOff;
-
-    protected $supportsXOnXOffSet;
-}
diff --git a/src/WmiScripting/Models/Session.php b/src/WmiScripting/Models/Session.php
deleted file mode 100644
index c0c0bcc..0000000
--- a/src/WmiScripting/Models/Session.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimLogicalElement;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-session
- */
-class Session extends CimLogicalElement
-{
-    protected $startTime;
-}
diff --git a/src/WmiScripting/Models/SoundDevice.php b/src/WmiScripting/Models/SoundDevice.php
deleted file mode 100644
index 4c4231b..0000000
--- a/src/WmiScripting/Models/SoundDevice.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimLogicalDevice;
-
-class SoundDevice extends CimLogicalDevice
-{
-    protected $uuid = '{8502C50C-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $dMABufferSize;
-
-    protected $manufacturer;
-
-    protected $mPU401Address;
-
-    protected $productName;
-}
diff --git a/src/WmiScripting/Models/SystemBios.php b/src/WmiScripting/Models/SystemBios.php
deleted file mode 100644
index acf7200..0000000
--- a/src/WmiScripting/Models/SystemBios.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimSystemComponent;
-use PhpWinTools\WmiScripting\Query\SystemBiosBuilder;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-systembios
- */
-class SystemBios extends CimSystemComponent
-{
-    protected $uuid = '{8502C4EE-5FBB-11D2-AAC1-006008C78BC7}';
-
-    protected $attribute_name_replacements = [
-        'partComponent'  => 'Win32_BIOS',
-        'groupComponent' => 'Win32_ComputerSystem',
-    ];
-
-    public static function query($connection = null)
-    {
-        return new SystemBiosBuilder($self = new static(), $self->getConnection($connection));
-    }
-}
diff --git a/src/WmiScripting/Models/SystemDevices.php b/src/WmiScripting/Models/SystemDevices.php
deleted file mode 100644
index 2e0d38c..0000000
--- a/src/WmiScripting/Models/SystemDevices.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimSystemDevice;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-systemdevices
- */
-class SystemDevices extends CimSystemDevice
-{
-    protected $uuid = '{8502C4F4-5FBB-11D2-AAC1-006008C78BC7}';
-}
diff --git a/src/WmiScripting/Models/SystemPartitions.php b/src/WmiScripting/Models/SystemPartitions.php
deleted file mode 100644
index 3d3a774..0000000
--- a/src/WmiScripting/Models/SystemPartitions.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-systempartitions
- */
-class SystemPartitions extends SystemDevices
-{
-    protected $uuid = '{8502C4F5-5FBB-11D2-AAC1-006008C78BC7}';
-}
diff --git a/src/WmiScripting/Models/TemperatureProbe.php b/src/WmiScripting/Models/TemperatureProbe.php
deleted file mode 100644
index c564ee6..0000000
--- a/src/WmiScripting/Models/TemperatureProbe.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimTemperatureSensor;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-temperatureprobe
- */
-class TemperatureProbe extends CimTemperatureSensor
-{
-    protected $uuid = '{464FFABB-946F-11d2-AAE2-006008C78BC7}';
-}
diff --git a/src/WmiScripting/Models/USBController.php b/src/WmiScripting/Models/USBController.php
deleted file mode 100644
index 0f160be..0000000
--- a/src/WmiScripting/Models/USBController.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimUSBController;
-
-class USBController extends CimUSBController
-{
-    protected $uuid = '{98C7E2C7-D592-11d2-B355-00105A0A323A}';
-}
diff --git a/src/WmiScripting/Models/USBHub.php b/src/WmiScripting/Models/USBHub.php
deleted file mode 100644
index 6bd03ef..0000000
--- a/src/WmiScripting/Models/USBHub.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimUSBHub;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/cim-usbhub
- */
-class USBHub extends CimUSBHub
-{
-}
diff --git a/src/WmiScripting/Models/UserAccount.php b/src/WmiScripting/Models/UserAccount.php
deleted file mode 100644
index e84aa25..0000000
--- a/src/WmiScripting/Models/UserAccount.php
+++ /dev/null
@@ -1,27 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\MappingStrings\AccountType;
-
-class UserAccount extends Account
-{
-    protected $accountType;
-
-    protected $disabled;
-
-    protected $fullName;
-
-    protected $lockout;
-
-    protected $passwordChangeable;
-
-    protected $passwordExpires;
-
-    protected $passwordRequired;
-
-    public function getAccountTypeAttribute($value)
-    {
-        return $this->mapConstant(AccountType::class, $value);
-    }
-}
diff --git a/src/WmiScripting/Models/VideoController.php b/src/WmiScripting/Models/VideoController.php
deleted file mode 100644
index 571f4ee..0000000
--- a/src/WmiScripting/Models/VideoController.php
+++ /dev/null
@@ -1,49 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimPCVideoController;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-videocontroller
- */
-class VideoController extends CimPCVideoController
-{
-    protected $uuid = '{1008CCF1-7BFF-11D2-AAD2-006008C78BC7}';
-
-    protected $adapterCompatibility;
-
-    protected $adapterDACType;
-
-    protected $adapterRAM;
-
-    protected $colorTableEntries;
-
-    protected $deviceSpecificPens;
-
-    protected $ditherType;
-
-    protected $driverDate;
-
-    protected $driverVersion;
-
-    protected $iCMIntent;
-
-    protected $iCMMethod;
-
-    protected $infFilename;
-
-    protected $infSection;
-
-    protected $installedDisplayDrivers;
-
-    protected $monochrome;
-
-    protected $reservedSystemPaletteEntries;
-
-    protected $specificationVersion;
-
-    protected $systemPaletteEntries;
-
-    protected $videoModeDescription;
-}
diff --git a/src/WmiScripting/Models/VoltageProbe.php b/src/WmiScripting/Models/VoltageProbe.php
deleted file mode 100644
index da186d2..0000000
--- a/src/WmiScripting/Models/VoltageProbe.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimVoltageSensor;
-
-class VoltageProbe extends CimVoltageSensor
-{
-    protected $uuid = '{464FFAB8-946F-11d2-AAE2-006008C78BC7}';
-}
diff --git a/src/WmiScripting/Models/Volume.php b/src/WmiScripting/Models/Volume.php
deleted file mode 100644
index 9d85216..0000000
--- a/src/WmiScripting/Models/Volume.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Cim\CimStorageVolume;
-
-/**
- * @link https://docs.microsoft.com/en-us/previous-versions/windows/desktop/legacy/aa394515(v%3Dvs.85)
- * @link https://wutils.com/wmi/root/cimv2/win32_volume/
- */
-class Volume extends CimStorageVolume
-{
-    protected $automount;
-
-    protected $bootVolume;
-
-    protected $capacity;
-
-    protected $compressed;
-
-    protected $dirtyBitSet;
-
-    protected $driveLetter;
-
-    protected $driveType;
-
-    protected $fileSystem;
-
-    protected $freeSpace;
-
-    protected $indexingEnabled;
-
-    protected $label;
-
-    protected $maximumFileNameLength;
-
-    protected $pageFilePresent;
-
-    protected $quotasEnabled;
-
-    protected $quotasIncomplete;
-
-    protected $quotasRebuilding;
-
-    protected $serialNumber;
-
-    protected $supportsDiskQuotas;
-
-    protected $supportsFileBasedCompression;
-
-    protected $systemVolume;
-}
diff --git a/src/WmiScripting/Models/Win32Model.php b/src/WmiScripting/Models/Win32Model.php
deleted file mode 100644
index 52df451..0000000
--- a/src/WmiScripting/Models/Win32Model.php
+++ /dev/null
@@ -1,254 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Query\Builder;
-use PhpWinTools\WmiScripting\Contracts\Jsonable;
-use PhpWinTools\WmiScripting\Contracts\Arrayable;
-use PhpWinTools\WmiScripting\Contracts\HasAttributes;
-use PhpWinTools\WmiScripting\MappingStrings\Mappings;
-use PhpWinTools\WmiScripting\Connections\ComConnection;
-use PhpWinTools\WmiScripting\Contracts\CastsAttributes;
-use PhpWinTools\WmiScripting\Contracts\HidesAttributes;
-use function PhpWinTools\WmiScripting\Support\connection;
-use PhpWinTools\WmiScripting\Collections\ModelCollection;
-use PhpWinTools\WmiScripting\Concerns\HasHiddenAttributes;
-use PhpWinTools\WmiScripting\Concerns\HasCastableAttributes;
-use PhpWinTools\WmiScripting\Concerns\HasArrayableAttributes;
-use function PhpWinTools\WmiScripting\Support\class_has_property;
-use PhpWinTools\WmiScripting\Exceptions\InvalidArgumentException;
-use PhpWinTools\WmiScripting\Exceptions\WmiClassNotFoundException;
-use PhpWinTools\WmiScripting\Exceptions\InvalidConnectionException;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\ObjectPath;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/cimwin32prov/win32-provider
- */
-class Win32Model implements Arrayable, Jsonable, HasAttributes, HidesAttributes, CastsAttributes
-{
-    use HasArrayableAttributes,
-        HasHiddenAttributes,
-        HasCastableAttributes;
-
-    /** @var string */
-    protected $uuid;
-
-    /** @var ObjectPath|null */
-    protected $objectPath;
-
-    /** @var Builder|null */
-    protected $queryBuilder;
-
-    /** @var array */
-    protected $hidden_attributes = ['queryBuilder', 'connection', 'wmi_class_name'];
-
-    /** @var bool */
-    protected $merge_parent_casting = true;
-
-    /** @var bool */
-    protected $merge_parent_hidden_attributes = true;
-
-    /** @var array */
-    protected $attribute_casting = [];
-
-    protected $connection = 'default';
-
-    protected $wmi_class_name;
-
-    /* TODO: Remove ObjectPath dependency. Should be passed into attributes */
-    public function __construct(array $attributes = [], ObjectPath $objectPath = null)
-    {
-        $this->mergeHiddenAttributes($this->hidden_attributes, $this->merge_parent_hidden_attributes);
-        $this->fill($attributes);
-
-        $this->objectPath = $objectPath;
-    }
-
-    /**
-     * @param array           $attributes
-     * @param ObjectPath|null $objectPath
-     *
-     * @return Win32Model
-     */
-    public static function newInstance(array $attributes = [], ObjectPath $objectPath = null)
-    {
-        return new static($attributes, $objectPath);
-    }
-
-    /**
-     * @param ComConnection|string|null $connection
-     *
-     * @return ModelCollection|Win32Model[]
-     */
-    public static function all($connection = null)
-    {
-        return static::query(static::newInstance()->getConnection($connection))->all();
-    }
-
-    /**
-     * @param ComConnection|string|null $connection
-     *
-     * @return Builder
-     */
-    public static function query($connection = null)
-    {
-        return new Builder($self = static::newInstance(), $self->getConnection($connection));
-    }
-
-    /**
-     * @return string
-     */
-    public function getConnectionName()
-    {
-        return $this->connection;
-    }
-
-    /**
-     * @param ComConnection|string|null $connection
-     *
-     * @throws InvalidConnectionException
-     *
-     * @return ComConnection
-     */
-    public function getConnection($connection = null)
-    {
-        return connection($connection, $this->connection);
-    }
-
-    /**
-     * @return string
-     */
-    public function getModelNameAttribute()
-    {
-        return $this->getClassName();
-    }
-
-    /**
-     * @return string
-     */
-    public function getWmiClassNameAttribute()
-    {
-        if (!is_null($this->wmi_class_name)) {
-            return $this->wmi_class_name;
-        }
-
-        if ($this->wmi_class_name = $this->wmiClassNameSearch()) {
-            return $this->wmi_class_name;
-        }
-
-        throw new WmiClassNotFoundException(
-            'Cannot find a suitable WMI Class to query. Please set $wmi_class_name manually.'
-        );
-    }
-
-    /**
-     * Uses the Classes constant class to map models to WMI models for querying. If the current instance
-     * does not yield results then we search the class' parents until a suitable match is found.
-     *
-     * @return string|null
-     */
-    protected function wmiClassNameSearch()
-    {
-        if ($result = array_search(static::class, Classes::CLASS_MAP, true)) {
-            return $result;
-        }
-
-        foreach (class_parents($this) as $parent) {
-            if ($result = array_search($parent, Classes::CLASS_MAP, true)) {
-                return $result;
-            }
-        }
-
-        return null;
-    }
-
-    /**
-     * @return string
-     */
-    public function getClassName()
-    {
-        $classname = get_called_class();
-
-        if (preg_match('@\\\\([\w]+)$@', $classname, $matches)) {
-            $classname = $matches[1];
-        }
-
-        return $classname;
-    }
-
-    /**
-     * @return string
-     */
-    public function toJson(): string
-    {
-        return json_encode($this->toArray());
-    }
-
-    /**
-     * @return string
-     */
-    public function toString(): string
-    {
-        return $this->toJson();
-    }
-
-    /**
-     * @return string
-     */
-    public function __toString()
-    {
-        return $this->toString();
-    }
-
-    /**
-     * @param array $attributes
-     */
-    protected function fill(array $attributes)
-    {
-        foreach ($attributes as $key => $value) {
-            $key = lcfirst($key);
-            $value = $this->reduceValueArray($value);
-            if (class_has_property(get_called_class(), $key)) {
-                $this->{$key} = $this->cast($key, $value);
-                continue;
-            }
-
-            $this->unmapped_attributes[$key] = $this->cast($key, $value);
-        }
-    }
-
-    /**
-     * @param $value
-     *
-     * @return mixed
-     */
-    protected function reduceValueArray($value)
-    {
-        if (is_array($value) && array_key_exists('value', $value)) {
-            $value = $value['value'];
-        }
-
-        return $value;
-    }
-
-    /**
-     * @param Mappings|string $mapping_string_class
-     * @param mixed           $constant
-     *
-     * @throws InvalidArgumentException
-     *
-     * @return mixed
-     */
-    protected function mapConstant(string $mapping_string_class, $constant)
-    {
-        if (!array_key_exists(Mappings::class, class_parents($mapping_string_class))) {
-            throw new InvalidArgumentException("{$mapping_string_class} must extend " . Mappings::class);
-        }
-
-        if (trim($type = call_user_func_array($mapping_string_class . '::string', [$constant])) === '') {
-            return "[{$constant}] - UNKNOWN";
-        }
-
-        return $type;
-    }
-}
diff --git a/src/WmiScripting/Query/Builder.php b/src/WmiScripting/Query/Builder.php
deleted file mode 100644
index fab8d87..0000000
--- a/src/WmiScripting/Query/Builder.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Query;
-
-use PhpWinTools\WmiScripting\Models\Win32Model;
-use PhpWinTools\WmiScripting\Connections\ComConnection;
-use PhpWinTools\WmiScripting\Collections\ModelCollection;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\ObjectSet;
-
-class Builder
-{
-    protected $model;
-
-    protected $from;
-
-    protected $services;
-
-    protected $selects = ['*'];
-
-    protected $wheres = [];
-
-    protected $relationships = [];
-
-    public function __construct(Win32Model $model, ComConnection $connection)
-    {
-        $this->model = $model;
-        $this->from = $model->getWmiClassNameAttribute();
-        $this->services = $connection->connect();
-    }
-
-    public function all()
-    {
-        return $this->execQuery("select * from {$this->from}")->getSet();
-    }
-
-    /**
-     * @return ModelCollection|Win32Model[]
-     */
-    public function get()
-    {
-        return $this->getModelCollection();
-    }
-
-    /**
-     * @return ModelCollection|Win32Model[]
-     */
-    public function getModelCollection()
-    {
-        return $this->getObjectSet()->getSet();
-    }
-
-    /**
-     * @return ObjectSet
-     */
-    public function getObjectSet(): ObjectSet
-    {
-        return $this->execQuery($this->queryString());
-    }
-
-    /**
-     * @param string $query
-     *
-     * @return ObjectSet
-     */
-    public function execQuery($query): ObjectSet
-    {
-        return $this->services
-            ->resolvePropertySets($this->relationships)
-            ->execQuery($query)
-            ->instantiateModels($this->model);
-    }
-
-    /**
-     * @return string
-     */
-    public function queryString(): string
-    {
-        return $this->compileQuery();
-    }
-
-    public function select(array $columns = ['*'])
-    {
-        $this->selects = $columns;
-
-        return $this;
-    }
-
-    public function where($column, $operator, $value)
-    {
-        $this->wheres[] = [
-            'column'    => $column,
-            'operator'  => $operator,
-            'value'     => $value,
-        ];
-
-        return $this;
-    }
-
-    public function with($relationship)
-    {
-        if (is_array($relationship)) {
-            $this->relationships = array_merge($this->relationships, $relationship);
-
-            return $this;
-        }
-
-        $this->relationships[] = $relationship;
-
-        return $this;
-    }
-
-    protected function compileQuery()
-    {
-        $select = implode(', ', $this->selects);
-        $query = "select {$select} from {$this->from}";
-        $wheres = [];
-
-        foreach ($this->wheres as $where) {
-            $wheres[] = "{$where['column']} {$where['operator']} "
-                . (is_string($where['value']) ? "'{$where['value']}'" : $where['value']);
-        }
-
-        return empty($wheres) ? $query : $query . ' where ' . implode(' and ', $wheres);
-    }
-}
diff --git a/src/WmiScripting/Query/ComponentBuilder.php b/src/WmiScripting/Query/ComponentBuilder.php
deleted file mode 100644
index d981433..0000000
--- a/src/WmiScripting/Query/ComponentBuilder.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Query;
-
-class ComponentBuilder extends Builder
-{
-    public function withGroupComponent()
-    {
-        return $this->with('GroupComponent');
-    }
-
-    public function withPartComponent()
-    {
-        return $this->with('PartComponent');
-    }
-
-    public function withAll()
-    {
-        return $this->withGroupComponent()->withPartComponent();
-    }
-}
diff --git a/src/WmiScripting/Query/DependencyBuilder.php b/src/WmiScripting/Query/DependencyBuilder.php
deleted file mode 100644
index 2c55e86..0000000
--- a/src/WmiScripting/Query/DependencyBuilder.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Query;
-
-class DependencyBuilder extends Builder
-{
-    public function withAntecedent()
-    {
-        return $this->with('Antecedent');
-    }
-
-    public function withDependent()
-    {
-        return $this->with('Dependent');
-    }
-
-    public function withAll()
-    {
-        return $this->withAntecedent()->withDependent();
-    }
-}
diff --git a/src/WmiScripting/Query/LoggedOnUserBuilder.php b/src/WmiScripting/Query/LoggedOnUserBuilder.php
deleted file mode 100644
index 5a376f4..0000000
--- a/src/WmiScripting/Query/LoggedOnUserBuilder.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Query;
-
-class LoggedOnUserBuilder extends DependencyBuilder
-{
-    public function withAccount()
-    {
-        return $this->withAntecedent();
-    }
-
-    public function withLogonSession()
-    {
-        return $this->withDependent();
-    }
-}
diff --git a/src/WmiScripting/Query/LogicalDiskBuilder.php b/src/WmiScripting/Query/LogicalDiskBuilder.php
deleted file mode 100644
index e0d2e7a..0000000
--- a/src/WmiScripting/Query/LogicalDiskBuilder.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Query;
-
-class LogicalDiskBuilder extends Builder
-{
-    public function whereDriveType($type)
-    {
-        $this->where('DriveType', '=', $type);
-
-        return $this;
-    }
-}
diff --git a/src/WmiScripting/Query/SystemBiosBuilder.php b/src/WmiScripting/Query/SystemBiosBuilder.php
deleted file mode 100644
index 275a7d1..0000000
--- a/src/WmiScripting/Query/SystemBiosBuilder.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Query;
-
-class SystemBiosBuilder extends ComponentBuilder
-{
-    public function withComputerSystem()
-    {
-        return $this->withGroupComponent();
-    }
-
-    public function withBios()
-    {
-        return $this->withPartComponent();
-    }
-}
diff --git a/src/WmiScripting/Scripting.php b/src/WmiScripting/Scripting.php
deleted file mode 100644
index 68f3029..0000000
--- a/src/WmiScripting/Scripting.php
+++ /dev/null
@@ -1,147 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting;
-
-use PHPUnit\Framework\TestCase;
-use PhpWinTools\WmiScripting\Testing\FakeFactory;
-use PhpWinTools\WmiScripting\Configuration\Config;
-use PhpWinTools\WmiScripting\Connections\ComConnection;
-use PhpWinTools\WmiScripting\Testing\CallStacks\ComCallStack;
-use PhpWinTools\WmiScripting\Exceptions\InvalidConnectionException;
-use PhpWinTools\WmiScripting\Testing\CallStacks\ApiObjectCallStack;
-use PhpWinTools\WmiScripting\Exceptions\InvalidConfigArgumentException;
-
-class Scripting
-{
-    /** @var Config */
-    protected $config;
-
-    /**
-     * @param Config|array|null $config
-     */
-    public function __construct($config = null)
-    {
-        if (is_null($config)) {
-            $this->config = Config::instance();
-        }
-
-        if ($config instanceof Config) {
-            $this->config = $config;
-        }
-
-        if ($config instanceof ComConnection) {
-            $this->config = Config::instance();
-            $this->setDefaultConnection('default', $config);
-        }
-
-        if (is_array($config)) {
-            $this->config = Config::instance($config);
-        }
-
-        if (is_null($this->config)) {
-            throw new InvalidConfigArgumentException('Cannot instantiate Config with given argument(s).');
-        }
-    }
-
-    /**
-     * @param TestCase    $testCase
-     * @param Config|null $config
-     *
-     * @return FakeFactory
-     */
-    public static function fake(TestCase $testCase, Config $config = null): FakeFactory
-    {
-        ComCallStack::newInstance();
-        ApiObjectCallStack::newInstance();
-
-        return new FakeFactory($testCase, $config ?? Config::testInstance());
-    }
-
-    /**
-     * @return Config
-     */
-    public function getConfig(): Config
-    {
-        return $this->config;
-    }
-
-    /**
-     * @param ComConnection|string|null $connection
-     *
-     * @return WmiQueryFactory
-     */
-    public function query($connection = null): WmiQueryFactory
-    {
-        return new WmiQueryFactory($connection);
-    }
-
-    /**
-     * @param string                   $name
-     * @param ComConnection|array|null $connection
-     *
-     * @throws InvalidConnectionException
-     *
-     * @return self
-     */
-    public function addConnection(string $name, $connection): self
-    {
-        if ($connection instanceof ComConnection) {
-            $this->getConfig()->addConnection($name, $connection);
-
-            return $this;
-        }
-
-        if (is_array($connection)) {
-            $this->getConfig()->addConnection($name, new ComConnection(
-                $connection['server'] ?? ComConnection::DEFAULT_SERVER,
-                $connection['namespace'] ?? ComConnection::DEFAULT_NAMESPACE,
-                $connection['user'] ?? null,
-                $connection['password'] ?? null,
-                $connection['locale'] ?? null,
-                $connection['authority'] ?? null,
-                $connection['security_flags'] ?? null
-            ));
-
-            return $this;
-        }
-
-        throw new InvalidConnectionException("Could not create connection '{$name}'.");
-    }
-
-    /**
-     * @param string                   $name
-     * @param ComConnection|array|null $connection
-     *
-     * @throws InvalidConnectionException
-     *
-     * @return self
-     */
-    public function setDefaultConnection(string $name, $connection = null): self
-    {
-        if ($connection) {
-            $this->addConnection($name, $connection);
-        }
-
-        $this->getConfig()->setDefaultConnection($name);
-
-        return $this;
-    }
-
-    /**
-     * @param string|null $name
-     *
-     * @return ComConnection|null
-     */
-    public function getConnection(string $name = null)
-    {
-        return $this->getConfig()->getConnection($name);
-    }
-
-    /**
-     * @return ComConnection|null
-     */
-    public function getDefaultConnection()
-    {
-        return $this->getConnection();
-    }
-}
diff --git a/src/WmiScripting/Support/ApiObjects/AbstractWbemObject.php b/src/WmiScripting/Support/ApiObjects/AbstractWbemObject.php
deleted file mode 100644
index 2590d67..0000000
--- a/src/WmiScripting/Support/ApiObjects/AbstractWbemObject.php
+++ /dev/null
@@ -1,52 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects;
-
-use PhpWinTools\Support\COM\ComVariantWrapper;
-use PhpWinTools\WmiScripting\Contracts\Jsonable;
-use PhpWinTools\WmiScripting\Contracts\Arrayable;
-use PhpWinTools\WmiScripting\Contracts\HasAttributes;
-use PhpWinTools\WmiScripting\Contracts\CastsAttributes;
-use PhpWinTools\WmiScripting\Contracts\HidesAttributes;
-use PhpWinTools\WmiScripting\Concerns\HasHiddenAttributes;
-use PhpWinTools\WmiScripting\Concerns\HasCastableAttributes;
-use PhpWinTools\WmiScripting\Concerns\HasArrayableAttributes;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/wmisdk/winmgmt
- */
-class AbstractWbemObject implements Arrayable, Jsonable, HasAttributes, CastsAttributes, HidesAttributes
-{
-    use HasArrayableAttributes,
-        HasHiddenAttributes,
-        HasCastableAttributes;
-
-    protected $object;
-
-    protected $merge_parent_casting = true;
-
-    protected $merge_parent_hidden_attributes = true;
-
-    protected $hidden_attributes = ['object', 'services', 'resolve_property_sets', 'config'];
-
-    public function __construct(ComVariantWrapper $object)
-    {
-        $this->object = $object;
-        $this->mergeHiddenAttributes($this->hidden_attributes, $this->merge_parent_hidden_attributes);
-    }
-
-    public function toJson(): string
-    {
-        return json_encode($this->toArray());
-    }
-
-    public function toString(): string
-    {
-        return $this->toJson();
-    }
-
-    public function __toString()
-    {
-        return $this->toString();
-    }
-}
diff --git a/src/WmiScripting/Support/ApiObjects/Contracts/Locator.php b/src/WmiScripting/Support/ApiObjects/Contracts/Locator.php
deleted file mode 100644
index 933f2ad..0000000
--- a/src/WmiScripting/Support/ApiObjects/Contracts/Locator.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\Contracts;
-
-use PhpWinTools\WmiScripting\Connections\ComConnection;
-
-interface Locator extends WbemObject
-{
-    public function connectServer(ComConnection $connection = null): Services;
-}
diff --git a/src/WmiScripting/Support/ApiObjects/Contracts/ObjectItem.php b/src/WmiScripting/Support/ApiObjects/Contracts/ObjectItem.php
deleted file mode 100644
index 5870fdd..0000000
--- a/src/WmiScripting/Support/ApiObjects/Contracts/ObjectItem.php
+++ /dev/null
@@ -1,15 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\Contracts;
-
-use PhpWinTools\WmiScripting\Models\Win32Model;
-
-interface ObjectItem extends WbemObject
-{
-    /**
-     * @return Win32Model
-     */
-    public function getModel(): Win32Model;
-
-    public function instantiateWin32Model(Win32Model $model = null): Win32Model;
-}
diff --git a/src/WmiScripting/Support/ApiObjects/Contracts/ObjectItemEx.php b/src/WmiScripting/Support/ApiObjects/Contracts/ObjectItemEx.php
deleted file mode 100644
index 306a034..0000000
--- a/src/WmiScripting/Support/ApiObjects/Contracts/ObjectItemEx.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\Contracts;
-
-interface ObjectItemEx extends ObjectItem
-{
-}
diff --git a/src/WmiScripting/Support/ApiObjects/Contracts/ObjectPath.php b/src/WmiScripting/Support/ApiObjects/Contracts/ObjectPath.php
deleted file mode 100644
index 99bdf42..0000000
--- a/src/WmiScripting/Support/ApiObjects/Contracts/ObjectPath.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\Contracts;
-
-interface ObjectPath extends WbemObject
-{
-}
diff --git a/src/WmiScripting/Support/ApiObjects/Contracts/ObjectSet.php b/src/WmiScripting/Support/ApiObjects/Contracts/ObjectSet.php
deleted file mode 100644
index c98ed74..0000000
--- a/src/WmiScripting/Support/ApiObjects/Contracts/ObjectSet.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\Contracts;
-
-use ArrayAccess;
-use PhpWinTools\WmiScripting\Models\Win32Model;
-use PhpWinTools\WmiScripting\Collections\ModelCollection;
-
-interface ObjectSet extends WbemObject, ArrayAccess
-{
-    public function count();
-
-    /**
-     * @return Win32Model[]|ModelCollection
-     */
-    public function getSet(): ModelCollection;
-
-    public function instantiateModels(Win32Model $model): self;
-}
diff --git a/src/WmiScripting/Support/ApiObjects/Contracts/Property.php b/src/WmiScripting/Support/ApiObjects/Contracts/Property.php
deleted file mode 100644
index 60c1730..0000000
--- a/src/WmiScripting/Support/ApiObjects/Contracts/Property.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\Contracts;
-
-interface Property extends WbemObject
-{
-}
diff --git a/src/WmiScripting/Support/ApiObjects/Contracts/PropertySet.php b/src/WmiScripting/Support/ApiObjects/Contracts/PropertySet.php
deleted file mode 100644
index 5676721..0000000
--- a/src/WmiScripting/Support/ApiObjects/Contracts/PropertySet.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\Contracts;
-
-interface PropertySet extends WbemObject
-{
-}
diff --git a/src/WmiScripting/Support/ApiObjects/Contracts/Qualifier.php b/src/WmiScripting/Support/ApiObjects/Contracts/Qualifier.php
deleted file mode 100644
index 26e5d6f..0000000
--- a/src/WmiScripting/Support/ApiObjects/Contracts/Qualifier.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\Contracts;
-
-interface Qualifier extends WbemObject
-{
-}
diff --git a/src/WmiScripting/Support/ApiObjects/Contracts/QualifierSet.php b/src/WmiScripting/Support/ApiObjects/Contracts/QualifierSet.php
deleted file mode 100644
index 17cdd0f..0000000
--- a/src/WmiScripting/Support/ApiObjects/Contracts/QualifierSet.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\Contracts;
-
-interface QualifierSet extends WbemObject
-{
-}
diff --git a/src/WmiScripting/Support/ApiObjects/Contracts/Services.php b/src/WmiScripting/Support/ApiObjects/Contracts/Services.php
deleted file mode 100644
index 6b66647..0000000
--- a/src/WmiScripting/Support/ApiObjects/Contracts/Services.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\Contracts;
-
-use PhpWinTools\WmiScripting\Flags\WbemFlags;
-
-interface Services extends WbemObject
-{
-    public function instancesOf(
-        string $class,
-        $flags = WbemFlags::RETURN_IMMEDIATELY,
-        $wbemNamedValueSet = null
-    ): ObjectSet;
-
-    public function execQuery(
-        string $query,
-        $query_language = null,
-        $flags = WbemFlags::RETURN_IMMEDIATELY,
-        $wbemNamedValueSet = null
-    ): ObjectSet;
-
-    public function get(string $object_path, $flags = null, $wbemNamedValueSet = null): ObjectItem;
-
-    public function resolvePropertySets(array $property_set_names): self;
-}
diff --git a/src/WmiScripting/Support/ApiObjects/Contracts/WbemObject.php b/src/WmiScripting/Support/ApiObjects/Contracts/WbemObject.php
deleted file mode 100644
index b646602..0000000
--- a/src/WmiScripting/Support/ApiObjects/Contracts/WbemObject.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\Contracts;
-
-use PhpWinTools\WmiScripting\Contracts\Jsonable;
-use PhpWinTools\WmiScripting\Contracts\HasAttributes;
-
-interface WbemObject extends HasAttributes, Jsonable
-{
-}
diff --git a/src/WmiScripting/Support/ApiObjects/SWbemLocator.php b/src/WmiScripting/Support/ApiObjects/SWbemLocator.php
deleted file mode 100644
index 19cd72e..0000000
--- a/src/WmiScripting/Support/ApiObjects/SWbemLocator.php
+++ /dev/null
@@ -1,47 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects;
-
-use PhpWinTools\Support\COM\ComVariantWrapper;
-use function PhpWinTools\WmiScripting\Support\resolve;
-use PhpWinTools\WmiScripting\Connections\ComConnection;
-use function PhpWinTools\WmiScripting\Support\connection;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\Locator;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\Services;
-use PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces\LocatorVariant;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemlocator
- */
-class SWbemLocator extends AbstractWbemObject implements Locator
-{
-    const SCRIPTING = 'WbemScripting';
-
-    /** @var ComVariantWrapper|LocatorVariant */
-    protected $object;
-
-    public function __construct(ComVariantWrapper $object = null)
-    {
-        $object = $object ?? resolve()->comWrapper(resolve()->comClass(self::SCRIPTING . '.SWbemLocator'));
-
-        parent::__construct($object);
-    }
-
-    public function connectServer(ComConnection $connection = null): Services
-    {
-        $connection = connection($connection);
-
-        return resolve()->services(
-            $this->object->ConnectServer(
-                $connection->getServer(),
-                $connection->getNamespace(),
-                $connection->getUser(),
-                $connection->getPassword(),
-                $connection->getLocale(),
-                $connection->getAuthority(),
-                $connection->getSecurityFlags()
-            ),
-            $connection
-        );
-    }
-}
diff --git a/src/WmiScripting/Support/ApiObjects/SWbemObject.php b/src/WmiScripting/Support/ApiObjects/SWbemObject.php
deleted file mode 100644
index 0252c3a..0000000
--- a/src/WmiScripting/Support/ApiObjects/SWbemObject.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects;
-
-use PhpWinTools\Support\COM\VariantWrapper;
-use PhpWinTools\WmiScripting\Models\Classes;
-use PhpWinTools\WmiScripting\Models\Win32Model;
-use function PhpWinTools\WmiScripting\Support\resolve;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\ObjectItem;
-use PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces\ObjectVariant;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemobject
- */
-class SWbemObject extends AbstractWbemObject implements ObjectItem
-{
-    protected $win32Model;
-
-    protected $derivations = [];
-
-    protected $propertySet;
-
-    protected $qualifierSet;
-
-    protected $path;
-
-    /** @var VariantWrapper|ObjectVariant */
-    protected $object;
-
-    public function __construct(VariantWrapper $variant, array $resolve_property_sets = [])
-    {
-        parent::__construct($variant);
-
-        $this->buildDerivations();
-
-        $this->propertySet = resolve()->propertySet($this->object->Properties_, $resolve_property_sets);
-        $this->qualifierSet = resolve()->qualifierSet($this->object->Qualifiers_);
-        $this->path = resolve()->objectPath($this->object->Path_);
-
-        $this->instantiateWin32Model();
-    }
-
-    /**
-     * @return Win32Model
-     */
-    public function getModel(): Win32Model
-    {
-        return $this->getAttribute('win32Model');
-    }
-
-    public function instantiateWin32Model(Win32Model $model = null): Win32Model
-    {
-        $model = $model ?? Classes::getClass($this->path->getAttribute('class'));
-
-        if (!is_null($this->win32Model) && get_class($this->win32Model) === $model) {
-            return $this->win32Model;
-        }
-
-        return $this->win32Model = new $model($this->propertySet->toArray(), $this->path);
-    }
-
-    protected function buildDerivations()
-    {
-        $this->derivations = $this->object->propertyToArray('Derivation_');
-    }
-}
diff --git a/src/WmiScripting/Support/ApiObjects/SWbemObjectEx.php b/src/WmiScripting/Support/ApiObjects/SWbemObjectEx.php
deleted file mode 100644
index 6d9a66c..0000000
--- a/src/WmiScripting/Support/ApiObjects/SWbemObjectEx.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects;
-
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\ObjectItemEx;
-
-class SWbemObjectEx extends SWbemObject implements ObjectItemEx
-{
-}
diff --git a/src/WmiScripting/Support/ApiObjects/SWbemObjectPath.php b/src/WmiScripting/Support/ApiObjects/SWbemObjectPath.php
deleted file mode 100644
index a39beb0..0000000
--- a/src/WmiScripting/Support/ApiObjects/SWbemObjectPath.php
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects;
-
-use PhpWinTools\Support\COM\VariantWrapper;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\ObjectPath;
-use PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces\ObjectPathVariant;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemobjectpath
- */
-class SWbemObjectPath extends AbstractWbemObject implements ObjectPath
-{
-    protected $authority;
-
-    protected $class;
-
-    protected $display_name;
-
-    protected $is_class;
-
-    protected $is_singleton;
-
-    protected $keys;
-
-    protected $namespace;
-
-    protected $parent_namespace;
-
-    protected $path;
-
-    protected $relative_path;
-
-    protected $server;
-
-    /** @var VariantWrapper|ObjectPathVariant */
-    protected $object;
-
-    public function __construct(VariantWrapper $variant)
-    {
-        parent::__construct($variant);
-
-        $this->authority = $this->object->Authority;
-        $this->class = $this->object->Class;
-        $this->display_name = $this->object->DisplayName;
-        $this->is_class = $this->object->IsClass;
-        $this->is_singleton = $this->object->IsSingleton;
-        $this->keys = [];
-        $this->namespace = $this->object->Namespace;
-        $this->parent_namespace = $this->object->ParentNamespace;
-        $this->path = $this->object->Path;
-        $this->relative_path = $this->object->RelPath;
-        $this->server = $this->object->Server;
-    }
-}
diff --git a/src/WmiScripting/Support/ApiObjects/SWbemObjectSet.php b/src/WmiScripting/Support/ApiObjects/SWbemObjectSet.php
deleted file mode 100644
index 021cf40..0000000
--- a/src/WmiScripting/Support/ApiObjects/SWbemObjectSet.php
+++ /dev/null
@@ -1,122 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects;
-
-use Countable;
-use ArrayAccess;
-use PhpWinTools\Support\COM\VariantWrapper;
-use PhpWinTools\Support\COM\ComVariantWrapper;
-use PhpWinTools\WmiScripting\Models\Win32Model;
-use function PhpWinTools\WmiScripting\Support\resolve;
-use PhpWinTools\WmiScripting\Collections\ModelCollection;
-use PhpWinTools\WmiScripting\Collections\ObjectSetCollection;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\ObjectSet;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\ObjectItem;
-use PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces\ObjectVariant;
-use PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces\ObjectExVariant;
-use PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces\ObjectSetVariant;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemobjectset
- */
-class SWbemObjectSet extends AbstractWbemObject implements ArrayAccess, Countable, ObjectSet
-{
-    protected $count = 0;
-
-    /** @var ObjectSetCollection|array|SWbemObject[] */
-    protected $set = [];
-
-    protected $resolve_property_sets = [];
-
-    /** @var VariantWrapper|ObjectSetVariant|ObjectVariant[]|ObjectExVariant[] */
-    protected $object;
-
-    public function __construct(VariantWrapper $variant, array $resolve_property_sets = [])
-    {
-        parent::__construct($variant);
-
-        $this->count = (int) $this->object->Count;
-        $this->resolve_property_sets = $resolve_property_sets;
-        $this->set = new ObjectSetCollection();
-        $this->buildSet();
-    }
-
-    /**
-     * @return int
-     */
-    public function count(): int
-    {
-        return $this->count;
-    }
-
-    /**
-     * @return Win32Model[]|ModelCollection
-     */
-    public function getSet(): ModelCollection
-    {
-        return new ModelCollection($this->set->map->getModel());
-    }
-
-    public function instantiateModels(Win32Model $model): ObjectSet
-    {
-        $this->set = $this->set->map(function (ObjectItem $item) use ($model) {
-            $item->instantiateWin32Model($model);
-
-            return $item;
-        });
-
-        return $this;
-    }
-
-    public function offsetExists($offset)
-    {
-        return $this->set->offsetExists($offset);
-    }
-
-    /**
-     * @param mixed $offset
-     *
-     * @return SWbemObject
-     */
-    public function offsetGet($offset)
-    {
-        return $this->set->offsetGet($offset);
-    }
-
-    public function offsetSet($offset, $value)
-    {
-        return $this->set->offsetSet($offset, $value);
-    }
-
-    public function offsetUnset($offset)
-    {
-        return $this->set->offsetUnset($offset);
-    }
-
-    protected function buildSet()
-    {
-        $is_object_ex = null;
-
-        foreach ($this->object as $item) {
-            $wbemObject = null;
-            if (is_null($is_object_ex)) {
-                $is_object_ex = $this->isWbemObjectEx($item);
-            }
-
-            if ($is_object_ex) {
-                $wbemObject = resolve()->objectItemEx($item, $this->resolve_property_sets);
-            }
-
-            if (is_null($wbemObject)) {
-                $wbemObject = resolve()->objectItem($item, $this->resolve_property_sets);
-            }
-
-            $this->set->add($wbemObject);
-        }
-    }
-
-    protected function isWbemObjectEx(ComVariantWrapper $variant)
-    {
-        return $variant::getComClassName($variant) === 'ISWbemObjectEx';
-    }
-}
diff --git a/src/WmiScripting/Support/ApiObjects/SWbemProperty.php b/src/WmiScripting/Support/ApiObjects/SWbemProperty.php
deleted file mode 100644
index d80e4ad..0000000
--- a/src/WmiScripting/Support/ApiObjects/SWbemProperty.php
+++ /dev/null
@@ -1,53 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects;
-
-use PhpWinTools\Support\COM\VariantWrapper;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\Property;
-use PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces\PropertyVariant;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemproperty
- */
-class SWbemProperty extends AbstractWbemObject implements Property
-{
-    protected $name;
-
-    protected $value;
-
-    protected $origin;
-
-    /** @var VariantWrapper|PropertyVariant */
-    protected $object;
-
-    public function __construct(VariantWrapper $variant)
-    {
-        parent::__construct($variant);
-
-        $this->name = (string) $this->object->Name;
-        $this->origin = (string) $this->object->Origin;
-        $this->value = $this->detectValue($this->object->Value);
-    }
-
-    public function toArray(): array
-    {
-        return [
-            'value'  => $this->value,
-            'origin' => $this->origin,
-        ];
-    }
-
-    protected function detectValue($value)
-    {
-        if ($value instanceof VariantWrapper && $value->canIterateObject()) {
-            $items = [];
-            foreach ($value as $item) {
-                $items[] = $item;
-            }
-
-            $value = $items;
-        }
-
-        return $value;
-    }
-}
diff --git a/src/WmiScripting/Support/ApiObjects/SWbemPropertySet.php b/src/WmiScripting/Support/ApiObjects/SWbemPropertySet.php
deleted file mode 100644
index a76401e..0000000
--- a/src/WmiScripting/Support/ApiObjects/SWbemPropertySet.php
+++ /dev/null
@@ -1,72 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects;
-
-use PhpWinTools\Support\COM\VariantWrapper;
-use function PhpWinTools\WmiScripting\Support\resolve;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\Property;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\PropertySet;
-use PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces\PropertySetVariant;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbempropertyset
- */
-class SWbemPropertySet extends AbstractWbemObject implements PropertySet
-{
-    /** @var array|SWbemProperty[] */
-    protected $properties = [];
-
-    protected $resolve_property_sets;
-
-    /** @var VariantWrapper|PropertySetVariant */
-    protected $object;
-
-    public function __construct(VariantWrapper $variant, array $resolve_property_sets = [])
-    {
-        parent::__construct($variant);
-
-        $this->resolve_property_sets = $resolve_property_sets;
-        $this->buildProperties();
-    }
-
-    public function toArray(): array
-    {
-        $array = [];
-
-        foreach ($this->properties as $key => $property) {
-            if ($property instanceof SWbemObject) {
-                $array[$key] = $property->getModel();
-                continue;
-            }
-
-            $array[$key] = $property->toArray();
-        }
-
-        return $array;
-    }
-
-    protected function buildProperties()
-    {
-        foreach ($this->object as $item) {
-            $this->properties[$item->Name] = $this->resolveProperty(
-                resolve()->property($item),
-                $item->Name
-            );
-        }
-    }
-
-    protected function resolveProperty(Property $property, $name)
-    {
-        if (!array_key_exists('services', $this->resolve_property_sets)
-            || !array_key_exists('property_names', $this->resolve_property_sets)
-        ) {
-            return $property;
-        }
-
-        if (in_array($name, $this->resolve_property_sets['property_names'])) {
-            return $this->resolve_property_sets['services']->get($property->getAttribute('value'));
-        }
-
-        return $property;
-    }
-}
diff --git a/src/WmiScripting/Support/ApiObjects/SWbemQualifier.php b/src/WmiScripting/Support/ApiObjects/SWbemQualifier.php
deleted file mode 100644
index c0c8014..0000000
--- a/src/WmiScripting/Support/ApiObjects/SWbemQualifier.php
+++ /dev/null
@@ -1,24 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects;
-
-use PhpWinTools\Support\COM\VariantWrapper;
-use PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces\QualifierVariant;
-
-class SWbemQualifier extends AbstractWbemObject
-{
-    protected $name;
-
-    protected $value;
-
-    /** @var VariantWrapper|QualifierVariant */
-    protected $object;
-
-    public function __construct(VariantWrapper $variant)
-    {
-        parent::__construct($variant);
-
-        $this->name = (string) $this->object->Name;
-        $this->value = $this->object->Value;
-    }
-}
diff --git a/src/WmiScripting/Support/ApiObjects/SWbemQualifierSet.php b/src/WmiScripting/Support/ApiObjects/SWbemQualifierSet.php
deleted file mode 100644
index 8d88c36..0000000
--- a/src/WmiScripting/Support/ApiObjects/SWbemQualifierSet.php
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects;
-
-use PhpWinTools\Support\COM\VariantWrapper;
-use function PhpWinTools\WmiScripting\Support\resolve;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\QualifierSet;
-use PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces\QualifierVariant;
-use PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces\QualifierSetVariant;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemqualifierset
- */
-class SWbemQualifierSet extends AbstractWbemObject implements QualifierSet
-{
-    protected $count = 0;
-
-    protected $qualifiers = [];
-
-    /** @var VariantWrapper|QualifierSetVariant|QualifierVariant[] */
-    protected $object;
-
-    public function __construct(VariantWrapper $variant)
-    {
-        parent::__construct($variant);
-
-        $this->buildQualifiers();
-        $this->count = (int) $this->object->Count;
-    }
-
-    protected function buildQualifiers()
-    {
-        foreach ($this->object as $item) {
-            $this->qualifiers[$item->Name] = resolve()->qualifier($item);
-        }
-    }
-}
diff --git a/src/WmiScripting/Support/ApiObjects/SWbemServices.php b/src/WmiScripting/Support/ApiObjects/SWbemServices.php
deleted file mode 100644
index 9feb78b..0000000
--- a/src/WmiScripting/Support/ApiObjects/SWbemServices.php
+++ /dev/null
@@ -1,93 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects;
-
-use PhpWinTools\WmiScripting\Flags\WbemFlags;
-use PhpWinTools\Support\COM\ComVariantWrapper;
-use function PhpWinTools\WmiScripting\Support\resolve;
-use PhpWinTools\WmiScripting\Connections\ComConnection;
-use function PhpWinTools\WmiScripting\Support\connection;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\Services;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\ObjectSet;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\ObjectItem;
-use PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces\ServicesVariant;
-
-/**
- * @link https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemservices
- */
-class SWbemServices extends AbstractWbemObject implements Services
-{
-    const WMI_MONIKER = 'WINMGMTS:';
-
-    protected $resolve_property_sets = [];
-
-    /** @var ComVariantWrapper|ServicesVariant */
-    protected $object;
-
-    public function __construct(ComVariantWrapper $object = null, ComConnection $connection = null)
-    {
-        $connection = connection($connection);
-        $object = $object ?? resolve()->comWrapper(
-            resolve()->comClass(static::WMI_MONIKER . "\\\\{$connection->getServer()}\\{$connection->getNamespace()}")
-        );
-        parent::__construct($object);
-
-        $this->resolve_property_sets['services'] = $this;
-        $this->resolve_property_sets['property_names'] = [];
-    }
-
-    /**
-     * @link https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemservices-instancesof
-     *
-     * @param string $class
-     * @param int    $flags
-     * @param null   $wbemNamedValueSet
-     *
-     * @return SWbemObjectSet
-     */
-    public function instancesOf(
-        string $class,
-        $flags = WbemFlags::RETURN_IMMEDIATELY,
-        $wbemNamedValueSet = null
-    ): ObjectSet {
-        return resolve()->objectSet(
-            $this->object->InstancesOf($class, $flags, $wbemNamedValueSet),
-            $this->resolve_property_sets
-        );
-    }
-
-    /**
-     * @link https://docs.microsoft.com/en-us/windows/win32/wmisdk/wql-sql-for-wmi
-     * @link https://docs.microsoft.com/en-us/windows/win32/wmisdk/swbemservices-execquery
-     *
-     * @param string $query
-     * @param null   $query_language
-     * @param int    $flags
-     * @param null   $wbemNamedValueSet
-     *
-     * @return ObjectSet
-     */
-    public function execQuery(
-        string $query,
-        $query_language = null,
-        $flags = WbemFlags::RETURN_IMMEDIATELY,
-        $wbemNamedValueSet = null
-    ): ObjectSet {
-        return resolve()->objectSet(
-            $this->object->ExecQuery($query, $query_language, $flags, $wbemNamedValueSet),
-            $this->resolve_property_sets
-        );
-    }
-
-    public function get(string $object_path, $flags = null, $wbemNamedValueSet = null): ObjectItem
-    {
-        return resolve()->objectItem($this->object->Get($object_path, $flags, $wbemNamedValueSet));
-    }
-
-    public function resolvePropertySets(array $property_set_names): Services
-    {
-        $this->resolve_property_sets['property_names'] = $property_set_names;
-
-        return $this;
-    }
-}
diff --git a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/AllVariantsInterface.php b/src/WmiScripting/Support/ApiObjects/VariantInterfaces/AllVariantsInterface.php
deleted file mode 100644
index 08b5079..0000000
--- a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/AllVariantsInterface.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces;
-
-interface AllVariantsInterface extends
-    LocatorVariant,
-    ObjectVariant,
-    ObjectExVariant,
-    ObjectPathVariant,
-    ObjectSetVariant,
-    PropertySetVariant,
-    PropertyVariant,
-    QualifierSetVariant,
-    QualifierVariant,
-    ServicesVariant
-{
-}
diff --git a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/CollectionVariant.php b/src/WmiScripting/Support/ApiObjects/VariantInterfaces/CollectionVariant.php
deleted file mode 100644
index 485bfc3..0000000
--- a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/CollectionVariant.php
+++ /dev/null
@@ -1,10 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces;
-
-/**
- * @property-read int Count
- */
-interface CollectionVariant extends VariantInterface
-{
-}
diff --git a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/LocatorVariant.php b/src/WmiScripting/Support/ApiObjects/VariantInterfaces/LocatorVariant.php
deleted file mode 100644
index 0a9a035..0000000
--- a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/LocatorVariant.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces;
-
-use PhpWinTools\Support\COM\ComVariantWrapper;
-
-interface LocatorVariant extends VariantInterface
-{
-    /**
-     * @param $server
-     * @param $namespace
-     * @param $user
-     * @param $password
-     * @param $locale
-     * @param $authority
-     * @param $security_flags
-     *
-     * @return ServicesVariant|ComVariantWrapper
-     */
-    public function ConnectServer($server, $namespace, $user, $password, $locale, $authority, $security_flags);
-}
diff --git a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/ObjectExVariant.php b/src/WmiScripting/Support/ApiObjects/VariantInterfaces/ObjectExVariant.php
deleted file mode 100644
index 542c2ea..0000000
--- a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/ObjectExVariant.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces;
-
-interface ObjectExVariant extends ObjectVariant
-{
-}
diff --git a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/ObjectPathVariant.php b/src/WmiScripting/Support/ApiObjects/VariantInterfaces/ObjectPathVariant.php
deleted file mode 100644
index d0403c6..0000000
--- a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/ObjectPathVariant.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces;
-
-/**
- * @property-read mixed Authority
- * @property-read mixed Class
- * @property-read mixed DisplayName
- * @property-read mixed IsClass
- * @property-read mixed IsSingleton
- * @property-read mixed Namespace
- * @property-read mixed ParentNamespace
- * @property-read mixed Path
- * @property-read mixed RelPath
- * @property-read mixed Server
- */
-interface ObjectPathVariant extends VariantInterface
-{
-}
diff --git a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/ObjectSetVariant.php b/src/WmiScripting/Support/ApiObjects/VariantInterfaces/ObjectSetVariant.php
deleted file mode 100644
index ea7ccc4..0000000
--- a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/ObjectSetVariant.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces;
-
-interface ObjectSetVariant extends CollectionVariant
-{
-}
diff --git a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/ObjectVariant.php b/src/WmiScripting/Support/ApiObjects/VariantInterfaces/ObjectVariant.php
deleted file mode 100644
index d3e0c98..0000000
--- a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/ObjectVariant.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces;
-
-/**
- * @property-read PropertySetVariant  Properties_
- * @property-read QualifierSetVariant Qualifiers_
- * @property-read ObjectPathVariant   Path_
- * @property-read array               Derivation_
- */
-interface ObjectVariant extends VariantInterface
-{
-}
diff --git a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/PropertySetVariant.php b/src/WmiScripting/Support/ApiObjects/VariantInterfaces/PropertySetVariant.php
deleted file mode 100644
index bacfbfc..0000000
--- a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/PropertySetVariant.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces;
-
-interface PropertySetVariant extends CollectionVariant
-{
-}
diff --git a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/PropertyVariant.php b/src/WmiScripting/Support/ApiObjects/VariantInterfaces/PropertyVariant.php
deleted file mode 100644
index 5758cb7..0000000
--- a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/PropertyVariant.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces;
-
-/**
- * @property-read string Name
- * @property-read mixed  Value
- * @property-read string Origin
- */
-interface PropertyVariant extends VariantInterface
-{
-}
diff --git a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/QualifierSetVariant.php b/src/WmiScripting/Support/ApiObjects/VariantInterfaces/QualifierSetVariant.php
deleted file mode 100644
index e4be282..0000000
--- a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/QualifierSetVariant.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces;
-
-interface QualifierSetVariant extends CollectionVariant
-{
-}
diff --git a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/QualifierVariant.php b/src/WmiScripting/Support/ApiObjects/VariantInterfaces/QualifierVariant.php
deleted file mode 100644
index 575d3a8..0000000
--- a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/QualifierVariant.php
+++ /dev/null
@@ -1,11 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces;
-
-/**
- * @property-read string Name
- * @property-read mixed  Value
- */
-interface QualifierVariant extends VariantInterface
-{
-}
diff --git a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/ServicesVariant.php b/src/WmiScripting/Support/ApiObjects/VariantInterfaces/ServicesVariant.php
deleted file mode 100644
index 417ba49..0000000
--- a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/ServicesVariant.php
+++ /dev/null
@@ -1,36 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces;
-
-use PhpWinTools\Support\COM\VariantWrapper;
-
-interface ServicesVariant extends VariantInterface
-{
-    /**
-     * @param $class
-     * @param $flags
-     * @param $wbemNamedValueSet
-     *
-     * @return VariantWrapper|ObjectSetVariant
-     */
-    public function InstancesOf($class, $flags, $wbemNamedValueSet);
-
-    /**
-     * @param $query
-     * @param $query_language
-     * @param $flags
-     * @param $wbemNamedValueSet
-     *
-     * @return VariantWrapper|ObjectSetVariant
-     */
-    public function ExecQuery($query, $query_language, $flags, $wbemNamedValueSet);
-
-    /**
-     * @param $object_path
-     * @param $flags
-     * @param $wbemNamedValueSet
-     *
-     * @return VariantWrapper|ObjectVariant
-     */
-    public function Get($object_path, $flags, $wbemNamedValueSet);
-}
diff --git a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/VariantInterface.php b/src/WmiScripting/Support/ApiObjects/VariantInterfaces/VariantInterface.php
deleted file mode 100644
index 2f63f5f..0000000
--- a/src/WmiScripting/Support/ApiObjects/VariantInterfaces/VariantInterface.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support\ApiObjects\VariantInterfaces;
-
-interface VariantInterface
-{
-    public function __get($property): self;
-
-    public function __set($property, $value);
-
-    public function __call($method, $arguments): self;
-}
diff --git a/src/WmiScripting/Support/functions.php b/src/WmiScripting/Support/functions.php
deleted file mode 100644
index ce44b01..0000000
--- a/src/WmiScripting/Support/functions.php
+++ /dev/null
@@ -1,156 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Support {
-
-    use ReflectionClass;
-    use PhpWinTools\WmiScripting\Configuration\Config;
-    use PhpWinTools\WmiScripting\Configuration\Resolver;
-    use PhpWinTools\WmiScripting\Connections\ComConnection;
-    use PhpWinTools\WmiScripting\Collections\ArrayCollection;
-    use PhpWinTools\WmiScripting\Exceptions\InvalidArgumentException;
-    use PhpWinTools\WmiScripting\Exceptions\InvalidConnectionException;
-
-    /**
-     * @param Config|null $config
-     *
-     * @return Config
-     */
-    function core(Config $config = null)
-    {
-        return $config ?? Config::instance();
-    }
-
-    /**
-     * @param ComConnection|string|null $connection
-     * @param ComConnection|string|null $default
-     * @param Config|null               $config
-     *
-     * @return ComConnection|string|null
-     */
-    function connection($connection = null, $default = null, Config $config = null)
-    {
-        if (is_null($connection) && is_null($default)) {
-            return core($config)->getConnection();
-        }
-
-        if (is_string($connection) && trim($connection) !== '') {
-            $connection = core($config)->getConnection($connection);
-        }
-
-        if (!$connection instanceof ComConnection && $default) {
-            return connection($default, null, core($config));
-        }
-
-        if (!$connection instanceof ComConnection) {
-            throw InvalidConnectionException::new($connection);
-        }
-
-        return $connection;
-    }
-
-    /**
-     * @param string|null $class
-     * @param mixed       $parameters
-     *
-     * @return Resolver|mixed|null
-     */
-    function resolve(string $class = null, ...$parameters)
-    {
-        return core()($class, $parameters);
-    }
-
-    /**
-     * Checks for the existence of a property.
-     *
-     * @param $class
-     * @param $property_name
-     *
-     * @throws InvalidArgumentException
-     *
-     * @return bool
-     */
-    function class_has_property($class, $property_name): bool
-    {
-        $class = is_object($class) ? get_class($class) : $class;
-
-        try {
-            return (new ReflectionClass($class))->hasProperty($property_name);
-        } catch (\Exception $exception) {
-            throw new InvalidConnectionException("Unable to reflect on {$class}.", null, $exception);
-        }
-    }
-
-    /**
-     * Gets the default value of the given property through the parent.
-     *
-     * @param $class
-     * @param $property_name
-     *
-     * @return array
-     */
-    function get_ancestor_property($class, $property_name)
-    {
-        $class = is_object($class) ? get_class($class) : $class;
-
-        return ArrayCollection::collect(class_parents($class))->map(function ($class) use ($property_name) {
-            return (new ReflectionClass($class))->getDefaultProperties()[$property_name] ?? [];
-        })->values()->collapse()->toArray();
-    }
-
-    /**
-     * Expects either a class name or instance and will return if the given trait exists on the class.
-     *
-     * @param $class
-     * @param $trait
-     *
-     * @return bool
-     */
-    function class_has_trait($class, $trait): bool
-    {
-        return array_key_exists($trait, class_traits(is_object($class) ? get_class($class) : $class));
-    }
-
-    /**
-     * Returns all traits of the given class or instance. It also checks the traits for any used traits.
-     *
-     * @param $class
-     *
-     * @return array
-     */
-    function class_traits($class)
-    {
-        $class = is_object($class) ? get_class($class) : $class;
-
-        $traits = class_uses($class);
-
-        while ($class = get_parent_class($class)) {
-            $traits += class_uses($class);
-        }
-
-        $trait_traits = [];
-
-        foreach ($traits as $trait) {
-            $trait_traits += trait_traits($trait);
-        }
-
-        return array_merge($trait_traits, $traits);
-    }
-
-    /**
-     * Returns all of the traits that a trait uses including it's ancestors.
-     *
-     * @param $trait_name
-     *
-     * @return array
-     */
-    function trait_traits($trait_name)
-    {
-        $traits = class_uses($trait_name);
-
-        foreach ($traits as $trait) {
-            $traits += trait_traits($trait);
-        }
-
-        return $traits;
-    }
-}
diff --git a/src/WmiScripting/Testing/CallStacks/ApiObjectCall.php b/src/WmiScripting/Testing/CallStacks/ApiObjectCall.php
deleted file mode 100644
index 650a47c..0000000
--- a/src/WmiScripting/Testing/CallStacks/ApiObjectCall.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Testing\CallStacks;
-
-class ApiObjectCall
-{
-    protected $api_object;
-
-    protected $call;
-
-    protected $parameters;
-
-    public function __construct($api_object, $call, $parameters = [])
-    {
-        $this->api_object = $api_object;
-        $this->call = $call;
-        $this->parameters = $parameters;
-    }
-}
diff --git a/src/WmiScripting/Testing/CallStacks/ApiObjectCallStack.php b/src/WmiScripting/Testing/CallStacks/ApiObjectCallStack.php
deleted file mode 100644
index 6449dfc..0000000
--- a/src/WmiScripting/Testing/CallStacks/ApiObjectCallStack.php
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Testing\CallStacks;
-
-class ApiObjectCallStack
-{
-    protected static $instance;
-
-    protected $stack;
-
-    public function __construct()
-    {
-        static::$instance = $this;
-    }
-
-    public static function newInstance()
-    {
-        return static::$instance = new static();
-    }
-
-    public static function instance()
-    {
-        return static::$instance ?? new static();
-    }
-
-    public function add(ApiObjectCall $call)
-    {
-        $this->stack[] = $call;
-
-        return $this;
-    }
-}
diff --git a/src/WmiScripting/Testing/CallStacks/ComCall.php b/src/WmiScripting/Testing/CallStacks/ComCall.php
deleted file mode 100644
index 223ef8d..0000000
--- a/src/WmiScripting/Testing/CallStacks/ComCall.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Testing\CallStacks;
-
-use PhpWinTools\WmiScripting\Support\ApiObjects\AbstractWbemObject;
-
-class ComCall
-{
-    protected $type;
-
-    protected $method;
-
-    protected $arguments = [];
-
-    protected $responder;
-
-    protected $caller;
-
-    protected $next_caller;
-
-    public function __construct($type, $method, $arguments, $responder = null, $caller = null, $next_caller = null)
-    {
-        $this->type = $type;
-        $this->method = $method;
-        $this->arguments = $arguments;
-        $this->responder = $responder;
-        $this->caller = $caller;
-        $this->next_caller = $next_caller;
-    }
-
-    /**
-     * @return ComTraceSubject
-     */
-    public function getApiCaller()
-    {
-        if (array_key_exists(AbstractWbemObject::class, class_parents($this->getCaller()->getClass()))) {
-            return $this->getCaller();
-        }
-
-        return $this->getNextCaller();
-    }
-
-    /**
-     * @return mixed
-     */
-    public function getType()
-    {
-        return $this->type;
-    }
-
-    /**
-     * @return mixed
-     */
-    public function getMethod()
-    {
-        return $this->method;
-    }
-
-    /**
-     * @return array
-     */
-    public function getArguments(): array
-    {
-        return $this->arguments;
-    }
-
-    /**
-     * @return ComTraceSubject
-     */
-    public function getResponder()
-    {
-        return $this->responder;
-    }
-
-    /**
-     * @return ComTraceSubject
-     */
-    public function getCaller()
-    {
-        return $this->caller;
-    }
-
-    /**
-     * @return ComTraceSubject
-     */
-    public function getNextCaller()
-    {
-        return $this->next_caller;
-    }
-}
diff --git a/src/WmiScripting/Testing/CallStacks/ComCallStack.php b/src/WmiScripting/Testing/CallStacks/ComCallStack.php
deleted file mode 100644
index 21b592b..0000000
--- a/src/WmiScripting/Testing/CallStacks/ComCallStack.php
+++ /dev/null
@@ -1,133 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Testing\CallStacks;
-
-use PhpWinTools\Support\COM\ComVariantWrapper;
-use PhpWinTools\WmiScripting\Collections\ArrayCollection;
-use PhpWinTools\WmiScripting\Support\ApiObjects\AbstractWbemObject;
-
-class ComCallStack
-{
-    protected static $instance;
-
-    /** @var array|ComCall[] */
-    protected $stack;
-
-    public function __construct()
-    {
-        $this->stack = new ArrayCollection();
-
-        static::$instance = $this;
-    }
-
-    public static function newInstance()
-    {
-        return static::$instance = new static();
-    }
-
-    /**
-     * @return ComCallStack
-     */
-    public static function instance()
-    {
-        return static::$instance ?? new static();
-    }
-
-    public static function current()
-    {
-        return static::instance()->getCurrent();
-    }
-
-    public function getStackCollection()
-    {
-        return $this->stack;
-    }
-
-    public function add(...$call)
-    {
-        $method = null;
-        $arguments = [];
-
-        switch ($type = array_shift($call)) {
-            case '__set':
-            case '__call':
-                $method = array_shift($call);
-                $arguments = $call[0];
-                break;
-            case '__get':
-            default:
-                if (is_array($call)) {
-                    $method = array_shift($call);
-                    $arguments = $call[0] ?? [];
-                } else {
-                    $method = $call;
-                    $arguments = [];
-                }
-
-                break;
-        }
-
-        $backtrace = $this->getBacktrace();
-        $this->stack->add(new ComCall(
-            $type,
-            $method,
-            $arguments,
-            $backtrace['responder'],
-            $backtrace['caller'],
-            $backtrace['detected_caller']
-        ));
-
-        return $this;
-    }
-
-    public function getCurrent()
-    {
-        return $this->stack[count($this->stack) - 1];
-    }
-
-    protected function getBacktrace()
-    {
-        $backtrace = new ArrayCollection(debug_backtrace(true));
-        $wrapper_call_key = key($backtrace->filter(function ($trace, $key) {
-            if ($trace['class'] === ComVariantWrapper::class) {
-                return $key;
-            }
-
-            return false;
-        })->toArray());
-
-        if ($wrapper_call_key) {
-            $found_detected = false;
-            $backtrace = $backtrace->filter(function ($trace, $key) use ($wrapper_call_key, &$found_detected) {
-                if (!$found_detected
-                    && $key > $wrapper_call_key + 1
-                    && array_key_exists(AbstractWbemObject::class, class_parents($trace['class']))
-                ) {
-                    return $found_detected = true;
-                }
-
-                return $key === $wrapper_call_key || $key === $wrapper_call_key + 1;
-            })->values()->map(function ($trace) {
-                return new ComTraceSubject(
-                    $trace['file'],
-                    $trace['class'],
-                    $trace['function'],
-                    $trace['args'],
-                    isset($trace['object']) ? get_class($trace['object']) : null
-                );
-            });
-
-            return [
-                'responder'         => $backtrace[0],
-                'caller'            => $backtrace[1] ?? null,
-                'detected_caller'   => $backtrace[2] ?? null,
-            ];
-        }
-
-        return [
-            'responder'         => null,
-            'caller'            => null,
-            'detected_caller'   => null,
-        ];
-    }
-}
diff --git a/src/WmiScripting/Testing/CallStacks/ComTraceSubject.php b/src/WmiScripting/Testing/CallStacks/ComTraceSubject.php
deleted file mode 100644
index 39a76a3..0000000
--- a/src/WmiScripting/Testing/CallStacks/ComTraceSubject.php
+++ /dev/null
@@ -1,66 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Testing\CallStacks;
-
-class ComTraceSubject
-{
-    private $file;
-
-    private $class;
-
-    private $function;
-
-    private $arguments;
-
-    /** @var null */
-    private $called_from_class;
-
-    public function __construct($file, $class, $function, $arguments, $called_from_class = null)
-    {
-        $this->file = $file;
-        $this->class = $class;
-        $this->function = $function;
-        $this->arguments = $arguments;
-        $this->called_from_class = $called_from_class;
-    }
-
-    /**
-     * @return mixed
-     */
-    public function getFile()
-    {
-        return $this->file;
-    }
-
-    /**
-     * @return mixed
-     */
-    public function getClass()
-    {
-        return $this->class;
-    }
-
-    /**
-     * @return mixed
-     */
-    public function getFunction()
-    {
-        return $this->function;
-    }
-
-    /**
-     * @return mixed
-     */
-    public function getArguments()
-    {
-        return $this->arguments;
-    }
-
-    /**
-     * @return null
-     */
-    public function getCalledFromClass()
-    {
-        return $this->called_from_class;
-    }
-}
diff --git a/src/WmiScripting/Testing/FakeFactory.php b/src/WmiScripting/Testing/FakeFactory.php
deleted file mode 100644
index ee13ef0..0000000
--- a/src/WmiScripting/Testing/FakeFactory.php
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Testing;
-
-use PHPUnit\Framework\TestCase;
-use PhpWinTools\WmiScripting\Configuration\Config;
-use PhpWinTools\WmiScripting\Testing\Support\Assert;
-use PhpWinTools\WmiScripting\Testing\Wmi\Win32ModelFactory;
-use PhpWinTools\WmiScripting\Testing\Responses\ObjectSetResponse;
-use PhpWinTools\WmiScripting\Testing\Responses\ConnectionResponse;
-
-class FakeFactory
-{
-    protected $testCase;
-
-    protected $config;
-
-    public function __construct(TestCase $testCase, Config $config = null)
-    {
-        $this->testCase = $testCase;
-        $this->config = $config ?? Config::testInstance();
-    }
-
-    public function win32Model($class_name, int $count = 1, array $attributes = [])
-    {
-        ConnectionResponse::standard($this->config);
-        ObjectSetResponse::standard(Win32ModelFactory::make($class_name, $count, $attributes));
-
-        return new Assert($this->testCase);
-    }
-}
diff --git a/src/WmiScripting/Testing/Responses/ApiObjectResponseFactory.php b/src/WmiScripting/Testing/Responses/ApiObjectResponseFactory.php
deleted file mode 100644
index a01935b..0000000
--- a/src/WmiScripting/Testing/Responses/ApiObjectResponseFactory.php
+++ /dev/null
@@ -1,21 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Testing\Responses;
-
-use PhpWinTools\WmiScripting\Configuration\Config;
-use PhpWinTools\WmiScripting\Testing\Support\VARIANTFake;
-
-class ApiObjectResponseFactory
-{
-    public static function add($api_object, $method, $response, Config $config = null)
-    {
-        $config = $config ?? Config::testInstance();
-
-        $config->addResolvable("{$api_object}.{$method}", $response);
-    }
-
-    public static function addVariantResponse($api_object, $method, $response, Config $config = null)
-    {
-        $config->addResolvable("{$api_object}.{$method}", VARIANTFake::withResponse($method, $response));
-    }
-}
diff --git a/src/WmiScripting/Testing/Responses/ConnectionResponse.php b/src/WmiScripting/Testing/Responses/ConnectionResponse.php
deleted file mode 100644
index 1e056d1..0000000
--- a/src/WmiScripting/Testing/Responses/ConnectionResponse.php
+++ /dev/null
@@ -1,19 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Testing\Responses;
-
-use PhpWinTools\WmiScripting\Configuration\Config;
-use PhpWinTools\WmiScripting\Testing\Support\VARIANTFake;
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemLocator;
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemServices;
-
-class ConnectionResponse extends ApiObjectResponseFactory
-{
-    public static function standard(Config $config = null)
-    {
-        $config = $config ?? Config::testInstance();
-
-        static::addVariantResponse(SWbemLocator::class, 'ConnectServer', new VARIANTFake(), $config);
-        static::addVariantResponse(SWbemServices::class, 'ExecQuery', new VARIANTFake(), $config);
-    }
-}
diff --git a/src/WmiScripting/Testing/Responses/ObjectSetResponse.php b/src/WmiScripting/Testing/Responses/ObjectSetResponse.php
deleted file mode 100644
index 308e83d..0000000
--- a/src/WmiScripting/Testing/Responses/ObjectSetResponse.php
+++ /dev/null
@@ -1,81 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Testing\Responses;
-
-use ArrayIterator;
-use PhpWinTools\Support\COM\VariantWrapper;
-use PhpWinTools\WmiScripting\Configuration\Config;
-use PhpWinTools\WmiScripting\Testing\Wmi\ModelFake;
-use PhpWinTools\WmiScripting\Testing\Support\VARIANTFake;
-use PhpWinTools\WmiScripting\Testing\Wmi\ModelFakeCollection;
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemObjectSet;
-
-class ObjectSetResponse extends ApiObjectResponseFactory
-{
-    public static function standard(ModelFakeCollection $collection, Config $config = null)
-    {
-        $config = $config ?? Config::testInstance();
-
-        static::addVariantResponse(SWbemObjectSet::class, 'Count', $collection->count(), $config);
-        static::addVariantResponse(SWbemObjectSet::class, '__objectSet__', static::buildObjects($collection), $config);
-    }
-
-    protected static function buildObjects(ModelFakeCollection $collection)
-    {
-        return new ArrayIterator($collection->map(function (ModelFake $modelFake) {
-            return new VariantWrapper(
-                VARIANTFake::withResponse('Properties_', static::buildProperties($modelFake))
-                    ->addResponse('Derivation_', $modelFake->get('derivations'))
-                    ->addResponse('Qualifiers_', static::buildQualifiers($modelFake))
-                    ->addResponse('Path_', static::buildPath($modelFake))
-            );
-        })->toArray());
-    }
-
-    protected static function buildPath(ModelFake $modelFake)
-    {
-        $path = $modelFake->get('path');
-
-        return new VariantWrapper(
-            VARIANTFake::withResponse('Authority', $path['authority'])
-                ->addResponse('Class', $path['class'])
-                ->addResponse('DisplayName', $path['display_name'])
-                ->addResponse('IsClass', $path['is_class'])
-                ->addResponse('IsSingleton', $path['is_singleton'])
-                ->addResponse('Keys', $path['keys'])
-                ->addResponse('Namespace', $path['namespace'])
-                ->addResponse('ParentNamespace', $path['parent_namespace'])
-                ->addResponse('Path', $path['path'])
-                ->addResponse('RelPath', $path['relative_path'])
-                ->addResponse('Server', $path['server'])
-        );
-    }
-
-    protected static function buildProperties(ModelFake $modelFake)
-    {
-        $properties = $modelFake->get('properties')->map(function ($property) {
-            return new VariantWrapper(
-                VARIANTFake::withResponse('Name', $property['Name'])
-                    ->addResponse('Value', $property['Value'])
-                    ->addResponse('Origin', $property['Origin'])
-            );
-        })->flatten()->toArray();
-
-        return new VariantWrapper(VARIANTFake::withResponse('__propertySet__', new ArrayIterator($properties)));
-    }
-
-    protected static function buildQualifiers(ModelFake $modelFake)
-    {
-        $qualifiers = $modelFake->get('qualifiers')->map(function ($qualifier) {
-            return new VariantWrapper(
-                VARIANTFake::withResponse('Name', $qualifier['Name'])
-                    ->addResponse('Value', $qualifier['Value'])
-            );
-        })->flatten()->toArray();
-
-        return new VariantWrapper(
-            VARIANTFake::withResponse('__qualifierSet__', new ArrayIterator($qualifiers))
-                ->addResponse('Count', $modelFake->get('qualifiers')->count())
-        );
-    }
-}
diff --git a/src/WmiScripting/Testing/Support/Assert.php b/src/WmiScripting/Testing/Support/Assert.php
deleted file mode 100644
index 69c751d..0000000
--- a/src/WmiScripting/Testing/Support/Assert.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Testing\Support;
-
-use PHPUnit\Framework\TestCase;
-use PhpWinTools\WmiScripting\Configuration\Config;
-use PhpWinTools\WmiScripting\Testing\CallStacks\ComCall;
-use function PhpWinTools\WmiScripting\Support\connection;
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemLocator;
-use PhpWinTools\WmiScripting\Testing\CallStacks\ComCallStack;
-use PhpWinTools\WmiScripting\Testing\CallStacks\ComTraceSubject;
-use PhpWinTools\WmiScripting\Testing\CallStacks\ApiObjectCallStack;
-
-class Assert
-{
-    protected $testCase;
-
-    protected $callStack;
-
-    protected $apiCallStack;
-
-    protected $config;
-
-    public function __construct(TestCase $testCase)
-    {
-        $this->testCase = $testCase;
-
-        $this->callStack = ComCallStack::instance();
-
-        $this->apiCallStack = ApiObjectCallStack::instance();
-
-        $this->config = Config::testInstance();
-    }
-
-    public function assertConnectionWasUsed($connection, string $message = null)
-    {
-        $connection = connection($connection, null, $this->config);
-
-        /** @var ComTraceSubject $caller */
-        $caller = $this->callStack->getStackCollection()->first(function (ComCall $call) {
-            return $call->getCaller()->getClass() === SWbemLocator::class;
-        })->getCaller();
-
-        $this->testCase::assertEquals(
-            $connection,
-            $caller->getArguments()[0],
-            $message ?? 'Expected connection was not used.'
-        );
-    }
-}
diff --git a/src/WmiScripting/Testing/Support/ComResolver.php b/src/WmiScripting/Testing/Support/ComResolver.php
deleted file mode 100644
index fa34edd..0000000
--- a/src/WmiScripting/Testing/Support/ComResolver.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Testing\Support;
-
-use PhpWinTools\WmiScripting\Configuration\Config;
-use PhpWinTools\WmiScripting\Testing\CallStacks\ComCallStack;
-use PhpWinTools\WmiScripting\Testing\CallStacks\ApiObjectCall;
-use PhpWinTools\WmiScripting\Testing\CallStacks\ApiObjectCallStack;
-
-class ComResolver
-{
-    protected static $instance;
-
-    protected $callStack;
-
-    protected $apiCallStack;
-
-    protected $config;
-
-    protected $arguments;
-
-    public function __construct(ComCallStack $stack = null, ApiObjectCallStack $apiStack = null, Config $config = null)
-    {
-        $this->callStack = $stack ?? ComCallStack::instance();
-        $this->apiCallStack = $apiStack ?? ApiObjectCallStack::instance();
-        $this->config = $config ?? Config::testInstance();
-    }
-
-    public static function instance(ComCallStack $callStack)
-    {
-        return static::$instance ?? new static($callStack);
-    }
-
-    public function resolve()
-    {
-        $current = $this->callStack->getCurrent();
-        $class_context = $current->getApiCaller()->getClass();
-        $called = $current->getMethod();
-
-        $this->apiCallStack->add(new ApiObjectCall($class_context, $called, $current->getArguments()));
-
-        return ($this->config)("{$class_context}.{$called}");
-    }
-}
diff --git a/src/WmiScripting/Testing/Support/VARIANTFake.php b/src/WmiScripting/Testing/Support/VARIANTFake.php
deleted file mode 100644
index d7bf231..0000000
--- a/src/WmiScripting/Testing/Support/VARIANTFake.php
+++ /dev/null
@@ -1,59 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Testing\Support;
-
-use ArrayIterator;
-use IteratorAggregate;
-use PhpWinTools\Support\COM\VariantWrapper;
-use PhpWinTools\Support\COM\Testing\COMObjectFake;
-use PhpWinTools\WmiScripting\Testing\CallStacks\ComCallStack;
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemObjectSet;
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemPropertySet;
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemQualifierSet;
-
-class VARIANTFake extends COMObjectFake implements IteratorAggregate
-{
-    public $value;
-
-    public $class_name;
-
-    public $code_page;
-
-    public $expectations;
-
-    public function __construct($value = null, string $class_name = null, $code_page = null)
-    {
-        parent::__construct();
-
-        $this->value = $value;
-        $this->class_name = $class_name;
-        $this->code_page = $code_page;
-    }
-
-    public function getIterator()
-    {
-        $this->stack->add('iterator');
-
-        $standard = new ArrayIterator([
-            new VariantWrapper(new self()),
-        ]);
-
-        if (ComCallStack::current()->getCaller()->getClass() === SWbemObjectSet::class) {
-            $response = $this->call(__FUNCTION__, '__objectSet__');
-        }
-
-        if (ComCallStack::current()->getCaller()->getClass() === SWbemPropertySet::class) {
-            $response = $this->call(__FUNCTION__, '__propertySet__');
-        }
-
-        if (ComCallStack::current()->getCaller()->getClass() === SWbemQualifierSet::class) {
-            $response = $this->call(__FUNCTION__, '__qualifierSet__');
-        }
-
-//        if (!isset($response)) {
-//            dd(ComCallStack::current());
-//        }
-
-        return $response ?? $standard;
-    }
-}
diff --git a/src/WmiScripting/Testing/Wmi/ModelFake.php b/src/WmiScripting/Testing/Wmi/ModelFake.php
deleted file mode 100644
index d504cbf..0000000
--- a/src/WmiScripting/Testing/Wmi/ModelFake.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Testing\Wmi;
-
-use PhpWinTools\WmiScripting\Collections\ArrayCollection;
-
-class ModelFake extends ArrayCollection
-{
-}
diff --git a/src/WmiScripting/Testing/Wmi/ModelFakeCollection.php b/src/WmiScripting/Testing/Wmi/ModelFakeCollection.php
deleted file mode 100644
index e6f3493..0000000
--- a/src/WmiScripting/Testing/Wmi/ModelFakeCollection.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Testing\Wmi;
-
-use PhpWinTools\WmiScripting\Collections\ArrayCollection;
-
-class ModelFakeCollection extends ArrayCollection
-{
-}
diff --git a/src/WmiScripting/Testing/Wmi/ModelProperties.php b/src/WmiScripting/Testing/Wmi/ModelProperties.php
deleted file mode 100644
index 7de1264..0000000
--- a/src/WmiScripting/Testing/Wmi/ModelProperties.php
+++ /dev/null
@@ -1,83 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Testing\Wmi;
-
-use ReflectionClass;
-use ReflectionProperty;
-use ReflectionException;
-use PhpWinTools\WmiScripting\Models\Win32Model;
-use PhpWinTools\WmiScripting\Collections\ArrayCollection;
-
-class ModelProperties
-{
-    protected $class_name;
-
-    protected $namespace;
-
-    /** @var ArrayCollection */
-    protected $properties;
-
-    public function __construct($class_name)
-    {
-        $this->class_name = $class_name;
-
-        $this->setProperties();
-    }
-
-    public function getProperties()
-    {
-        return $this->properties;
-    }
-
-    /**
-     * @throws ReflectionException
-     */
-    protected function setProperties()
-    {
-        /** @var Win32Model $class */
-        $reflectionClass = new ReflectionClass($class = new $this->class_name());
-
-        $this->properties = (new ArrayCollection($reflectionClass->getProperties()))->mapWithKeys(
-            function (ReflectionProperty $property) use ($class, $reflectionClass) {
-                return [$property->name => [
-                    'name'      => $property->name,
-                    'origin'    => $this->getPropertyOrigin($property, $reflectionClass)->getName(),
-                    'cast'      => $class->getCast($property->name),
-                    'doc'       => $property->getDocComment(),
-                    'value'     => $class->getAttribute($property->name),
-                ]];
-            }
-        )->diffKeys($class->getHiddenAttributes())->filter(function ($property) {
-            return $property['origin'] !== Win32Model::class;
-        });
-    }
-
-    /**
-     * Finds the origin of the model property. Could be made slightly more efficient, but haven't figured it out yet.
-     *
-     * @param ReflectionProperty   $property
-     * @param ReflectionClass      $current_class
-     * @param ReflectionClass|null $previous_class
-     *
-     * @return ReflectionClass
-     */
-    protected function getPropertyOrigin(
-        ReflectionProperty $property,
-        ReflectionClass $current_class,
-        ReflectionClass $previous_class = null
-    ) {
-        if ($property->getDeclaringClass()->getName() !== $current_class->getName() && !$previous_class) {
-            return $property->getDeclaringClass();
-        }
-
-        if (!$current_class->hasProperty($property->getName())) {
-            return $previous_class;
-        }
-
-        if ($class = $current_class->getParentClass()) {
-            return $this->getPropertyOrigin($property, $class, $current_class);
-        }
-
-        return $current_class;
-    }
-}
diff --git a/src/WmiScripting/Testing/Wmi/Win32ModelFactory.php b/src/WmiScripting/Testing/Wmi/Win32ModelFactory.php
deleted file mode 100644
index 6943ede..0000000
--- a/src/WmiScripting/Testing/Wmi/Win32ModelFactory.php
+++ /dev/null
@@ -1,124 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting\Testing\Wmi;
-
-use Faker\Factory;
-use Faker\Generator;
-use PhpWinTools\WmiScripting\Models\Win32Model;
-use PhpWinTools\WmiScripting\Connections\ComConnection;
-use PhpWinTools\WmiScripting\Collections\ArrayCollection;
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemServices;
-
-class Win32ModelFactory
-{
-    protected $faker;
-
-    public function __construct(Generator $faker = null)
-    {
-        $this->faker = $faker ?? Factory::create();
-    }
-
-    /**
-     * @param string|Win32Model $class_name
-     * @param int               $count
-     * @param array             $attributes
-     * @param Generator|null    $faker
-     *
-     * @return ModelFakeCollection
-     */
-    public static function make($class_name, int $count = 1, array $attributes = [], Generator $faker = null)
-    {
-        $factory = new static($faker ?? Factory::create());
-
-        $modelFakes = new ModelFakeCollection();
-
-        while ($count) {
-            $modelFakes->add(new ModelFake([
-                'properties'  => $factory->fillAttributes(new ModelProperties($class_name)),
-                'derivations' => array_filter(class_parents($class_name), function ($parent) {
-                    return $parent !== Win32Model::class;
-                }),
-                'qualifiers' => new ArrayCollection([
-                    [
-                        'Name'  => 'provider',
-                        'Value' => 'CIMWin32',
-                    ],
-                    [
-                        'Name'  => 'UUID',
-                        'Value' => $class_name::newInstance()->getAttribute('uuid'),
-                    ],
-                ]),
-                'path' => new ArrayCollection([
-                    'authority'         => $authority = null,
-                    'class'             => $class_name::newInstance()->getWmiClassNameAttribute(),
-                    'display_name'      => SWbemServices::WMI_MONIKER
-                        . '{authenticationLevel=pktPrivacy,impersonationLevel=impersonate}!'
-                        . "\\\server\\namespace:{$class_name::newInstance()->getWmiClassNameAttribute()}"
-                        . '.DeviceID="something:"',
-                    'is_class'          => false,
-                    'is_singleton'      => false,
-                    'keys'              => [],
-                    'namespace'         => ComConnection::DEFAULT_NAMESPACE,
-                    'parent_namespace'  => 'Root',
-                    'path'              => '\\\server\\namespace:'
-                        . "{$class_name::newInstance()->getWmiClassNameAttribute()}.DeviceID=\"something:\"",
-                    'relative_path'     => 'some other stuff',
-                    'server'            => 'server',
-                ]),
-            ]));
-
-            --$count;
-        }
-
-        return $modelFakes;
-    }
-
-    protected function fillAttributes(ModelProperties $details)
-    {
-        return $details->getProperties()->map(function ($property) {
-            $value = null;
-
-            if (is_array($property['value']) && empty($property['value'])) {
-                $value = (array) $this->faker->words;
-            }
-
-            if (is_array($property['value']) && !empty($property['value'])) {
-                $value = $property['value'];
-            }
-
-            if (is_string($property['value']) && trim($property['value']) !== '') {
-                $value = $property['value'];
-            }
-
-            if (is_null($value)) {
-                $value = $this->cast($property['cast']);
-            }
-
-            return [
-                'Name'      => $property['name'],
-                'Value'     => $value,
-                'Origin'    => $property['origin'],
-            ];
-        });
-    }
-
-    protected function cast($cast)
-    {
-        switch ($cast) {
-            case 'array':
-                return (array) $this->faker->words;
-            case 'bool':
-            case 'boolean':
-                return (bool) $this->faker->boolean;
-            case 'float':
-                return (float) $this->faker->randomFloat(2, PHP_INT_MIN, PHP_INT_MAX);
-            case 'int':
-            case 'integer':
-                // Prevent integer overflow
-                return (int) $this->faker->numberBetween(0, PHP_INT_MAX);
-            case 'string':
-            default:
-                return $this->faker->word;
-        }
-    }
-}
diff --git a/src/WmiScripting/WmiQueryFactory.php b/src/WmiScripting/WmiQueryFactory.php
deleted file mode 100644
index b9b8992..0000000
--- a/src/WmiScripting/WmiQueryFactory.php
+++ /dev/null
@@ -1,106 +0,0 @@
-<?php
-
-namespace PhpWinTools\WmiScripting;
-
-use PhpWinTools\WmiScripting\Models\Bios;
-use PhpWinTools\WmiScripting\Models\Group;
-use PhpWinTools\WmiScripting\Models\Account;
-use PhpWinTools\WmiScripting\Models\Process;
-use PhpWinTools\WmiScripting\Models\DiskDrive;
-use PhpWinTools\WmiScripting\Models\Processor;
-use PhpWinTools\WmiScripting\Models\SystemBios;
-use PhpWinTools\WmiScripting\Models\LogicalDisk;
-use PhpWinTools\WmiScripting\Models\UserAccount;
-use PhpWinTools\WmiScripting\Models\LoggedOnUser;
-use PhpWinTools\WmiScripting\Models\SystemDevices;
-use PhpWinTools\WmiScripting\Models\ComputerSystem;
-use PhpWinTools\WmiScripting\Models\OperatingSystem;
-use PhpWinTools\WmiScripting\Models\TemperatureProbe;
-use PhpWinTools\WmiScripting\Connections\ComConnection;
-use PhpWinTools\WmiScripting\Models\ProgramGroupContents;
-
-class WmiQueryFactory
-{
-    /** @var ComConnection|string|null */
-    protected $connection;
-
-    public function __construct($connection = null)
-    {
-        $this->connection = $connection;
-    }
-
-    public function bios()
-    {
-        return Bios::query($this->connection);
-    }
-
-    public function diskDrive()
-    {
-        return DiskDrive::query($this->connection);
-    }
-
-    public function logicalDisk()
-    {
-        return LogicalDisk::query($this->connection);
-    }
-
-    public function processor()
-    {
-        return Processor::query($this->connection);
-    }
-
-    public function temperatureProbe()
-    {
-        return TemperatureProbe::query($this->connection);
-    }
-
-    public function account()
-    {
-        return Account::query($this->connection);
-    }
-
-    public function computerSystem()
-    {
-        return ComputerSystem::query($this->connection);
-    }
-
-    public function group()
-    {
-        return Group::query($this->connection);
-    }
-
-    public function loggedOnUser()
-    {
-        return LoggedOnUser::query($this->connection);
-    }
-
-    public function operatingSystem()
-    {
-        return OperatingSystem::query($this->connection);
-    }
-
-    public function process()
-    {
-        return Process::query($this->connection);
-    }
-
-    public function programGroupContents()
-    {
-        return ProgramGroupContents::query($this->connection);
-    }
-
-    public function systemBios()
-    {
-        return SystemBios::query($this->connection);
-    }
-
-    public function systemDevices()
-    {
-        return SystemDevices::query($this->connection);
-    }
-
-    public function userAccount()
-    {
-        return UserAccount::query($this->connection);
-    }
-}
diff --git a/src/WmiScripting/config/bootstrap.php b/src/WmiScripting/config/bootstrap.php
deleted file mode 100644
index e1517c0..0000000
--- a/src/WmiScripting/config/bootstrap.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-use PhpWinTools\Support\COM\ComWrapper;
-use PhpWinTools\Support\COM\VariantWrapper;
-use PhpWinTools\Support\COM\ComVariantWrapper;
-
-return [
-    'com' => [
-        'com_class'                 => COM::class,
-        'variant_class'             => VARIANT::class,
-        ComVariantWrapper::class    => ComVariantWrapper::class,
-        ComWrapper::class           => ComWrapper::class,
-        VariantWrapper::class       => VariantWrapper::class,
-    ],
-
-    'wmi' => include('wmi.php'),
-];
diff --git a/src/WmiScripting/config/connections.php b/src/WmiScripting/config/connections.php
deleted file mode 100644
index 136479c..0000000
--- a/src/WmiScripting/config/connections.php
+++ /dev/null
@@ -1,17 +0,0 @@
-<?php
-
-return [
-    'default' => 'local',
-
-    'servers' => [
-        'local' => [
-            'server'          => '.',
-            'namespace'       => 'Root\CIMv2',
-            'user'            => null,
-            'password'        => null,
-            'locale'          => null,
-            'authority'       => null,
-            'security_flags'  => null,
-        ],
-    ],
-];
diff --git a/src/WmiScripting/config/testing.php b/src/WmiScripting/config/testing.php
deleted file mode 100644
index 7e29e46..0000000
--- a/src/WmiScripting/config/testing.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
-use PhpWinTools\Support\COM\Testing\COMFake;
-use PhpWinTools\Support\COM\ComVariantWrapper;
-use PhpWinTools\WmiScripting\Testing\Support\VARIANTFake;
-use PhpWinTools\Support\COM\Testing\ComVariantWrapperFake;
-
-return [
-    'com' => [
-        'com_class'              => COMFake::class,
-        'variant_class'          => VARIANTFake::class,
-        ComVariantWrapper::class => ComVariantWrapperFake::class,
-    ],
-];
diff --git a/src/WmiScripting/config/wmi.php b/src/WmiScripting/config/wmi.php
deleted file mode 100644
index dee5678..0000000
--- a/src/WmiScripting/config/wmi.php
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemObject;
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemLocator;
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemObjectEx;
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemProperty;
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemServices;
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemObjectSet;
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemQualifier;
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemObjectPath;
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemPropertySet;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\Locator;
-use PhpWinTools\WmiScripting\Support\ApiObjects\SWbemQualifierSet;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\Property;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\Services;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\ObjectSet;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\Qualifier;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\ObjectItem;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\ObjectPath;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\PropertySet;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\ObjectItemEx;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\QualifierSet;
-
-return [
-    'api_objects' => [
-        Locator::class      => SWbemLocator::class,
-        ObjectItem::class   => SWbemObject::class,
-        ObjectItemEx::class => SWbemObjectEx::class,
-        ObjectPath::class   => SWbemObjectPath::class,
-        ObjectSet::class    => SWbemObjectSet::class,
-        Property::class     => SWbemProperty::class,
-        PropertySet::class  => SWbemPropertySet::class,
-        Qualifier::class    => SWbemQualifier::class,
-        QualifierSet::class => SWbemQualifierSet::class,
-        Services::class     => SWbemServices::class,
-    ],
-
-    'connections' => include('connections.php'),
-];
diff --git a/tests/TestCase.php b/tests/TestCase.php
deleted file mode 100644
index 690e86f..0000000
--- a/tests/TestCase.php
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-
-namespace Tests;
-
-use PHPUnit\Framework\TestCase as BaseTestCase;
-
-abstract class TestCase extends BaseTestCase
-{
-}
diff --git a/tests/WmiScripting/Integration/ScriptingTest.php b/tests/WmiScripting/Integration/ScriptingTest.php
deleted file mode 100644
index 2a86d4c..0000000
--- a/tests/WmiScripting/Integration/ScriptingTest.php
+++ /dev/null
@@ -1,34 +0,0 @@
-<?php
-
-namespace Tests\WmiScripting\Integration;
-
-use Tests\TestCase;
-use PhpWinTools\WmiScripting\Scripting;
-use PhpWinTools\WmiScripting\Models\LogicalDisk;
-use PhpWinTools\WmiScripting\Collections\ModelCollection;
-
-class ScriptingTest extends TestCase
-{
-    /** @var Scripting */
-    protected $scripting;
-
-    protected function setUp()
-    {
-        parent::setUp();
-
-        $this->scripting = new Scripting();
-    }
-
-    /**
-     * @group uses_real_com
-     *
-     * @test
-     */
-    public function it_can_actually_return_a_logical_disk()
-    {
-        $this->assertInstanceOf(ModelCollection::class, $disks = $this->scripting->query()->logicalDisk()->get());
-        $this->assertInstanceOf(LogicalDisk::class, $disks->first(function (LogicalDisk $disk) {
-            return $disk->getAttribute('deviceID') === 'C:';
-        }));
-    }
-}
diff --git a/tests/WmiScripting/Models/Win32ModelCastingTest.php b/tests/WmiScripting/Models/Win32ModelCastingTest.php
deleted file mode 100644
index a9e5081..0000000
--- a/tests/WmiScripting/Models/Win32ModelCastingTest.php
+++ /dev/null
@@ -1,132 +0,0 @@
-<?php
-
-namespace Tests\WmiScripting\Models;
-
-use Tests\TestCase;
-use PhpWinTools\WmiScripting\Models\Win32Model;
-
-class Win32ModelCastingTest extends TestCase
-{
-    /** @test */
-    public function it_can_a_cast_value_to_an_array()
-    {
-        $class = new class extends Win32Model {
-            public $string = 'this is a string';
-
-            protected $attribute_casting = ['string' => 'array'];
-        };
-
-        $this->assertIsNotArray($class->string);
-        $this->assertIsArray($class->getAttribute('string'));
-
-        $class = new class extends Win32Model {
-            public $array = ['im an array'];
-
-            protected $attribute_casting = ['array' => 'array'];
-        };
-
-        $this->assertIsArray($class->array);
-        $this->assertIsArray($class->getAttribute('array'));
-    }
-
-    /** @test */
-    public function it_can_cast_a_value_to_boolean()
-    {
-        $class = new class extends Win32Model {
-            public $stringTrue = 'true';
-            public $stringFalse = 'false';
-            public $stringIntTrue = '1';
-            public $stringIntFalse = '0';
-            public $intTrue = 1;
-            public $intFalse = 0;
-            public $trueBool = true;
-            public $falseBool = false;
-
-            protected $attribute_casting = [
-                'stringTrue'        => 'bool',
-                'stringFalse'       => 'bool',
-                'stringIntTrue'     => 'bool',
-                'stringIntFalse'    => 'bool',
-                'intTrue'           => 'bool',
-                'intFalse'          => 'bool',
-                'trueBool'          => 'boolean',
-                'falseBool'         => 'boolean',
-            ];
-        };
-
-        $this->assertIsNotBool($class->stringTrue);
-        $this->assertIsNotBool($class->stringFalse);
-        $this->assertIsNotBool($class->stringIntTrue);
-        $this->assertIsNotBool($class->stringIntFalse);
-        $this->assertIsNotBool($class->intTrue);
-        $this->assertIsNotBool($class->intFalse);
-
-        $this->assertTrue($class->getAttribute('stringTrue'));
-        $this->assertFalse($class->getAttribute('stringFalse'));
-        $this->assertTrue($class->getAttribute('stringIntTrue'));
-        $this->assertFalse($class->getAttribute('stringIntFalse'));
-        $this->assertTrue($class->getAttribute('intTrue'));
-        $this->assertFalse($class->getAttribute('intFalse'));
-        $this->assertTrue($class->getAttribute('trueBool'));
-        $this->assertFalse($class->getAttribute('falseBool'));
-    }
-
-    /** @test */
-    public function it_can_cast_a_value_to_int()
-    {
-        $class = new class extends Win32Model {
-            public $stringInt = '4321';
-
-            protected $attribute_casting = ['stringInt' => 'int'];
-        };
-
-        $this->assertIsNotInt($class->stringInt);
-        $this->assertIsInt($class->getAttribute('stringInt'));
-
-        $class = new class extends Win32Model {
-            public $stringInt = '4321';
-
-            protected $attribute_casting = ['stringInt' => 'integer'];
-        };
-        $this->assertIsNotInt($class->stringInt);
-        $this->assertIsInt($class->getAttribute('stringInt'));
-    }
-
-    /** @test */
-    public function it_can_cast_a_value_to_string()
-    {
-        $class = new class extends Win32Model {
-            public $int = 1234;
-            public $decimal = 12.34;
-            public $boolTrue = true;
-            public $boolFalse = false;
-            public $array = ['key1' => 'value1', 'key2' => 'value2'];
-
-            protected $attribute_casting = [
-                'int' => 'string',
-                'decimal' => 'string',
-                'boolTrue' => 'string',
-                'boolFalse' => 'string',
-                'array' => 'string',
-            ];
-        };
-
-        $this->assertSame('1234', $class->getAttribute('int'));
-        $this->assertSame('12.34', $class->getAttribute('decimal'));
-        $this->assertSame('true', $class->getAttribute('boolTrue'));
-        $this->assertSame('false', $class->getAttribute('boolFalse'));
-        $this->assertSame(json_encode($class->array), $class->getAttribute('array'));
-    }
-
-    /** @test */
-    public function it_does_nothing_if_the_cast_is_not_recognized()
-    {
-        $class = new class extends Win32Model {
-            public $unknown = 'unknown value';
-
-            protected $attribute_casting = ['unknown' => 'unknown'];
-        };
-
-        $this->assertSame($class->unknown, $class->getAttribute('unknown'));
-    }
-}
diff --git a/tests/WmiScripting/Models/Win32ModelHiddenTest.php b/tests/WmiScripting/Models/Win32ModelHiddenTest.php
deleted file mode 100644
index cbbf56c..0000000
--- a/tests/WmiScripting/Models/Win32ModelHiddenTest.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
-namespace Tests\WmiScripting\Models;
-
-use PhpWinTools\WmiScripting\Models\Account;
-use Tests\TestCase;
-use PhpWinTools\WmiScripting\Models\Win32Model;
-use function PhpWinTools\WmiScripting\Support\class_traits;
-
-class Win32ModelHiddenTest extends TestCase
-{
-    /** @test */
-    public function it_can_hide_values_from_array_transform()
-    {
-        $class = new class extends Win32Model {
-            public $iAmHidden = 'i am some text';
-
-            protected $wmi_class_name = 'test';
-
-            protected $hidden_attributes = ['iAmHidden'];
-        };
-
-        $this->assertArrayNotHasKey('iAmHidden', $class->toArray());
-    }
-}
diff --git a/tests/WmiScripting/Models/Win32ModelTest.php b/tests/WmiScripting/Models/Win32ModelTest.php
deleted file mode 100644
index 27e2ae7..0000000
--- a/tests/WmiScripting/Models/Win32ModelTest.php
+++ /dev/null
@@ -1,332 +0,0 @@
-<?php
-
-namespace Tests\WmiScripting\Models;
-
-use Tests\TestCase;
-use PhpWinTools\WmiScripting\Scripting;
-use PhpWinTools\WmiScripting\Query\Builder;
-use PhpWinTools\WmiScripting\Models\Win32Model;
-use PhpWinTools\WmiScripting\Models\LogicalDisk;
-use PhpWinTools\WmiScripting\MappingStrings\Mappings;
-use PhpWinTools\WmiScripting\Connections\ComConnection;
-use PhpWinTools\WmiScripting\Collections\ModelCollection;
-use PhpWinTools\WmiScripting\Exceptions\InvalidArgumentException;
-use PhpWinTools\WmiScripting\Exceptions\WmiClassNotFoundException;
-use function PhpWinTools\WmiScripting\Support\class_has_property;
-
-class Win32ModelTest extends TestCase
-{
-    /** @test */
-    public function it_can_be_instantiated()
-    {
-        $this->assertInstanceOf(Win32Model::class, new Win32Model());
-        $this->assertInstanceOf(Win32Model::class, Win32Model::newInstance());
-    }
-
-    /** @test */
-    public function it_returns_an_instance_of_builder()
-    {
-        Scripting::fake($this)->win32Model(LogicalDisk::class);
-
-        $testModel = new class extends Win32Model {
-            protected $wmi_class_name = 'test';
-        };
-
-        $this->assertInstanceOf(Builder::class, $testModel::query());
-    }
-
-    /** @test */
-    public function it_can_detect_the_wmi_class_if_not_provided()
-    {
-        $this->assertSame('Win32_LogicalDisk', LogicalDisk::newInstance()->getAttribute('wmi_class_name'));
-    }
-
-    /** @test */
-    public function it_can_detect_the_wmi_class_from_its_parent()
-    {
-        $wmiClass = new class extends LogicalDisk {};
-
-        $this->assertSame('Win32_LogicalDisk', $wmiClass->getAttribute('wmi_class_name'));
-    }
-
-    /** @test */
-    public function it_will_throw_an_exception_if_the_wmi_class_cannot_be_detected()
-    {
-        $this->expectException(WmiClassNotFoundException::class);
-
-        (new class extends Win32Model {})->getAttribute('wmi_class_name');
-    }
-
-    /** @test */
-    public function it_calls_all_on_an_instance_of_builder_with_the_given_connection()
-    {
-         $wmiClass = new class extends Win32Model {
-            public static $builder;
-
-            protected $wmi_class_name = 'test';
-
-            public static function query($connection = null)
-            {
-                return static::$builder;
-            }
-        };
-
-        $connection = $this->getMockBuilder(ComConnection::class)->getMock();
-        $connection->expects($this->once())->method('connect');
-
-        $builder = $this->getMockBuilder(Builder::class)->setConstructorArgs([$wmiClass, $connection])->getMock();
-        $builder->expects($this->once())->method('all')->willReturn(new ModelCollection());
-
-        $wmiClass::$builder = $builder;
-        $wmiClass::all($connection);
-    }
-
-    /** @test */
-    public function it_returns_the_class_name_without_the_namespace()
-    {
-        $this->assertSame('LogicalDisk', LogicalDisk::newInstance()->getClassName());
-    }
-
-    /** @test */
-    public function it_has_a_default_connection_of_default()
-    {
-        $this->assertSame('default', LogicalDisk::newInstance()->getConnectionName());
-        $this->assertInstanceOf(ComConnection::class, LogicalDisk::newInstance()->getConnection());
-    }
-
-    /** @test */
-    public function it_can_return_an_attribute_that_has_corresponding_property()
-    {
-        $model = new LogicalDisk(['driveType' => 1234]);
-
-        $this->assertTrue(class_has_property($model, 'driveType'));
-        $this->assertSame($model->getAttribute('driveType'), 1234);
-    }
-
-    /** @test */
-    public function it_can_modify_a_property_with_an_attribute_method()
-    {
-        $class = new class extends Win32Model {
-            protected $property = 'this_string_has_spaces';
-
-            public function getPropertyAttribute($value)
-            {
-                return str_replace('_', ' ', $value);
-            }
-        };
-
-        $this->assertSame('this string has spaces', $class->getAttribute('property'));
-    }
-
-    /** @test */
-    public function it_can_modify_an_unmapped_attribute_with_an_attribute_method()
-    {
-        $class = new class extends Win32Model {
-            public function getUnmappedAttributeAttribute($value)
-            {
-                return str_replace('SHOULD BE', 'AM', strtoupper($value));
-            }
-        };
-
-        $class->setUnmappedAttribute('unmapped_attribute', 'i should be uppercase');
-        $this->assertSame($class->getAttribute('unmapped_attribute'), 'I AM UPPERCASE');
-
-        /** @var Win32Model $class */
-        $class = new $class();
-
-        $class->setUnmappedAttribute('unmappedAttribute', 'i should be uppercase');
-        $this->assertSame($class->getAttribute('unmappedAttribute'), 'I AM UPPERCASE');
-    }
-
-    /** @test */
-    public function it_can_have_a_calculated_value_using_an_attribute_method()
-    {
-        $class = new class extends Win32Model {
-            public function getCalculatedAttribute()
-            {
-                return "i'm not a property or attribute";
-            }
-        };
-
-        $this->assertSame("i'm not a property or attribute", $class->getAttribute('calculated'));
-    }
-
-    /** @test */
-    public function it_returns_null_if_no_property_or_attribute_is_found()
-    {
-        $class = new class extends Win32Model{};
-
-        $this->assertNull($class->getAttribute('i do not exist'));
-    }
-
-    /** @test */
-    public function it_returns_default_if_no_property_or_attribute_is_found()
-    {
-        $class = new class extends Win32Model{};
-
-        $this->assertSame('but this works', $class->getAttribute('i do not exist', 'but this works'));
-    }
-
-    /** @test */
-    public function it_can_return_an_unmapped_attribute_when_the_property_doesnt_exist()
-    {
-        $class = new class extends Win32Model{};
-
-        $class->setUnmappedAttribute('test_key', 'test_value');
-
-        $this->assertSame($class->getAttribute('test_key'), 'test_value');
-    }
-
-    /** @test */
-    public function it_can_get_an_attribute_by_its_replaced_name()
-    {
-        $class = new class extends Win32Model {
-            public $oldName = 'i am some text';
-
-            protected $attribute_name_replacements = ['oldName' => 'newName'];
-        };
-
-        $this->assertSame($class->oldName, $class->getAttribute('newName'));
-    }
-
-    /** @test */
-    public function it_can_return_an_array()
-    {
-        $class = new class extends Win32Model {
-            protected $wmi_class_name = 'test';
-        };
-
-        $this->assertIsArray($class->toArray());
-    }
-
-    /** @test */
-    public function it_transforms_names_when_transforming_to_an_array()
-    {
-        $class = new class extends Win32Model {
-            public $oldName = 'i am some text';
-
-            protected $wmi_class_name = 'test';
-
-            protected $attribute_name_replacements = ['oldName' => 'newName'];
-        };
-
-        $this->assertArrayNotHasKey('oldName', $class->toArray());
-        $this->assertArrayHasKey('newName', $class->toArray());
-        $this->assertSame($class->oldName, $class->toArray()['newName']);
-    }
-
-    /** @test */
-    public function it_can_return_to_a_json_string()
-    {
-        $class = new class extends Win32Model {
-            protected $wmi_class_name = 'test';
-        };
-
-        $this->assertJson($class->toJson());
-    }
-
-    /** @test */
-    public function it_returns_a_json_string_when_cast_to_string()
-    {
-        $class = new class extends Win32Model {
-            protected $wmi_class_name = 'test';
-        };
-
-        $this->assertJson($class->toString());
-        $this->assertJson((string) $class);
-    }
-
-    /** @test */
-    public function it_reduces_value_arrays_to_just_its_value()
-    {
-        $test_array['valueArray'] = ['value' => 'test value'];
-        $class = new class($test_array) extends Win32Model {
-            protected $wmi_class_name = 'test';
-        };
-
-        $this->assertSame($test_array['valueArray']['value'], $class->toArray()['valueArray']);
-    }
-
-    /** @test */
-    public function it_can_map_a_constant_to_a_string()
-    {
-        $constants = new class extends Mappings {
-            const TEST = 1;
-
-            const STRING_ARRAY = [
-                self::TEST => 'test string',
-            ];
-        };
-
-        $wmiClass = new class extends Win32Model {
-            protected $wmi_class_name = 'test';
-
-            public $constant_class;
-
-            protected $testConstant = 1;
-
-            public function getTestConstantAttribute($value)
-            {
-                return $this->mapConstant($this->constant_class, $value);
-            }
-        };
-
-        $wmiClass->constant_class = get_class($constants);
-
-        $this->assertSame($constants::string(1), $wmiClass->getAttribute('testConstant'));
-    }
-
-    /** @test */
-    public function it_can_returns_the_constant_in_brackets_with_unknown_if_it_cant_be_mapped()
-    {
-        $constants = new class extends Mappings {
-            const TEST = 1;
-
-            const STRING_ARRAY = [
-                self::TEST => 'test string',
-            ];
-        };
-
-        $wmiClass = new class extends Win32Model {
-            protected $wmi_class_name = 'test';
-
-            public $constant_class;
-
-            protected $testConstant = 2;
-
-            public function getTestConstantAttribute($value)
-            {
-                return $this->mapConstant($this->constant_class, $value);
-            }
-        };
-
-        $wmiClass->constant_class = get_class($constants);
-
-        $this->assertSame('[2] - UNKNOWN', $wmiClass->getAttribute('testConstant'));
-    }
-
-    /** @test */
-    public function it_throws_exception_if_constant_class_doesnt_extend_mappings()
-    {
-        $class = new class {};
-
-        $wmiClass = new class extends Win32Model {
-            protected $wmi_class_name = 'test';
-
-            public $constant_class;
-
-            protected $testConstant = 1234;
-
-            public function getTestConstantAttribute($value)
-            {
-                return $this->mapConstant($this->constant_class, $value);
-            }
-        };
-
-        $wmiClass->constant_class = get_class($class);
-
-        $this->expectException(InvalidArgumentException::class);
-
-        $wmiClass->getAttribute('testConstant');
-    }
-}
diff --git a/tests/WmiScripting/ScriptingTest.php b/tests/WmiScripting/ScriptingTest.php
deleted file mode 100644
index 4c31772..0000000
--- a/tests/WmiScripting/ScriptingTest.php
+++ /dev/null
@@ -1,167 +0,0 @@
-<?php
-
-namespace Tests\WmiScripting;
-
-use Tests\TestCase;
-use PhpWinTools\WmiScripting\Scripting;
-use PhpWinTools\WmiScripting\Models\LogicalDisk;
-use PhpWinTools\WmiScripting\Configuration\Config;
-use PhpWinTools\WmiScripting\Connections\ComConnection;
-use PhpWinTools\WmiScripting\Collections\ModelCollection;
-use PhpWinTools\WmiScripting\Exceptions\InvalidConnectionException;
-use PhpWinTools\WmiScripting\Exceptions\InvalidConfigArgumentException;
-
-class ScriptingTest extends TestCase
-{
-    /** @var Config */
-    protected $config;
-
-    protected function setUp(): void
-    {
-        parent::setUp();
-
-        $this->config = Config::killTestInstance();
-    }
-
-    /** @test */
-    public function it_can_instantiate_with_no_parameters()
-    {
-        $this->assertInstanceOf(Scripting::class, new Scripting());
-    }
-
-    /** @test */
-    public function it_can_instantiate_and_use_the_given_configuration()
-    {
-        $config = Config::instance(['test' => 'test value']);
-
-        $this->assertInstanceOf(Scripting::class, $scripting = new Scripting($config));
-        $this->assertSame($config, $scripting->getConfig());
-    }
-
-    /** @test */
-    public function it_can_instantiate_with_a_connection_and_set_it_as_the_default_connection()
-    {
-        $connection = ComConnection::simple('server', 'user', 'password');
-        $scripting = new Scripting($connection);
-
-        $this->assertSame($connection, $scripting->getDefaultConnection());
-    }
-
-    /** @test */
-    public function it_can_instantiate_and_merge_in_a_configuration_array()
-    {
-        $this->assertInstanceOf(Scripting::class, $scripting = new Scripting([
-            'wmi' => [
-                'connections' => [
-                    'default' => 'test',
-
-                    'servers' => [
-                        'test' => [
-                            'server' => 'test',
-                        ],
-                    ]
-                ]
-            ]
-        ]));
-
-        $this->assertSame('test', $scripting->getConfig()->getDefaultConnectionName());
-    }
-
-    /** @test */
-    public function it_throws_an_exception_if_given_an_invalid_config_argument()
-    {
-        $this->expectException(InvalidConfigArgumentException::class);
-
-        new Scripting('asdasdjasdkhjskad');
-    }
-
-    /** @test */
-    public function it_can_fake_a_defined_model_response()
-    {
-        $extendedModel = new class extends LogicalDisk {};
-        $connection = ComConnection::defaultNamespace('fake server', 'fake user name', 'fake password');
-
-        $response = Scripting::fake($this)->win32Model($model = get_class($extendedModel));
-        $modelCollection = $extendedModel::query($connection)->get();
-
-        $response->assertConnectionWasUsed($connection);
-        $this->assertInstanceOf(ModelCollection::class, $modelCollection);
-        $this->assertInstanceOf($model, $result = $modelCollection->first());
-    }
-
-    /** @test */
-    public function it_can_query_a_model_through_wmi_query_factory_with_given_connection()
-    {
-        $scripting = new Scripting();
-        $response = Scripting::fake($this)->win32Model(LogicalDisk::class);
-        $connection = ComConnection::defaultNamespace('fake server', 'fake user name', 'fake password');
-        $model = $scripting->query($connection)->logicalDisk()->get()->first();
-
-        $response->assertConnectionWasUsed($connection);
-        $this->assertInstanceOf(LogicalDisk::class, $model);
-    }
-
-    /** @test */
-    public function it_can_add_a_connection_as_array()
-    {
-        $scripting = new Scripting();
-        $scripting->addConnection('test', [
-            'server'            => $server          = 'test server',
-            'namespace'         => $namespace       = 'test namespace',
-            'user'              => $user            = 'test user',
-            'password'          => $password        = 'test password',
-            'locale'            => $locale          = 'test locale',
-            'authority'         => $authority       = 'test authority',
-            'security_flags'    => $security_flags  = 'test security flags',
-        ]);
-
-        $connection = Config::instance()->getConnection('test');
-
-        $this->assertEquals($server, $connection->getServer());
-        $this->assertEquals($namespace, $connection->getNamespace());
-        $this->assertEquals($user, $connection->getUser());
-        $this->assertEquals($password, $connection->getPassword());
-        $this->assertEquals($locale, $connection->getLocale());
-        $this->assertEquals($authority, $connection->getAuthority());
-        $this->assertEquals($security_flags, $connection->getSecurityFlags());
-    }
-
-    /** @test */
-    public function it_can_add_a_connection_from_an_instance()
-    {
-        $scripting = new Scripting();
-        $scripting->addConnection('test', ComConnection::defaultNamespace('server'));
-
-        $connection = Config::instance()->getConnection('test');
-        $this->assertEquals('server', $connection->getServer());
-    }
-
-    /** @test */
-    public function it_can_set_a_defined_connection_as_default()
-    {
-        $scripting = new Scripting();
-        $scripting->addConnection('test', $connection = ComConnection::defaultNamespace('server'));
-        $scripting->setDefaultConnection('test');
-
-        $this->assertSame($connection, Config::instance()->getConnection());
-    }
-
-    /** @test */
-    public function it_can_add_and_set_a_connection_as_default()
-    {
-        $scripting = new Scripting();
-        $scripting->setDefaultConnection('testing', ComConnection::defaultNamespace('server'));
-
-        $connection = Config::instance()->getConnection('default');
-        $this->assertSame($connection, Config::instance()->getConnection());
-    }
-
-    /** @test */
-    public function it_throws_an_exception_if_given_invalid_connection_value()
-    {
-        $this->expectException(InvalidConnectionException::class);
-
-        $scripting = new Scripting();
-        $scripting->addConnection('test', 'garbage');
-    }
-}
diff --git a/tests/WmiScripting/Support/Configuration/ConfigurationTest.php b/tests/WmiScripting/Support/Configuration/ConfigurationTest.php
deleted file mode 100644
index a2dff6c..0000000
--- a/tests/WmiScripting/Support/Configuration/ConfigurationTest.php
+++ /dev/null
@@ -1,208 +0,0 @@
-<?php
-
-namespace Tests\WmiScripting\Support\Configuration;
-
-use Tests\TestCase;
-use PhpWinTools\WmiScripting\Configuration\Config;
-use PhpWinTools\WmiScripting\Configuration\Resolver;
-use PhpWinTools\WmiScripting\Connections\ComConnection;
-use PhpWinTools\Support\COM\Testing\ComVariantWrapperFake;
-use PhpWinTools\WmiScripting\Support\ApiObjects\Contracts\Locator;
-use PhpWinTools\WmiScripting\Exceptions\InvalidConnectionException;
-use PhpWinTools\WmiScripting\Exceptions\UnresolvableClassException;
-
-class ConfigurationTest extends TestCase
-{
-    /** @test */
-    public function it_can_instantiate()
-    {
-        $this->assertInstanceOf(Config::class, new Config());
-    }
-
-    /** @test */
-    public function it_ends_existing_instances_when_a_test_instance_begins()
-    {
-        $config = Config::killTestInstance(['test' => 'nothing']);
-        $this->assertEquals($config, Config::instance(), "Config::instance() didn't return like config.");
-        $this->assertNotEquals($config, Config::testInstance(), "Config::test() returned same non-test config.");
-    }
-
-    /** @test */
-    public function it_ends_existing_instances_when_end_testing_is_called()
-    {
-        $config = Config::testInstance(['test' => 'nothing']);
-        $this->assertEquals($config, Config::instance());
-        $this->assertNotEquals($config, Config::killTestInstance());
-    }
-
-    /** @test */
-    public function it_can_merge_testing_configuration()
-    {
-        $this->assertEquals(ComVariantWrapperFake::class, Config::testInstance()->getComVariantWrapper());
-        Config::instance()->endTest();
-    }
-
-    /** @test */
-    public function it_can_merge_in_the_given_configuration()
-    {
-        $connection = [
-            'wmi' => [
-                'connections' => [
-                    'servers' => [
-                        'test' => []
-                    ]
-                ]
-            ]
-        ];
-
-        $this->assertInstanceOf(ComConnection::class, Config::newInstance($connection)->getConnection('local'));
-        $this->assertInstanceOf(ComConnection::class, Config::instance()->getConnection('test'));
-        $this->assertInstanceOf(ComConnection::class, Config::instance()->getConnection('default'));
-    }
-
-    /** @test */
-    public function it_sets_the_default_local_connection()
-    {
-        $this->assertEquals(ComConnection::DEFAULT_SERVER, Config::newInstance()->getConnection()->getServer());
-        $this->assertEquals(ComConnection::DEFAULT_NAMESPACE, Config::instance()->getConnection()->getNamespace());
-        $this->assertEquals(Config::instance()->connections()->get('local'), Config::instance()->getConnection());
-        $this->assertEquals(Config::instance()->getConnection('local'), Config::instance()->getConnection('default'));
-    }
-
-    /** @test */
-    public function it_returns_the_same_instance_when_available()
-    {
-        $config = Config::newInstance()->addConnection('test', new ComConnection());
-
-        $this->assertInstanceOf(Config::class, $config);
-        $this->assertEquals($config, Config::instance());
-    }
-
-    /** @test */
-    public function it_can_return_a_new_instance_statically()
-    {
-        $config = Config::newInstance()->addConnection('test', new ComConnection());
-
-        $this->assertInstanceOf(Config::class, $config);
-        $this->assertNotEquals($config, Config::newInstance());
-    }
-
-    /** @test */
-    public function it_throws_an_exception_when_trying_set_a_default_connection_that_doesnt_exist()
-    {
-        $this->expectException(InvalidConnectionException::class);
-
-        Config::instance()->setDefaultConnection('i do not exist');
-    }
-
-    /** @test */
-    public function it_can_return_an_instance_of_resolver()
-    {
-        $this->assertInstanceOf(Resolver::class, Config::newInstance()->resolve());
-        $this->assertInstanceOf(Resolver::class, (Config::newInstance())());
-    }
-
-    /** @test */
-    public function it_can_resolve_a_given_api_object_or_com_object_with_parameters()
-    {
-        $class = new class('test'){
-            public $test;
-            public function __construct($test)
-            {
-                $this->test = $test;
-            }
-        };
-
-        $class_name = get_class($class);
-
-        $config = Config::newInstance()
-            ->addApiObject('test', get_class($class))
-            ->addComObject('comTest', get_class($class));
-
-        $this->assertInstanceOf($class_name, $api_resolved = $config('test', $api_parameter = 'api passed'));
-        $this->assertInstanceOf($class_name, $com_resolved = $config('comTest', $com_parameter = 'com passed'));
-        $this->assertSame($api_resolved->test, $api_parameter);
-        $this->assertSame($com_resolved->test, $com_parameter);
-    }
-
-    /** @test */
-    public function it_can_resolve_an_instance()
-    {
-        $class = new class('test'){
-            public $test;
-            public function __construct($test)
-            {
-                $this->test = $test;
-            }
-        };
-
-
-        $config = Config::newInstance()->addApiObject('test', $class);
-        $this->assertSame($config('test'), $class);
-    }
-
-    /** @test */
-    public function it_can_resolve_a_callable()
-    {
-        $callable = function ($test) {
-            return new class($test){
-                public $test;
-                public function __construct($test)
-                {
-                    $this->test = $test;
-                }
-            };
-        };
-
-
-        $class_name = get_class($callable('test'));
-        $config = Config::newInstance()->addApiObject('test', $callable);
-        $this->assertInstanceOf($class_name, $class = $config('test', $param = 'this is a test'));
-        $this->assertSame($param, $class->test);
-    }
-
-    /** @test */
-    public function it_will_resolve_from_the_stack_and_removes_it_before_resolving_from_anywhere_else()
-    {
-        $callable = function ($test) {
-            return new class($test){
-                public $test;
-                public function __construct($test)
-                {
-                    $this->test = $test;
-                }
-            };
-        };
-
-        $class_name = get_class($callable('test'));
-        $config = Config::newInstance()->addApiObject(Locator::class, $callable($param1 = 'this is from config'));
-
-        // Proves the abstract is in the API Objects and can be resolved from there.
-        $this->assertInstanceOf($class_name, $configClass = $config(Locator::class));
-        $this->assertSame($param1, $configClass->test);
-
-
-        $config->addResolvable(Locator::class, $callable($param2 = 'this is a resolvable'));
-
-        $this->assertTrue($config->hasResolvable(Locator::class));
-        $this->assertInstanceOf($class_name, $configClass = $config(Locator::class));
-        $this->assertSame($param2, $configClass->test);
-        $this->assertFalse($config->hasResolvable(Locator::class));
-    }
-
-    /** @test */
-    public function it_throws_an_exception_if_an_object_could_not_be_resolved_through_invoke()
-    {
-        $this->expectException(UnresolvableClassException::class);
-
-        (Config::newInstance())('unknown class');
-    }
-
-    /** @test */
-    public function it_throws_an_exception_if_an_object_could_not_be_resolved_through_resolve()
-    {
-        $this->expectException(UnresolvableClassException::class);
-
-        Config::newInstance()->resolve()->make('unknown class');
-    }
-}
diff --git a/tests/WmiScripting/Support/functions/ConnectionTest.php b/tests/WmiScripting/Support/functions/ConnectionTest.php
deleted file mode 100644
index 3155214..0000000
--- a/tests/WmiScripting/Support/functions/ConnectionTest.php
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php
-
-namespace Tests\WmiScripting\Support\functions;
-
-use Tests\TestCase;
-use PhpWinTools\WmiScripting\Configuration\Config;
-use PhpWinTools\WmiScripting\Connections\ComConnection;
-use PhpWinTools\WmiScripting\Exceptions\InvalidConnectionException;
-
-use function PhpWinTools\WmiScripting\Support\connection;
-
-class ConnectionTest extends TestCase
-{
-    /** @var Config */
-    protected $config;
-
-    protected function setUp(): void
-    {
-        parent::setUp();
-
-        $this->config = Config::killTestInstance();
-    }
-
-    /** @test */
-    public function it_returns_the_default_connection_if_none_are_supplied()
-    {
-        $this->assertEquals($this->config->getConnection(), connection());
-    }
-
-    /** @test */
-    public function it_returns_the_default_connection_by_name()
-    {
-        $this->assertEquals($this->config->getConnection('local'), connection('local'));
-        $this->assertEquals($this->config->getConnection('default'), connection('default'));
-    }
-
-    /** @test */
-    public function it_uses_the_default_parameter_if_the_given_connection_parameter_cannot_be_found()
-    {
-        $this->assertEquals($this->config->getConnection('local'), connection('not a connection', 'local'));
-    }
-
-    /** @test */
-    public function it_throws_exception_if_connection_cannot_be_found_and_there_is_no_default()
-    {
-        $this->expectException(InvalidConnectionException::class);
-
-        connection('not a connection');
-    }
-
-    /** @test */
-    public function it_throws_exception_if_connection_cannot_be_found_and_default_parameter_is_not_found()
-    {
-        $this->expectException(InvalidConnectionException::class);
-
-        connection('not a connection', 'also not a connection');
-    }
-
-    /** @test */
-    public function it_returns_the_given_connection_if_it_is_an_instance_of_connection()
-    {
-        $this->assertEquals($connection = ComConnection::defaultNamespace('some server'), connection($connection));
-    }
-
-    /** @test */
-    public function it_returns_the_default_parameter_connection_if_it_is_an_instance_of_connection_and_the_given_isnt()
-    {
-        $this->assertEquals($connection = ComConnection::defaultNamespace('some server'), connection('test', $connection));
-    }
-}
diff --git a/docs/.vuepress/dist/wmi-scripting.svg b/wmi-scripting.svg
similarity index 100%
rename from docs/.vuepress/dist/wmi-scripting.svg
rename to wmi-scripting.svg
diff --git a/docs/.vuepress/dist/wmi-squares.png b/wmi-squares.png
similarity index 100%
rename from docs/.vuepress/dist/wmi-squares.png
rename to wmi-squares.png
diff --git a/docs/.vuepress/dist/wmi-squares.svg b/wmi-squares.svg
similarity index 100%
rename from docs/.vuepress/dist/wmi-squares.svg
rename to wmi-squares.svg
diff --git a/yarn.lock b/yarn.lock
deleted file mode 100644
index 971bc5f..0000000
--- a/yarn.lock
+++ /dev/null
@@ -1,7363 +0,0 @@
-# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
-# yarn lockfile v1
-
-
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d"
-  integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw==
-  dependencies:
-    "@babel/highlight" "^7.0.0"
-
-"@babel/core@^7.0.0":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.5.5.tgz#17b2686ef0d6bc58f963dddd68ab669755582c30"
-  integrity sha512-i4qoSr2KTtce0DmkuuQBV4AuQgGPUcPXMr9L5MyYAtk06z068lQ10a4O009fe5OB/DfNV+h+qqT7ddNV8UnRjg==
-  dependencies:
-    "@babel/code-frame" "^7.5.5"
-    "@babel/generator" "^7.5.5"
-    "@babel/helpers" "^7.5.5"
-    "@babel/parser" "^7.5.5"
-    "@babel/template" "^7.4.4"
-    "@babel/traverse" "^7.5.5"
-    "@babel/types" "^7.5.5"
-    convert-source-map "^1.1.0"
-    debug "^4.1.0"
-    json5 "^2.1.0"
-    lodash "^4.17.13"
-    resolve "^1.3.2"
-    semver "^5.4.1"
-    source-map "^0.5.0"
-
-"@babel/generator@^7.5.5":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.5.5.tgz#873a7f936a3c89491b43536d12245b626664e3cf"
-  integrity sha512-ETI/4vyTSxTzGnU2c49XHv2zhExkv9JHLTwDAFz85kmcwuShvYG2H08FwgIguQf4JC75CBnXAUM5PqeF4fj0nQ==
-  dependencies:
-    "@babel/types" "^7.5.5"
-    jsesc "^2.5.1"
-    lodash "^4.17.13"
-    source-map "^0.5.0"
-    trim-right "^1.0.1"
-
-"@babel/helper-annotate-as-pure@^7.0.0":
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32"
-  integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q==
-  dependencies:
-    "@babel/types" "^7.0.0"
-
-"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0":
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f"
-  integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w==
-  dependencies:
-    "@babel/helper-explode-assignable-expression" "^7.1.0"
-    "@babel/types" "^7.0.0"
-
-"@babel/helper-call-delegate@^7.4.4":
-  version "7.4.4"
-  resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43"
-  integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ==
-  dependencies:
-    "@babel/helper-hoist-variables" "^7.4.4"
-    "@babel/traverse" "^7.4.4"
-    "@babel/types" "^7.4.4"
-
-"@babel/helper-create-class-features-plugin@^7.4.4", "@babel/helper-create-class-features-plugin@^7.5.5":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.5.5.tgz#401f302c8ddbc0edd36f7c6b2887d8fa1122e5a4"
-  integrity sha512-ZsxkyYiRA7Bg+ZTRpPvB6AbOFKTFFK4LrvTet8lInm0V468MWCaSYJE+I7v2z2r8KNLtYiV+K5kTCnR7dvyZjg==
-  dependencies:
-    "@babel/helper-function-name" "^7.1.0"
-    "@babel/helper-member-expression-to-functions" "^7.5.5"
-    "@babel/helper-optimise-call-expression" "^7.0.0"
-    "@babel/helper-plugin-utils" "^7.0.0"
-    "@babel/helper-replace-supers" "^7.5.5"
-    "@babel/helper-split-export-declaration" "^7.4.4"
-
-"@babel/helper-define-map@^7.5.5":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.5.5.tgz#3dec32c2046f37e09b28c93eb0b103fd2a25d369"
-  integrity sha512-fTfxx7i0B5NJqvUOBBGREnrqbTxRh7zinBANpZXAVDlsZxYdclDp467G1sQ8VZYMnAURY3RpBUAgOYT9GfzHBg==
-  dependencies:
-    "@babel/helper-function-name" "^7.1.0"
-    "@babel/types" "^7.5.5"
-    lodash "^4.17.13"
-
-"@babel/helper-explode-assignable-expression@^7.1.0":
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6"
-  integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA==
-  dependencies:
-    "@babel/traverse" "^7.1.0"
-    "@babel/types" "^7.0.0"
-
-"@babel/helper-function-name@^7.1.0":
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53"
-  integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw==
-  dependencies:
-    "@babel/helper-get-function-arity" "^7.0.0"
-    "@babel/template" "^7.1.0"
-    "@babel/types" "^7.0.0"
-
-"@babel/helper-get-function-arity@^7.0.0":
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3"
-  integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ==
-  dependencies:
-    "@babel/types" "^7.0.0"
-
-"@babel/helper-hoist-variables@^7.4.4":
-  version "7.4.4"
-  resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a"
-  integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w==
-  dependencies:
-    "@babel/types" "^7.4.4"
-
-"@babel/helper-member-expression-to-functions@^7.5.5":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590"
-  integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA==
-  dependencies:
-    "@babel/types" "^7.5.5"
-
-"@babel/helper-module-imports@^7.0.0":
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d"
-  integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A==
-  dependencies:
-    "@babel/types" "^7.0.0"
-
-"@babel/helper-module-transforms@^7.1.0", "@babel/helper-module-transforms@^7.4.4":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a"
-  integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw==
-  dependencies:
-    "@babel/helper-module-imports" "^7.0.0"
-    "@babel/helper-simple-access" "^7.1.0"
-    "@babel/helper-split-export-declaration" "^7.4.4"
-    "@babel/template" "^7.4.4"
-    "@babel/types" "^7.5.5"
-    lodash "^4.17.13"
-
-"@babel/helper-optimise-call-expression@^7.0.0":
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5"
-  integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g==
-  dependencies:
-    "@babel/types" "^7.0.0"
-
-"@babel/helper-plugin-utils@^7.0.0":
-  version "7.0.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250"
-  integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA==
-
-"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351"
-  integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw==
-  dependencies:
-    lodash "^4.17.13"
-
-"@babel/helper-remap-async-to-generator@^7.1.0":
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.1.0.tgz#361d80821b6f38da75bd3f0785ece20a88c5fe7f"
-  integrity sha512-3fOK0L+Fdlg8S5al8u/hWE6vhufGSn0bN09xm2LXMy//REAF8kDCrYoOBKYmA8m5Nom+sV9LyLCwrFynA8/slg==
-  dependencies:
-    "@babel/helper-annotate-as-pure" "^7.0.0"
-    "@babel/helper-wrap-function" "^7.1.0"
-    "@babel/template" "^7.1.0"
-    "@babel/traverse" "^7.1.0"
-    "@babel/types" "^7.0.0"
-
-"@babel/helper-replace-supers@^7.5.5":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2"
-  integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg==
-  dependencies:
-    "@babel/helper-member-expression-to-functions" "^7.5.5"
-    "@babel/helper-optimise-call-expression" "^7.0.0"
-    "@babel/traverse" "^7.5.5"
-    "@babel/types" "^7.5.5"
-
-"@babel/helper-simple-access@^7.1.0":
-  version "7.1.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c"
-  integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w==
-  dependencies:
-    "@babel/template" "^7.1.0"
-    "@babel/types" "^7.0.0"
-
-"@babel/helper-split-export-declaration@^7.4.4":
-  version "7.4.4"
-  resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677"
-  integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q==
-  dependencies:
-    "@babel/types" "^7.4.4"
-
-"@babel/helper-wrap-function@^7.1.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.2.0.tgz#c4e0012445769e2815b55296ead43a958549f6fa"
-  integrity sha512-o9fP1BZLLSrYlxYEYyl2aS+Flun5gtjTIG8iln+XuEzQTs0PLagAGSXUcqruJwD5fM48jzIEggCKpIfWTcR7pQ==
-  dependencies:
-    "@babel/helper-function-name" "^7.1.0"
-    "@babel/template" "^7.1.0"
-    "@babel/traverse" "^7.1.0"
-    "@babel/types" "^7.2.0"
-
-"@babel/helpers@^7.5.5":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.5.5.tgz#63908d2a73942229d1e6685bc2a0e730dde3b75e"
-  integrity sha512-nRq2BUhxZFnfEn/ciJuhklHvFOqjJUD5wpx+1bxUF2axL9C+v4DE/dmp5sT2dKnpOs4orZWzpAZqlCy8QqE/7g==
-  dependencies:
-    "@babel/template" "^7.4.4"
-    "@babel/traverse" "^7.5.5"
-    "@babel/types" "^7.5.5"
-
-"@babel/highlight@^7.0.0":
-  version "7.5.0"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540"
-  integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ==
-  dependencies:
-    chalk "^2.0.0"
-    esutils "^2.0.2"
-    js-tokens "^4.0.0"
-
-"@babel/parser@^7.4.4", "@babel/parser@^7.5.5":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.5.5.tgz#02f077ac8817d3df4a832ef59de67565e71cca4b"
-  integrity sha512-E5BN68cqR7dhKan1SfqgPGhQ178bkVKpXTPEXnFJBrEt8/DKRZlybmy+IgYLTeN7tp1R5Ccmbm2rBk17sHYU3g==
-
-"@babel/plugin-proposal-async-generator-functions@^7.2.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.2.0.tgz#b289b306669dce4ad20b0252889a15768c9d417e"
-  integrity sha512-+Dfo/SCQqrwx48ptLVGLdE39YtWRuKc/Y9I5Fy0P1DDBB9lsAHpjcEJQt+4IifuSOSTLBKJObJqMvaO1pIE8LQ==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-    "@babel/helper-remap-async-to-generator" "^7.1.0"
-    "@babel/plugin-syntax-async-generators" "^7.2.0"
-
-"@babel/plugin-proposal-class-properties@^7.0.0":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.5.5.tgz#a974cfae1e37c3110e71f3c6a2e48b8e71958cd4"
-  integrity sha512-AF79FsnWFxjlaosgdi421vmYG6/jg79bVD0dpD44QdgobzHKuLZ6S3vl8la9qIeSwGi8i1fS0O1mfuDAAdo1/A==
-  dependencies:
-    "@babel/helper-create-class-features-plugin" "^7.5.5"
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-proposal-decorators@^7.1.0":
-  version "7.4.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.4.4.tgz#de9b2a1a8ab0196f378e2a82f10b6e2a36f21cc0"
-  integrity sha512-z7MpQz3XC/iQJWXH9y+MaWcLPNSMY9RQSthrLzak8R8hCj0fuyNk+Dzi9kfNe/JxxlWQ2g7wkABbgWjW36MTcw==
-  dependencies:
-    "@babel/helper-create-class-features-plugin" "^7.4.4"
-    "@babel/helper-plugin-utils" "^7.0.0"
-    "@babel/plugin-syntax-decorators" "^7.2.0"
-
-"@babel/plugin-proposal-json-strings@^7.2.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317"
-  integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-    "@babel/plugin-syntax-json-strings" "^7.2.0"
-
-"@babel/plugin-proposal-object-rest-spread@^7.3.4":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.5.5.tgz#61939744f71ba76a3ae46b5eea18a54c16d22e58"
-  integrity sha512-F2DxJJSQ7f64FyTVl5cw/9MWn6naXGdk3Q3UhDbFEEHv+EilCPoeRD3Zh/Utx1CJz4uyKlQ4uH+bJPbEhMV7Zw==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-    "@babel/plugin-syntax-object-rest-spread" "^7.2.0"
-
-"@babel/plugin-proposal-optional-catch-binding@^7.2.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5"
-  integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-    "@babel/plugin-syntax-optional-catch-binding" "^7.2.0"
-
-"@babel/plugin-proposal-unicode-property-regex@^7.2.0":
-  version "7.4.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.4.4.tgz#501ffd9826c0b91da22690720722ac7cb1ca9c78"
-  integrity sha512-j1NwnOqMG9mFUOH58JTFsA/+ZYzQLUZ/drqWUqxCYLGeu2JFZL8YrNC9hBxKmWtAuOCHPcRpgv7fhap09Fb4kA==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-    "@babel/helper-regex" "^7.4.4"
-    regexpu-core "^4.5.4"
-
-"@babel/plugin-syntax-async-generators@^7.2.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f"
-  integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-syntax-decorators@^7.2.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.2.0.tgz#c50b1b957dcc69e4b1127b65e1c33eef61570c1b"
-  integrity sha512-38QdqVoXdHUQfTpZo3rQwqQdWtCn5tMv4uV6r2RMfTqNBuv4ZBhz79SfaQWKTVmxHjeFv/DnXVC/+agHCklYWA==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-syntax-dynamic-import@^7.0.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612"
-  integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-syntax-json-strings@^7.2.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470"
-  integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.2.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.2.0.tgz#0b85a3b4bc7cdf4cc4b8bf236335b907ca22e7c7"
-  integrity sha512-VyN4QANJkRW6lDBmENzRszvZf3/4AXaj9YR7GwrWeeN9tEBPuXbmDYVU9bYBN0D70zCWVwUy0HWq2553VCb6Hw==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-syntax-object-rest-spread@^7.2.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e"
-  integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-syntax-optional-catch-binding@^7.2.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c"
-  integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-arrow-functions@^7.2.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550"
-  integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-async-to-generator@^7.3.4":
-  version "7.5.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.5.0.tgz#89a3848a0166623b5bc481164b5936ab947e887e"
-  integrity sha512-mqvkzwIGkq0bEF1zLRRiTdjfomZJDV33AH3oQzHVGkI2VzEmXLpKKOBvEVaFZBJdN0XTyH38s9j/Kiqr68dggg==
-  dependencies:
-    "@babel/helper-module-imports" "^7.0.0"
-    "@babel/helper-plugin-utils" "^7.0.0"
-    "@babel/helper-remap-async-to-generator" "^7.1.0"
-
-"@babel/plugin-transform-block-scoped-functions@^7.2.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190"
-  integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-block-scoping@^7.3.4":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.5.5.tgz#a35f395e5402822f10d2119f6f8e045e3639a2ce"
-  integrity sha512-82A3CLRRdYubkG85lKwhZB0WZoHxLGsJdux/cOVaJCJpvYFl1LVzAIFyRsa7CvXqW8rBM4Zf3Bfn8PHt5DP0Sg==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-    lodash "^4.17.13"
-
-"@babel/plugin-transform-classes@^7.3.4":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.5.5.tgz#d094299d9bd680a14a2a0edae38305ad60fb4de9"
-  integrity sha512-U2htCNK/6e9K7jGyJ++1p5XRU+LJjrwtoiVn9SzRlDT2KubcZ11OOwy3s24TjHxPgxNwonCYP7U2K51uVYCMDg==
-  dependencies:
-    "@babel/helper-annotate-as-pure" "^7.0.0"
-    "@babel/helper-define-map" "^7.5.5"
-    "@babel/helper-function-name" "^7.1.0"
-    "@babel/helper-optimise-call-expression" "^7.0.0"
-    "@babel/helper-plugin-utils" "^7.0.0"
-    "@babel/helper-replace-supers" "^7.5.5"
-    "@babel/helper-split-export-declaration" "^7.4.4"
-    globals "^11.1.0"
-
-"@babel/plugin-transform-computed-properties@^7.2.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da"
-  integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-destructuring@^7.2.0":
-  version "7.5.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.5.0.tgz#f6c09fdfe3f94516ff074fe877db7bc9ef05855a"
-  integrity sha512-YbYgbd3TryYYLGyC7ZR+Tq8H/+bCmwoaxHfJHupom5ECstzbRLTch6gOQbhEY9Z4hiCNHEURgq06ykFv9JZ/QQ==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-dotall-regex@^7.2.0":
-  version "7.4.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.4.4.tgz#361a148bc951444312c69446d76ed1ea8e4450c3"
-  integrity sha512-P05YEhRc2h53lZDjRPk/OektxCVevFzZs2Gfjd545Wde3k+yFDbXORgl2e0xpbq8mLcKJ7Idss4fAg0zORN/zg==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-    "@babel/helper-regex" "^7.4.4"
-    regexpu-core "^4.5.4"
-
-"@babel/plugin-transform-duplicate-keys@^7.2.0":
-  version "7.5.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853"
-  integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-exponentiation-operator@^7.2.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008"
-  integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A==
-  dependencies:
-    "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0"
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-for-of@^7.2.0":
-  version "7.4.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556"
-  integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-function-name@^7.2.0":
-  version "7.4.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.4.4.tgz#e1436116abb0610c2259094848754ac5230922ad"
-  integrity sha512-iU9pv7U+2jC9ANQkKeNF6DrPy4GBa4NWQtl6dHB4Pb3izX2JOEvDTFarlNsBj/63ZEzNNIAMs3Qw4fNCcSOXJA==
-  dependencies:
-    "@babel/helper-function-name" "^7.1.0"
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-literals@^7.2.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1"
-  integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-modules-amd@^7.2.0":
-  version "7.5.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91"
-  integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg==
-  dependencies:
-    "@babel/helper-module-transforms" "^7.1.0"
-    "@babel/helper-plugin-utils" "^7.0.0"
-    babel-plugin-dynamic-import-node "^2.3.0"
-
-"@babel/plugin-transform-modules-commonjs@^7.2.0":
-  version "7.5.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.5.0.tgz#425127e6045231360858eeaa47a71d75eded7a74"
-  integrity sha512-xmHq0B+ytyrWJvQTc5OWAC4ii6Dhr0s22STOoydokG51JjWhyYo5mRPXoi+ZmtHQhZZwuXNN+GG5jy5UZZJxIQ==
-  dependencies:
-    "@babel/helper-module-transforms" "^7.4.4"
-    "@babel/helper-plugin-utils" "^7.0.0"
-    "@babel/helper-simple-access" "^7.1.0"
-    babel-plugin-dynamic-import-node "^2.3.0"
-
-"@babel/plugin-transform-modules-systemjs@^7.3.4":
-  version "7.5.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.5.0.tgz#e75266a13ef94202db2a0620977756f51d52d249"
-  integrity sha512-Q2m56tyoQWmuNGxEtUyeEkm6qJYFqs4c+XyXH5RAuYxObRNz9Zgj/1g2GMnjYp2EUyEy7YTrxliGCXzecl/vJg==
-  dependencies:
-    "@babel/helper-hoist-variables" "^7.4.4"
-    "@babel/helper-plugin-utils" "^7.0.0"
-    babel-plugin-dynamic-import-node "^2.3.0"
-
-"@babel/plugin-transform-modules-umd@^7.2.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.2.0.tgz#7678ce75169f0877b8eb2235538c074268dd01ae"
-  integrity sha512-BV3bw6MyUH1iIsGhXlOK6sXhmSarZjtJ/vMiD9dNmpY8QXFFQTj+6v92pcfy1iqa8DeAfJFwoxcrS/TUZda6sw==
-  dependencies:
-    "@babel/helper-module-transforms" "^7.1.0"
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-named-capturing-groups-regex@^7.3.0":
-  version "7.4.5"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.4.5.tgz#9d269fd28a370258199b4294736813a60bbdd106"
-  integrity sha512-z7+2IsWafTBbjNsOxU/Iv5CvTJlr5w4+HGu1HovKYTtgJ362f7kBcQglkfmlspKKZ3bgrbSGvLfNx++ZJgCWsg==
-  dependencies:
-    regexp-tree "^0.1.6"
-
-"@babel/plugin-transform-new-target@^7.0.0":
-  version "7.4.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5"
-  integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-object-super@^7.2.0":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9"
-  integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-    "@babel/helper-replace-supers" "^7.5.5"
-
-"@babel/plugin-transform-parameters@^7.2.0":
-  version "7.4.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16"
-  integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw==
-  dependencies:
-    "@babel/helper-call-delegate" "^7.4.4"
-    "@babel/helper-get-function-arity" "^7.0.0"
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-regenerator@^7.3.4":
-  version "7.4.5"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.4.5.tgz#629dc82512c55cee01341fb27bdfcb210354680f"
-  integrity sha512-gBKRh5qAaCWntnd09S8QC7r3auLCqq5DI6O0DlfoyDjslSBVqBibrMdsqO+Uhmx3+BlOmE/Kw1HFxmGbv0N9dA==
-  dependencies:
-    regenerator-transform "^0.14.0"
-
-"@babel/plugin-transform-runtime@^7.4.0":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.5.5.tgz#a6331afbfc59189d2135b2e09474457a8e3d28bc"
-  integrity sha512-6Xmeidsun5rkwnGfMOp6/z9nSzWpHFNVr2Jx7kwoq4mVatQfQx5S56drBgEHF+XQbKOdIaOiMIINvp/kAwMN+w==
-  dependencies:
-    "@babel/helper-module-imports" "^7.0.0"
-    "@babel/helper-plugin-utils" "^7.0.0"
-    resolve "^1.8.1"
-    semver "^5.5.1"
-
-"@babel/plugin-transform-shorthand-properties@^7.2.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0"
-  integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-spread@^7.2.0":
-  version "7.2.2"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.2.2.tgz#3103a9abe22f742b6d406ecd3cd49b774919b406"
-  integrity sha512-KWfky/58vubwtS0hLqEnrWJjsMGaOeSBn90Ezn5Jeg9Z8KKHmELbP1yGylMlm5N6TPKeY9A2+UaSYLdxahg01w==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-sticky-regex@^7.2.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1"
-  integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-    "@babel/helper-regex" "^7.0.0"
-
-"@babel/plugin-transform-template-literals@^7.2.0":
-  version "7.4.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0"
-  integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g==
-  dependencies:
-    "@babel/helper-annotate-as-pure" "^7.0.0"
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-typeof-symbol@^7.2.0":
-  version "7.2.0"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2"
-  integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-
-"@babel/plugin-transform-unicode-regex@^7.2.0":
-  version "7.4.4"
-  resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.4.4.tgz#ab4634bb4f14d36728bf5978322b35587787970f"
-  integrity sha512-il+/XdNw01i93+M9J9u4T7/e/Ue/vWfNZE4IRUQjplu2Mqb/AFTDimkw2tdEdSH50wuQXZAbXSql0UphQke+vA==
-  dependencies:
-    "@babel/helper-plugin-utils" "^7.0.0"
-    "@babel/helper-regex" "^7.4.4"
-    regexpu-core "^4.5.4"
-
-"@babel/preset-env@^7.0.0 < 7.4.0":
-  version "7.3.4"
-  resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.3.4.tgz#887cf38b6d23c82f19b5135298bdb160062e33e1"
-  integrity sha512-2mwqfYMK8weA0g0uBKOt4FE3iEodiHy9/CW0b+nWXcbL+pGzLx8ESYc+j9IIxr6LTDHWKgPm71i9smo02bw+gA==
-  dependencies:
-    "@babel/helper-module-imports" "^7.0.0"
-    "@babel/helper-plugin-utils" "^7.0.0"
-    "@babel/plugin-proposal-async-generator-functions" "^7.2.0"
-    "@babel/plugin-proposal-json-strings" "^7.2.0"
-    "@babel/plugin-proposal-object-rest-spread" "^7.3.4"
-    "@babel/plugin-proposal-optional-catch-binding" "^7.2.0"
-    "@babel/plugin-proposal-unicode-property-regex" "^7.2.0"
-    "@babel/plugin-syntax-async-generators" "^7.2.0"
-    "@babel/plugin-syntax-json-strings" "^7.2.0"
-    "@babel/plugin-syntax-object-rest-spread" "^7.2.0"
-    "@babel/plugin-syntax-optional-catch-binding" "^7.2.0"
-    "@babel/plugin-transform-arrow-functions" "^7.2.0"
-    "@babel/plugin-transform-async-to-generator" "^7.3.4"
-    "@babel/plugin-transform-block-scoped-functions" "^7.2.0"
-    "@babel/plugin-transform-block-scoping" "^7.3.4"
-    "@babel/plugin-transform-classes" "^7.3.4"
-    "@babel/plugin-transform-computed-properties" "^7.2.0"
-    "@babel/plugin-transform-destructuring" "^7.2.0"
-    "@babel/plugin-transform-dotall-regex" "^7.2.0"
-    "@babel/plugin-transform-duplicate-keys" "^7.2.0"
-    "@babel/plugin-transform-exponentiation-operator" "^7.2.0"
-    "@babel/plugin-transform-for-of" "^7.2.0"
-    "@babel/plugin-transform-function-name" "^7.2.0"
-    "@babel/plugin-transform-literals" "^7.2.0"
-    "@babel/plugin-transform-modules-amd" "^7.2.0"
-    "@babel/plugin-transform-modules-commonjs" "^7.2.0"
-    "@babel/plugin-transform-modules-systemjs" "^7.3.4"
-    "@babel/plugin-transform-modules-umd" "^7.2.0"
-    "@babel/plugin-transform-named-capturing-groups-regex" "^7.3.0"
-    "@babel/plugin-transform-new-target" "^7.0.0"
-    "@babel/plugin-transform-object-super" "^7.2.0"
-    "@babel/plugin-transform-parameters" "^7.2.0"
-    "@babel/plugin-transform-regenerator" "^7.3.4"
-    "@babel/plugin-transform-shorthand-properties" "^7.2.0"
-    "@babel/plugin-transform-spread" "^7.2.0"
-    "@babel/plugin-transform-sticky-regex" "^7.2.0"
-    "@babel/plugin-transform-template-literals" "^7.2.0"
-    "@babel/plugin-transform-typeof-symbol" "^7.2.0"
-    "@babel/plugin-transform-unicode-regex" "^7.2.0"
-    browserslist "^4.3.4"
-    invariant "^2.2.2"
-    js-levenshtein "^1.1.3"
-    semver "^5.3.0"
-
-"@babel/runtime-corejs2@^7.2.0":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/runtime-corejs2/-/runtime-corejs2-7.5.5.tgz#c3214c08ef20341af4187f1c9fbdc357fbec96b2"
-  integrity sha512-FYATQVR00NSNi7mUfpPDp7E8RYMXDuO8gaix7u/w3GekfUinKgX1AcTxs7SoiEmoEW9mbpjrwqWSW6zCmw5h8A==
-  dependencies:
-    core-js "^2.6.5"
-    regenerator-runtime "^0.13.2"
-
-"@babel/runtime@^7.0.0":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.5.5.tgz#74fba56d35efbeca444091c7850ccd494fd2f132"
-  integrity sha512-28QvEGyQyNkB0/m2B4FU7IEZGK2NUrcMtT6BZEFALTguLk+AUT6ofsHtPk5QyjAdUkpMJ+/Em+quwz4HOt30AQ==
-  dependencies:
-    regenerator-runtime "^0.13.2"
-
-"@babel/template@^7.1.0", "@babel/template@^7.4.4":
-  version "7.4.4"
-  resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.4.4.tgz#f4b88d1225689a08f5bc3a17483545be9e4ed237"
-  integrity sha512-CiGzLN9KgAvgZsnivND7rkA+AeJ9JB0ciPOD4U59GKbQP2iQl+olF1l76kJOupqidozfZ32ghwBEJDhnk9MEcw==
-  dependencies:
-    "@babel/code-frame" "^7.0.0"
-    "@babel/parser" "^7.4.4"
-    "@babel/types" "^7.4.4"
-
-"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.5.5.tgz#f664f8f368ed32988cd648da9f72d5ca70f165bb"
-  integrity sha512-MqB0782whsfffYfSjH4TM+LMjrJnhCNEDMDIjeTpl+ASaUvxcjoiVCo/sM1GhS1pHOXYfWVCYneLjMckuUxDaQ==
-  dependencies:
-    "@babel/code-frame" "^7.5.5"
-    "@babel/generator" "^7.5.5"
-    "@babel/helper-function-name" "^7.1.0"
-    "@babel/helper-split-export-declaration" "^7.4.4"
-    "@babel/parser" "^7.5.5"
-    "@babel/types" "^7.5.5"
-    debug "^4.1.0"
-    globals "^11.1.0"
-    lodash "^4.17.13"
-
-"@babel/types@^7.0.0", "@babel/types@^7.2.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5":
-  version "7.5.5"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.5.5.tgz#97b9f728e182785909aa4ab56264f090a028d18a"
-  integrity sha512-s63F9nJioLqOlW3UkyMd+BYhXt44YuaFm/VV0VwuteqjYwRrObkU7ra9pY4wAJR3oXi8hJrMcrcJdO/HH33vtw==
-  dependencies:
-    esutils "^2.0.2"
-    lodash "^4.17.13"
-    to-fast-properties "^2.0.0"
-
-"@mrmlnc/readdir-enhanced@^2.2.1":
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde"
-  integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==
-  dependencies:
-    call-me-maybe "^1.0.1"
-    glob-to-regexp "^0.3.0"
-
-"@nodelib/fs.stat@^1.1.2":
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b"
-  integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==
-
-"@types/events@*":
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
-  integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==
-
-"@types/glob@^7.1.1":
-  version "7.1.1"
-  resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575"
-  integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==
-  dependencies:
-    "@types/events" "*"
-    "@types/minimatch" "*"
-    "@types/node" "*"
-
-"@types/minimatch@*":
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
-  integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==
-
-"@types/node@*":
-  version "12.7.4"
-  resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.4.tgz#64db61e0359eb5a8d99b55e05c729f130a678b04"
-  integrity sha512-W0+n1Y+gK/8G2P/piTkBBN38Qc5Q1ZSO6B5H3QmPCUewaiXOo2GCAWZ4ElZCcNhjJuBSUSLGFUJnmlCn5+nxOQ==
-
-"@types/q@^1.5.1":
-  version "1.5.2"
-  resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8"
-  integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw==
-
-"@vue/babel-helper-vue-jsx-merge-props@^1.0.0":
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.0.0.tgz#048fe579958da408fb7a8b2a3ec050b50a661040"
-  integrity sha512-6tyf5Cqm4m6v7buITuwS+jHzPlIPxbFzEhXR5JGZpbrvOcp1hiQKckd305/3C7C36wFekNTQSxAtgeM0j0yoUw==
-
-"@vue/babel-plugin-transform-vue-jsx@^1.0.0":
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/@vue/babel-plugin-transform-vue-jsx/-/babel-plugin-transform-vue-jsx-1.0.0.tgz#ebcbf39c312c94114c8c4f407ee4f6c97aa45432"
-  integrity sha512-U+JNwVQSmaLKjO3lzCUC3cNXxprgezV1N+jOdqbP4xWNaqtWUCJnkjTVcgECM18A/AinDKPcUUeoyhU7yxUxXQ==
-  dependencies:
-    "@babel/helper-module-imports" "^7.0.0"
-    "@babel/plugin-syntax-jsx" "^7.2.0"
-    "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0"
-    html-tags "^2.0.0"
-    lodash.kebabcase "^4.1.1"
-    svg-tags "^1.0.0"
-
-"@vue/babel-preset-app@^3.1.1":
-  version "3.11.0"
-  resolved "https://registry.yarnpkg.com/@vue/babel-preset-app/-/babel-preset-app-3.11.0.tgz#52bf79c15560a304a13f4770e3e5530e01dd6173"
-  integrity sha512-fcCq9nuGGx1WGnyaKHvIC8RnWjISXGf1rJH4mN9+bymDfosgDbwnfV4TYvTZlyK1/aTHEEpIoO3XimTXBo7QBw==
-  dependencies:
-    "@babel/helper-module-imports" "^7.0.0"
-    "@babel/plugin-proposal-class-properties" "^7.0.0"
-    "@babel/plugin-proposal-decorators" "^7.1.0"
-    "@babel/plugin-syntax-dynamic-import" "^7.0.0"
-    "@babel/plugin-syntax-jsx" "^7.0.0"
-    "@babel/plugin-transform-runtime" "^7.4.0"
-    "@babel/preset-env" "^7.0.0 < 7.4.0"
-    "@babel/runtime" "^7.0.0"
-    "@babel/runtime-corejs2" "^7.2.0"
-    "@vue/babel-preset-jsx" "^1.0.0"
-    babel-plugin-dynamic-import-node "^2.2.0"
-    babel-plugin-module-resolver "3.2.0"
-    core-js "^2.6.5"
-
-"@vue/babel-preset-jsx@^1.0.0":
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/@vue/babel-preset-jsx/-/babel-preset-jsx-1.1.0.tgz#c8001329f5b372297a3111a251eb4f9e956c1266"
-  integrity sha512-EeZ9gwEmu79B4A6LMLAw5cPCVYIcbKWgJgJafWtLzh1S+SgERUmTkVQ9Vx4k8zYBiCuxHK3XziZ3VJIMau7THA==
-  dependencies:
-    "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0"
-    "@vue/babel-plugin-transform-vue-jsx" "^1.0.0"
-    "@vue/babel-sugar-functional-vue" "^1.0.0"
-    "@vue/babel-sugar-inject-h" "^1.0.0"
-    "@vue/babel-sugar-v-model" "^1.0.0"
-    "@vue/babel-sugar-v-on" "^1.1.0"
-
-"@vue/babel-sugar-functional-vue@^1.0.0":
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/@vue/babel-sugar-functional-vue/-/babel-sugar-functional-vue-1.0.0.tgz#17e2c4ca27b74b244da3b923240ec91d10048cb3"
-  integrity sha512-XE/jNaaorTuhWayCz+QClk5AB9OV5HzrwbzEC6sIUY0J60A28ONQKeTwxfidW42egOkqNH/UU6eE3KLfmiDj0Q==
-  dependencies:
-    "@babel/plugin-syntax-jsx" "^7.2.0"
-
-"@vue/babel-sugar-inject-h@^1.0.0":
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/@vue/babel-sugar-inject-h/-/babel-sugar-inject-h-1.0.0.tgz#e5efb6c5b5b7988dc03831af6d133bf7bcde6347"
-  integrity sha512-NxWU+DqtbZgfGvd25GPoFMj+rvyQ8ZA1pHj8vIeqRij+vx3sXoKkObjA9ulZunvWw5F6uG9xYy4ytpxab/X+Hg==
-  dependencies:
-    "@babel/plugin-syntax-jsx" "^7.2.0"
-
-"@vue/babel-sugar-v-model@^1.0.0":
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-model/-/babel-sugar-v-model-1.0.0.tgz#f4da56aa67f65a349bd2c269a95e72e601af4613"
-  integrity sha512-Pfg2Al0io66P1eO6zUbRIgpyKCU2qTnumiE0lao/wA/uNdb7Dx5Tfd1W6tO5SsByETPnEs8i8+gawRIXX40rFw==
-  dependencies:
-    "@babel/plugin-syntax-jsx" "^7.2.0"
-    "@vue/babel-helper-vue-jsx-merge-props" "^1.0.0"
-    "@vue/babel-plugin-transform-vue-jsx" "^1.0.0"
-    camelcase "^5.0.0"
-    html-tags "^2.0.0"
-    svg-tags "^1.0.0"
-
-"@vue/babel-sugar-v-on@^1.1.0":
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/@vue/babel-sugar-v-on/-/babel-sugar-v-on-1.1.0.tgz#1f2b35eeeabb87eaf8925931f4d34fd8e6404a45"
-  integrity sha512-8DwAj/RLpmrDP4eZ3erJcKcyuLArLUYagNODTsSQrMdG5zmLJoFFtEjODfYRh/XxM2wXv9Wxe+HAB41FQxxwQA==
-  dependencies:
-    "@babel/plugin-syntax-jsx" "^7.2.0"
-    "@vue/babel-plugin-transform-vue-jsx" "^1.0.0"
-    camelcase "^5.0.0"
-
-"@vue/component-compiler-utils@^3.0.0":
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.0.0.tgz#d16fa26b836c06df5baaeb45f3d80afc47e35634"
-  integrity sha512-am+04/0UX7ektcmvhYmrf84BDVAD8afFOf4asZjN84q8xzxFclbk5x0MtxuKGfp+zjN5WWPJn3fjFAWtDdIGSw==
-  dependencies:
-    consolidate "^0.15.1"
-    hash-sum "^1.0.2"
-    lru-cache "^4.1.2"
-    merge-source-map "^1.1.0"
-    postcss "^7.0.14"
-    postcss-selector-parser "^5.0.0"
-    prettier "1.16.3"
-    source-map "~0.6.1"
-    vue-template-es2015-compiler "^1.9.0"
-
-"@vuepress/core@^1.0.4":
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/@vuepress/core/-/core-1.0.4.tgz#623c5cc4d9865e60a11917af01cdaa1b41dbe5d2"
-  integrity sha512-ZF3e7nHCSREM0Yq/LyMmZEL3Qv85JVrqIgCHlv3goW9Ay5gn/YLy1JaG2+/1JgDFfw5Hr+qmtGs3aExGSeOS+Q==
-  dependencies:
-    "@babel/core" "^7.0.0"
-    "@vue/babel-preset-app" "^3.1.1"
-    "@vuepress/markdown" "^1.0.4"
-    "@vuepress/markdown-loader" "^1.0.4"
-    "@vuepress/plugin-last-updated" "^1.0.4"
-    "@vuepress/plugin-register-components" "^1.0.4"
-    "@vuepress/shared-utils" "^1.0.4"
-    autoprefixer "^9.5.1"
-    babel-loader "^8.0.4"
-    cache-loader "^3.0.0"
-    chokidar "^2.0.3"
-    connect-history-api-fallback "^1.5.0"
-    copy-webpack-plugin "^5.0.2"
-    cross-spawn "^6.0.5"
-    css-loader "^2.1.1"
-    file-loader "^3.0.1"
-    js-yaml "^3.11.0"
-    lru-cache "^5.1.1"
-    mini-css-extract-plugin "0.6.0"
-    optimize-css-assets-webpack-plugin "^5.0.1"
-    portfinder "^1.0.13"
-    postcss-loader "^3.0.0"
-    postcss-safe-parser "^4.0.1"
-    toml "^3.0.0"
-    url-loader "^1.0.1"
-    vue "^2.5.16"
-    vue-loader "^15.2.4"
-    vue-router "^3.0.2"
-    vue-server-renderer "^2.5.16"
-    vue-template-compiler "^2.5.16"
-    vuepress-html-webpack-plugin "^3.2.0"
-    vuepress-plugin-container "^2.0.0"
-    webpack "^4.8.1"
-    webpack-chain "^4.6.0"
-    webpack-dev-server "^3.5.1"
-    webpack-merge "^4.1.2"
-    webpackbar "3.2.0"
-
-"@vuepress/markdown-loader@^1.0.4":
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/@vuepress/markdown-loader/-/markdown-loader-1.0.4.tgz#2c54772889b19dcb8b2703cadd6088b96d748adb"
-  integrity sha512-kgePl2Oo0q8VGZe3tiuj88UJF1Mpn8Hp7bg0SSpa70WO6ne4S5u8H1M+80fClbuLLoyc5jtb92XcDkfzlnCurw==
-  dependencies:
-    "@vuepress/markdown" "^1.0.4"
-    loader-utils "^1.1.0"
-    lru-cache "^5.1.1"
-
-"@vuepress/markdown@^1.0.4":
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/@vuepress/markdown/-/markdown-1.0.4.tgz#ab0a403e78acb36fa24d90061191caadad7cb77c"
-  integrity sha512-xBEzq09UrAnQm1W7UVJ9UDraBTYJUyFj0aJOBwzKoG0QtGzK9ah6WTCeKOskvzLYQkqToVtig82q2uoKU9PH2A==
-  dependencies:
-    "@vuepress/shared-utils" "^1.0.4"
-    markdown-it "^8.4.1"
-    markdown-it-anchor "^5.0.2"
-    markdown-it-chain "^1.3.0"
-    markdown-it-emoji "^1.4.0"
-    markdown-it-table-of-contents "^0.4.0"
-    prismjs "^1.13.0"
-
-"@vuepress/plugin-active-header-links@^1.0.4":
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/@vuepress/plugin-active-header-links/-/plugin-active-header-links-1.0.4.tgz#877d3b607597f9902deaac5184d79b6b2f6139b2"
-  integrity sha512-sYT1yvBeUMW9cTHVzrKl1mzCmMQCwROVTe2B7N1UvtLpYT+xvu33Uttbk9Aj/p5PxqGH65vaTBKaQoGkdyMp3g==
-  dependencies:
-    lodash.throttle "^4.1.1"
-
-"@vuepress/plugin-last-updated@^1.0.4":
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/@vuepress/plugin-last-updated/-/plugin-last-updated-1.0.4.tgz#ff50eaf74a9b1e27702b411532efd74801256941"
-  integrity sha512-HOUj4XJPnoAlYdeo7GPXVXNjC/A28u8bwvIBi92w5uBlNyYs4tjZMso/WVaMhH9Q7touYIp5PCcZTzACoOMNwg==
-  dependencies:
-    cross-spawn "^6.0.5"
-
-"@vuepress/plugin-nprogress@^1.0.4":
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/@vuepress/plugin-nprogress/-/plugin-nprogress-1.0.4.tgz#65628758a310552806c266d54a135555fbf67276"
-  integrity sha512-hhykZwb5Sh3oVIOz7nrjF59KImH+N6V4HphKni740G9LOu2577JU/Jf3MOxqTqRTAnrS73QvrE1dv6xJJ/HQqg==
-  dependencies:
-    nprogress "^0.2.0"
-
-"@vuepress/plugin-register-components@^1.0.4":
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/@vuepress/plugin-register-components/-/plugin-register-components-1.0.4.tgz#1a714d393842b5454443bbe3aa2b91b64995eb93"
-  integrity sha512-v5K2a8dsmIaynHh6LnFEbSfoCR8nM03vX+vS90iYPMdcE44DTL1d56YRf0zsRD0NN96gkIjcRA3NpSY5Oe8cGg==
-  dependencies:
-    "@vuepress/shared-utils" "^1.0.4"
-
-"@vuepress/plugin-search@^1.0.4":
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/@vuepress/plugin-search/-/plugin-search-1.0.4.tgz#991a896cacb8f0bd6dc5789f8a2d93be32ae0abd"
-  integrity sha512-Jx+PDjkOiksX/E3fEQNbj2GP/g75giv8CoFl+9DyM3kxdDlUAC3N9Sd41SrYJ9lYlXG3ICEQAUyHYSjVvYKAuA==
-
-"@vuepress/shared-utils@^1.0.4":
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/@vuepress/shared-utils/-/shared-utils-1.0.4.tgz#520c5a6ae263accd29efc8dfad727ad62052ded2"
-  integrity sha512-64Rlyb6HOhoeJDa6BbTGKVEgFqIJWdr6vO3o+wmAgKSvX7sqdT0Hs6ETjtt9jWSbjeQTjwP1XbXwKrpEY2jWKw==
-  dependencies:
-    chalk "^2.3.2"
-    diacritics "^1.3.0"
-    escape-html "^1.0.3"
-    fs-extra "^7.0.1"
-    globby "^9.2.0"
-    gray-matter "^4.0.1"
-    hash-sum "^1.0.2"
-    semver "^6.0.0"
-    upath "^1.1.0"
-
-"@vuepress/theme-default@^1.0.4":
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/@vuepress/theme-default/-/theme-default-1.0.4.tgz#a74fb0cf093ca8b78b4ef1157d2130505606e1d2"
-  integrity sha512-H6tZFgxIWYNnjLJVmcWBolWNy15c0keEY0ck2Lv3KkuzfkrABPbOuBLGcdG7vPAJBT+BDKpsJHoBpfGF7KwY1g==
-  dependencies:
-    "@vuepress/plugin-active-header-links" "^1.0.4"
-    "@vuepress/plugin-nprogress" "^1.0.4"
-    "@vuepress/plugin-search" "^1.0.4"
-    docsearch.js "^2.5.2"
-    lodash "^4.17.15"
-    stylus "^0.54.5"
-    stylus-loader "^3.0.2"
-    vuepress-plugin-container "^2.0.0"
-
-"@webassemblyjs/ast@1.8.5":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359"
-  integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==
-  dependencies:
-    "@webassemblyjs/helper-module-context" "1.8.5"
-    "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
-    "@webassemblyjs/wast-parser" "1.8.5"
-
-"@webassemblyjs/floating-point-hex-parser@1.8.5":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721"
-  integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==
-
-"@webassemblyjs/helper-api-error@1.8.5":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7"
-  integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==
-
-"@webassemblyjs/helper-buffer@1.8.5":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204"
-  integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==
-
-"@webassemblyjs/helper-code-frame@1.8.5":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e"
-  integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==
-  dependencies:
-    "@webassemblyjs/wast-printer" "1.8.5"
-
-"@webassemblyjs/helper-fsm@1.8.5":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452"
-  integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==
-
-"@webassemblyjs/helper-module-context@1.8.5":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245"
-  integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==
-  dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    mamacro "^0.0.3"
-
-"@webassemblyjs/helper-wasm-bytecode@1.8.5":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61"
-  integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==
-
-"@webassemblyjs/helper-wasm-section@1.8.5":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf"
-  integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==
-  dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    "@webassemblyjs/helper-buffer" "1.8.5"
-    "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
-    "@webassemblyjs/wasm-gen" "1.8.5"
-
-"@webassemblyjs/ieee754@1.8.5":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e"
-  integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==
-  dependencies:
-    "@xtuc/ieee754" "^1.2.0"
-
-"@webassemblyjs/leb128@1.8.5":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10"
-  integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==
-  dependencies:
-    "@xtuc/long" "4.2.2"
-
-"@webassemblyjs/utf8@1.8.5":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc"
-  integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==
-
-"@webassemblyjs/wasm-edit@1.8.5":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a"
-  integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==
-  dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    "@webassemblyjs/helper-buffer" "1.8.5"
-    "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
-    "@webassemblyjs/helper-wasm-section" "1.8.5"
-    "@webassemblyjs/wasm-gen" "1.8.5"
-    "@webassemblyjs/wasm-opt" "1.8.5"
-    "@webassemblyjs/wasm-parser" "1.8.5"
-    "@webassemblyjs/wast-printer" "1.8.5"
-
-"@webassemblyjs/wasm-gen@1.8.5":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc"
-  integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==
-  dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
-    "@webassemblyjs/ieee754" "1.8.5"
-    "@webassemblyjs/leb128" "1.8.5"
-    "@webassemblyjs/utf8" "1.8.5"
-
-"@webassemblyjs/wasm-opt@1.8.5":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264"
-  integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==
-  dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    "@webassemblyjs/helper-buffer" "1.8.5"
-    "@webassemblyjs/wasm-gen" "1.8.5"
-    "@webassemblyjs/wasm-parser" "1.8.5"
-
-"@webassemblyjs/wasm-parser@1.8.5":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d"
-  integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==
-  dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    "@webassemblyjs/helper-api-error" "1.8.5"
-    "@webassemblyjs/helper-wasm-bytecode" "1.8.5"
-    "@webassemblyjs/ieee754" "1.8.5"
-    "@webassemblyjs/leb128" "1.8.5"
-    "@webassemblyjs/utf8" "1.8.5"
-
-"@webassemblyjs/wast-parser@1.8.5":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c"
-  integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==
-  dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    "@webassemblyjs/floating-point-hex-parser" "1.8.5"
-    "@webassemblyjs/helper-api-error" "1.8.5"
-    "@webassemblyjs/helper-code-frame" "1.8.5"
-    "@webassemblyjs/helper-fsm" "1.8.5"
-    "@xtuc/long" "4.2.2"
-
-"@webassemblyjs/wast-printer@1.8.5":
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc"
-  integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==
-  dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    "@webassemblyjs/wast-parser" "1.8.5"
-    "@xtuc/long" "4.2.2"
-
-"@xtuc/ieee754@^1.2.0":
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790"
-  integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==
-
-"@xtuc/long@4.2.2":
-  version "4.2.2"
-  resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
-  integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
-
-abbrev@1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
-  integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
-
-accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
-  version "1.3.7"
-  resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
-  integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==
-  dependencies:
-    mime-types "~2.1.24"
-    negotiator "0.6.2"
-
-acorn@^6.2.1:
-  version "6.3.0"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e"
-  integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA==
-
-agentkeepalive@^2.2.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-2.2.0.tgz#c5d1bd4b129008f1163f236f86e5faea2026e2ef"
-  integrity sha1-xdG9SxKQCPEWPyNvhuX66iAm4u8=
-
-ajv-errors@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
-  integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==
-
-ajv-keywords@^3.1.0, ajv-keywords@^3.4.1:
-  version "3.4.1"
-  resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da"
-  integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==
-
-ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5:
-  version "6.10.2"
-  resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52"
-  integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==
-  dependencies:
-    fast-deep-equal "^2.0.1"
-    fast-json-stable-stringify "^2.0.0"
-    json-schema-traverse "^0.4.1"
-    uri-js "^4.2.2"
-
-algoliasearch@^3.24.5:
-  version "3.34.0"
-  resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-3.34.0.tgz#02eb97bd6718e3a2c71121b9c3b655a35a4ba645"
-  integrity sha512-s8LDedkTWTAWR5uCWgJzGxDkCrqiej5iE4Tc2iCV+ONOO35i5qnVdieKg5gv2VDXBE7IP0YoqfAq/CC0V8PA+Q==
-  dependencies:
-    agentkeepalive "^2.2.0"
-    debug "^2.6.9"
-    envify "^4.0.0"
-    es6-promise "^4.1.0"
-    events "^1.1.0"
-    foreach "^2.0.5"
-    global "^4.3.2"
-    inherits "^2.0.1"
-    isarray "^2.0.1"
-    load-script "^1.0.0"
-    object-keys "^1.0.11"
-    querystring-es3 "^0.2.1"
-    reduce "^1.0.1"
-    semver "^5.1.0"
-    tunnel-agent "^0.6.0"
-
-alphanum-sort@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
-  integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=
-
-ansi-colors@^3.0.0:
-  version "3.2.4"
-  resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
-  integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==
-
-ansi-escapes@^4.1.0:
-  version "4.2.1"
-  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.2.1.tgz#4dccdb846c3eee10f6d64dea66273eab90c37228"
-  integrity sha512-Cg3ymMAdN10wOk/VYfLV7KCQyv7EDirJ64500sU7n9UlmioEtDuU5Gd+hj73hXSU/ex7tHJSssmyftDdkMLO8Q==
-  dependencies:
-    type-fest "^0.5.2"
-
-ansi-html@0.0.7:
-  version "0.0.7"
-  resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
-  integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4=
-
-ansi-regex@^2.0.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
-  integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
-
-ansi-regex@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
-  integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
-
-ansi-regex@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997"
-  integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==
-
-ansi-styles@^2.2.1:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
-  integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
-
-ansi-styles@^3.2.0, ansi-styles@^3.2.1:
-  version "3.2.1"
-  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
-  integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
-  dependencies:
-    color-convert "^1.9.0"
-
-anymatch@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb"
-  integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==
-  dependencies:
-    micromatch "^3.1.4"
-    normalize-path "^2.1.1"
-
-aproba@^1.0.3, aproba@^1.1.1:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
-  integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
-
-are-we-there-yet@~1.1.2:
-  version "1.1.5"
-  resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
-  integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
-  dependencies:
-    delegates "^1.0.0"
-    readable-stream "^2.0.6"
-
-argparse@^1.0.7:
-  version "1.0.10"
-  resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
-  integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
-  dependencies:
-    sprintf-js "~1.0.2"
-
-arr-diff@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520"
-  integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=
-
-arr-flatten@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1"
-  integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==
-
-arr-union@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
-  integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=
-
-array-flatten@1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
-  integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=
-
-array-flatten@^2.1.0:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099"
-  integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==
-
-array-union@^1.0.1, array-union@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
-  integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=
-  dependencies:
-    array-uniq "^1.0.1"
-
-array-uniq@^1.0.1:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
-  integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=
-
-array-unique@^0.3.2:
-  version "0.3.2"
-  resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
-  integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
-
-asn1.js@^4.0.0:
-  version "4.10.1"
-  resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0"
-  integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==
-  dependencies:
-    bn.js "^4.0.0"
-    inherits "^2.0.1"
-    minimalistic-assert "^1.0.0"
-
-asn1@~0.2.3:
-  version "0.2.4"
-  resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136"
-  integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==
-  dependencies:
-    safer-buffer "~2.1.0"
-
-assert-plus@1.0.0, assert-plus@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525"
-  integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=
-
-assert@^1.1.1:
-  version "1.5.0"
-  resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb"
-  integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==
-  dependencies:
-    object-assign "^4.1.1"
-    util "0.10.3"
-
-assign-symbols@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367"
-  integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=
-
-async-each@^1.0.1:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
-  integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==
-
-async-limiter@~1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd"
-  integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==
-
-async@^1.5.2:
-  version "1.5.2"
-  resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
-  integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=
-
-asynckit@^0.4.0:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
-  integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
-
-atob@^2.1.1:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
-  integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
-
-autocomplete.js@0.36.0:
-  version "0.36.0"
-  resolved "https://registry.yarnpkg.com/autocomplete.js/-/autocomplete.js-0.36.0.tgz#94fe775fe64b6cd42e622d076dc7fd26bedd837b"
-  integrity sha512-jEwUXnVMeCHHutUt10i/8ZiRaCb0Wo+ZyKxeGsYwBDtw6EJHqEeDrq4UwZRD8YBSvp3g6klP678il2eeiVXN2Q==
-  dependencies:
-    immediate "^3.2.3"
-
-autoprefixer@^9.5.1:
-  version "9.6.1"
-  resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.6.1.tgz#51967a02d2d2300bb01866c1611ec8348d355a47"
-  integrity sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw==
-  dependencies:
-    browserslist "^4.6.3"
-    caniuse-lite "^1.0.30000980"
-    chalk "^2.4.2"
-    normalize-range "^0.1.2"
-    num2fraction "^1.2.2"
-    postcss "^7.0.17"
-    postcss-value-parser "^4.0.0"
-
-aws-sign2@~0.7.0:
-  version "0.7.0"
-  resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
-  integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=
-
-aws4@^1.8.0:
-  version "1.8.0"
-  resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
-  integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==
-
-babel-loader@^8.0.4:
-  version "8.0.6"
-  resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb"
-  integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==
-  dependencies:
-    find-cache-dir "^2.0.0"
-    loader-utils "^1.0.2"
-    mkdirp "^0.5.1"
-    pify "^4.0.1"
-
-babel-plugin-dynamic-import-node@^2.2.0, babel-plugin-dynamic-import-node@^2.3.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f"
-  integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==
-  dependencies:
-    object.assign "^4.1.0"
-
-babel-plugin-module-resolver@3.2.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/babel-plugin-module-resolver/-/babel-plugin-module-resolver-3.2.0.tgz#ddfa5e301e3b9aa12d852a9979f18b37881ff5a7"
-  integrity sha512-tjR0GvSndzPew/Iayf4uICWZqjBwnlMWjSx6brryfQ81F9rxBVqwDJtFCV8oOs0+vJeefK9TmdZtkIFdFe1UnA==
-  dependencies:
-    find-babel-config "^1.1.0"
-    glob "^7.1.2"
-    pkg-up "^2.0.0"
-    reselect "^3.0.1"
-    resolve "^1.4.0"
-
-balanced-match@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
-  integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c=
-
-base64-js@^1.0.2:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
-  integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
-
-base@^0.11.1:
-  version "0.11.2"
-  resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
-  integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==
-  dependencies:
-    cache-base "^1.0.1"
-    class-utils "^0.3.5"
-    component-emitter "^1.2.1"
-    define-property "^1.0.0"
-    isobject "^3.0.1"
-    mixin-deep "^1.2.0"
-    pascalcase "^0.1.1"
-
-batch@0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
-  integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=
-
-bcrypt-pbkdf@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e"
-  integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=
-  dependencies:
-    tweetnacl "^0.14.3"
-
-big.js@^3.1.3:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
-  integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==
-
-big.js@^5.2.2:
-  version "5.2.2"
-  resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
-  integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==
-
-binary-extensions@^1.0.0:
-  version "1.13.1"
-  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65"
-  integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==
-
-bluebird@^3.1.1, bluebird@^3.5.5:
-  version "3.5.5"
-  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f"
-  integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==
-
-bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
-  version "4.11.8"
-  resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
-  integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==
-
-body-parser@1.19.0:
-  version "1.19.0"
-  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
-  integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==
-  dependencies:
-    bytes "3.1.0"
-    content-type "~1.0.4"
-    debug "2.6.9"
-    depd "~1.1.2"
-    http-errors "1.7.2"
-    iconv-lite "0.4.24"
-    on-finished "~2.3.0"
-    qs "6.7.0"
-    raw-body "2.4.0"
-    type-is "~1.6.17"
-
-bonjour@^3.5.0:
-  version "3.5.0"
-  resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"
-  integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU=
-  dependencies:
-    array-flatten "^2.1.0"
-    deep-equal "^1.0.1"
-    dns-equal "^1.0.0"
-    dns-txt "^2.0.2"
-    multicast-dns "^6.0.1"
-    multicast-dns-service-types "^1.1.0"
-
-boolbase@^1.0.0, boolbase@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
-  integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
-
-brace-expansion@^1.1.7:
-  version "1.1.11"
-  resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
-  integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
-  dependencies:
-    balanced-match "^1.0.0"
-    concat-map "0.0.1"
-
-braces@^2.3.1, braces@^2.3.2:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729"
-  integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==
-  dependencies:
-    arr-flatten "^1.1.0"
-    array-unique "^0.3.2"
-    extend-shallow "^2.0.1"
-    fill-range "^4.0.0"
-    isobject "^3.0.1"
-    repeat-element "^1.1.2"
-    snapdragon "^0.8.1"
-    snapdragon-node "^2.0.1"
-    split-string "^3.0.2"
-    to-regex "^3.0.1"
-
-brorand@^1.0.1:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
-  integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
-
-browserify-aes@^1.0.0, browserify-aes@^1.0.4:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
-  integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==
-  dependencies:
-    buffer-xor "^1.0.3"
-    cipher-base "^1.0.0"
-    create-hash "^1.1.0"
-    evp_bytestokey "^1.0.3"
-    inherits "^2.0.1"
-    safe-buffer "^5.0.1"
-
-browserify-cipher@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0"
-  integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==
-  dependencies:
-    browserify-aes "^1.0.4"
-    browserify-des "^1.0.0"
-    evp_bytestokey "^1.0.0"
-
-browserify-des@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c"
-  integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==
-  dependencies:
-    cipher-base "^1.0.1"
-    des.js "^1.0.0"
-    inherits "^2.0.1"
-    safe-buffer "^5.1.2"
-
-browserify-rsa@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524"
-  integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=
-  dependencies:
-    bn.js "^4.1.0"
-    randombytes "^2.0.1"
-
-browserify-sign@^4.0.0:
-  version "4.0.4"
-  resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298"
-  integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=
-  dependencies:
-    bn.js "^4.1.1"
-    browserify-rsa "^4.0.0"
-    create-hash "^1.1.0"
-    create-hmac "^1.1.2"
-    elliptic "^6.0.0"
-    inherits "^2.0.1"
-    parse-asn1 "^5.0.0"
-
-browserify-zlib@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f"
-  integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==
-  dependencies:
-    pako "~1.0.5"
-
-browserslist@^4.0.0, browserslist@^4.3.4, browserslist@^4.6.3:
-  version "4.7.0"
-  resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17"
-  integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA==
-  dependencies:
-    caniuse-lite "^1.0.30000989"
-    electron-to-chromium "^1.3.247"
-    node-releases "^1.1.29"
-
-buffer-from@^1.0.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
-  integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
-
-buffer-indexof@^1.0.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
-  integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==
-
-buffer-json@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/buffer-json/-/buffer-json-2.0.0.tgz#f73e13b1e42f196fe2fd67d001c7d7107edd7c23"
-  integrity sha512-+jjPFVqyfF1esi9fvfUs3NqM0pH1ziZ36VP4hmA/y/Ssfo/5w5xHKfTw9BwQjoJ1w/oVtpLomqwUHKdefGyuHw==
-
-buffer-xor@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
-  integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=
-
-buffer@^4.3.0:
-  version "4.9.1"
-  resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298"
-  integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=
-  dependencies:
-    base64-js "^1.0.2"
-    ieee754 "^1.1.4"
-    isarray "^1.0.0"
-
-builtin-status-codes@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
-  integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=
-
-bytes@3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
-  integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=
-
-bytes@3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
-  integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
-
-cac@^6.3.9:
-  version "6.5.2"
-  resolved "https://registry.yarnpkg.com/cac/-/cac-6.5.2.tgz#92ef1490b9ffde5f0be7eeadec5ea926f0e78ef6"
-  integrity sha512-8JdiD9/ZLsG418j/chyZQ3VWuhFELSGlH4EUxzNKgIH8wK8dO0j5Pqu6Pk7B/RP3kX9aasyQhPrrUjYO5e0w7w==
-
-cacache@^11.3.3:
-  version "11.3.3"
-  resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc"
-  integrity sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA==
-  dependencies:
-    bluebird "^3.5.5"
-    chownr "^1.1.1"
-    figgy-pudding "^3.5.1"
-    glob "^7.1.4"
-    graceful-fs "^4.1.15"
-    lru-cache "^5.1.1"
-    mississippi "^3.0.0"
-    mkdirp "^0.5.1"
-    move-concurrently "^1.0.1"
-    promise-inflight "^1.0.1"
-    rimraf "^2.6.3"
-    ssri "^6.0.1"
-    unique-filename "^1.1.1"
-    y18n "^4.0.0"
-
-cacache@^12.0.2:
-  version "12.0.3"
-  resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390"
-  integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==
-  dependencies:
-    bluebird "^3.5.5"
-    chownr "^1.1.1"
-    figgy-pudding "^3.5.1"
-    glob "^7.1.4"
-    graceful-fs "^4.1.15"
-    infer-owner "^1.0.3"
-    lru-cache "^5.1.1"
-    mississippi "^3.0.0"
-    mkdirp "^0.5.1"
-    move-concurrently "^1.0.1"
-    promise-inflight "^1.0.1"
-    rimraf "^2.6.3"
-    ssri "^6.0.1"
-    unique-filename "^1.1.1"
-    y18n "^4.0.0"
-
-cache-base@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2"
-  integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==
-  dependencies:
-    collection-visit "^1.0.0"
-    component-emitter "^1.2.1"
-    get-value "^2.0.6"
-    has-value "^1.0.0"
-    isobject "^3.0.1"
-    set-value "^2.0.0"
-    to-object-path "^0.3.0"
-    union-value "^1.0.0"
-    unset-value "^1.0.0"
-
-cache-loader@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/cache-loader/-/cache-loader-3.0.1.tgz#cee6cf4b3cdc7c610905b26bad6c2fc439c821af"
-  integrity sha512-HzJIvGiGqYsFUrMjAJNDbVZoG7qQA+vy9AIoKs7s9DscNfki0I589mf2w6/tW+kkFH3zyiknoWV5Jdynu6b/zw==
-  dependencies:
-    buffer-json "^2.0.0"
-    find-cache-dir "^2.1.0"
-    loader-utils "^1.2.3"
-    mkdirp "^0.5.1"
-    neo-async "^2.6.1"
-    schema-utils "^1.0.0"
-
-call-me-maybe@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b"
-  integrity sha1-JtII6onje1y95gJQoV8DHBak1ms=
-
-caller-callsite@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134"
-  integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=
-  dependencies:
-    callsites "^2.0.0"
-
-caller-path@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4"
-  integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=
-  dependencies:
-    caller-callsite "^2.0.0"
-
-callsites@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50"
-  integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=
-
-camel-case@3.0.x:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73"
-  integrity sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=
-  dependencies:
-    no-case "^2.2.0"
-    upper-case "^1.1.1"
-
-camelcase@^5.0.0, camelcase@^5.2.0:
-  version "5.3.1"
-  resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
-  integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==
-
-caniuse-api@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0"
-  integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==
-  dependencies:
-    browserslist "^4.0.0"
-    caniuse-lite "^1.0.0"
-    lodash.memoize "^4.1.2"
-    lodash.uniq "^4.5.0"
-
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000989:
-  version "1.0.30000989"
-  resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz#b9193e293ccf7e4426c5245134b8f2a56c0ac4b9"
-  integrity sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw==
-
-caseless@~0.12.0:
-  version "0.12.0"
-  resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
-  integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
-
-chalk@^1.1.3:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
-  integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
-  dependencies:
-    ansi-styles "^2.2.1"
-    escape-string-regexp "^1.0.2"
-    has-ansi "^2.0.0"
-    strip-ansi "^3.0.0"
-    supports-color "^2.0.0"
-
-chalk@^2.0.0, chalk@^2.3.2, chalk@^2.4.1, chalk@^2.4.2:
-  version "2.4.2"
-  resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
-  integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
-  dependencies:
-    ansi-styles "^3.2.1"
-    escape-string-regexp "^1.0.5"
-    supports-color "^5.3.0"
-
-chokidar@^2.0.2, chokidar@^2.0.3, chokidar@^2.1.6:
-  version "2.1.8"
-  resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917"
-  integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==
-  dependencies:
-    anymatch "^2.0.0"
-    async-each "^1.0.1"
-    braces "^2.3.2"
-    glob-parent "^3.1.0"
-    inherits "^2.0.3"
-    is-binary-path "^1.0.0"
-    is-glob "^4.0.0"
-    normalize-path "^3.0.0"
-    path-is-absolute "^1.0.0"
-    readdirp "^2.2.1"
-    upath "^1.1.1"
-  optionalDependencies:
-    fsevents "^1.2.7"
-
-chownr@^1.1.1:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6"
-  integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A==
-
-chrome-trace-event@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4"
-  integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==
-  dependencies:
-    tslib "^1.9.0"
-
-ci-info@^1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-1.6.0.tgz#2ca20dbb9ceb32d4524a683303313f0304b1e497"
-  integrity sha512-vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==
-
-cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
-  integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==
-  dependencies:
-    inherits "^2.0.1"
-    safe-buffer "^5.0.1"
-
-class-utils@^0.3.5:
-  version "0.3.6"
-  resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
-  integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==
-  dependencies:
-    arr-union "^3.1.0"
-    define-property "^0.2.5"
-    isobject "^3.0.0"
-    static-extend "^0.1.1"
-
-clean-css@4.2.x:
-  version "4.2.1"
-  resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.1.tgz#2d411ef76b8569b6d0c84068dabe85b0aa5e5c17"
-  integrity sha512-4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==
-  dependencies:
-    source-map "~0.6.0"
-
-clipboard@^2.0.0:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.4.tgz#836dafd66cf0fea5d71ce5d5b0bf6e958009112d"
-  integrity sha512-Vw26VSLRpJfBofiVaFb/I8PVfdI1OxKcYShe6fm0sP/DtmiWQNCjhM/okTvdCo0G+lMMm1rMYbk4IK4x1X+kgQ==
-  dependencies:
-    good-listener "^1.2.2"
-    select "^1.1.2"
-    tiny-emitter "^2.0.0"
-
-cliui@^4.0.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49"
-  integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==
-  dependencies:
-    string-width "^2.1.1"
-    strip-ansi "^4.0.0"
-    wrap-ansi "^2.0.0"
-
-coa@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3"
-  integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==
-  dependencies:
-    "@types/q" "^1.5.1"
-    chalk "^2.4.1"
-    q "^1.1.2"
-
-code-point-at@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
-  integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
-
-collection-visit@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
-  integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=
-  dependencies:
-    map-visit "^1.0.0"
-    object-visit "^1.0.0"
-
-color-convert@^1.9.0, color-convert@^1.9.1:
-  version "1.9.3"
-  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
-  integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
-  dependencies:
-    color-name "1.1.3"
-
-color-name@1.1.3:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
-  integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
-
-color-name@^1.0.0:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
-  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
-
-color-string@^1.5.2:
-  version "1.5.3"
-  resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc"
-  integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==
-  dependencies:
-    color-name "^1.0.0"
-    simple-swizzle "^0.2.2"
-
-color@^3.0.0:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10"
-  integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==
-  dependencies:
-    color-convert "^1.9.1"
-    color-string "^1.5.2"
-
-combined-stream@^1.0.6, combined-stream@~1.0.6:
-  version "1.0.8"
-  resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
-  integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
-  dependencies:
-    delayed-stream "~1.0.0"
-
-commander@2.17.x:
-  version "2.17.1"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-2.17.1.tgz#bd77ab7de6de94205ceacc72f1716d29f20a77bf"
-  integrity sha512-wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==
-
-commander@^2.20.0:
-  version "2.20.0"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422"
-  integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==
-
-commander@~2.19.0:
-  version "2.19.0"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a"
-  integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==
-
-commondir@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
-  integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
-
-component-emitter@^1.2.1:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
-  integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==
-
-compressible@~2.0.16:
-  version "2.0.17"
-  resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1"
-  integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw==
-  dependencies:
-    mime-db ">= 1.40.0 < 2"
-
-compression@^1.7.4:
-  version "1.7.4"
-  resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f"
-  integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==
-  dependencies:
-    accepts "~1.3.5"
-    bytes "3.0.0"
-    compressible "~2.0.16"
-    debug "2.6.9"
-    on-headers "~1.0.2"
-    safe-buffer "5.1.2"
-    vary "~1.1.2"
-
-concat-map@0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
-  integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-
-concat-stream@^1.5.0:
-  version "1.6.2"
-  resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
-  integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
-  dependencies:
-    buffer-from "^1.0.0"
-    inherits "^2.0.3"
-    readable-stream "^2.2.2"
-    typedarray "^0.0.6"
-
-connect-history-api-fallback@^1.5.0, connect-history-api-fallback@^1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc"
-  integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==
-
-consola@^2.6.0:
-  version "2.10.1"
-  resolved "https://registry.yarnpkg.com/consola/-/consola-2.10.1.tgz#4693edba714677c878d520e4c7e4f69306b4b927"
-  integrity sha512-4sxpH6SGFYLADfUip4vuY65f/gEogrzJoniVhNUYkJHtng0l8ZjnDCqxxrSVRHOHwKxsy8Vm5ONZh1wOR3/l/w==
-
-console-browserify@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
-  integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=
-  dependencies:
-    date-now "^0.1.4"
-
-console-control-strings@^1.0.0, console-control-strings@~1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e"
-  integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
-
-consolidate@^0.15.1:
-  version "0.15.1"
-  resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7"
-  integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==
-  dependencies:
-    bluebird "^3.1.1"
-
-constants-browserify@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
-  integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=
-
-content-disposition@0.5.3:
-  version "0.5.3"
-  resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
-  integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==
-  dependencies:
-    safe-buffer "5.1.2"
-
-content-type@~1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
-  integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
-
-convert-source-map@^1.1.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20"
-  integrity sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==
-  dependencies:
-    safe-buffer "~5.1.1"
-
-cookie-signature@1.0.6:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
-  integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw=
-
-cookie@0.4.0:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
-  integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==
-
-copy-concurrently@^1.0.0:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
-  integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==
-  dependencies:
-    aproba "^1.1.1"
-    fs-write-stream-atomic "^1.0.8"
-    iferr "^0.1.5"
-    mkdirp "^0.5.1"
-    rimraf "^2.5.4"
-    run-queue "^1.0.0"
-
-copy-descriptor@^0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
-  integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
-
-copy-webpack-plugin@^5.0.2:
-  version "5.0.4"
-  resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-5.0.4.tgz#c78126f604e24f194c6ec2f43a64e232b5d43655"
-  integrity sha512-YBuYGpSzoCHSSDGyHy6VJ7SHojKp6WHT4D7ItcQFNAYx2hrwkMe56e97xfVR0/ovDuMTrMffXUiltvQljtAGeg==
-  dependencies:
-    cacache "^11.3.3"
-    find-cache-dir "^2.1.0"
-    glob-parent "^3.1.0"
-    globby "^7.1.1"
-    is-glob "^4.0.1"
-    loader-utils "^1.2.3"
-    minimatch "^3.0.4"
-    normalize-path "^3.0.0"
-    p-limit "^2.2.0"
-    schema-utils "^1.0.0"
-    serialize-javascript "^1.7.0"
-    webpack-log "^2.0.0"
-
-core-js@^2.6.5:
-  version "2.6.9"
-  resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.9.tgz#6b4b214620c834152e179323727fc19741b084f2"
-  integrity sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==
-
-core-util-is@1.0.2, core-util-is@~1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
-  integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
-
-cosmiconfig@^5.0.0:
-  version "5.2.1"
-  resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a"
-  integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==
-  dependencies:
-    import-fresh "^2.0.0"
-    is-directory "^0.3.1"
-    js-yaml "^3.13.1"
-    parse-json "^4.0.0"
-
-create-ecdh@^4.0.0:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff"
-  integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==
-  dependencies:
-    bn.js "^4.1.0"
-    elliptic "^6.0.0"
-
-create-hash@^1.1.0, create-hash@^1.1.2:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196"
-  integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==
-  dependencies:
-    cipher-base "^1.0.1"
-    inherits "^2.0.1"
-    md5.js "^1.3.4"
-    ripemd160 "^2.0.1"
-    sha.js "^2.4.0"
-
-create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4:
-  version "1.1.7"
-  resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff"
-  integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==
-  dependencies:
-    cipher-base "^1.0.3"
-    create-hash "^1.1.0"
-    inherits "^2.0.1"
-    ripemd160 "^2.0.0"
-    safe-buffer "^5.0.1"
-    sha.js "^2.4.8"
-
-cross-spawn@^6.0.0, cross-spawn@^6.0.5:
-  version "6.0.5"
-  resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
-  integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
-  dependencies:
-    nice-try "^1.0.4"
-    path-key "^2.0.1"
-    semver "^5.5.0"
-    shebang-command "^1.2.0"
-    which "^1.2.9"
-
-crypto-browserify@^3.11.0:
-  version "3.12.0"
-  resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"
-  integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==
-  dependencies:
-    browserify-cipher "^1.0.0"
-    browserify-sign "^4.0.0"
-    create-ecdh "^4.0.0"
-    create-hash "^1.1.0"
-    create-hmac "^1.1.0"
-    diffie-hellman "^5.0.0"
-    inherits "^2.0.1"
-    pbkdf2 "^3.0.3"
-    public-encrypt "^4.0.0"
-    randombytes "^2.0.0"
-    randomfill "^1.0.3"
-
-css-color-names@0.0.4, css-color-names@^0.0.4:
-  version "0.0.4"
-  resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
-  integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=
-
-css-declaration-sorter@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22"
-  integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==
-  dependencies:
-    postcss "^7.0.1"
-    timsort "^0.3.0"
-
-css-loader@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-2.1.1.tgz#d8254f72e412bb2238bb44dd674ffbef497333ea"
-  integrity sha512-OcKJU/lt232vl1P9EEDamhoO9iKY3tIjY5GU+XDLblAykTdgs6Ux9P1hTHve8nFKy5KPpOXOsVI/hIwi3841+w==
-  dependencies:
-    camelcase "^5.2.0"
-    icss-utils "^4.1.0"
-    loader-utils "^1.2.3"
-    normalize-path "^3.0.0"
-    postcss "^7.0.14"
-    postcss-modules-extract-imports "^2.0.0"
-    postcss-modules-local-by-default "^2.0.6"
-    postcss-modules-scope "^2.1.0"
-    postcss-modules-values "^2.0.0"
-    postcss-value-parser "^3.3.0"
-    schema-utils "^1.0.0"
-
-css-parse@~2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/css-parse/-/css-parse-2.0.0.tgz#a468ee667c16d81ccf05c58c38d2a97c780dbfd4"
-  integrity sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=
-  dependencies:
-    css "^2.0.0"
-
-css-select-base-adapter@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7"
-  integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==
-
-css-select@^1.1.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858"
-  integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=
-  dependencies:
-    boolbase "~1.0.0"
-    css-what "2.1"
-    domutils "1.5.1"
-    nth-check "~1.0.1"
-
-css-select@^2.0.0:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede"
-  integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ==
-  dependencies:
-    boolbase "^1.0.0"
-    css-what "^2.1.2"
-    domutils "^1.7.0"
-    nth-check "^1.0.2"
-
-css-tree@1.0.0-alpha.29:
-  version "1.0.0-alpha.29"
-  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39"
-  integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg==
-  dependencies:
-    mdn-data "~1.1.0"
-    source-map "^0.5.3"
-
-css-tree@1.0.0-alpha.33:
-  version "1.0.0-alpha.33"
-  resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.33.tgz#970e20e5a91f7a378ddd0fc58d0b6c8d4f3be93e"
-  integrity sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w==
-  dependencies:
-    mdn-data "2.0.4"
-    source-map "^0.5.3"
-
-css-unit-converter@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996"
-  integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY=
-
-css-what@2.1, css-what@^2.1.2:
-  version "2.1.3"
-  resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2"
-  integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==
-
-css@^2.0.0:
-  version "2.2.4"
-  resolved "https://registry.yarnpkg.com/css/-/css-2.2.4.tgz#c646755c73971f2bba6a601e2cf2fd71b1298929"
-  integrity sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==
-  dependencies:
-    inherits "^2.0.3"
-    source-map "^0.6.1"
-    source-map-resolve "^0.5.2"
-    urix "^0.1.0"
-
-cssesc@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703"
-  integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg==
-
-cssesc@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
-  integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==
-
-cssnano-preset-default@^4.0.7:
-  version "4.0.7"
-  resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76"
-  integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==
-  dependencies:
-    css-declaration-sorter "^4.0.1"
-    cssnano-util-raw-cache "^4.0.1"
-    postcss "^7.0.0"
-    postcss-calc "^7.0.1"
-    postcss-colormin "^4.0.3"
-    postcss-convert-values "^4.0.1"
-    postcss-discard-comments "^4.0.2"
-    postcss-discard-duplicates "^4.0.2"
-    postcss-discard-empty "^4.0.1"
-    postcss-discard-overridden "^4.0.1"
-    postcss-merge-longhand "^4.0.11"
-    postcss-merge-rules "^4.0.3"
-    postcss-minify-font-values "^4.0.2"
-    postcss-minify-gradients "^4.0.2"
-    postcss-minify-params "^4.0.2"
-    postcss-minify-selectors "^4.0.2"
-    postcss-normalize-charset "^4.0.1"
-    postcss-normalize-display-values "^4.0.2"
-    postcss-normalize-positions "^4.0.2"
-    postcss-normalize-repeat-style "^4.0.2"
-    postcss-normalize-string "^4.0.2"
-    postcss-normalize-timing-functions "^4.0.2"
-    postcss-normalize-unicode "^4.0.1"
-    postcss-normalize-url "^4.0.1"
-    postcss-normalize-whitespace "^4.0.2"
-    postcss-ordered-values "^4.1.2"
-    postcss-reduce-initial "^4.0.3"
-    postcss-reduce-transforms "^4.0.2"
-    postcss-svgo "^4.0.2"
-    postcss-unique-selectors "^4.0.1"
-
-cssnano-util-get-arguments@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f"
-  integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=
-
-cssnano-util-get-match@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d"
-  integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=
-
-cssnano-util-raw-cache@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282"
-  integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==
-  dependencies:
-    postcss "^7.0.0"
-
-cssnano-util-same-parent@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3"
-  integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==
-
-cssnano@^4.1.10:
-  version "4.1.10"
-  resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2"
-  integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==
-  dependencies:
-    cosmiconfig "^5.0.0"
-    cssnano-preset-default "^4.0.7"
-    is-resolvable "^1.0.0"
-    postcss "^7.0.0"
-
-csso@^3.5.1:
-  version "3.5.1"
-  resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b"
-  integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg==
-  dependencies:
-    css-tree "1.0.0-alpha.29"
-
-cyclist@~0.2.2:
-  version "0.2.2"
-  resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640"
-  integrity sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=
-
-dashdash@^1.12.0:
-  version "1.14.1"
-  resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0"
-  integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=
-  dependencies:
-    assert-plus "^1.0.0"
-
-date-now@^0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
-  integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=
-
-de-indent@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
-  integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=
-
-debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
-  version "2.6.9"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
-  integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
-  dependencies:
-    ms "2.0.0"
-
-debug@^3.0.0, debug@^3.2.5, debug@^3.2.6:
-  version "3.2.6"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
-  integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
-  dependencies:
-    ms "^2.1.1"
-
-debug@^4.1.0, debug@^4.1.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
-  integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==
-  dependencies:
-    ms "^2.1.1"
-
-debug@~3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
-  integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
-  dependencies:
-    ms "2.0.0"
-
-decamelize@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
-  integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
-
-decode-uri-component@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
-  integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
-
-deep-equal@^1.0.1:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.0.tgz#3103cdf8ab6d32cf4a8df7865458f2b8d33f3745"
-  integrity sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw==
-  dependencies:
-    is-arguments "^1.0.4"
-    is-date-object "^1.0.1"
-    is-regex "^1.0.4"
-    object-is "^1.0.1"
-    object-keys "^1.1.1"
-    regexp.prototype.flags "^1.2.0"
-
-deep-extend@^0.6.0:
-  version "0.6.0"
-  resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
-  integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==
-
-deepmerge@^1.5.2:
-  version "1.5.2"
-  resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-1.5.2.tgz#10499d868844cdad4fee0842df8c7f6f0c95a753"
-  integrity sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==
-
-default-gateway@^4.2.0:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b"
-  integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==
-  dependencies:
-    execa "^1.0.0"
-    ip-regex "^2.1.0"
-
-define-properties@^1.1.2, define-properties@^1.1.3:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
-  integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
-  dependencies:
-    object-keys "^1.0.12"
-
-define-property@^0.2.5:
-  version "0.2.5"
-  resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
-  integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=
-  dependencies:
-    is-descriptor "^0.1.0"
-
-define-property@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6"
-  integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY=
-  dependencies:
-    is-descriptor "^1.0.0"
-
-define-property@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d"
-  integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==
-  dependencies:
-    is-descriptor "^1.0.2"
-    isobject "^3.0.1"
-
-del@^4.1.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4"
-  integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==
-  dependencies:
-    "@types/glob" "^7.1.1"
-    globby "^6.1.0"
-    is-path-cwd "^2.0.0"
-    is-path-in-cwd "^2.0.0"
-    p-map "^2.0.0"
-    pify "^4.0.1"
-    rimraf "^2.6.3"
-
-delayed-stream@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
-  integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
-
-delegate@^3.1.2:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166"
-  integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==
-
-delegates@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
-  integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
-
-depd@~1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
-  integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
-
-des.js@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"
-  integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=
-  dependencies:
-    inherits "^2.0.1"
-    minimalistic-assert "^1.0.0"
-
-destroy@~1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
-  integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
-
-detect-libc@^1.0.2:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
-  integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
-
-detect-node@^2.0.4:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
-  integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==
-
-diacritics@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/diacritics/-/diacritics-1.3.0.tgz#3efa87323ebb863e6696cebb0082d48ff3d6f7a1"
-  integrity sha1-PvqHMj67hj5mls67AILUj/PW96E=
-
-diffie-hellman@^5.0.0:
-  version "5.0.3"
-  resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
-  integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==
-  dependencies:
-    bn.js "^4.1.0"
-    miller-rabin "^4.0.0"
-    randombytes "^2.0.0"
-
-dir-glob@^2.0.0, dir-glob@^2.2.2:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4"
-  integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==
-  dependencies:
-    path-type "^3.0.0"
-
-dns-equal@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
-  integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0=
-
-dns-packet@^1.3.1:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a"
-  integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==
-  dependencies:
-    ip "^1.1.0"
-    safe-buffer "^5.0.1"
-
-dns-txt@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6"
-  integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=
-  dependencies:
-    buffer-indexof "^1.0.0"
-
-docsearch.js@^2.5.2:
-  version "2.6.3"
-  resolved "https://registry.yarnpkg.com/docsearch.js/-/docsearch.js-2.6.3.tgz#57cb4600d3b6553c677e7cbbe6a734593e38625d"
-  integrity sha512-GN+MBozuyz664ycpZY0ecdQE0ND/LSgJKhTLA0/v3arIS3S1Rpf2OJz6A35ReMsm91V5apcmzr5/kM84cvUg+A==
-  dependencies:
-    algoliasearch "^3.24.5"
-    autocomplete.js "0.36.0"
-    hogan.js "^3.0.2"
-    request "^2.87.0"
-    stack-utils "^1.0.1"
-    to-factory "^1.0.0"
-    zepto "^1.2.0"
-
-dom-converter@^0.2:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768"
-  integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==
-  dependencies:
-    utila "~0.4"
-
-dom-serializer@0:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.1.tgz#13650c850daffea35d8b626a4cfc4d3a17643fdb"
-  integrity sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q==
-  dependencies:
-    domelementtype "^2.0.1"
-    entities "^2.0.0"
-
-dom-walk@^0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018"
-  integrity sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=
-
-domain-browser@^1.1.1:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
-  integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==
-
-domelementtype@1, domelementtype@^1.3.1:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f"
-  integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==
-
-domelementtype@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d"
-  integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==
-
-domhandler@^2.3.0:
-  version "2.4.2"
-  resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803"
-  integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==
-  dependencies:
-    domelementtype "1"
-
-domutils@1.5.1:
-  version "1.5.1"
-  resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf"
-  integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=
-  dependencies:
-    dom-serializer "0"
-    domelementtype "1"
-
-domutils@^1.5.1, domutils@^1.7.0:
-  version "1.7.0"
-  resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a"
-  integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==
-  dependencies:
-    dom-serializer "0"
-    domelementtype "1"
-
-dot-prop@^4.1.1:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57"
-  integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==
-  dependencies:
-    is-obj "^1.0.0"
-
-duplexify@^3.4.2, duplexify@^3.6.0:
-  version "3.7.1"
-  resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309"
-  integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==
-  dependencies:
-    end-of-stream "^1.0.0"
-    inherits "^2.0.1"
-    readable-stream "^2.0.0"
-    stream-shift "^1.0.0"
-
-ecc-jsbn@~0.1.1:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9"
-  integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=
-  dependencies:
-    jsbn "~0.1.0"
-    safer-buffer "^2.1.0"
-
-ee-first@1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
-  integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
-
-electron-to-chromium@^1.3.247:
-  version "1.3.252"
-  resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.252.tgz#5b6261965b564a0f4df0f1c86246487897017f52"
-  integrity sha512-NWJ5TztDnjExFISZHFwpoJjMbLUifsNBnx7u2JI0gCw6SbKyQYYWWtBHasO/jPtHym69F4EZuTpRNGN11MT/jg==
-
-elliptic@^6.0.0:
-  version "6.5.0"
-  resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.0.tgz#2b8ed4c891b7de3200e14412a5b8248c7af505ca"
-  integrity sha512-eFOJTMyCYb7xtE/caJ6JJu+bhi67WCYNbkGSknu20pmM8Ke/bqOfdnZWxyoGN26JgfxTbXrsCkEw4KheCT/KGg==
-  dependencies:
-    bn.js "^4.4.0"
-    brorand "^1.0.1"
-    hash.js "^1.0.0"
-    hmac-drbg "^1.0.0"
-    inherits "^2.0.1"
-    minimalistic-assert "^1.0.0"
-    minimalistic-crypto-utils "^1.0.0"
-
-emoji-regex@^7.0.1:
-  version "7.0.3"
-  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
-  integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
-
-emojis-list@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
-  integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
-
-encodeurl@~1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
-  integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
-
-end-of-stream@^1.0.0, end-of-stream@^1.1.0:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
-  integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==
-  dependencies:
-    once "^1.4.0"
-
-enhanced-resolve@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f"
-  integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==
-  dependencies:
-    graceful-fs "^4.1.2"
-    memory-fs "^0.4.0"
-    tapable "^1.0.0"
-
-entities@^1.1.1, entities@~1.1.1:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
-  integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
-
-entities@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4"
-  integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==
-
-envify@^4.0.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/envify/-/envify-4.1.0.tgz#f39ad3db9d6801b4e6b478b61028d3f0b6819f7e"
-  integrity sha512-IKRVVoAYr4pIx4yIWNsz9mOsboxlNXiu7TNBnem/K/uTHdkyzXWDzHCK7UTolqBbgaBz0tQHsD3YNls0uIIjiw==
-  dependencies:
-    esprima "^4.0.0"
-    through "~2.3.4"
-
-envinfo@^7.2.0:
-  version "7.3.1"
-  resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.3.1.tgz#892e42f7bf858b3446d9414ad240dbaf8da52f09"
-  integrity sha512-GvXiDTqLYrORVSCuJCsWHPXF5BFvoWMQA9xX4YVjPT1jyS3aZEHUBwjzxU/6LTPF9ReHgVEbX7IEN5UvSXHw/A==
-
-errno@^0.1.3, errno@~0.1.7:
-  version "0.1.7"
-  resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618"
-  integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==
-  dependencies:
-    prr "~1.0.1"
-
-error-ex@^1.3.1:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf"
-  integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==
-  dependencies:
-    is-arrayish "^0.2.1"
-
-es-abstract@^1.12.0, es-abstract@^1.5.1:
-  version "1.14.0"
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.14.0.tgz#f59d9d44278ea8f90c8ff3de1552537c2fd739b4"
-  integrity sha512-lri42nNq1tIohUuwFBYEM3wKwcrcJa78jukGDdWsuaNxTtxBFGFkKUQ15nc9J+ipje4mhbQR6JwABb4VvawR3A==
-  dependencies:
-    es-to-primitive "^1.2.0"
-    function-bind "^1.1.1"
-    has "^1.0.3"
-    has-symbols "^1.0.0"
-    is-callable "^1.1.4"
-    is-regex "^1.0.4"
-    object-inspect "^1.6.0"
-    object-keys "^1.1.1"
-    string.prototype.trimleft "^2.0.0"
-    string.prototype.trimright "^2.0.0"
-
-es-to-primitive@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377"
-  integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==
-  dependencies:
-    is-callable "^1.1.4"
-    is-date-object "^1.0.1"
-    is-symbol "^1.0.2"
-
-es6-promise@^4.1.0:
-  version "4.2.8"
-  resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a"
-  integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==
-
-escape-html@^1.0.3, escape-html@~1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
-  integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=
-
-escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-  integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
-
-eslint-scope@^4.0.3:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
-  integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==
-  dependencies:
-    esrecurse "^4.1.0"
-    estraverse "^4.1.1"
-
-esprima@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
-  integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
-
-esrecurse@^4.1.0:
-  version "4.2.1"
-  resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf"
-  integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==
-  dependencies:
-    estraverse "^4.1.0"
-
-estraverse@^4.1.0, estraverse@^4.1.1:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
-  integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
-
-esutils@^2.0.2:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
-  integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
-
-etag@~1.8.1:
-  version "1.8.1"
-  resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
-  integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
-
-eventemitter3@^3.0.0:
-  version "3.1.2"
-  resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7"
-  integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==
-
-events@^1.1.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924"
-  integrity sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=
-
-events@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88"
-  integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA==
-
-eventsource@^1.0.7:
-  version "1.0.7"
-  resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0"
-  integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==
-  dependencies:
-    original "^1.0.0"
-
-evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
-  integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==
-  dependencies:
-    md5.js "^1.3.4"
-    safe-buffer "^5.1.1"
-
-execa@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
-  integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
-  dependencies:
-    cross-spawn "^6.0.0"
-    get-stream "^4.0.0"
-    is-stream "^1.1.0"
-    npm-run-path "^2.0.0"
-    p-finally "^1.0.0"
-    signal-exit "^3.0.0"
-    strip-eof "^1.0.0"
-
-expand-brackets@^2.1.4:
-  version "2.1.4"
-  resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622"
-  integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI=
-  dependencies:
-    debug "^2.3.3"
-    define-property "^0.2.5"
-    extend-shallow "^2.0.1"
-    posix-character-classes "^0.1.0"
-    regex-not "^1.0.0"
-    snapdragon "^0.8.1"
-    to-regex "^3.0.1"
-
-express@^4.17.1:
-  version "4.17.1"
-  resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
-  integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==
-  dependencies:
-    accepts "~1.3.7"
-    array-flatten "1.1.1"
-    body-parser "1.19.0"
-    content-disposition "0.5.3"
-    content-type "~1.0.4"
-    cookie "0.4.0"
-    cookie-signature "1.0.6"
-    debug "2.6.9"
-    depd "~1.1.2"
-    encodeurl "~1.0.2"
-    escape-html "~1.0.3"
-    etag "~1.8.1"
-    finalhandler "~1.1.2"
-    fresh "0.5.2"
-    merge-descriptors "1.0.1"
-    methods "~1.1.2"
-    on-finished "~2.3.0"
-    parseurl "~1.3.3"
-    path-to-regexp "0.1.7"
-    proxy-addr "~2.0.5"
-    qs "6.7.0"
-    range-parser "~1.2.1"
-    safe-buffer "5.1.2"
-    send "0.17.1"
-    serve-static "1.14.1"
-    setprototypeof "1.1.1"
-    statuses "~1.5.0"
-    type-is "~1.6.18"
-    utils-merge "1.0.1"
-    vary "~1.1.2"
-
-extend-shallow@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
-  integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=
-  dependencies:
-    is-extendable "^0.1.0"
-
-extend-shallow@^3.0.0, extend-shallow@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8"
-  integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=
-  dependencies:
-    assign-symbols "^1.0.0"
-    is-extendable "^1.0.1"
-
-extend@~3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
-  integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
-
-extglob@^2.0.4:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543"
-  integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==
-  dependencies:
-    array-unique "^0.3.2"
-    define-property "^1.0.0"
-    expand-brackets "^2.1.4"
-    extend-shallow "^2.0.1"
-    fragment-cache "^0.2.1"
-    regex-not "^1.0.0"
-    snapdragon "^0.8.1"
-    to-regex "^3.0.1"
-
-extsprintf@1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05"
-  integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=
-
-extsprintf@^1.2.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f"
-  integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8=
-
-fast-deep-equal@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49"
-  integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=
-
-fast-glob@^2.2.6:
-  version "2.2.7"
-  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d"
-  integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==
-  dependencies:
-    "@mrmlnc/readdir-enhanced" "^2.2.1"
-    "@nodelib/fs.stat" "^1.1.2"
-    glob-parent "^3.1.0"
-    is-glob "^4.0.0"
-    merge2 "^1.2.3"
-    micromatch "^3.1.10"
-
-fast-json-stable-stringify@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
-  integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I=
-
-faye-websocket@^0.10.0:
-  version "0.10.0"
-  resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"
-  integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=
-  dependencies:
-    websocket-driver ">=0.5.1"
-
-faye-websocket@~0.11.1:
-  version "0.11.3"
-  resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e"
-  integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==
-  dependencies:
-    websocket-driver ">=0.5.1"
-
-figgy-pudding@^3.5.1:
-  version "3.5.1"
-  resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
-  integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w==
-
-figures@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/figures/-/figures-3.0.0.tgz#756275c964646163cc6f9197c7a0295dbfd04de9"
-  integrity sha512-HKri+WoWoUgr83pehn/SIgLOMZ9nAWC6dcGj26RY2R4F50u4+RTUz0RCrUlOV3nKRAICW1UGzyb+kcX2qK1S/g==
-  dependencies:
-    escape-string-regexp "^1.0.5"
-
-file-loader@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-3.0.1.tgz#f8e0ba0b599918b51adfe45d66d1e771ad560faa"
-  integrity sha512-4sNIOXgtH/9WZq4NvlfU3Opn5ynUsqBwSLyM+I7UOwdGigTBYfVVQEwe/msZNX/j4pCJTIM14Fsw66Svo1oVrw==
-  dependencies:
-    loader-utils "^1.0.2"
-    schema-utils "^1.0.0"
-
-fill-range@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
-  integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=
-  dependencies:
-    extend-shallow "^2.0.1"
-    is-number "^3.0.0"
-    repeat-string "^1.6.1"
-    to-regex-range "^2.1.0"
-
-finalhandler@~1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
-  integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==
-  dependencies:
-    debug "2.6.9"
-    encodeurl "~1.0.2"
-    escape-html "~1.0.3"
-    on-finished "~2.3.0"
-    parseurl "~1.3.3"
-    statuses "~1.5.0"
-    unpipe "~1.0.0"
-
-find-babel-config@^1.1.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/find-babel-config/-/find-babel-config-1.2.0.tgz#a9b7b317eb5b9860cda9d54740a8c8337a2283a2"
-  integrity sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==
-  dependencies:
-    json5 "^0.5.1"
-    path-exists "^3.0.0"
-
-find-cache-dir@^2.0.0, find-cache-dir@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
-  integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==
-  dependencies:
-    commondir "^1.0.1"
-    make-dir "^2.0.0"
-    pkg-dir "^3.0.0"
-
-find-up@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7"
-  integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c=
-  dependencies:
-    locate-path "^2.0.0"
-
-find-up@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73"
-  integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==
-  dependencies:
-    locate-path "^3.0.0"
-
-flush-write-stream@^1.0.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8"
-  integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==
-  dependencies:
-    inherits "^2.0.3"
-    readable-stream "^2.3.6"
-
-follow-redirects@^1.0.0:
-  version "1.8.1"
-  resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.8.1.tgz#24804f9eaab67160b0e840c085885d606371a35b"
-  integrity sha512-micCIbldHioIegeKs41DoH0KS3AXfFzgS30qVkM6z/XOE/GJgvmsoc839NUqa1B9udYe9dQxgv7KFwng6+p/dw==
-  dependencies:
-    debug "^3.0.0"
-
-for-in@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
-  integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=
-
-foreach@^2.0.5:
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99"
-  integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k=
-
-forever-agent@~0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91"
-  integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=
-
-form-data@~2.3.2:
-  version "2.3.3"
-  resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6"
-  integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==
-  dependencies:
-    asynckit "^0.4.0"
-    combined-stream "^1.0.6"
-    mime-types "^2.1.12"
-
-forwarded@~0.1.2:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
-  integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=
-
-fragment-cache@^0.2.1:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
-  integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=
-  dependencies:
-    map-cache "^0.2.2"
-
-fresh@0.5.2:
-  version "0.5.2"
-  resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
-  integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=
-
-from2@^2.1.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
-  integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=
-  dependencies:
-    inherits "^2.0.1"
-    readable-stream "^2.0.0"
-
-fs-extra@^7.0.1:
-  version "7.0.1"
-  resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9"
-  integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==
-  dependencies:
-    graceful-fs "^4.1.2"
-    jsonfile "^4.0.0"
-    universalify "^0.1.0"
-
-fs-minipass@^1.2.5:
-  version "1.2.6"
-  resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07"
-  integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ==
-  dependencies:
-    minipass "^2.2.1"
-
-fs-write-stream-atomic@^1.0.8:
-  version "1.0.10"
-  resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9"
-  integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=
-  dependencies:
-    graceful-fs "^4.1.2"
-    iferr "^0.1.5"
-    imurmurhash "^0.1.4"
-    readable-stream "1 || 2"
-
-fs.realpath@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-  integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
-
-fsevents@^1.2.7:
-  version "1.2.9"
-  resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f"
-  integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw==
-  dependencies:
-    nan "^2.12.1"
-    node-pre-gyp "^0.12.0"
-
-function-bind@^1.0.2, function-bind@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
-  integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
-
-gauge@~2.7.3:
-  version "2.7.4"
-  resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
-  integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
-  dependencies:
-    aproba "^1.0.3"
-    console-control-strings "^1.0.0"
-    has-unicode "^2.0.0"
-    object-assign "^4.1.0"
-    signal-exit "^3.0.0"
-    string-width "^1.0.1"
-    strip-ansi "^3.0.1"
-    wide-align "^1.1.0"
-
-get-caller-file@^1.0.1:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
-  integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
-
-get-stream@^4.0.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
-  integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
-  dependencies:
-    pump "^3.0.0"
-
-get-value@^2.0.3, get-value@^2.0.6:
-  version "2.0.6"
-  resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
-  integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=
-
-getpass@^0.1.1:
-  version "0.1.7"
-  resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa"
-  integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=
-  dependencies:
-    assert-plus "^1.0.0"
-
-glob-parent@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae"
-  integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=
-  dependencies:
-    is-glob "^3.1.0"
-    path-dirname "^1.0.0"
-
-glob-to-regexp@^0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab"
-  integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=
-
-glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
-  version "7.1.4"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
-  integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==
-  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"
-
-global@^4.3.2:
-  version "4.4.0"
-  resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406"
-  integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==
-  dependencies:
-    min-document "^2.19.0"
-    process "^0.11.10"
-
-globals@^11.1.0:
-  version "11.12.0"
-  resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e"
-  integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==
-
-globby@^6.1.0:
-  version "6.1.0"
-  resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
-  integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=
-  dependencies:
-    array-union "^1.0.1"
-    glob "^7.0.3"
-    object-assign "^4.0.1"
-    pify "^2.0.0"
-    pinkie-promise "^2.0.0"
-
-globby@^7.1.1:
-  version "7.1.1"
-  resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680"
-  integrity sha1-+yzP+UAfhgCUXfral0QMypcrhoA=
-  dependencies:
-    array-union "^1.0.1"
-    dir-glob "^2.0.0"
-    glob "^7.1.2"
-    ignore "^3.3.5"
-    pify "^3.0.0"
-    slash "^1.0.0"
-
-globby@^9.2.0:
-  version "9.2.0"
-  resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d"
-  integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==
-  dependencies:
-    "@types/glob" "^7.1.1"
-    array-union "^1.0.2"
-    dir-glob "^2.2.2"
-    fast-glob "^2.2.6"
-    glob "^7.1.3"
-    ignore "^4.0.3"
-    pify "^4.0.1"
-    slash "^2.0.0"
-
-good-listener@^1.2.2:
-  version "1.2.2"
-  resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
-  integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=
-  dependencies:
-    delegate "^3.1.2"
-
-graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6:
-  version "4.2.2"
-  resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02"
-  integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q==
-
-gray-matter@^4.0.1:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.2.tgz#9aa379e3acaf421193fce7d2a28cebd4518ac454"
-  integrity sha512-7hB/+LxrOjq/dd8APlK0r24uL/67w7SkYnfwhNFwg/VDIGWGmduTDYf3WNstLW2fbbmRwrDGCVSJ2isuf2+4Hw==
-  dependencies:
-    js-yaml "^3.11.0"
-    kind-of "^6.0.2"
-    section-matter "^1.0.0"
-    strip-bom-string "^1.0.0"
-
-handle-thing@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754"
-  integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ==
-
-har-schema@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92"
-  integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=
-
-har-validator@~5.1.0:
-  version "5.1.3"
-  resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080"
-  integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==
-  dependencies:
-    ajv "^6.5.5"
-    har-schema "^2.0.0"
-
-has-ansi@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
-  integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
-  dependencies:
-    ansi-regex "^2.0.0"
-
-has-flag@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
-  integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
-
-has-symbols@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44"
-  integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=
-
-has-unicode@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
-  integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
-
-has-value@^0.3.1:
-  version "0.3.1"
-  resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f"
-  integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=
-  dependencies:
-    get-value "^2.0.3"
-    has-values "^0.1.4"
-    isobject "^2.0.0"
-
-has-value@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177"
-  integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=
-  dependencies:
-    get-value "^2.0.6"
-    has-values "^1.0.0"
-    isobject "^3.0.0"
-
-has-values@^0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771"
-  integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E=
-
-has-values@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f"
-  integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=
-  dependencies:
-    is-number "^3.0.0"
-    kind-of "^4.0.0"
-
-has@^1.0.0, has@^1.0.1, has@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
-  integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
-  dependencies:
-    function-bind "^1.1.1"
-
-hash-base@^3.0.0:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918"
-  integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=
-  dependencies:
-    inherits "^2.0.1"
-    safe-buffer "^5.0.1"
-
-hash-sum@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04"
-  integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=
-
-hash.js@^1.0.0, hash.js@^1.0.3:
-  version "1.1.7"
-  resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42"
-  integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==
-  dependencies:
-    inherits "^2.0.3"
-    minimalistic-assert "^1.0.1"
-
-he@1.2.x, he@^1.1.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
-  integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
-
-hex-color-regex@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e"
-  integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==
-
-hmac-drbg@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1"
-  integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=
-  dependencies:
-    hash.js "^1.0.3"
-    minimalistic-assert "^1.0.0"
-    minimalistic-crypto-utils "^1.0.1"
-
-hogan.js@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/hogan.js/-/hogan.js-3.0.2.tgz#4cd9e1abd4294146e7679e41d7898732b02c7bfd"
-  integrity sha1-TNnhq9QpQUbnZ55B14mHMrAse/0=
-  dependencies:
-    mkdirp "0.3.0"
-    nopt "1.0.10"
-
-hpack.js@^2.1.6:
-  version "2.1.6"
-  resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2"
-  integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=
-  dependencies:
-    inherits "^2.0.1"
-    obuf "^1.0.0"
-    readable-stream "^2.0.1"
-    wbuf "^1.1.0"
-
-hsl-regex@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e"
-  integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=
-
-hsla-regex@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38"
-  integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg=
-
-html-comment-regex@^1.1.0:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7"
-  integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==
-
-html-entities@^1.2.1:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f"
-  integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8=
-
-html-minifier@^3.2.3:
-  version "3.5.21"
-  resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.21.tgz#d0040e054730e354db008463593194015212d20c"
-  integrity sha512-LKUKwuJDhxNa3uf/LPR/KVjm/l3rBqtYeCOAekvG8F1vItxMUpueGd94i/asDDr8/1u7InxzFA5EeGjhhG5mMA==
-  dependencies:
-    camel-case "3.0.x"
-    clean-css "4.2.x"
-    commander "2.17.x"
-    he "1.2.x"
-    param-case "2.1.x"
-    relateurl "0.2.x"
-    uglify-js "3.4.x"
-
-html-tags@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-2.0.0.tgz#10b30a386085f43cede353cc8fa7cb0deeea668b"
-  integrity sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=
-
-htmlparser2@^3.3.0:
-  version "3.10.1"
-  resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f"
-  integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==
-  dependencies:
-    domelementtype "^1.3.1"
-    domhandler "^2.3.0"
-    domutils "^1.5.1"
-    entities "^1.1.1"
-    inherits "^2.0.1"
-    readable-stream "^3.1.1"
-
-http-deceiver@^1.2.7:
-  version "1.2.7"
-  resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
-  integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=
-
-http-errors@1.7.2:
-  version "1.7.2"
-  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
-  integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==
-  dependencies:
-    depd "~1.1.2"
-    inherits "2.0.3"
-    setprototypeof "1.1.1"
-    statuses ">= 1.5.0 < 2"
-    toidentifier "1.0.0"
-
-http-errors@~1.6.2:
-  version "1.6.3"
-  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
-  integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=
-  dependencies:
-    depd "~1.1.2"
-    inherits "2.0.3"
-    setprototypeof "1.1.0"
-    statuses ">= 1.4.0 < 2"
-
-http-errors@~1.7.2:
-  version "1.7.3"
-  resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
-  integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==
-  dependencies:
-    depd "~1.1.2"
-    inherits "2.0.4"
-    setprototypeof "1.1.1"
-    statuses ">= 1.5.0 < 2"
-    toidentifier "1.0.0"
-
-"http-parser-js@>=0.4.0 <0.4.11":
-  version "0.4.10"
-  resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4"
-  integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q=
-
-http-proxy-middleware@^0.19.1:
-  version "0.19.1"
-  resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a"
-  integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==
-  dependencies:
-    http-proxy "^1.17.0"
-    is-glob "^4.0.0"
-    lodash "^4.17.11"
-    micromatch "^3.1.10"
-
-http-proxy@^1.17.0:
-  version "1.17.0"
-  resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a"
-  integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==
-  dependencies:
-    eventemitter3 "^3.0.0"
-    follow-redirects "^1.0.0"
-    requires-port "^1.0.0"
-
-http-signature@~1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1"
-  integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=
-  dependencies:
-    assert-plus "^1.0.0"
-    jsprim "^1.2.2"
-    sshpk "^1.7.0"
-
-https-browserify@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
-  integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
-
-iconv-lite@0.4.24, iconv-lite@^0.4.4:
-  version "0.4.24"
-  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
-  integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
-  dependencies:
-    safer-buffer ">= 2.1.2 < 3"
-
-icss-replace-symbols@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded"
-  integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=
-
-icss-utils@^4.1.0:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467"
-  integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==
-  dependencies:
-    postcss "^7.0.14"
-
-ieee754@^1.1.4:
-  version "1.1.13"
-  resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
-  integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==
-
-iferr@^0.1.5:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
-  integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE=
-
-ignore-walk@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.1.tgz#a83e62e7d272ac0e3b551aaa82831a19b69f82f8"
-  integrity sha512-DTVlMx3IYPe0/JJcYP7Gxg7ttZZu3IInhuEhbchuqneY9wWe5Ojy2mXLBaQFUQmo0AW2r3qG7m1mg86js+gnlQ==
-  dependencies:
-    minimatch "^3.0.4"
-
-ignore@^3.3.5:
-  version "3.3.10"
-  resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043"
-  integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==
-
-ignore@^4.0.3:
-  version "4.0.6"
-  resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
-  integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
-
-immediate@^3.2.3:
-  version "3.2.3"
-  resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c"
-  integrity sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=
-
-import-cwd@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9"
-  integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=
-  dependencies:
-    import-from "^2.1.0"
-
-import-fresh@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546"
-  integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY=
-  dependencies:
-    caller-path "^2.0.0"
-    resolve-from "^3.0.0"
-
-import-from@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1"
-  integrity sha1-M1238qev/VOqpHHUuAId7ja387E=
-  dependencies:
-    resolve-from "^3.0.0"
-
-import-local@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d"
-  integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==
-  dependencies:
-    pkg-dir "^3.0.0"
-    resolve-cwd "^2.0.0"
-
-imurmurhash@^0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
-  integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
-
-indexes-of@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607"
-  integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc=
-
-infer-owner@^1.0.3:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467"
-  integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==
-
-inflight@^1.0.4:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
-  integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
-  dependencies:
-    once "^1.3.0"
-    wrappy "1"
-
-inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
-  integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
-
-inherits@2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
-  integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=
-
-inherits@2.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
-  integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
-
-ini@~1.3.0:
-  version "1.3.5"
-  resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
-  integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==
-
-internal-ip@^4.3.0:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907"
-  integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==
-  dependencies:
-    default-gateway "^4.2.0"
-    ipaddr.js "^1.9.0"
-
-invariant@^2.2.2:
-  version "2.2.4"
-  resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6"
-  integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==
-  dependencies:
-    loose-envify "^1.0.0"
-
-invert-kv@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
-  integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==
-
-ip-regex@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
-  integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=
-
-ip@^1.1.0, ip@^1.1.5:
-  version "1.1.5"
-  resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
-  integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=
-
-ipaddr.js@1.9.0:
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65"
-  integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==
-
-ipaddr.js@^1.9.0:
-  version "1.9.1"
-  resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
-  integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==
-
-is-absolute-url@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6"
-  integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=
-
-is-absolute-url@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.1.tgz#e315cbdcbbc3d6789532d591954ac78a0e5049f6"
-  integrity sha512-c2QjUwuMxLsld90sj3xYzpFYWJtuxkIn1f5ua9RTEYJt/vV2IsM+Py00/6qjV7qExgifUvt7qfyBGBBKm+2iBg==
-
-is-accessor-descriptor@^0.1.6:
-  version "0.1.6"
-  resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
-  integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=
-  dependencies:
-    kind-of "^3.0.2"
-
-is-accessor-descriptor@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656"
-  integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==
-  dependencies:
-    kind-of "^6.0.0"
-
-is-arguments@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3"
-  integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==
-
-is-arrayish@^0.2.1:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d"
-  integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=
-
-is-arrayish@^0.3.1:
-  version "0.3.2"
-  resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
-  integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
-
-is-binary-path@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898"
-  integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=
-  dependencies:
-    binary-extensions "^1.0.0"
-
-is-buffer@^1.1.5:
-  version "1.1.6"
-  resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
-  integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
-
-is-callable@^1.1.4:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75"
-  integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==
-
-is-color-stop@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345"
-  integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=
-  dependencies:
-    css-color-names "^0.0.4"
-    hex-color-regex "^1.1.0"
-    hsl-regex "^1.0.0"
-    hsla-regex "^1.0.0"
-    rgb-regex "^1.0.1"
-    rgba-regex "^1.0.0"
-
-is-data-descriptor@^0.1.4:
-  version "0.1.4"
-  resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
-  integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=
-  dependencies:
-    kind-of "^3.0.2"
-
-is-data-descriptor@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7"
-  integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==
-  dependencies:
-    kind-of "^6.0.0"
-
-is-date-object@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16"
-  integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=
-
-is-descriptor@^0.1.0:
-  version "0.1.6"
-  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
-  integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==
-  dependencies:
-    is-accessor-descriptor "^0.1.6"
-    is-data-descriptor "^0.1.4"
-    kind-of "^5.0.0"
-
-is-descriptor@^1.0.0, is-descriptor@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec"
-  integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==
-  dependencies:
-    is-accessor-descriptor "^1.0.0"
-    is-data-descriptor "^1.0.0"
-    kind-of "^6.0.2"
-
-is-directory@^0.3.1:
-  version "0.3.1"
-  resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1"
-  integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=
-
-is-extendable@^0.1.0, is-extendable@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89"
-  integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=
-
-is-extendable@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4"
-  integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==
-  dependencies:
-    is-plain-object "^2.0.4"
-
-is-extglob@^2.1.0, is-extglob@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
-  integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
-
-is-fullwidth-code-point@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
-  integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
-  dependencies:
-    number-is-nan "^1.0.0"
-
-is-fullwidth-code-point@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
-  integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
-
-is-glob@^3.1.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a"
-  integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=
-  dependencies:
-    is-extglob "^2.1.0"
-
-is-glob@^4.0.0, is-glob@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
-  integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
-  dependencies:
-    is-extglob "^2.1.1"
-
-is-number@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195"
-  integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=
-  dependencies:
-    kind-of "^3.0.2"
-
-is-obj@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
-  integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
-
-is-path-cwd@^2.0.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
-  integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==
-
-is-path-in-cwd@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb"
-  integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==
-  dependencies:
-    is-path-inside "^2.1.0"
-
-is-path-inside@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2"
-  integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==
-  dependencies:
-    path-is-inside "^1.0.2"
-
-is-plain-obj@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e"
-  integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4=
-
-is-plain-object@^2.0.3, is-plain-object@^2.0.4:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
-  integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==
-  dependencies:
-    isobject "^3.0.1"
-
-is-regex@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491"
-  integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=
-  dependencies:
-    has "^1.0.1"
-
-is-resolvable@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88"
-  integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==
-
-is-stream@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
-  integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
-
-is-svg@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75"
-  integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==
-  dependencies:
-    html-comment-regex "^1.1.0"
-
-is-symbol@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38"
-  integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==
-  dependencies:
-    has-symbols "^1.0.0"
-
-is-typedarray@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
-  integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=
-
-is-windows@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
-  integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
-
-is-wsl@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d"
-  integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=
-
-isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
-  integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
-
-isarray@^2.0.1:
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723"
-  integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==
-
-isexe@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
-  integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
-
-isobject@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89"
-  integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=
-  dependencies:
-    isarray "1.0.0"
-
-isobject@^3.0.0, isobject@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df"
-  integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8=
-
-isstream@~0.1.2:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
-  integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
-
-javascript-stringify@^1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/javascript-stringify/-/javascript-stringify-1.6.0.tgz#142d111f3a6e3dae8f4a9afd77d45855b5a9cce3"
-  integrity sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM=
-
-js-levenshtein@^1.1.3:
-  version "1.1.6"
-  resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d"
-  integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==
-
-"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
-  integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-
-js-yaml@^3.11.0, js-yaml@^3.13.1:
-  version "3.13.1"
-  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847"
-  integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==
-  dependencies:
-    argparse "^1.0.7"
-    esprima "^4.0.0"
-
-jsbn@~0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
-  integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM=
-
-jsesc@^2.5.1:
-  version "2.5.2"
-  resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4"
-  integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==
-
-jsesc@~0.5.0:
-  version "0.5.0"
-  resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d"
-  integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=
-
-json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
-  integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==
-
-json-schema-traverse@^0.4.1:
-  version "0.4.1"
-  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
-  integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
-
-json-schema@0.2.3:
-  version "0.2.3"
-  resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13"
-  integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=
-
-json-stringify-safe@~5.0.1:
-  version "5.0.1"
-  resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb"
-  integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=
-
-json3@^3.3.2:
-  version "3.3.3"
-  resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81"
-  integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==
-
-json5@^0.5.0, json5@^0.5.1:
-  version "0.5.1"
-  resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
-  integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
-
-json5@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
-  integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==
-  dependencies:
-    minimist "^1.2.0"
-
-json5@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850"
-  integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ==
-  dependencies:
-    minimist "^1.2.0"
-
-jsonfile@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb"
-  integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=
-  optionalDependencies:
-    graceful-fs "^4.1.6"
-
-jsprim@^1.2.2:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2"
-  integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=
-  dependencies:
-    assert-plus "1.0.0"
-    extsprintf "1.3.0"
-    json-schema "0.2.3"
-    verror "1.10.0"
-
-killable@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
-  integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==
-
-kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
-  version "3.2.2"
-  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
-  integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=
-  dependencies:
-    is-buffer "^1.1.5"
-
-kind-of@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57"
-  integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc=
-  dependencies:
-    is-buffer "^1.1.5"
-
-kind-of@^5.0.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d"
-  integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==
-
-kind-of@^6.0.0, kind-of@^6.0.2:
-  version "6.0.2"
-  resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051"
-  integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==
-
-last-call-webpack-plugin@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555"
-  integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==
-  dependencies:
-    lodash "^4.17.5"
-    webpack-sources "^1.1.0"
-
-lcid@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf"
-  integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==
-  dependencies:
-    invert-kv "^2.0.0"
-
-linkify-it@^2.0.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-2.2.0.tgz#e3b54697e78bf915c70a38acd78fd09e0058b1cf"
-  integrity sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==
-  dependencies:
-    uc.micro "^1.0.1"
-
-load-script@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/load-script/-/load-script-1.0.0.tgz#0491939e0bee5643ee494a7e3da3d2bac70c6ca4"
-  integrity sha1-BJGTngvuVkPuSUp+PaPSuscMbKQ=
-
-loader-runner@^2.4.0:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
-  integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
-
-loader-utils@^0.2.16:
-  version "0.2.17"
-  resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
-  integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=
-  dependencies:
-    big.js "^3.1.3"
-    emojis-list "^2.0.0"
-    json5 "^0.5.0"
-    object-assign "^4.0.1"
-
-loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3:
-  version "1.2.3"
-  resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7"
-  integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==
-  dependencies:
-    big.js "^5.2.2"
-    emojis-list "^2.0.0"
-    json5 "^1.0.1"
-
-locate-path@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e"
-  integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=
-  dependencies:
-    p-locate "^2.0.0"
-    path-exists "^3.0.0"
-
-locate-path@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e"
-  integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==
-  dependencies:
-    p-locate "^3.0.0"
-    path-exists "^3.0.0"
-
-lodash._reinterpolate@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d"
-  integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0=
-
-lodash.clonedeep@^4.5.0:
-  version "4.5.0"
-  resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
-  integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
-
-lodash.kebabcase@^4.1.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36"
-  integrity sha1-hImxyw0p/4gZXM7KRI/21swpXDY=
-
-lodash.memoize@^4.1.2:
-  version "4.1.2"
-  resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe"
-  integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=
-
-lodash.template@^4.4.0:
-  version "4.5.0"
-  resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab"
-  integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==
-  dependencies:
-    lodash._reinterpolate "^3.0.0"
-    lodash.templatesettings "^4.0.0"
-
-lodash.templatesettings@^4.0.0:
-  version "4.2.0"
-  resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33"
-  integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==
-  dependencies:
-    lodash._reinterpolate "^3.0.0"
-
-lodash.throttle@^4.1.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4"
-  integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=
-
-lodash.uniq@^4.5.0:
-  version "4.5.0"
-  resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
-  integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
-
-lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.15, lodash@^4.17.3, lodash@^4.17.5:
-  version "4.17.15"
-  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
-  integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
-
-loglevel@^1.6.3:
-  version "1.6.3"
-  resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.3.tgz#77f2eb64be55a404c9fd04ad16d57c1d6d6b1280"
-  integrity sha512-LoEDv5pgpvWgPF4kNYuIp0qqSJVWak/dML0RY74xlzMZiT9w77teNAwKYKWBTYjlokMirg+o3jBwp+vlLrcfAA==
-
-loose-envify@^1.0.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
-  integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==
-  dependencies:
-    js-tokens "^3.0.0 || ^4.0.0"
-
-lower-case@^1.1.1:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac"
-  integrity sha1-miyr0bno4K6ZOkv31YdcOcQujqw=
-
-lru-cache@^4.1.2:
-  version "4.1.5"
-  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
-  integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
-  dependencies:
-    pseudomap "^1.0.2"
-    yallist "^2.1.2"
-
-lru-cache@^5.1.1:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920"
-  integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==
-  dependencies:
-    yallist "^3.0.2"
-
-make-dir@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
-  integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==
-  dependencies:
-    pify "^4.0.1"
-    semver "^5.6.0"
-
-mamacro@^0.0.3:
-  version "0.0.3"
-  resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4"
-  integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==
-
-map-age-cleaner@^0.1.1:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a"
-  integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==
-  dependencies:
-    p-defer "^1.0.0"
-
-map-cache@^0.2.2:
-  version "0.2.2"
-  resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf"
-  integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=
-
-map-visit@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f"
-  integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=
-  dependencies:
-    object-visit "^1.0.0"
-
-markdown-it-anchor@^5.0.2:
-  version "5.2.4"
-  resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-5.2.4.tgz#d39306fe4c199705b4479d3036842cf34dcba24f"
-  integrity sha512-n8zCGjxA3T+Mx1pG8HEgbJbkB8JFUuRkeTZQuIM8iPY6oQ8sWOPRZJDFC9a/pNg2QkHEjjGkhBEl/RSyzaDZ3A==
-
-markdown-it-chain@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/markdown-it-chain/-/markdown-it-chain-1.3.0.tgz#ccf6fe86c10266bafb4e547380dfd7f277cc17bc"
-  integrity sha512-XClV8I1TKy8L2qsT9iX3qiV+50ZtcInGXI80CA+DP62sMs7hXlyV/RM3hfwy5O3Ad0sJm9xIwQELgANfESo8mQ==
-  dependencies:
-    webpack-chain "^4.9.0"
-
-markdown-it-container@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/markdown-it-container/-/markdown-it-container-2.0.0.tgz#0019b43fd02eefece2f1960a2895fba81a404695"
-  integrity sha1-ABm0P9Au7+zi8ZYKKJX7qBpARpU=
-
-markdown-it-emoji@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz#9bee0e9a990a963ba96df6980c4fddb05dfb4dcc"
-  integrity sha1-m+4OmpkKljupbfaYDE/dsF37Tcw=
-
-markdown-it-table-of-contents@^0.4.0:
-  version "0.4.4"
-  resolved "https://registry.yarnpkg.com/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz#3dc7ce8b8fc17e5981c77cc398d1782319f37fbc"
-  integrity sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw==
-
-markdown-it@^8.4.1:
-  version "8.4.2"
-  resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.2.tgz#386f98998dc15a37722aa7722084f4020bdd9b54"
-  integrity sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==
-  dependencies:
-    argparse "^1.0.7"
-    entities "~1.1.1"
-    linkify-it "^2.0.0"
-    mdurl "^1.0.1"
-    uc.micro "^1.0.5"
-
-md5.js@^1.3.4:
-  version "1.3.5"
-  resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f"
-  integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==
-  dependencies:
-    hash-base "^3.0.0"
-    inherits "^2.0.1"
-    safe-buffer "^5.1.2"
-
-mdn-data@2.0.4:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b"
-  integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==
-
-mdn-data@~1.1.0:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01"
-  integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA==
-
-mdurl@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e"
-  integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=
-
-media-typer@0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
-  integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
-
-mem@^4.0.0:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178"
-  integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==
-  dependencies:
-    map-age-cleaner "^0.1.1"
-    mimic-fn "^2.0.0"
-    p-is-promise "^2.0.0"
-
-memory-fs@^0.4.0, memory-fs@^0.4.1:
-  version "0.4.1"
-  resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
-  integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=
-  dependencies:
-    errno "^0.1.3"
-    readable-stream "^2.0.1"
-
-merge-descriptors@1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
-  integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
-
-merge-source-map@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646"
-  integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==
-  dependencies:
-    source-map "^0.6.1"
-
-merge2@^1.2.3:
-  version "1.2.4"
-  resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.2.4.tgz#c9269589e6885a60cf80605d9522d4b67ca646e3"
-  integrity sha512-FYE8xI+6pjFOhokZu0We3S5NKCirLbCzSh2Usf3qEyr4X8U+0jNg9P8RZ4qz+V2UoECLVwSyzU3LxXBaLGtD3A==
-
-methods@~1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
-  integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
-
-micromatch@^3.1.10, micromatch@^3.1.4:
-  version "3.1.10"
-  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
-  integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==
-  dependencies:
-    arr-diff "^4.0.0"
-    array-unique "^0.3.2"
-    braces "^2.3.1"
-    define-property "^2.0.2"
-    extend-shallow "^3.0.2"
-    extglob "^2.0.4"
-    fragment-cache "^0.2.1"
-    kind-of "^6.0.2"
-    nanomatch "^1.2.9"
-    object.pick "^1.3.0"
-    regex-not "^1.0.0"
-    snapdragon "^0.8.1"
-    to-regex "^3.0.2"
-
-miller-rabin@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
-  integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==
-  dependencies:
-    bn.js "^4.0.0"
-    brorand "^1.0.1"
-
-mime-db@1.40.0:
-  version "1.40.0"
-  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32"
-  integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==
-
-"mime-db@>= 1.40.0 < 2":
-  version "1.41.0"
-  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.41.0.tgz#9110408e1f6aa1b34aef51f2c9df3caddf46b6a0"
-  integrity sha512-B5gxBI+2K431XW8C2rcc/lhppbuji67nf9v39eH8pkWoZDxnAL0PxdpH32KYRScniF8qDHBDlI+ipgg5WrCUYw==
-
-mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24:
-  version "2.1.24"
-  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81"
-  integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==
-  dependencies:
-    mime-db "1.40.0"
-
-mime@1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
-  integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
-
-mime@^2.0.3, mime@^2.3.1:
-  version "2.4.4"
-  resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5"
-  integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==
-
-mimic-fn@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
-  integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==
-
-min-document@^2.19.0:
-  version "2.19.0"
-  resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685"
-  integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=
-  dependencies:
-    dom-walk "^0.1.0"
-
-mini-css-extract-plugin@0.6.0:
-  version "0.6.0"
-  resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.6.0.tgz#a3f13372d6fcde912f3ee4cd039665704801e3b9"
-  integrity sha512-79q5P7YGI6rdnVyIAV4NXpBQJFWdkzJxCim3Kog4078fM0piAaFlwocqbejdWtLW1cEzCexPrh6EdyFsPgVdAw==
-  dependencies:
-    loader-utils "^1.1.0"
-    normalize-url "^2.0.1"
-    schema-utils "^1.0.0"
-    webpack-sources "^1.1.0"
-
-minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7"
-  integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==
-
-minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
-  integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
-
-minimatch@^3.0.4:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
-  integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
-  dependencies:
-    brace-expansion "^1.1.7"
-
-minimist@0.0.8:
-  version "0.0.8"
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d"
-  integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=
-
-minimist@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284"
-  integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=
-
-minipass@^2.2.1, minipass@^2.3.5:
-  version "2.5.0"
-  resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.5.0.tgz#dddb1d001976978158a05badfcbef4a771612857"
-  integrity sha512-9FwMVYhn6ERvMR8XFdOavRz4QK/VJV8elU1x50vYexf9lslDcWe/f4HBRxCPd185ekRSjU6CfYyJCECa/CQy7Q==
-  dependencies:
-    safe-buffer "^5.1.2"
-    yallist "^3.0.0"
-
-minizlib@^1.2.1:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614"
-  integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==
-  dependencies:
-    minipass "^2.2.1"
-
-mississippi@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022"
-  integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==
-  dependencies:
-    concat-stream "^1.5.0"
-    duplexify "^3.4.2"
-    end-of-stream "^1.1.0"
-    flush-write-stream "^1.0.0"
-    from2 "^2.1.0"
-    parallel-transform "^1.1.0"
-    pump "^3.0.0"
-    pumpify "^1.3.3"
-    stream-each "^1.1.0"
-    through2 "^2.0.0"
-
-mixin-deep@^1.2.0:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
-  integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==
-  dependencies:
-    for-in "^1.0.2"
-    is-extendable "^1.0.1"
-
-mkdirp@0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e"
-  integrity sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=
-
-mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1, mkdirp@~0.5.x:
-  version "0.5.1"
-  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
-  integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=
-  dependencies:
-    minimist "0.0.8"
-
-move-concurrently@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92"
-  integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=
-  dependencies:
-    aproba "^1.1.1"
-    copy-concurrently "^1.0.0"
-    fs-write-stream-atomic "^1.0.8"
-    mkdirp "^0.5.1"
-    rimraf "^2.5.4"
-    run-queue "^1.0.3"
-
-ms@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
-  integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
-
-ms@2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
-  integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
-
-ms@^2.1.1:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
-  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-
-multicast-dns-service-types@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901"
-  integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=
-
-multicast-dns@^6.0.1:
-  version "6.2.3"
-  resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229"
-  integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==
-  dependencies:
-    dns-packet "^1.3.1"
-    thunky "^1.0.2"
-
-nan@^2.12.1:
-  version "2.14.0"
-  resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
-  integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==
-
-nanomatch@^1.2.9:
-  version "1.2.13"
-  resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119"
-  integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==
-  dependencies:
-    arr-diff "^4.0.0"
-    array-unique "^0.3.2"
-    define-property "^2.0.2"
-    extend-shallow "^3.0.2"
-    fragment-cache "^0.2.1"
-    is-windows "^1.0.2"
-    kind-of "^6.0.2"
-    object.pick "^1.3.0"
-    regex-not "^1.0.0"
-    snapdragon "^0.8.1"
-    to-regex "^3.0.1"
-
-needle@^2.2.1:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c"
-  integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg==
-  dependencies:
-    debug "^3.2.6"
-    iconv-lite "^0.4.4"
-    sax "^1.2.4"
-
-negotiator@0.6.2:
-  version "0.6.2"
-  resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
-  integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
-
-neo-async@^2.5.0, neo-async@^2.6.1:
-  version "2.6.1"
-  resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
-  integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
-
-nice-try@^1.0.4:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
-  integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
-
-no-case@^2.2.0:
-  version "2.3.2"
-  resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac"
-  integrity sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==
-  dependencies:
-    lower-case "^1.1.1"
-
-node-forge@0.7.5:
-  version "0.7.5"
-  resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df"
-  integrity sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ==
-
-node-libs-browser@^2.2.1:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425"
-  integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==
-  dependencies:
-    assert "^1.1.1"
-    browserify-zlib "^0.2.0"
-    buffer "^4.3.0"
-    console-browserify "^1.1.0"
-    constants-browserify "^1.0.0"
-    crypto-browserify "^3.11.0"
-    domain-browser "^1.1.1"
-    events "^3.0.0"
-    https-browserify "^1.0.0"
-    os-browserify "^0.3.0"
-    path-browserify "0.0.1"
-    process "^0.11.10"
-    punycode "^1.2.4"
-    querystring-es3 "^0.2.0"
-    readable-stream "^2.3.3"
-    stream-browserify "^2.0.1"
-    stream-http "^2.7.2"
-    string_decoder "^1.0.0"
-    timers-browserify "^2.0.4"
-    tty-browserify "0.0.0"
-    url "^0.11.0"
-    util "^0.11.0"
-    vm-browserify "^1.0.1"
-
-node-pre-gyp@^0.12.0:
-  version "0.12.0"
-  resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149"
-  integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==
-  dependencies:
-    detect-libc "^1.0.2"
-    mkdirp "^0.5.1"
-    needle "^2.2.1"
-    nopt "^4.0.1"
-    npm-packlist "^1.1.6"
-    npmlog "^4.0.2"
-    rc "^1.2.7"
-    rimraf "^2.6.1"
-    semver "^5.3.0"
-    tar "^4"
-
-node-releases@^1.1.29:
-  version "1.1.29"
-  resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.29.tgz#86a57c6587a30ecd6726449e5d293466b0a0bb86"
-  integrity sha512-R5bDhzh6I+tpi/9i2hrrvGJ3yKPYzlVOORDkXhnZuwi5D3q1I5w4vYy24PJXTcLk9Q0kws9TO77T75bcK8/ysQ==
-  dependencies:
-    semver "^5.3.0"
-
-nopt@1.0.10:
-  version "1.0.10"
-  resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
-  integrity sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=
-  dependencies:
-    abbrev "1"
-
-nopt@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d"
-  integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00=
-  dependencies:
-    abbrev "1"
-    osenv "^0.1.4"
-
-normalize-path@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9"
-  integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=
-  dependencies:
-    remove-trailing-separator "^1.0.1"
-
-normalize-path@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65"
-  integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==
-
-normalize-range@^0.1.2:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942"
-  integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=
-
-normalize-url@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6"
-  integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==
-  dependencies:
-    prepend-http "^2.0.0"
-    query-string "^5.0.1"
-    sort-keys "^2.0.0"
-
-normalize-url@^3.0.0:
-  version "3.3.0"
-  resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559"
-  integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==
-
-npm-bundled@^1.0.1:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd"
-  integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g==
-
-npm-packlist@^1.1.6:
-  version "1.4.4"
-  resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44"
-  integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw==
-  dependencies:
-    ignore-walk "^3.0.1"
-    npm-bundled "^1.0.1"
-
-npm-run-path@^2.0.0:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
-  integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
-  dependencies:
-    path-key "^2.0.0"
-
-npmlog@^4.0.2:
-  version "4.1.2"
-  resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
-  integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
-  dependencies:
-    are-we-there-yet "~1.1.2"
-    console-control-strings "~1.1.0"
-    gauge "~2.7.3"
-    set-blocking "~2.0.0"
-
-nprogress@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/nprogress/-/nprogress-0.2.0.tgz#cb8f34c53213d895723fcbab907e9422adbcafb1"
-  integrity sha1-y480xTIT2JVyP8urkH6UIq28r7E=
-
-nth-check@^1.0.2, nth-check@~1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c"
-  integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==
-  dependencies:
-    boolbase "~1.0.0"
-
-num2fraction@^1.2.2:
-  version "1.2.2"
-  resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
-  integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
-
-number-is-nan@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
-  integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
-
-oauth-sign@~0.9.0:
-  version "0.9.0"
-  resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
-  integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
-
-object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
-  integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
-
-object-copy@^0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c"
-  integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw=
-  dependencies:
-    copy-descriptor "^0.1.0"
-    define-property "^0.2.5"
-    kind-of "^3.0.3"
-
-object-inspect@^1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b"
-  integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==
-
-object-is@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6"
-  integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY=
-
-object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.0, object-keys@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
-  integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
-
-object-visit@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
-  integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=
-  dependencies:
-    isobject "^3.0.0"
-
-object.assign@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
-  integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
-  dependencies:
-    define-properties "^1.1.2"
-    function-bind "^1.1.1"
-    has-symbols "^1.0.0"
-    object-keys "^1.0.11"
-
-object.getownpropertydescriptors@^2.0.3:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16"
-  integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=
-  dependencies:
-    define-properties "^1.1.2"
-    es-abstract "^1.5.1"
-
-object.pick@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747"
-  integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=
-  dependencies:
-    isobject "^3.0.1"
-
-object.values@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9"
-  integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg==
-  dependencies:
-    define-properties "^1.1.3"
-    es-abstract "^1.12.0"
-    function-bind "^1.1.1"
-    has "^1.0.3"
-
-obuf@^1.0.0, obuf@^1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
-  integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
-
-on-finished@~2.3.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
-  integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=
-  dependencies:
-    ee-first "1.1.1"
-
-on-headers@~1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
-  integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==
-
-once@^1.3.0, once@^1.3.1, once@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
-  integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
-  dependencies:
-    wrappy "1"
-
-opencollective-postinstall@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89"
-  integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw==
-
-opn@^5.5.0:
-  version "5.5.0"
-  resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc"
-  integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==
-  dependencies:
-    is-wsl "^1.1.0"
-
-optimize-css-assets-webpack-plugin@^5.0.1:
-  version "5.0.3"
-  resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz#e2f1d4d94ad8c0af8967ebd7cf138dcb1ef14572"
-  integrity sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA==
-  dependencies:
-    cssnano "^4.1.10"
-    last-call-webpack-plugin "^3.0.0"
-
-original@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f"
-  integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==
-  dependencies:
-    url-parse "^1.4.3"
-
-os-browserify@^0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
-  integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=
-
-os-homedir@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3"
-  integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M=
-
-os-locale@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a"
-  integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==
-  dependencies:
-    execa "^1.0.0"
-    lcid "^2.0.0"
-    mem "^4.0.0"
-
-os-tmpdir@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
-  integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
-
-osenv@^0.1.4:
-  version "0.1.5"
-  resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410"
-  integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==
-  dependencies:
-    os-homedir "^1.0.0"
-    os-tmpdir "^1.0.0"
-
-p-defer@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c"
-  integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=
-
-p-finally@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
-  integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
-
-p-is-promise@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e"
-  integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==
-
-p-limit@^1.1.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8"
-  integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==
-  dependencies:
-    p-try "^1.0.0"
-
-p-limit@^2.0.0, p-limit@^2.2.0:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537"
-  integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==
-  dependencies:
-    p-try "^2.0.0"
-
-p-locate@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
-  integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=
-  dependencies:
-    p-limit "^1.1.0"
-
-p-locate@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4"
-  integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==
-  dependencies:
-    p-limit "^2.0.0"
-
-p-map@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
-  integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==
-
-p-retry@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328"
-  integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==
-  dependencies:
-    retry "^0.12.0"
-
-p-try@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3"
-  integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=
-
-p-try@^2.0.0:
-  version "2.2.0"
-  resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
-  integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==
-
-pako@~1.0.5:
-  version "1.0.10"
-  resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732"
-  integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==
-
-parallel-transform@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06"
-  integrity sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=
-  dependencies:
-    cyclist "~0.2.2"
-    inherits "^2.0.3"
-    readable-stream "^2.1.5"
-
-param-case@2.1.x:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247"
-  integrity sha1-35T9jPZTHs915r75oIWPvHK+Ikc=
-  dependencies:
-    no-case "^2.2.0"
-
-parse-asn1@^5.0.0:
-  version "5.1.4"
-  resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc"
-  integrity sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==
-  dependencies:
-    asn1.js "^4.0.0"
-    browserify-aes "^1.0.0"
-    create-hash "^1.1.0"
-    evp_bytestokey "^1.0.0"
-    pbkdf2 "^3.0.3"
-    safe-buffer "^5.1.1"
-
-parse-json@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0"
-  integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=
-  dependencies:
-    error-ex "^1.3.1"
-    json-parse-better-errors "^1.0.1"
-
-parseurl@~1.3.2, parseurl@~1.3.3:
-  version "1.3.3"
-  resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
-  integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==
-
-pascalcase@^0.1.1:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
-  integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
-
-path-browserify@0.0.1:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a"
-  integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==
-
-path-dirname@^1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0"
-  integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=
-
-path-exists@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
-  integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=
-
-path-is-absolute@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
-  integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
-
-path-is-inside@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
-  integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=
-
-path-key@^2.0.0, path-key@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
-  integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
-
-path-parse@^1.0.6:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
-  integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
-
-path-to-regexp@0.1.7:
-  version "0.1.7"
-  resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
-  integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
-
-path-type@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f"
-  integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==
-  dependencies:
-    pify "^3.0.0"
-
-pbkdf2@^3.0.3:
-  version "3.0.17"
-  resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6"
-  integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==
-  dependencies:
-    create-hash "^1.1.2"
-    create-hmac "^1.1.4"
-    ripemd160 "^2.0.1"
-    safe-buffer "^5.0.1"
-    sha.js "^2.4.8"
-
-performance-now@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
-  integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
-
-pify@^2.0.0:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
-  integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw=
-
-pify@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"
-  integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=
-
-pify@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
-  integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
-
-pinkie-promise@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
-  integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
-  dependencies:
-    pinkie "^2.0.0"
-
-pinkie@^2.0.0:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
-  integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
-
-pkg-dir@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
-  integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==
-  dependencies:
-    find-up "^3.0.0"
-
-pkg-up@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"
-  integrity sha1-yBmscoBZpGHKscOImivjxJoATX8=
-  dependencies:
-    find-up "^2.1.0"
-
-portfinder@^1.0.13, portfinder@^1.0.21:
-  version "1.0.23"
-  resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.23.tgz#894db4bcc5daf02b6614517ce89cd21a38226b82"
-  integrity sha512-B729mL/uLklxtxuiJKfQ84WPxNw5a7Yhx3geQZdcA4GjNjZSTSSMMWyoennMVnTWSmAR0lMdzWYN0JLnHrg1KQ==
-  dependencies:
-    async "^1.5.2"
-    debug "^2.2.0"
-    mkdirp "0.5.x"
-
-posix-character-classes@^0.1.0:
-  version "0.1.1"
-  resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
-  integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=
-
-postcss-calc@^7.0.1:
-  version "7.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436"
-  integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ==
-  dependencies:
-    css-unit-converter "^1.1.1"
-    postcss "^7.0.5"
-    postcss-selector-parser "^5.0.0-rc.4"
-    postcss-value-parser "^3.3.1"
-
-postcss-colormin@^4.0.3:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381"
-  integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==
-  dependencies:
-    browserslist "^4.0.0"
-    color "^3.0.0"
-    has "^1.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-
-postcss-convert-values@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f"
-  integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==
-  dependencies:
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-
-postcss-discard-comments@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033"
-  integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==
-  dependencies:
-    postcss "^7.0.0"
-
-postcss-discard-duplicates@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb"
-  integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==
-  dependencies:
-    postcss "^7.0.0"
-
-postcss-discard-empty@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765"
-  integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==
-  dependencies:
-    postcss "^7.0.0"
-
-postcss-discard-overridden@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57"
-  integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==
-  dependencies:
-    postcss "^7.0.0"
-
-postcss-load-config@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003"
-  integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==
-  dependencies:
-    cosmiconfig "^5.0.0"
-    import-cwd "^2.0.0"
-
-postcss-loader@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d"
-  integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==
-  dependencies:
-    loader-utils "^1.1.0"
-    postcss "^7.0.0"
-    postcss-load-config "^2.0.0"
-    schema-utils "^1.0.0"
-
-postcss-merge-longhand@^4.0.11:
-  version "4.0.11"
-  resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24"
-  integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==
-  dependencies:
-    css-color-names "0.0.4"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-    stylehacks "^4.0.0"
-
-postcss-merge-rules@^4.0.3:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650"
-  integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==
-  dependencies:
-    browserslist "^4.0.0"
-    caniuse-api "^3.0.0"
-    cssnano-util-same-parent "^4.0.0"
-    postcss "^7.0.0"
-    postcss-selector-parser "^3.0.0"
-    vendors "^1.0.0"
-
-postcss-minify-font-values@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6"
-  integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==
-  dependencies:
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-
-postcss-minify-gradients@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471"
-  integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==
-  dependencies:
-    cssnano-util-get-arguments "^4.0.0"
-    is-color-stop "^1.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-
-postcss-minify-params@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874"
-  integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==
-  dependencies:
-    alphanum-sort "^1.0.0"
-    browserslist "^4.0.0"
-    cssnano-util-get-arguments "^4.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-    uniqs "^2.0.0"
-
-postcss-minify-selectors@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8"
-  integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==
-  dependencies:
-    alphanum-sort "^1.0.0"
-    has "^1.0.0"
-    postcss "^7.0.0"
-    postcss-selector-parser "^3.0.0"
-
-postcss-modules-extract-imports@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e"
-  integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==
-  dependencies:
-    postcss "^7.0.5"
-
-postcss-modules-local-by-default@^2.0.6:
-  version "2.0.6"
-  resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-2.0.6.tgz#dd9953f6dd476b5fd1ef2d8830c8929760b56e63"
-  integrity sha512-oLUV5YNkeIBa0yQl7EYnxMgy4N6noxmiwZStaEJUSe2xPMcdNc8WmBQuQCx18H5psYbVxz8zoHk0RAAYZXP9gA==
-  dependencies:
-    postcss "^7.0.6"
-    postcss-selector-parser "^6.0.0"
-    postcss-value-parser "^3.3.1"
-
-postcss-modules-scope@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz#ad3f5bf7856114f6fcab901b0502e2a2bc39d4eb"
-  integrity sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A==
-  dependencies:
-    postcss "^7.0.6"
-    postcss-selector-parser "^6.0.0"
-
-postcss-modules-values@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-2.0.0.tgz#479b46dc0c5ca3dc7fa5270851836b9ec7152f64"
-  integrity sha512-Ki7JZa7ff1N3EIMlPnGTZfUMe69FFwiQPnVSXC9mnn3jozCRBYIxiZd44yJOV2AmabOo4qFf8s0dC/+lweG7+w==
-  dependencies:
-    icss-replace-symbols "^1.1.0"
-    postcss "^7.0.6"
-
-postcss-normalize-charset@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4"
-  integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==
-  dependencies:
-    postcss "^7.0.0"
-
-postcss-normalize-display-values@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a"
-  integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==
-  dependencies:
-    cssnano-util-get-match "^4.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-
-postcss-normalize-positions@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f"
-  integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==
-  dependencies:
-    cssnano-util-get-arguments "^4.0.0"
-    has "^1.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-
-postcss-normalize-repeat-style@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c"
-  integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==
-  dependencies:
-    cssnano-util-get-arguments "^4.0.0"
-    cssnano-util-get-match "^4.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-
-postcss-normalize-string@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c"
-  integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==
-  dependencies:
-    has "^1.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-
-postcss-normalize-timing-functions@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9"
-  integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==
-  dependencies:
-    cssnano-util-get-match "^4.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-
-postcss-normalize-unicode@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb"
-  integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==
-  dependencies:
-    browserslist "^4.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-
-postcss-normalize-url@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1"
-  integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==
-  dependencies:
-    is-absolute-url "^2.0.0"
-    normalize-url "^3.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-
-postcss-normalize-whitespace@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82"
-  integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==
-  dependencies:
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-
-postcss-ordered-values@^4.1.2:
-  version "4.1.2"
-  resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee"
-  integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==
-  dependencies:
-    cssnano-util-get-arguments "^4.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-
-postcss-reduce-initial@^4.0.3:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df"
-  integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==
-  dependencies:
-    browserslist "^4.0.0"
-    caniuse-api "^3.0.0"
-    has "^1.0.0"
-    postcss "^7.0.0"
-
-postcss-reduce-transforms@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29"
-  integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==
-  dependencies:
-    cssnano-util-get-match "^4.0.0"
-    has "^1.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-
-postcss-safe-parser@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz#8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea"
-  integrity sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ==
-  dependencies:
-    postcss "^7.0.0"
-
-postcss-selector-parser@^3.0.0:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865"
-  integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU=
-  dependencies:
-    dot-prop "^4.1.1"
-    indexes-of "^1.0.1"
-    uniq "^1.0.1"
-
-postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.4:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c"
-  integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==
-  dependencies:
-    cssesc "^2.0.0"
-    indexes-of "^1.0.1"
-    uniq "^1.0.1"
-
-postcss-selector-parser@^6.0.0:
-  version "6.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c"
-  integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==
-  dependencies:
-    cssesc "^3.0.0"
-    indexes-of "^1.0.1"
-    uniq "^1.0.1"
-
-postcss-svgo@^4.0.2:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258"
-  integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==
-  dependencies:
-    is-svg "^3.0.0"
-    postcss "^7.0.0"
-    postcss-value-parser "^3.0.0"
-    svgo "^1.0.0"
-
-postcss-unique-selectors@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac"
-  integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==
-  dependencies:
-    alphanum-sort "^1.0.0"
-    postcss "^7.0.0"
-    uniqs "^2.0.0"
-
-postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0, postcss-value-parser@^3.3.1:
-  version "3.3.1"
-  resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
-  integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
-
-postcss-value-parser@^4.0.0:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9"
-  integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ==
-
-postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.5, postcss@^7.0.6:
-  version "7.0.17"
-  resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.17.tgz#4da1bdff5322d4a0acaab4d87f3e782436bad31f"
-  integrity sha512-546ZowA+KZ3OasvQZHsbuEpysvwTZNGJv9EfyCQdsIDltPSWHAeTQ5fQy/Npi2ZDtLI3zs7Ps/p6wThErhm9fQ==
-  dependencies:
-    chalk "^2.4.2"
-    source-map "^0.6.1"
-    supports-color "^6.1.0"
-
-prepend-http@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897"
-  integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=
-
-prettier@1.16.3:
-  version "1.16.3"
-  resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.3.tgz#8c62168453badef702f34b45b6ee899574a6a65d"
-  integrity sha512-kn/GU6SMRYPxUakNXhpP0EedT/KmaPzr0H5lIsDogrykbaxOpOfAFfk5XA7DZrJyMAv1wlMV3CPcZruGXVVUZw==
-
-pretty-error@^2.0.2:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3"
-  integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=
-  dependencies:
-    renderkid "^2.0.1"
-    utila "~0.4"
-
-pretty-time@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/pretty-time/-/pretty-time-1.1.0.tgz#ffb7429afabb8535c346a34e41873adf3d74dd0e"
-  integrity sha512-28iF6xPQrP8Oa6uxE6a1biz+lWeTOAPKggvjB8HAs6nVMKZwf5bG++632Dx614hIWgUPkgivRfG+a8uAXGTIbA==
-
-prismjs@^1.13.0:
-  version "1.17.1"
-  resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.17.1.tgz#e669fcbd4cdd873c35102881c33b14d0d68519be"
-  integrity sha512-PrEDJAFdUGbOP6xK/UsfkC5ghJsPJviKgnQOoxaDbBjwc8op68Quupwt1DeAFoG8GImPhiKXAvvsH7wDSLsu1Q==
-  optionalDependencies:
-    clipboard "^2.0.0"
-
-private@^0.1.6:
-  version "0.1.8"
-  resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff"
-  integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==
-
-process-nextick-args@~2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
-  integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
-
-process@^0.11.10:
-  version "0.11.10"
-  resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182"
-  integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI=
-
-promise-inflight@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
-  integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM=
-
-proxy-addr@~2.0.5:
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34"
-  integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==
-  dependencies:
-    forwarded "~0.1.2"
-    ipaddr.js "1.9.0"
-
-prr@~1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
-  integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
-
-pseudomap@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
-  integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
-
-psl@^1.1.24:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/psl/-/psl-1.3.1.tgz#d5aa3873a35ec450bc7db9012ad5a7246f6fc8bd"
-  integrity sha512-2KLd5fKOdAfShtY2d/8XDWVRnmp3zp40Qt6ge2zBPFARLXOGUf2fHD5eg+TV/5oxBtQKVhjUaKFsAaE4HnwfSA==
-
-public-encrypt@^4.0.0:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0"
-  integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==
-  dependencies:
-    bn.js "^4.1.0"
-    browserify-rsa "^4.0.0"
-    create-hash "^1.1.0"
-    parse-asn1 "^5.0.0"
-    randombytes "^2.0.1"
-    safe-buffer "^5.1.2"
-
-pump@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909"
-  integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==
-  dependencies:
-    end-of-stream "^1.1.0"
-    once "^1.3.1"
-
-pump@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
-  integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
-  dependencies:
-    end-of-stream "^1.1.0"
-    once "^1.3.1"
-
-pumpify@^1.3.3:
-  version "1.5.1"
-  resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce"
-  integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==
-  dependencies:
-    duplexify "^3.6.0"
-    inherits "^2.0.3"
-    pump "^2.0.0"
-
-punycode@1.3.2:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d"
-  integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=
-
-punycode@^1.2.4, punycode@^1.4.1:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
-  integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
-
-punycode@^2.1.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
-  integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
-
-q@^1.1.2:
-  version "1.5.1"
-  resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
-  integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
-
-qs@6.7.0:
-  version "6.7.0"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
-  integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==
-
-qs@~6.5.2:
-  version "6.5.2"
-  resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
-  integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
-
-query-string@^5.0.1:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb"
-  integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==
-  dependencies:
-    decode-uri-component "^0.2.0"
-    object-assign "^4.1.0"
-    strict-uri-encode "^1.0.0"
-
-querystring-es3@^0.2.0, querystring-es3@^0.2.1:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
-  integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=
-
-querystring@0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
-  integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=
-
-querystringify@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e"
-  integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==
-
-randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
-  integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==
-  dependencies:
-    safe-buffer "^5.1.0"
-
-randomfill@^1.0.3:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458"
-  integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==
-  dependencies:
-    randombytes "^2.0.5"
-    safe-buffer "^5.1.0"
-
-range-parser@^1.0.3, range-parser@~1.2.1:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
-  integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==
-
-raw-body@2.4.0:
-  version "2.4.0"
-  resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
-  integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==
-  dependencies:
-    bytes "3.1.0"
-    http-errors "1.7.2"
-    iconv-lite "0.4.24"
-    unpipe "1.0.0"
-
-rc@^1.2.7:
-  version "1.2.8"
-  resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
-  integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==
-  dependencies:
-    deep-extend "^0.6.0"
-    ini "~1.3.0"
-    minimist "^1.2.0"
-    strip-json-comments "~2.0.1"
-
-"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6:
-  version "2.3.6"
-  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
-  integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
-  dependencies:
-    core-util-is "~1.0.0"
-    inherits "~2.0.3"
-    isarray "~1.0.0"
-    process-nextick-args "~2.0.0"
-    safe-buffer "~5.1.1"
-    string_decoder "~1.1.1"
-    util-deprecate "~1.0.1"
-
-readable-stream@^3.0.6, readable-stream@^3.1.1:
-  version "3.4.0"
-  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc"
-  integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==
-  dependencies:
-    inherits "^2.0.3"
-    string_decoder "^1.1.1"
-    util-deprecate "^1.0.1"
-
-readdirp@^2.2.1:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
-  integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==
-  dependencies:
-    graceful-fs "^4.1.11"
-    micromatch "^3.1.10"
-    readable-stream "^2.0.2"
-
-reduce@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/reduce/-/reduce-1.0.2.tgz#0cd680ad3ffe0b060e57a5c68bdfce37168d361b"
-  integrity sha512-xX7Fxke/oHO5IfZSk77lvPa/7bjMh9BuCk4OOoX5XTXrM7s0Z+MkPfSDfz0q7r91BhhGSs8gii/VEN/7zhCPpQ==
-  dependencies:
-    object-keys "^1.1.0"
-
-regenerate-unicode-properties@^8.1.0:
-  version "8.1.0"
-  resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e"
-  integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==
-  dependencies:
-    regenerate "^1.4.0"
-
-regenerate@^1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11"
-  integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==
-
-regenerator-runtime@^0.13.2:
-  version "0.13.3"
-  resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5"
-  integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==
-
-regenerator-transform@^0.14.0:
-  version "0.14.1"
-  resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb"
-  integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ==
-  dependencies:
-    private "^0.1.6"
-
-regex-not@^1.0.0, regex-not@^1.0.2:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
-  integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==
-  dependencies:
-    extend-shallow "^3.0.2"
-    safe-regex "^1.1.0"
-
-regexp-tree@^0.1.6:
-  version "0.1.13"
-  resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.13.tgz#5b19ab9377edc68bc3679256840bb29afc158d7f"
-  integrity sha512-hwdV/GQY5F8ReLZWO+W1SRoN5YfpOKY6852+tBFcma72DKBIcHjPRIlIvQN35bCOljuAfP2G2iB0FC/w236mUw==
-
-regexp.prototype.flags@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c"
-  integrity sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA==
-  dependencies:
-    define-properties "^1.1.2"
-
-regexpu-core@^4.5.4:
-  version "4.5.5"
-  resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.5.5.tgz#aaffe61c2af58269b3e516b61a73790376326411"
-  integrity sha512-FpI67+ky9J+cDizQUJlIlNZFKual/lUkFr1AG6zOCpwZ9cLrg8UUVakyUQJD7fCDIe9Z2nwTQJNPyonatNmDFQ==
-  dependencies:
-    regenerate "^1.4.0"
-    regenerate-unicode-properties "^8.1.0"
-    regjsgen "^0.5.0"
-    regjsparser "^0.6.0"
-    unicode-match-property-ecmascript "^1.0.4"
-    unicode-match-property-value-ecmascript "^1.1.0"
-
-regjsgen@^0.5.0:
-  version "0.5.0"
-  resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd"
-  integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA==
-
-regjsparser@^0.6.0:
-  version "0.6.0"
-  resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c"
-  integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ==
-  dependencies:
-    jsesc "~0.5.0"
-
-relateurl@0.2.x:
-  version "0.2.7"
-  resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
-  integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
-
-remove-trailing-separator@^1.0.1:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
-  integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
-
-renderkid@^2.0.1:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149"
-  integrity sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==
-  dependencies:
-    css-select "^1.1.0"
-    dom-converter "^0.2"
-    htmlparser2 "^3.3.0"
-    strip-ansi "^3.0.0"
-    utila "^0.4.0"
-
-repeat-element@^1.1.2:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce"
-  integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==
-
-repeat-string@^1.6.1:
-  version "1.6.1"
-  resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637"
-  integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc=
-
-request@^2.87.0:
-  version "2.88.0"
-  resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef"
-  integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==
-  dependencies:
-    aws-sign2 "~0.7.0"
-    aws4 "^1.8.0"
-    caseless "~0.12.0"
-    combined-stream "~1.0.6"
-    extend "~3.0.2"
-    forever-agent "~0.6.1"
-    form-data "~2.3.2"
-    har-validator "~5.1.0"
-    http-signature "~1.2.0"
-    is-typedarray "~1.0.0"
-    isstream "~0.1.2"
-    json-stringify-safe "~5.0.1"
-    mime-types "~2.1.19"
-    oauth-sign "~0.9.0"
-    performance-now "^2.1.0"
-    qs "~6.5.2"
-    safe-buffer "^5.1.2"
-    tough-cookie "~2.4.3"
-    tunnel-agent "^0.6.0"
-    uuid "^3.3.2"
-
-require-directory@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
-  integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
-
-require-main-filename@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
-  integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=
-
-requires-port@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
-  integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
-
-reselect@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/reselect/-/reselect-3.0.1.tgz#efdaa98ea7451324d092b2b2163a6a1d7a9a2147"
-  integrity sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=
-
-resolve-cwd@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
-  integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=
-  dependencies:
-    resolve-from "^3.0.0"
-
-resolve-from@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748"
-  integrity sha1-six699nWiBvItuZTM17rywoYh0g=
-
-resolve-url@^0.2.1:
-  version "0.2.1"
-  resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a"
-  integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=
-
-resolve@^1.2.0, resolve@^1.3.2, resolve@^1.4.0, resolve@^1.8.1:
-  version "1.12.0"
-  resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6"
-  integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w==
-  dependencies:
-    path-parse "^1.0.6"
-
-ret@~0.1.10:
-  version "0.1.15"
-  resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
-  integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==
-
-retry@^0.12.0:
-  version "0.12.0"
-  resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
-  integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=
-
-rgb-regex@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1"
-  integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE=
-
-rgba-regex@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3"
-  integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=
-
-rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3:
-  version "2.7.1"
-  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec"
-  integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==
-  dependencies:
-    glob "^7.1.3"
-
-ripemd160@^2.0.0, ripemd160@^2.0.1:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c"
-  integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==
-  dependencies:
-    hash-base "^3.0.0"
-    inherits "^2.0.1"
-
-run-queue@^1.0.0, run-queue@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47"
-  integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=
-  dependencies:
-    aproba "^1.1.1"
-
-safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
-  version "5.1.2"
-  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
-  integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
-
-safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
-  integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==
-
-safe-regex@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
-  integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4=
-  dependencies:
-    ret "~0.1.10"
-
-"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@^2.1.2, safer-buffer@~2.1.0:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
-  integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
-
-sax@^1.2.4, sax@~1.2.4:
-  version "1.2.4"
-  resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
-  integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
-
-schema-utils@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770"
-  integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==
-  dependencies:
-    ajv "^6.1.0"
-    ajv-errors "^1.0.0"
-    ajv-keywords "^3.1.0"
-
-section-matter@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167"
-  integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==
-  dependencies:
-    extend-shallow "^2.0.1"
-    kind-of "^6.0.0"
-
-select-hose@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
-  integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=
-
-select@^1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d"
-  integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=
-
-selfsigned@^1.10.4:
-  version "1.10.4"
-  resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd"
-  integrity sha512-9AukTiDmHXGXWtWjembZ5NDmVvP2695EtpgbCsxCa68w3c88B+alqbmZ4O3hZ4VWGXeGWzEVdvqgAJD8DQPCDw==
-  dependencies:
-    node-forge "0.7.5"
-
-semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0:
-  version "5.7.1"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
-  integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-
-semver@^6.0.0, semver@^6.3.0:
-  version "6.3.0"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
-  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
-
-send@0.17.1:
-  version "0.17.1"
-  resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
-  integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==
-  dependencies:
-    debug "2.6.9"
-    depd "~1.1.2"
-    destroy "~1.0.4"
-    encodeurl "~1.0.2"
-    escape-html "~1.0.3"
-    etag "~1.8.1"
-    fresh "0.5.2"
-    http-errors "~1.7.2"
-    mime "1.6.0"
-    ms "2.1.1"
-    on-finished "~2.3.0"
-    range-parser "~1.2.1"
-    statuses "~1.5.0"
-
-serialize-javascript@^1.3.0, serialize-javascript@^1.7.0:
-  version "1.9.0"
-  resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.0.tgz#5b77019d7c3b85fe91b33ae424c53dcbfb6618bd"
-  integrity sha512-UkGlcYMtw4d9w7YfCtJFgdRTps8N4L0A48R+SmcGL57ki1+yHwJXnalk5bjgrw+ljv6SfzjzPjhohod2qllg/Q==
-
-serve-index@^1.9.1:
-  version "1.9.1"
-  resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
-  integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=
-  dependencies:
-    accepts "~1.3.4"
-    batch "0.6.1"
-    debug "2.6.9"
-    escape-html "~1.0.3"
-    http-errors "~1.6.2"
-    mime-types "~2.1.17"
-    parseurl "~1.3.2"
-
-serve-static@1.14.1:
-  version "1.14.1"
-  resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
-  integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==
-  dependencies:
-    encodeurl "~1.0.2"
-    escape-html "~1.0.3"
-    parseurl "~1.3.3"
-    send "0.17.1"
-
-set-blocking@^2.0.0, set-blocking@~2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
-  integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
-
-set-value@^2.0.0, set-value@^2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
-  integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==
-  dependencies:
-    extend-shallow "^2.0.1"
-    is-extendable "^0.1.1"
-    is-plain-object "^2.0.3"
-    split-string "^3.0.1"
-
-setimmediate@^1.0.4:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
-  integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=
-
-setprototypeof@1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
-  integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==
-
-setprototypeof@1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
-  integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==
-
-sha.js@^2.4.0, sha.js@^2.4.8:
-  version "2.4.11"
-  resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
-  integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==
-  dependencies:
-    inherits "^2.0.1"
-    safe-buffer "^5.0.1"
-
-shebang-command@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
-  integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
-  dependencies:
-    shebang-regex "^1.0.0"
-
-shebang-regex@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
-  integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
-
-signal-exit@^3.0.0:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
-  integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=
-
-simple-swizzle@^0.2.2:
-  version "0.2.2"
-  resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
-  integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=
-  dependencies:
-    is-arrayish "^0.3.1"
-
-slash@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
-  integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
-
-slash@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44"
-  integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==
-
-snapdragon-node@^2.0.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b"
-  integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==
-  dependencies:
-    define-property "^1.0.0"
-    isobject "^3.0.0"
-    snapdragon-util "^3.0.1"
-
-snapdragon-util@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2"
-  integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==
-  dependencies:
-    kind-of "^3.2.0"
-
-snapdragon@^0.8.1:
-  version "0.8.2"
-  resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d"
-  integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==
-  dependencies:
-    base "^0.11.1"
-    debug "^2.2.0"
-    define-property "^0.2.5"
-    extend-shallow "^2.0.1"
-    map-cache "^0.2.2"
-    source-map "^0.5.6"
-    source-map-resolve "^0.5.0"
-    use "^3.1.0"
-
-sockjs-client@1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.3.0.tgz#12fc9d6cb663da5739d3dc5fb6e8687da95cb177"
-  integrity sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==
-  dependencies:
-    debug "^3.2.5"
-    eventsource "^1.0.7"
-    faye-websocket "~0.11.1"
-    inherits "^2.0.3"
-    json3 "^3.3.2"
-    url-parse "^1.4.3"
-
-sockjs@0.3.19:
-  version "0.3.19"
-  resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d"
-  integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==
-  dependencies:
-    faye-websocket "^0.10.0"
-    uuid "^3.0.1"
-
-sort-keys@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128"
-  integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=
-  dependencies:
-    is-plain-obj "^1.0.0"
-
-source-list-map@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
-  integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
-
-source-map-resolve@^0.5.0, source-map-resolve@^0.5.2:
-  version "0.5.2"
-  resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259"
-  integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==
-  dependencies:
-    atob "^2.1.1"
-    decode-uri-component "^0.2.0"
-    resolve-url "^0.2.1"
-    source-map-url "^0.4.0"
-    urix "^0.1.0"
-
-source-map-support@~0.5.12:
-  version "0.5.13"
-  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
-  integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==
-  dependencies:
-    buffer-from "^1.0.0"
-    source-map "^0.6.0"
-
-source-map-url@^0.4.0:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3"
-  integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=
-
-source-map@0.5.6:
-  version "0.5.6"
-  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412"
-  integrity sha1-dc449SvwczxafwwRjYEzSiu19BI=
-
-source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6:
-  version "0.5.7"
-  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
-  integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
-
-source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
-  version "0.6.1"
-  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
-  integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
-
-source-map@^0.7.3:
-  version "0.7.3"
-  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
-  integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
-
-spdy-transport@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
-  integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==
-  dependencies:
-    debug "^4.1.0"
-    detect-node "^2.0.4"
-    hpack.js "^2.1.6"
-    obuf "^1.1.2"
-    readable-stream "^3.0.6"
-    wbuf "^1.7.3"
-
-spdy@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2"
-  integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==
-  dependencies:
-    debug "^4.1.0"
-    handle-thing "^2.0.0"
-    http-deceiver "^1.2.7"
-    select-hose "^2.0.0"
-    spdy-transport "^3.0.0"
-
-split-string@^3.0.1, split-string@^3.0.2:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
-  integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==
-  dependencies:
-    extend-shallow "^3.0.0"
-
-sprintf-js@~1.0.2:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
-  integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
-
-sshpk@^1.7.0:
-  version "1.16.1"
-  resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877"
-  integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==
-  dependencies:
-    asn1 "~0.2.3"
-    assert-plus "^1.0.0"
-    bcrypt-pbkdf "^1.0.0"
-    dashdash "^1.12.0"
-    ecc-jsbn "~0.1.1"
-    getpass "^0.1.1"
-    jsbn "~0.1.0"
-    safer-buffer "^2.0.2"
-    tweetnacl "~0.14.0"
-
-ssri@^6.0.1:
-  version "6.0.1"
-  resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8"
-  integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==
-  dependencies:
-    figgy-pudding "^3.5.1"
-
-stable@^0.1.8:
-  version "0.1.8"
-  resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf"
-  integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==
-
-stack-utils@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8"
-  integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==
-
-static-extend@^0.1.1:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6"
-  integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=
-  dependencies:
-    define-property "^0.2.5"
-    object-copy "^0.1.0"
-
-"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0:
-  version "1.5.0"
-  resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
-  integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=
-
-std-env@^2.2.1:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/std-env/-/std-env-2.2.1.tgz#2ffa0fdc9e2263e0004c1211966e960948a40f6b"
-  integrity sha512-IjYQUinA3lg5re/YMlwlfhqNRTzMZMqE+pezevdcTaHceqx8ngEi1alX9nNCk9Sc81fy1fLDeQoaCzeiW1yBOQ==
-  dependencies:
-    ci-info "^1.6.0"
-
-stream-browserify@^2.0.1:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
-  integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==
-  dependencies:
-    inherits "~2.0.1"
-    readable-stream "^2.0.2"
-
-stream-each@^1.1.0:
-  version "1.2.3"
-  resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae"
-  integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==
-  dependencies:
-    end-of-stream "^1.1.0"
-    stream-shift "^1.0.0"
-
-stream-http@^2.7.2:
-  version "2.8.3"
-  resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc"
-  integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==
-  dependencies:
-    builtin-status-codes "^3.0.0"
-    inherits "^2.0.1"
-    readable-stream "^2.3.6"
-    to-arraybuffer "^1.0.0"
-    xtend "^4.0.0"
-
-stream-shift@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952"
-  integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=
-
-strict-uri-encode@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713"
-  integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=
-
-string-width@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
-  integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
-  dependencies:
-    code-point-at "^1.0.0"
-    is-fullwidth-code-point "^1.0.0"
-    strip-ansi "^3.0.0"
-
-"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
-  integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
-  dependencies:
-    is-fullwidth-code-point "^2.0.0"
-    strip-ansi "^4.0.0"
-
-string-width@^3.0.0:
-  version "3.1.0"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
-  integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
-  dependencies:
-    emoji-regex "^7.0.1"
-    is-fullwidth-code-point "^2.0.0"
-    strip-ansi "^5.1.0"
-
-string.prototype.trimleft@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.0.0.tgz#68b6aa8e162c6a80e76e3a8a0c2e747186e271ff"
-  integrity sha1-aLaqjhYsaoDnbjqKDC50cYbicf8=
-  dependencies:
-    define-properties "^1.1.2"
-    function-bind "^1.0.2"
-
-string.prototype.trimright@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.0.0.tgz#ab4a56d802a01fbe7293e11e84f24dc8164661dd"
-  integrity sha1-q0pW2AKgH75yk+EehPJNyBZGYd0=
-  dependencies:
-    define-properties "^1.1.2"
-    function-bind "^1.0.2"
-
-string_decoder@^1.0.0, string_decoder@^1.1.1:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
-  integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
-  dependencies:
-    safe-buffer "~5.2.0"
-
-string_decoder@~1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
-  integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
-  dependencies:
-    safe-buffer "~5.1.0"
-
-strip-ansi@^3.0.0, strip-ansi@^3.0.1:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
-  integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
-  dependencies:
-    ansi-regex "^2.0.0"
-
-strip-ansi@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
-  integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
-  dependencies:
-    ansi-regex "^3.0.0"
-
-strip-ansi@^5.0.0, strip-ansi@^5.1.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
-  integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
-  dependencies:
-    ansi-regex "^4.1.0"
-
-strip-bom-string@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92"
-  integrity sha1-5SEekiQ2n7uB1jOi8ABE3IztrZI=
-
-strip-eof@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
-  integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
-
-strip-json-comments@~2.0.1:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a"
-  integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo=
-
-stylehacks@^4.0.0:
-  version "4.0.3"
-  resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5"
-  integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==
-  dependencies:
-    browserslist "^4.0.0"
-    postcss "^7.0.0"
-    postcss-selector-parser "^3.0.0"
-
-stylus-loader@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/stylus-loader/-/stylus-loader-3.0.2.tgz#27a706420b05a38e038e7cacb153578d450513c6"
-  integrity sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==
-  dependencies:
-    loader-utils "^1.0.2"
-    lodash.clonedeep "^4.5.0"
-    when "~3.6.x"
-
-stylus@^0.54.5:
-  version "0.54.7"
-  resolved "https://registry.yarnpkg.com/stylus/-/stylus-0.54.7.tgz#c6ce4793965ee538bcebe50f31537bfc04d88cd2"
-  integrity sha512-Yw3WMTzVwevT6ZTrLCYNHAFmanMxdylelL3hkWNgPMeTCpMwpV3nXjpOHuBXtFv7aiO2xRuQS6OoAdgkNcSNug==
-  dependencies:
-    css-parse "~2.0.0"
-    debug "~3.1.0"
-    glob "^7.1.3"
-    mkdirp "~0.5.x"
-    safer-buffer "^2.1.2"
-    sax "~1.2.4"
-    semver "^6.0.0"
-    source-map "^0.7.3"
-
-supports-color@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
-  integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
-
-supports-color@^5.3.0:
-  version "5.5.0"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
-  integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==
-  dependencies:
-    has-flag "^3.0.0"
-
-supports-color@^6.1.0:
-  version "6.1.0"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
-  integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
-  dependencies:
-    has-flag "^3.0.0"
-
-svg-tags@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/svg-tags/-/svg-tags-1.0.0.tgz#58f71cee3bd519b59d4b2a843b6c7de64ac04764"
-  integrity sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=
-
-svgo@^1.0.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.0.tgz#bae51ba95ded9a33a36b7c46ce9c359ae9154313"
-  integrity sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ==
-  dependencies:
-    chalk "^2.4.1"
-    coa "^2.0.2"
-    css-select "^2.0.0"
-    css-select-base-adapter "^0.1.1"
-    css-tree "1.0.0-alpha.33"
-    csso "^3.5.1"
-    js-yaml "^3.13.1"
-    mkdirp "~0.5.1"
-    object.values "^1.1.0"
-    sax "~1.2.4"
-    stable "^0.1.8"
-    unquote "~1.1.1"
-    util.promisify "~1.0.0"
-
-tapable@^1.0.0, tapable@^1.1.3:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
-  integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==
-
-tar@^4:
-  version "4.4.10"
-  resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1"
-  integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA==
-  dependencies:
-    chownr "^1.1.1"
-    fs-minipass "^1.2.5"
-    minipass "^2.3.5"
-    minizlib "^1.2.1"
-    mkdirp "^0.5.0"
-    safe-buffer "^5.1.2"
-    yallist "^3.0.3"
-
-terser-webpack-plugin@^1.4.1:
-  version "1.4.1"
-  resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4"
-  integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg==
-  dependencies:
-    cacache "^12.0.2"
-    find-cache-dir "^2.1.0"
-    is-wsl "^1.1.0"
-    schema-utils "^1.0.0"
-    serialize-javascript "^1.7.0"
-    source-map "^0.6.1"
-    terser "^4.1.2"
-    webpack-sources "^1.4.0"
-    worker-farm "^1.7.0"
-
-terser@^4.1.2:
-  version "4.2.1"
-  resolved "https://registry.yarnpkg.com/terser/-/terser-4.2.1.tgz#1052cfe17576c66e7bc70fcc7119f22b155bdac1"
-  integrity sha512-cGbc5utAcX4a9+2GGVX4DsenG6v0x3glnDi5hx8816X1McEAwPlPgRtXPJzSBsbpILxZ8MQMT0KvArLuE0HP5A==
-  dependencies:
-    commander "^2.20.0"
-    source-map "~0.6.1"
-    source-map-support "~0.5.12"
-
-text-table@^0.2.0:
-  version "0.2.0"
-  resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
-  integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
-
-through2@^2.0.0:
-  version "2.0.5"
-  resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd"
-  integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==
-  dependencies:
-    readable-stream "~2.3.6"
-    xtend "~4.0.1"
-
-through@~2.3.4:
-  version "2.3.8"
-  resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
-  integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
-
-thunky@^1.0.2:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826"
-  integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow==
-
-timers-browserify@^2.0.4:
-  version "2.0.11"
-  resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f"
-  integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==
-  dependencies:
-    setimmediate "^1.0.4"
-
-timsort@^0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4"
-  integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=
-
-tiny-emitter@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423"
-  integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==
-
-to-arraybuffer@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43"
-  integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=
-
-to-factory@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/to-factory/-/to-factory-1.0.0.tgz#8738af8bd97120ad1d4047972ada5563bf9479b1"
-  integrity sha1-hzivi9lxIK0dQEeXKtpVY7+UebE=
-
-to-fast-properties@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e"
-  integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=
-
-to-object-path@^0.3.0:
-  version "0.3.0"
-  resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af"
-  integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=
-  dependencies:
-    kind-of "^3.0.2"
-
-to-regex-range@^2.1.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38"
-  integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=
-  dependencies:
-    is-number "^3.0.0"
-    repeat-string "^1.6.1"
-
-to-regex@^3.0.1, to-regex@^3.0.2:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce"
-  integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==
-  dependencies:
-    define-property "^2.0.2"
-    extend-shallow "^3.0.2"
-    regex-not "^1.0.2"
-    safe-regex "^1.1.0"
-
-toidentifier@1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
-  integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==
-
-toml@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee"
-  integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==
-
-toposort@^1.0.0:
-  version "1.0.7"
-  resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.7.tgz#2e68442d9f64ec720b8cc89e6443ac6caa950029"
-  integrity sha1-LmhELZ9k7HILjMieZEOsbKqVACk=
-
-tough-cookie@~2.4.3:
-  version "2.4.3"
-  resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781"
-  integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==
-  dependencies:
-    psl "^1.1.24"
-    punycode "^1.4.1"
-
-trim-right@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
-  integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=
-
-tslib@^1.9.0:
-  version "1.10.0"
-  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a"
-  integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==
-
-tty-browserify@0.0.0:
-  version "0.0.0"
-  resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
-  integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=
-
-tunnel-agent@^0.6.0:
-  version "0.6.0"
-  resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd"
-  integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=
-  dependencies:
-    safe-buffer "^5.0.1"
-
-tweetnacl@^0.14.3, tweetnacl@~0.14.0:
-  version "0.14.5"
-  resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
-  integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=
-
-type-fest@^0.5.2:
-  version "0.5.2"
-  resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.5.2.tgz#d6ef42a0356c6cd45f49485c3b6281fc148e48a2"
-  integrity sha512-DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==
-
-type-is@~1.6.17, type-is@~1.6.18:
-  version "1.6.18"
-  resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
-  integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==
-  dependencies:
-    media-typer "0.3.0"
-    mime-types "~2.1.24"
-
-typedarray@^0.0.6:
-  version "0.0.6"
-  resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
-  integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
-
-uc.micro@^1.0.1, uc.micro@^1.0.5:
-  version "1.0.6"
-  resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac"
-  integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==
-
-uglify-js@3.4.x:
-  version "3.4.10"
-  resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.4.10.tgz#9ad9563d8eb3acdfb8d38597d2af1d815f6a755f"
-  integrity sha512-Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==
-  dependencies:
-    commander "~2.19.0"
-    source-map "~0.6.1"
-
-unicode-canonical-property-names-ecmascript@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
-  integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==
-
-unicode-match-property-ecmascript@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
-  integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==
-  dependencies:
-    unicode-canonical-property-names-ecmascript "^1.0.4"
-    unicode-property-aliases-ecmascript "^1.0.4"
-
-unicode-match-property-value-ecmascript@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277"
-  integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==
-
-unicode-property-aliases-ecmascript@^1.0.4:
-  version "1.0.5"
-  resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57"
-  integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==
-
-union-value@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847"
-  integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==
-  dependencies:
-    arr-union "^3.1.0"
-    get-value "^2.0.6"
-    is-extendable "^0.1.1"
-    set-value "^2.0.1"
-
-uniq@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff"
-  integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=
-
-uniqs@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02"
-  integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI=
-
-unique-filename@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230"
-  integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==
-  dependencies:
-    unique-slug "^2.0.0"
-
-unique-slug@^2.0.0:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c"
-  integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==
-  dependencies:
-    imurmurhash "^0.1.4"
-
-universalify@^0.1.0:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
-  integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
-
-unpipe@1.0.0, unpipe@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
-  integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=
-
-unquote@~1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544"
-  integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=
-
-unset-value@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
-  integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=
-  dependencies:
-    has-value "^0.3.1"
-    isobject "^3.0.0"
-
-upath@^1.1.0, upath@^1.1.1:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
-  integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
-
-upper-case@^1.1.1:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598"
-  integrity sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=
-
-uri-js@^4.2.2:
-  version "4.2.2"
-  resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0"
-  integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==
-  dependencies:
-    punycode "^2.1.0"
-
-urix@^0.1.0:
-  version "0.1.0"
-  resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
-  integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
-
-url-loader@^1.0.1:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8"
-  integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==
-  dependencies:
-    loader-utils "^1.1.0"
-    mime "^2.0.3"
-    schema-utils "^1.0.0"
-
-url-parse@^1.4.3:
-  version "1.4.7"
-  resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278"
-  integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==
-  dependencies:
-    querystringify "^2.1.1"
-    requires-port "^1.0.0"
-
-url@^0.11.0:
-  version "0.11.0"
-  resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
-  integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=
-  dependencies:
-    punycode "1.3.2"
-    querystring "0.2.0"
-
-use@^3.1.0:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
-  integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
-
-util-deprecate@^1.0.1, util-deprecate@~1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
-  integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
-
-util.promisify@1.0.0, util.promisify@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030"
-  integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==
-  dependencies:
-    define-properties "^1.1.2"
-    object.getownpropertydescriptors "^2.0.3"
-
-util@0.10.3:
-  version "0.10.3"
-  resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"
-  integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk=
-  dependencies:
-    inherits "2.0.1"
-
-util@^0.11.0:
-  version "0.11.1"
-  resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61"
-  integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==
-  dependencies:
-    inherits "2.0.3"
-
-utila@^0.4.0, utila@~0.4:
-  version "0.4.0"
-  resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c"
-  integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=
-
-utils-merge@1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
-  integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
-
-uuid@^3.0.1, uuid@^3.3.2:
-  version "3.3.3"
-  resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866"
-  integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==
-
-vary@~1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
-  integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=
-
-vendors@^1.0.0:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.3.tgz#a6467781abd366217c050f8202e7e50cc9eef8c0"
-  integrity sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw==
-
-verror@1.10.0:
-  version "1.10.0"
-  resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400"
-  integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=
-  dependencies:
-    assert-plus "^1.0.0"
-    core-util-is "1.0.2"
-    extsprintf "^1.2.0"
-
-vm-browserify@^1.0.1:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019"
-  integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw==
-
-vue-hot-reload-api@^2.3.0:
-  version "2.3.3"
-  resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.3.tgz#2756f46cb3258054c5f4723de8ae7e87302a1ccf"
-  integrity sha512-KmvZVtmM26BQOMK1rwUZsrqxEGeKiYSZGA7SNWE6uExx8UX/cj9hq2MRV/wWC3Cq6AoeDGk57rL9YMFRel/q+g==
-
-vue-loader@^15.2.4:
-  version "15.7.1"
-  resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.7.1.tgz#6ccacd4122aa80f69baaac08ff295a62e3aefcfd"
-  integrity sha512-fwIKtA23Pl/rqfYP5TSGK7gkEuLhoTvRYW+TU7ER3q9GpNLt/PjG5NLv3XHRDiTg7OPM1JcckBgds+VnAc+HbA==
-  dependencies:
-    "@vue/component-compiler-utils" "^3.0.0"
-    hash-sum "^1.0.2"
-    loader-utils "^1.1.0"
-    vue-hot-reload-api "^2.3.0"
-    vue-style-loader "^4.1.0"
-
-vue-router@^3.0.2:
-  version "3.1.3"
-  resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.1.3.tgz#e6b14fabc0c0ee9fda0e2cbbda74b350e28e412b"
-  integrity sha512-8iSa4mGNXBjyuSZFCCO4fiKfvzqk+mhL0lnKuGcQtO1eoj8nq3CmbEG8FwK5QqoqwDgsjsf1GDuisDX4cdb/aQ==
-
-vue-server-renderer@^2.5.16:
-  version "2.6.10"
-  resolved "https://registry.yarnpkg.com/vue-server-renderer/-/vue-server-renderer-2.6.10.tgz#cb2558842ead360ae2ec1f3719b75564a805b375"
-  integrity sha512-UYoCEutBpKzL2fKCwx8zlRtRtwxbPZXKTqbl2iIF4yRZUNO/ovrHyDAJDljft0kd+K0tZhN53XRHkgvCZoIhug==
-  dependencies:
-    chalk "^1.1.3"
-    hash-sum "^1.0.2"
-    he "^1.1.0"
-    lodash.template "^4.4.0"
-    lodash.uniq "^4.5.0"
-    resolve "^1.2.0"
-    serialize-javascript "^1.3.0"
-    source-map "0.5.6"
-
-vue-style-loader@^4.1.0:
-  version "4.1.2"
-  resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.2.tgz#dedf349806f25ceb4e64f3ad7c0a44fba735fcf8"
-  integrity sha512-0ip8ge6Gzz/Bk0iHovU9XAUQaFt/G2B61bnWa2tCcqqdgfHs1lF9xXorFbE55Gmy92okFT+8bfmySuUOu13vxQ==
-  dependencies:
-    hash-sum "^1.0.2"
-    loader-utils "^1.0.2"
-
-vue-template-compiler@^2.5.16:
-  version "2.6.10"
-  resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.10.tgz#323b4f3495f04faa3503337a82f5d6507799c9cc"
-  integrity sha512-jVZkw4/I/HT5ZMvRnhv78okGusqe0+qH2A0Em0Cp8aq78+NK9TII263CDVz2QXZsIT+yyV/gZc/j/vlwa+Epyg==
-  dependencies:
-    de-indent "^1.0.2"
-    he "^1.1.0"
-
-vue-template-es2015-compiler@^1.9.0:
-  version "1.9.1"
-  resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
-  integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
-
-vue@^2.5.16:
-  version "2.6.10"
-  resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.10.tgz#a72b1a42a4d82a721ea438d1b6bf55e66195c637"
-  integrity sha512-ImThpeNU9HbdZL3utgMCq0oiMzAkt1mcgy3/E6zWC/G6AaQoeuFdsl9nDhTDU3X1R6FK7nsIUuRACVcjI+A2GQ==
-
-vuepress-html-webpack-plugin@^3.2.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/vuepress-html-webpack-plugin/-/vuepress-html-webpack-plugin-3.2.0.tgz#219be272ad510faa8750d2d4e70fd028bfd1c16e"
-  integrity sha512-BebAEl1BmWlro3+VyDhIOCY6Gef2MCBllEVAP3NUAtMguiyOwo/dClbwJ167WYmcxHJKLl7b0Chr9H7fpn1d0A==
-  dependencies:
-    html-minifier "^3.2.3"
-    loader-utils "^0.2.16"
-    lodash "^4.17.3"
-    pretty-error "^2.0.2"
-    tapable "^1.0.0"
-    toposort "^1.0.0"
-    util.promisify "1.0.0"
-
-vuepress-plugin-container@^2.0.0:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/vuepress-plugin-container/-/vuepress-plugin-container-2.0.2.tgz#3489cc732c7a210b31f202556e1346125dffeb73"
-  integrity sha512-SrGYYT7lkie7xlIlAVhn+9sDW42MytNCoxWL/2uDr+q9wZA4h1uYlQvfc2DVjy+FsM9PPPSslkeo/zCpYVY82g==
-  dependencies:
-    markdown-it-container "^2.0.0"
-
-vuepress@^1.0.4:
-  version "1.0.4"
-  resolved "https://registry.yarnpkg.com/vuepress/-/vuepress-1.0.4.tgz#0f02f67ff6dec02fa9c500c39dbe8c8203db87a0"
-  integrity sha512-QzJkRGGOv3+j7MNsjbCLGe5XaAl5fClndQa2woT8j6b+Cc7S1MOHNlITH6zDZ1eH7XETlNI3BmTZ/nJ2aoHyIw==
-  dependencies:
-    "@vuepress/core" "^1.0.4"
-    "@vuepress/theme-default" "^1.0.4"
-    cac "^6.3.9"
-    envinfo "^7.2.0"
-    opencollective-postinstall "^2.0.2"
-
-watchpack@^1.6.0:
-  version "1.6.0"
-  resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00"
-  integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==
-  dependencies:
-    chokidar "^2.0.2"
-    graceful-fs "^4.1.2"
-    neo-async "^2.5.0"
-
-wbuf@^1.1.0, wbuf@^1.7.3:
-  version "1.7.3"
-  resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df"
-  integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==
-  dependencies:
-    minimalistic-assert "^1.0.0"
-
-webpack-chain@^4.6.0, webpack-chain@^4.9.0:
-  version "4.12.1"
-  resolved "https://registry.yarnpkg.com/webpack-chain/-/webpack-chain-4.12.1.tgz#6c8439bbb2ab550952d60e1ea9319141906c02a6"
-  integrity sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ==
-  dependencies:
-    deepmerge "^1.5.2"
-    javascript-stringify "^1.6.0"
-
-webpack-dev-middleware@3.6.0, webpack-dev-middleware@^3.7.0:
-  version "3.6.0"
-  resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.6.0.tgz#71f1b04e52ff8d442757af2be3a658237d53a3e5"
-  integrity sha512-oeXA3m+5gbYbDBGo4SvKpAHJJEGMoekUbHgo1RK7CP1sz7/WOSeu/dWJtSTk+rzDCLkPwQhGocgIq6lQqOyOwg==
-  dependencies:
-    memory-fs "^0.4.1"
-    mime "^2.3.1"
-    range-parser "^1.0.3"
-    webpack-log "^2.0.0"
-
-webpack-dev-server@^3.5.1:
-  version "3.8.0"
-  resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.8.0.tgz#06cc4fc2f440428508d0e9770da1fef10e5ef28d"
-  integrity sha512-Hs8K9yI6pyMvGkaPTeTonhD6JXVsigXDApYk9JLW4M7viVBspQvb1WdAcWxqtmttxNW4zf2UFLsLNe0y87pIGQ==
-  dependencies:
-    ansi-html "0.0.7"
-    bonjour "^3.5.0"
-    chokidar "^2.1.6"
-    compression "^1.7.4"
-    connect-history-api-fallback "^1.6.0"
-    debug "^4.1.1"
-    del "^4.1.1"
-    express "^4.17.1"
-    html-entities "^1.2.1"
-    http-proxy-middleware "^0.19.1"
-    import-local "^2.0.0"
-    internal-ip "^4.3.0"
-    ip "^1.1.5"
-    is-absolute-url "^3.0.0"
-    killable "^1.0.1"
-    loglevel "^1.6.3"
-    opn "^5.5.0"
-    p-retry "^3.0.1"
-    portfinder "^1.0.21"
-    schema-utils "^1.0.0"
-    selfsigned "^1.10.4"
-    semver "^6.3.0"
-    serve-index "^1.9.1"
-    sockjs "0.3.19"
-    sockjs-client "1.3.0"
-    spdy "^4.0.1"
-    strip-ansi "^3.0.1"
-    supports-color "^6.1.0"
-    url "^0.11.0"
-    webpack-dev-middleware "^3.7.0"
-    webpack-log "^2.0.0"
-    ws "^6.2.1"
-    yargs "12.0.5"
-
-webpack-log@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f"
-  integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==
-  dependencies:
-    ansi-colors "^3.0.0"
-    uuid "^3.3.2"
-
-webpack-merge@^4.1.2:
-  version "4.2.2"
-  resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d"
-  integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==
-  dependencies:
-    lodash "^4.17.15"
-
-webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1:
-  version "1.4.3"
-  resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933"
-  integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==
-  dependencies:
-    source-list-map "^2.0.0"
-    source-map "~0.6.1"
-
-webpack@^4.8.1:
-  version "4.39.3"
-  resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.39.3.tgz#a02179d1032156b713b6ec2da7e0df9d037def50"
-  integrity sha512-BXSI9M211JyCVc3JxHWDpze85CvjC842EvpRsVTc/d15YJGlox7GIDd38kJgWrb3ZluyvIjgenbLDMBQPDcxYQ==
-  dependencies:
-    "@webassemblyjs/ast" "1.8.5"
-    "@webassemblyjs/helper-module-context" "1.8.5"
-    "@webassemblyjs/wasm-edit" "1.8.5"
-    "@webassemblyjs/wasm-parser" "1.8.5"
-    acorn "^6.2.1"
-    ajv "^6.10.2"
-    ajv-keywords "^3.4.1"
-    chrome-trace-event "^1.0.2"
-    enhanced-resolve "^4.1.0"
-    eslint-scope "^4.0.3"
-    json-parse-better-errors "^1.0.2"
-    loader-runner "^2.4.0"
-    loader-utils "^1.2.3"
-    memory-fs "^0.4.1"
-    micromatch "^3.1.10"
-    mkdirp "^0.5.1"
-    neo-async "^2.6.1"
-    node-libs-browser "^2.2.1"
-    schema-utils "^1.0.0"
-    tapable "^1.1.3"
-    terser-webpack-plugin "^1.4.1"
-    watchpack "^1.6.0"
-    webpack-sources "^1.4.1"
-
-webpackbar@3.2.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/webpackbar/-/webpackbar-3.2.0.tgz#bdaad103fad11a4e612500e72aaae98b08ba493f"
-  integrity sha512-PC4o+1c8gWWileUfwabe0gqptlXUDJd5E0zbpr2xHP1VSOVlZVPBZ8j6NCR8zM5zbKdxPhctHXahgpNK1qFDPw==
-  dependencies:
-    ansi-escapes "^4.1.0"
-    chalk "^2.4.1"
-    consola "^2.6.0"
-    figures "^3.0.0"
-    pretty-time "^1.1.0"
-    std-env "^2.2.1"
-    text-table "^0.2.0"
-    wrap-ansi "^5.1.0"
-
-websocket-driver@>=0.5.1:
-  version "0.7.3"
-  resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9"
-  integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==
-  dependencies:
-    http-parser-js ">=0.4.0 <0.4.11"
-    safe-buffer ">=5.1.0"
-    websocket-extensions ">=0.1.1"
-
-websocket-extensions@>=0.1.1:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29"
-  integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==
-
-when@~3.6.x:
-  version "3.6.4"
-  resolved "https://registry.yarnpkg.com/when/-/when-3.6.4.tgz#473b517ec159e2b85005497a13983f095412e34e"
-  integrity sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=
-
-which-module@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
-  integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
-
-which@^1.2.9:
-  version "1.3.1"
-  resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
-  integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
-  dependencies:
-    isexe "^2.0.0"
-
-wide-align@^1.1.0:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
-  integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
-  dependencies:
-    string-width "^1.0.2 || 2"
-
-worker-farm@^1.7.0:
-  version "1.7.0"
-  resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
-  integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==
-  dependencies:
-    errno "~0.1.7"
-
-wrap-ansi@^2.0.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85"
-  integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=
-  dependencies:
-    string-width "^1.0.1"
-    strip-ansi "^3.0.1"
-
-wrap-ansi@^5.1.0:
-  version "5.1.0"
-  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09"
-  integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==
-  dependencies:
-    ansi-styles "^3.2.0"
-    string-width "^3.0.0"
-    strip-ansi "^5.0.0"
-
-wrappy@1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
-  integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-
-ws@^6.2.1:
-  version "6.2.1"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb"
-  integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==
-  dependencies:
-    async-limiter "~1.0.0"
-
-xtend@^4.0.0, xtend@~4.0.1:
-  version "4.0.2"
-  resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54"
-  integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==
-
-"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b"
-  integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==
-
-yallist@^2.1.2:
-  version "2.1.2"
-  resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
-  integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
-
-yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3:
-  version "3.0.3"
-  resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9"
-  integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A==
-
-yargs-parser@^11.1.1:
-  version "11.1.1"
-  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4"
-  integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==
-  dependencies:
-    camelcase "^5.0.0"
-    decamelize "^1.2.0"
-
-yargs@12.0.5:
-  version "12.0.5"
-  resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
-  integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==
-  dependencies:
-    cliui "^4.0.0"
-    decamelize "^1.2.0"
-    find-up "^3.0.0"
-    get-caller-file "^1.0.1"
-    os-locale "^3.0.0"
-    require-directory "^2.1.1"
-    require-main-filename "^1.0.1"
-    set-blocking "^2.0.0"
-    string-width "^2.0.0"
-    which-module "^2.0.0"
-    y18n "^3.2.1 || ^4.0.0"
-    yargs-parser "^11.1.1"
-
-zepto@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/zepto/-/zepto-1.2.0.tgz#e127bd9e66fd846be5eab48c1394882f7c0e4f98"
-  integrity sha1-4Se9nmb9hGvl6rSME5SIL3wOT5g=
