/* Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

/*-----------------------------------------------------------------------------
| Copyright (c) Jupyter Development Team.
| Distributed under the terms of the Modified BSD License.
|----------------------------------------------------------------------------*/

/*
This file is copied from the JupyterLab project to define default styling for
when the widget styling is compiled down to eliminate CSS variables. We make one
change - we comment out the font import below.
*/

/**
 * The material design colors are adapted from google-material-color v1.2.6
 * https://github.com/danlevan/google-material-color
 * https://github.com/danlevan/google-material-color/blob/f67ca5f4028b2f1b34862f64b0ca67323f91b088/dist/palette.var.css
 *
 * The license for the material design color CSS variables is as follows (see
 * https://github.com/danlevan/google-material-color/blob/f67ca5f4028b2f1b34862f64b0ca67323f91b088/LICENSE)
 *
 * The MIT License (MIT)
 *
 * Copyright (c) 2014 Dan Le Van
 *
 * 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.
 */

/*
The following CSS variables define the main, public API for styling JupyterLab.
These variables should be used by all plugins wherever possible. In other
words, plugins should not define custom colors, sizes, etc unless absolutely
necessary. This enables users to change the visual theme of JupyterLab
by changing these variables.

Many variables appear in an ordered sequence (0,1,2,3). These sequences
are designed to work well together, so for example, `--jp-border-color1` should
be used with `--jp-layout-color1`. The numbers have the following meanings:

* 0: super-primary, reserved for special emphasis
* 1: primary, most important under normal situations
* 2: secondary, next most important under normal situations
* 3: tertiary, next most important under normal situations

Throughout JupyterLab, we are mostly following principles from Google's
Material Design when selecting colors. We are not, however, following
all of MD as it is not optimized for dense, information rich UIs.
*/

/*
 * Optional monospace font for input/output prompt.
 */

/* Commented out in ipywidgets since we don't need it. */

/* @import url('https://fonts.googleapis.com/css?family=Roboto+Mono'); */

/*
 * Added for compatibility with output area
 */

:root {
  /* Borders

  The following variables, specify the visual styling of borders in JupyterLab.
   */

  /* UI Fonts

  The UI font CSS variables are used for the typography all of the JupyterLab
  user interface elements that are not directly user generated content.
  */ /* Base font size */ /* Ensures px perfect FontAwesome icons */

  /* Use these font colors against the corresponding main layout colors.
     In a light theme, these go from dark to light.
  */

  /* Use these against the brand/accent/warn/error colors.
     These will typically go from light to darker, in both a dark and light theme
   */

  /* Content Fonts

  Content font variables are used for typography of user generated content.
  */ /* Base font size */

  /* Layout

  The following are the main layout colors use in JupyterLab. In a light
  theme these would go from light to dark.
  */

  /* Brand/accent */

  /* State colors (warn, error, success, info) */

  /* Cell specific styles */
  /* A custom blend of MD grey and blue 600
   * See https://meyerweb.com/eric/tools/color-blend/#546E7A:1E88E5:5:hex */
  /* A custom blend of MD grey and orange 600
   * https://meyerweb.com/eric/tools/color-blend/#546E7A:F4511E:5:hex */

  /* Notebook specific styles */

  /* Console specific styles */

  /* Toolbar specific styles */
}

/* Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */

/*
 * We assume that the CSS variables in
 * https://github.com/jupyterlab/jupyterlab/blob/master/src/default-theme/variables.css
 * have been defined.
 */

/* This file has code derived from Lumino CSS files, as noted below. The license for this Lumino code is:

Copyright (c) 2019 Project Jupyter Contributors
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
   list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
   this list of conditions and the following disclaimer in the documentation
   and/or other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its
   contributors may be used to endorse or promote products derived from
   this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


Copyright (c) 2014-2017, PhosphorJS Contributors
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

* Neither the name of the copyright holder nor the names of its
  contributors may be used to endorse or promote products derived from
  this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

/*
 * The following section is derived from https://github.com/jupyterlab/lumino/blob/23b9d075ebc5b73ab148b6ebfc20af97f85714c4/packages/widgets/style/tabbar.css 
 * We've scoped the rules so that they are consistent with exactly our code.
 */

/* <DEPRECATED> */

.jupyter-widgets.widget-tab > .p-TabBar, /* </DEPRECATED> */
/* <DEPRECATED> */.jupyter-widgets.jupyter-widget-tab > .p-TabBar, /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab > .p-TabBar[data-orientation='horizontal'], /* </DEPRECATED> */
/* <DEPRECATED> */.jupyter-widgets.jupyter-widget-tab > .p-TabBar[data-orientation='horizontal'], /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar[data-orientation='horizontal'] {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab > .p-TabBar[data-orientation='vertical'], /* </DEPRECATED> */
/* <DEPRECATED> */.jupyter-widgets.jupyter-widget-tab > .p-TabBar[data-orientation='vertical'], /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar[data-orientation='vertical'] {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab > .p-TabBar > .p-TabBar-content, /* </DEPRECATED> */
/* <DEPRECATED> */.jupyter-widgets.jupyter-widget-tab > .p-TabBar > .p-TabBar-content, /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar > .lm-TabBar-content {
  margin: 0;
  padding: 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  list-style-type: none;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab
  > .p-TabBar[data-orientation='horizontal']
  > .p-TabBar-content,
/* </DEPRECATED> */
/* <DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab
> .p-TabBar[data-orientation='horizontal']
> .p-TabBar-content,
/* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab
  > .lm-TabBar[data-orientation='horizontal']
  > .lm-TabBar-content {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab
  > .p-TabBar[data-orientation='vertical']
  > .p-TabBar-content,
/* </DEPRECATED> */
/* <DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab
> .p-TabBar[data-orientation='vertical']
> .p-TabBar-content,
/* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab
  > .lm-TabBar[data-orientation='vertical']
  > .lm-TabBar-content {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab, /* </DEPRECATED> */
/* <DEPRECATED> */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab, /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  overflow: hidden;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabIcon, /* </DEPRECATED> */
/* <DEPRECATED> */ .jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabCloseIcon, /* </DEPRECATED> */
/* <DEPRECATED> */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabIcon, /* </DEPRECATED> */
/* <DEPRECATED> */ .jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabCloseIcon, /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabIcon,
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabCloseIcon {
  -webkit-box-flex: 0;
      -ms-flex: 0 0 auto;
          flex: 0 0 auto;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabLabel, /* </DEPRECATED> */
/* <DEPRECATED> */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabLabel, /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabLabel {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 auto;
          flex: 1 1 auto;
  overflow: hidden;
  white-space: nowrap;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab.p-mod-hidden, /* </DEPRECATED> */
/* <DEPRECATED> */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab.p-mod-hidden, /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab.lm-mod-hidden {
  display: none !important;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab > .p-TabBar.p-mod-dragging .p-TabBar-tab, /* </DEPRECATED> */
/* <DEPRECATED> */.jupyter-widgets.jupyter-widget-tab > .p-TabBar.p-mod-dragging .p-TabBar-tab, /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar.lm-mod-dragging .lm-TabBar-tab {
  position: relative;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab
  > .p-TabBar.p-mod-dragging[data-orientation='horizontal']
  .p-TabBar-tab,
/* </DEPRECATED> */
/* <DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab
  > .p-TabBar.p-mod-dragging[data-orientation='horizontal']
  .p-TabBar-tab,
/* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab
  > .lm-TabBar.lm-mod-dragging[data-orientation='horizontal']
  .lm-TabBar-tab {
  left: 0;
  -webkit-transition: left 150ms ease;
  transition: left 150ms ease;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab
  > .p-TabBar.p-mod-dragging[data-orientation='vertical']
  .p-TabBar-tab,
/* </DEPRECATED> */
/* <DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab
> .p-TabBar.p-mod-dragging[data-orientation='vertical']
.p-TabBar-tab,
/* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab
  > .lm-TabBar.lm-mod-dragging[data-orientation='vertical']
  .lm-TabBar-tab {
  top: 0;
  -webkit-transition: top 150ms ease;
  transition: top 150ms ease;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab
  > .p-TabBar.p-mod-dragging
  .p-TabBar-tab.p-mod-dragging,
/* </DEPRECATED> */
/* <DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab
> .p-TabBar.p-mod-dragging
.p-TabBar-tab.p-mod-dragging,
/* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab
  > .lm-TabBar.lm-mod-dragging
  .lm-TabBar-tab.lm-mod-dragging {
  -webkit-transition: none;
  transition: none;
}

/* End tabbar.css */

/*

The nouislider.css file is autogenerated from nouislider.less, which imports and wraps the nouislider/src/nouislider.less styles.

MIT License

Copyright (c) 2019 Léon Gersen

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.
*/

/* The .widget-slider class is deprecated */

.widget-slider,
.jupyter-widget-slider {
  /* Functional styling;
 * These styles are required for noUiSlider to function.
 * You don't need to change these rules to apply your design.
 */
  /* Wrapper for all connect elements.
 */
  /* Offset direction
 */
  /* Give origins 0 height/width so they don't interfere with clicking the
 * connect elements.
 */
  /* Slider size and handle placement;
 */
  /* Styling;
 * Giving the connect element a border radius causes issues with using transform: scale
 */
  /* Handles and cursors;
 */
  /* Handle stripes;
 */
  /* Disabled state;
 */
  /* Base;
 *
 */
  /* Values;
 *
 */
  /* Markings;
 *
 */
  /* Horizontal layout;
 *
 */
  /* Vertical layout;
 *
 */
  /* Copyright (c) Jupyter Development Team.
 * Distributed under the terms of the Modified BSD License.
 */
  /* Custom CSS for nouislider */
}

.widget-slider .noUi-target,
.jupyter-widget-slider .noUi-target,
.widget-slider .noUi-target *,
.jupyter-widget-slider .noUi-target * {
  -webkit-touch-callout: none;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  -webkit-user-select: none;
  -ms-touch-action: none;
  touch-action: none;
  -ms-user-select: none;
  -moz-user-select: none;
  user-select: none;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.widget-slider .noUi-target,
.jupyter-widget-slider .noUi-target {
  position: relative;
}

.widget-slider .noUi-base,
.jupyter-widget-slider .noUi-base,
.widget-slider .noUi-connects,
.jupyter-widget-slider .noUi-connects {
  width: 100%;
  height: 100%;
  position: relative;
  z-index: 1;
}

.widget-slider .noUi-connects,
.jupyter-widget-slider .noUi-connects {
  overflow: hidden;
  z-index: 0;
}

.widget-slider .noUi-connect,
.jupyter-widget-slider .noUi-connect,
.widget-slider .noUi-origin,
.jupyter-widget-slider .noUi-origin {
  will-change: transform;
  position: absolute;
  z-index: 1;
  top: 0;
  right: 0;
  -ms-transform-origin: 0 0;
  -webkit-transform-origin: 0 0;
  -webkit-transform-style: preserve-3d;
  transform-origin: 0 0;
  -webkit-transform-style: flat;
          transform-style: flat;
}

.widget-slider .noUi-connect,
.jupyter-widget-slider .noUi-connect {
  height: 100%;
  width: 100%;
}

.widget-slider .noUi-origin,
.jupyter-widget-slider .noUi-origin {
  height: 10%;
  width: 10%;
}

.widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-origin,
.jupyter-widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-origin {
  left: 0;
  right: auto;
}

.widget-slider .noUi-vertical .noUi-origin,
.jupyter-widget-slider .noUi-vertical .noUi-origin {
  width: 0;
}

.widget-slider .noUi-horizontal .noUi-origin,
.jupyter-widget-slider .noUi-horizontal .noUi-origin {
  height: 0;
}

.widget-slider .noUi-handle,
.jupyter-widget-slider .noUi-handle {
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  position: absolute;
}

.widget-slider .noUi-touch-area,
.jupyter-widget-slider .noUi-touch-area {
  height: 100%;
  width: 100%;
}

.widget-slider .noUi-state-tap .noUi-connect,
.jupyter-widget-slider .noUi-state-tap .noUi-connect,
.widget-slider .noUi-state-tap .noUi-origin,
.jupyter-widget-slider .noUi-state-tap .noUi-origin {
  -webkit-transition: transform 0.3s;
  -webkit-transition: -webkit-transform 0.3s;
  transition: -webkit-transform 0.3s;
  transition: transform 0.3s;
  transition: transform 0.3s, -webkit-transform 0.3s;
}

.widget-slider .noUi-state-drag *,
.jupyter-widget-slider .noUi-state-drag * {
  cursor: inherit !important;
}

.widget-slider .noUi-horizontal,
.jupyter-widget-slider .noUi-horizontal {
  height: 18px;
}

.widget-slider .noUi-horizontal .noUi-handle,
.jupyter-widget-slider .noUi-horizontal .noUi-handle {
  width: 34px;
  height: 28px;
  right: -17px;
  top: -6px;
}

.widget-slider .noUi-vertical,
.jupyter-widget-slider .noUi-vertical {
  width: 18px;
}

.widget-slider .noUi-vertical .noUi-handle,
.jupyter-widget-slider .noUi-vertical .noUi-handle {
  width: 28px;
  height: 34px;
  right: -6px;
  top: -17px;
}

.widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-handle,
.jupyter-widget-slider .noUi-txt-dir-rtl.noUi-horizontal .noUi-handle {
  left: -17px;
  right: auto;
}

.widget-slider .noUi-target,
.jupyter-widget-slider .noUi-target {
  background: #FAFAFA;
  border-radius: 4px;
  border: 1px solid #D3D3D3;
  -webkit-box-shadow: inset 0 1px 1px #F0F0F0, 0 3px 6px -5px #BBB;
          box-shadow: inset 0 1px 1px #F0F0F0, 0 3px 6px -5px #BBB;
}

.widget-slider .noUi-connects,
.jupyter-widget-slider .noUi-connects {
  border-radius: 3px;
}

.widget-slider .noUi-connect,
.jupyter-widget-slider .noUi-connect {
  background: #3FB8AF;
}

.widget-slider .noUi-draggable,
.jupyter-widget-slider .noUi-draggable {
  cursor: ew-resize;
}

.widget-slider .noUi-vertical .noUi-draggable,
.jupyter-widget-slider .noUi-vertical .noUi-draggable {
  cursor: ns-resize;
}

.widget-slider .noUi-handle,
.jupyter-widget-slider .noUi-handle {
  border: 1px solid #D9D9D9;
  border-radius: 3px;
  background: #FFF;
  cursor: default;
  -webkit-box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #EBEBEB, 0 3px 6px -3px #BBB;
          box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #EBEBEB, 0 3px 6px -3px #BBB;
}

.widget-slider .noUi-active,
.jupyter-widget-slider .noUi-active {
  -webkit-box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #DDD, 0 3px 6px -3px #BBB;
          box-shadow: inset 0 0 1px #FFF, inset 0 1px 7px #DDD, 0 3px 6px -3px #BBB;
}

.widget-slider .noUi-handle:before,
.jupyter-widget-slider .noUi-handle:before,
.widget-slider .noUi-handle:after,
.jupyter-widget-slider .noUi-handle:after {
  content: "";
  display: block;
  position: absolute;
  height: 14px;
  width: 1px;
  background: #E8E7E6;
  left: 14px;
  top: 6px;
}

.widget-slider .noUi-handle:after,
.jupyter-widget-slider .noUi-handle:after {
  left: 17px;
}

.widget-slider .noUi-vertical .noUi-handle:before,
.jupyter-widget-slider .noUi-vertical .noUi-handle:before,
.widget-slider .noUi-vertical .noUi-handle:after,
.jupyter-widget-slider .noUi-vertical .noUi-handle:after {
  width: 14px;
  height: 1px;
  left: 6px;
  top: 14px;
}

.widget-slider .noUi-vertical .noUi-handle:after,
.jupyter-widget-slider .noUi-vertical .noUi-handle:after {
  top: 17px;
}

.widget-slider [disabled] .noUi-connect,
.jupyter-widget-slider [disabled] .noUi-connect {
  background: #B8B8B8;
}

.widget-slider [disabled].noUi-target,
.jupyter-widget-slider [disabled].noUi-target,
.widget-slider [disabled].noUi-handle,
.jupyter-widget-slider [disabled].noUi-handle,
.widget-slider [disabled] .noUi-handle,
.jupyter-widget-slider [disabled] .noUi-handle {
  cursor: not-allowed;
}

.widget-slider .noUi-pips,
.jupyter-widget-slider .noUi-pips,
.widget-slider .noUi-pips *,
.jupyter-widget-slider .noUi-pips * {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

.widget-slider .noUi-pips,
.jupyter-widget-slider .noUi-pips {
  position: absolute;
  color: #999;
}

.widget-slider .noUi-value,
.jupyter-widget-slider .noUi-value {
  position: absolute;
  white-space: nowrap;
  text-align: center;
}

.widget-slider .noUi-value-sub,
.jupyter-widget-slider .noUi-value-sub {
  color: #ccc;
  font-size: 10px;
}

.widget-slider .noUi-marker,
.jupyter-widget-slider .noUi-marker {
  position: absolute;
  background: #CCC;
}

.widget-slider .noUi-marker-sub,
.jupyter-widget-slider .noUi-marker-sub {
  background: #AAA;
}

.widget-slider .noUi-marker-large,
.jupyter-widget-slider .noUi-marker-large {
  background: #AAA;
}

.widget-slider .noUi-pips-horizontal,
.jupyter-widget-slider .noUi-pips-horizontal {
  padding: 10px 0;
  height: 80px;
  top: 100%;
  left: 0;
  width: 100%;
}

.widget-slider .noUi-value-horizontal,
.jupyter-widget-slider .noUi-value-horizontal {
  -webkit-transform: translate(-50%, 50%);
  transform: translate(-50%, 50%);
}

.noUi-rtl .widget-slider .noUi-value-horizontal,
.noUi-rtl .jupyter-widget-slider .noUi-value-horizontal {
  -webkit-transform: translate(50%, 50%);
  transform: translate(50%, 50%);
}

.widget-slider .noUi-marker-horizontal.noUi-marker,
.jupyter-widget-slider .noUi-marker-horizontal.noUi-marker {
  margin-left: -1px;
  width: 2px;
  height: 5px;
}

.widget-slider .noUi-marker-horizontal.noUi-marker-sub,
.jupyter-widget-slider .noUi-marker-horizontal.noUi-marker-sub {
  height: 10px;
}

.widget-slider .noUi-marker-horizontal.noUi-marker-large,
.jupyter-widget-slider .noUi-marker-horizontal.noUi-marker-large {
  height: 15px;
}

.widget-slider .noUi-pips-vertical,
.jupyter-widget-slider .noUi-pips-vertical {
  padding: 0 10px;
  height: 100%;
  top: 0;
  left: 100%;
}

.widget-slider .noUi-value-vertical,
.jupyter-widget-slider .noUi-value-vertical {
  -webkit-transform: translate(0, -50%);
  transform: translate(0, -50%);
  padding-left: 25px;
}

.noUi-rtl .widget-slider .noUi-value-vertical,
.noUi-rtl .jupyter-widget-slider .noUi-value-vertical {
  -webkit-transform: translate(0, 50%);
  transform: translate(0, 50%);
}

.widget-slider .noUi-marker-vertical.noUi-marker,
.jupyter-widget-slider .noUi-marker-vertical.noUi-marker {
  width: 5px;
  height: 2px;
  margin-top: -1px;
}

.widget-slider .noUi-marker-vertical.noUi-marker-sub,
.jupyter-widget-slider .noUi-marker-vertical.noUi-marker-sub {
  width: 10px;
}

.widget-slider .noUi-marker-vertical.noUi-marker-large,
.jupyter-widget-slider .noUi-marker-vertical.noUi-marker-large {
  width: 15px;
}

.widget-slider .noUi-tooltip,
.jupyter-widget-slider .noUi-tooltip {
  display: block;
  position: absolute;
  border: 1px solid #D9D9D9;
  border-radius: 3px;
  background: #fff;
  color: #000;
  padding: 5px;
  text-align: center;
  white-space: nowrap;
}

.widget-slider .noUi-horizontal .noUi-tooltip,
.jupyter-widget-slider .noUi-horizontal .noUi-tooltip {
  -webkit-transform: translate(-50%, 0);
  transform: translate(-50%, 0);
  left: 50%;
  bottom: 120%;
}

.widget-slider .noUi-vertical .noUi-tooltip,
.jupyter-widget-slider .noUi-vertical .noUi-tooltip {
  -webkit-transform: translate(0, -50%);
  transform: translate(0, -50%);
  top: 50%;
  right: 120%;
}

.widget-slider .noUi-horizontal .noUi-origin > .noUi-tooltip,
.jupyter-widget-slider .noUi-horizontal .noUi-origin > .noUi-tooltip {
  -webkit-transform: translate(50%, 0);
  transform: translate(50%, 0);
  left: auto;
  bottom: 10px;
}

.widget-slider .noUi-vertical .noUi-origin > .noUi-tooltip,
.jupyter-widget-slider .noUi-vertical .noUi-origin > .noUi-tooltip {
  -webkit-transform: translate(0, -18px);
  transform: translate(0, -18px);
  top: auto;
  right: 28px;
}

.widget-slider .noUi-connect,
.jupyter-widget-slider .noUi-connect {
  background: #2196f3;
}

.widget-slider .noUi-horizontal,
.jupyter-widget-slider .noUi-horizontal {
  height: 4px;
}

.widget-slider .noUi-vertical,
.jupyter-widget-slider .noUi-vertical {
  width: 4px;
  height: 100%;
}

.widget-slider .noUi-horizontal .noUi-handle,
.jupyter-widget-slider .noUi-horizontal .noUi-handle {
  width: 16px;
  height: 16px;
  border-radius: 50%;
  top: -6px;
  right: -8px;
}

.widget-slider .noUi-vertical .noUi-handle,
.jupyter-widget-slider .noUi-vertical .noUi-handle {
  height: 16px;
  width: 16px;
  border-radius: 50%;
  right: -6px;
  top: -8px;
}

.widget-slider .noUi-handle:after,
.jupyter-widget-slider .noUi-handle:after {
  content: none;
}

.widget-slider .noUi-handle:before,
.jupyter-widget-slider .noUi-handle:before {
  content: none;
}

.widget-slider .noUi-target,
.jupyter-widget-slider .noUi-target {
  background: #fafafa;
  border-radius: 4px;
  border: 1px;
  /* box-shadow: inset 0 1px 1px #F0F0F0, 0 3px 6px -5px #BBB; */
}

.widget-slider .ui-slider,
.jupyter-widget-slider .ui-slider {
  border: 1px solid #bdbdbd;
  background: #bdbdbd;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: relative;
  border-radius: 0px;
}

.widget-slider .noUi-handle,
.jupyter-widget-slider .noUi-handle {
  width: 16px;
  border: 1px solid #d9d9d9;
  border-radius: 3px;
  background: #fff;
  cursor: default;
  -webkit-box-shadow: none;
          box-shadow: none;
  outline: none;
}

.widget-slider .noUi-target:not([disabled]) .noUi-handle:hover,
.jupyter-widget-slider .noUi-target:not([disabled]) .noUi-handle:hover,
.widget-slider .noUi-target:not([disabled]) .noUi-handle:focus,
.jupyter-widget-slider .noUi-target:not([disabled]) .noUi-handle:focus {
  background-color: #2196f3;
  border: 1px solid #2196f3;
}

.widget-slider [disabled].noUi-target,
.jupyter-widget-slider [disabled].noUi-target {
  opacity: 0.35;
}

.widget-slider .noUi-connects,
.jupyter-widget-slider .noUi-connects {
  overflow: visible;
  z-index: 0;
  background: #bdbdbd;
}

.widget-slider .noUi-vertical .noUi-connect,
.jupyter-widget-slider .noUi-vertical .noUi-connect {
  width: calc(100% + 2px);
  right: -1px;
}

.widget-slider .noUi-horizontal .noUi-connect,
.jupyter-widget-slider .noUi-horizontal .noUi-connect {
  height: calc(100% + 2px);
  top: -1px;
}

:root { /* margin between inline elements */

  /* From Material Design Lite */
}

.jupyter-widgets {
  margin: 2px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  color: black;
  overflow: visible;
}

.jp-Output-result > .jupyter-widgets {
  margin-left: 0;
  margin-right: 0;
}

/* vbox and hbox */

/* <DEPRECATED> */

.widget-inline-hbox, /* </DEPRECATED> */
 .jupyter-widget-inline-hbox {
  /* Horizontal widgets */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-align: baseline;
      -ms-flex-align: baseline;
          align-items: baseline;
}

/* <DEPRECATED> */

.widget-inline-vbox, /* </DEPRECATED> */
 .jupyter-widget-inline-vbox {
  /* Vertical Widgets */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

/* <DEPRECATED> */

.widget-box, /* </DEPRECATED> */
.jupyter-widget-box {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  margin: 0;
  overflow: auto;
}

/* <DEPRECATED> */

.widget-gridbox, /* </DEPRECATED> */
.jupyter-widget-gridbox {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  display: grid;
  margin: 0;
  overflow: auto;
}

/* <DEPRECATED> */

.widget-hbox, /* </DEPRECATED> */
.jupyter-widget-hbox {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}

/* <DEPRECATED> */

.widget-vbox, /* </DEPRECATED> */
.jupyter-widget-vbox {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

/* General Tags Styling */

.jupyter-widget-tagsinput {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  overflow: auto;

  cursor: text;
}

.jupyter-widget-tag {
  padding-left: 10px;
  padding-right: 10px;
  padding-top: 0px;
  padding-bottom: 0px;
  display: inline-block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
  font-size: 13px;

  height: 26px;
  border: 0px solid;
  line-height: 26px;
  -webkit-box-shadow: none;
          box-shadow: none;

  color: rgba(0, 0, 0, .8);
  background-color: #eeeeee;
  border-color: #e0e0e0;
  border: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;

  cursor: -webkit-grab;

  cursor: grab;
  -webkit-transition: margin-left 200ms;
  transition: margin-left 200ms;
  margin: 1px 1px 1px 1px;
}

.jupyter-widget-tag.mod-active {
  /* MD Lite 4dp shadow */
  -webkit-box-shadow: 0 4px 5px 0 rgba(0, 0, 0, .14),
    0 1px 10px 0 rgba(0, 0, 0, .12),
    0 2px 4px -1px rgba(0, 0, 0, .2);
          box-shadow: 0 4px 5px 0 rgba(0, 0, 0, .14),
    0 1px 10px 0 rgba(0, 0, 0, .12),
    0 2px 4px -1px rgba(0, 0, 0, .2);
  color: rgba(0, 0, 0, .8);
  background-color: #bdbdbd;
}

.jupyter-widget-colortag {
  color: var(--jp-inverse-ui-font-color1);
}

.jupyter-widget-colortag.mod-active {
  color: var(--jp-inverse-ui-font-color0);
}

.jupyter-widget-taginput {
  color: rgba(0, 0, 0, 1);
  background-color: white;

  cursor: text;
  text-align: left;
}

.jupyter-widget-taginput:focus {
  outline: none;
}

.jupyter-widget-tag-close {
  margin-left: 4px;
  padding: 2px 0px 2px 2px;
}

.jupyter-widget-tag-close:hover {
  cursor: pointer;
}

/* Tag "Primary" Styling */

.jupyter-widget-tag.mod-primary {
  color: var(--jp-inverse-ui-font-color1);
  background-color: #2196f3;
}

.jupyter-widget-tag.mod-primary.mod-active {
  color: var(--jp-inverse-ui-font-color0);
  background-color: #1976d2;
}

/* Tag "Success" Styling */

.jupyter-widget-tag.mod-success {
  color: var(--jp-inverse-ui-font-color1);
  background-color: #4caf50;
}

.jupyter-widget-tag.mod-success.mod-active {
  color: var(--jp-inverse-ui-font-color0);
  background-color: #388e3c;
}

/* Tag "Info" Styling */

.jupyter-widget-tag.mod-info {
  color: var(--jp-inverse-ui-font-color1);
  background-color: #00bcd4;
}

.jupyter-widget-tag.mod-info.mod-active {
  color: var(--jp-inverse-ui-font-color0);
  background-color: #0097a7;
}

/* Tag "Warning" Styling */

.jupyter-widget-tag.mod-warning {
  color: var(--jp-inverse-ui-font-color1);
  background-color: #ff9800;
}

.jupyter-widget-tag.mod-warning.mod-active {
  color: var(--jp-inverse-ui-font-color0);
  background-color: #f57c00;
}

/* Tag "Danger" Styling */

.jupyter-widget-tag.mod-danger {
  color: var(--jp-inverse-ui-font-color1);
  background-color: #f44336;
}

.jupyter-widget-tag.mod-danger.mod-active {
  color: var(--jp-inverse-ui-font-color0);
  background-color: #d32f2f;
}

/* General Button Styling */

.jupyter-button {
  padding-left: 10px;
  padding-right: 10px;
  padding-top: 0px;
  padding-bottom: 0px;
  display: inline-block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: center;
  font-size: 13px;
  cursor: pointer;

  height: 28px;
  border: 0px solid;
  line-height: 28px;
  -webkit-box-shadow: none;
          box-shadow: none;

  color: rgba(0, 0, 0, .8);
  background-color: #eeeeee;
  border-color: #e0e0e0;
  border: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
}

.jupyter-button i.fa {
  margin-right: 4px;
  pointer-events: none;
}

.jupyter-button:empty:before {
  content: '\200b'; /* zero-width space */
}

.jupyter-widgets.jupyter-button:disabled {
  opacity: 0.6;
}

.jupyter-button i.fa.center {
  margin-right: 0;
}

.jupyter-button:hover:enabled,
.jupyter-button:focus:enabled {
  /* MD Lite 2dp shadow */
  -webkit-box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14),
    0 3px 1px -2px rgba(0, 0, 0, .2),
    0 1px 5px 0 rgba(0, 0, 0, .12);
          box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14),
    0 3px 1px -2px rgba(0, 0, 0, .2),
    0 1px 5px 0 rgba(0, 0, 0, .12);
}

.jupyter-button:active,
.jupyter-button.mod-active {
  /* MD Lite 4dp shadow */
  -webkit-box-shadow: 0 4px 5px 0 rgba(0, 0, 0, .14),
    0 1px 10px 0 rgba(0, 0, 0, .12),
    0 2px 4px -1px rgba(0, 0, 0, .2);
          box-shadow: 0 4px 5px 0 rgba(0, 0, 0, .14),
    0 1px 10px 0 rgba(0, 0, 0, .12),
    0 2px 4px -1px rgba(0, 0, 0, .2);
  color: rgba(0, 0, 0, .8);
  background-color: #bdbdbd;
}

.jupyter-button:focus:enabled {
  outline: 1px solid #64b5f6;
}

/* Button "Primary" Styling */

.jupyter-button.mod-primary {
  color: rgba(255, 255, 255, 1);
  background-color: #2196f3;
}

.jupyter-button.mod-primary.mod-active {
  color: rgba(255, 255, 255, 1);
  background-color: #1976d2;
}

.jupyter-button.mod-primary:active {
  color: rgba(255, 255, 255, 1);
  background-color: #1976d2;
}

/* Button "Success" Styling */

.jupyter-button.mod-success {
  color: rgba(255, 255, 255, 1);
  background-color: #4caf50;
}

.jupyter-button.mod-success.mod-active {
  color: rgba(255, 255, 255, 1);
  background-color: #388e3c;
}

.jupyter-button.mod-success:active {
  color: rgba(255, 255, 255, 1);
  background-color: #388e3c;
}

/* Button "Info" Styling */

.jupyter-button.mod-info {
  color: rgba(255, 255, 255, 1);
  background-color: #00bcd4;
}

.jupyter-button.mod-info.mod-active {
  color: rgba(255, 255, 255, 1);
  background-color: #0097a7;
}

.jupyter-button.mod-info:active {
  color: rgba(255, 255, 255, 1);
  background-color: #0097a7;
}

/* Button "Warning" Styling */

.jupyter-button.mod-warning {
  color: rgba(255, 255, 255, 1);
  background-color: #ff9800;
}

.jupyter-button.mod-warning.mod-active {
  color: rgba(255, 255, 255, 1);
  background-color: #f57c00;
}

.jupyter-button.mod-warning:active {
  color: rgba(255, 255, 255, 1);
  background-color: #f57c00;
}

/* Button "Danger" Styling */

.jupyter-button.mod-danger {
  color: rgba(255, 255, 255, 1);
  background-color: #f44336;
}

.jupyter-button.mod-danger.mod-active {
  color: rgba(255, 255, 255, 1);
  background-color: #d32f2f;
}

.jupyter-button.mod-danger:active {
  color: rgba(255, 255, 255, 1);
  background-color: #d32f2f;
}

/* Widget Button, Widget Toggle Button, Widget Upload */

/* <DEPRECATED> */

.widget-button, /* </DEPRECATED> */
/* <DEPRECATED> */ .widget-toggle-button, /* </DEPRECATED> */
/* <DEPRECATED> */ .widget-upload, /* </DEPRECATED> */
.jupyter-widget-button,
.jupyter-widget-toggle-button,
.jupyter-widget-upload {
  width: 148px;
}

/* Widget Label Styling */

/* Override Bootstrap label css */

.jupyter-widgets label {
  margin-bottom: 0;
  margin-bottom: initial;
}

/* <DEPRECATED> */

.widget-label-basic, /* </DEPRECATED> */
.jupyter-widget-label-basic {
  /* Basic Label */
  color: black;
  font-size: 13px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 28px;
}

/* <DEPRECATED> */

.widget-label, /* </DEPRECATED> */
.jupyter-widget-label {
  /* Label */
  color: black;
  font-size: 13px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 28px;
}

/* <DEPRECATED> */

.widget-inline-hbox .widget-label, /* </DEPRECATED> */
.jupyter-widget-inline-hbox .jupyter-widget-label {
  /* Horizontal Widget Label */
  color: black;
  text-align: right;
  margin-right: 8px;
  width: 80px;
  -ms-flex-negative: 0;
      flex-shrink: 0;
}

/* <DEPRECATED> */

.widget-inline-vbox .widget-label, /* </DEPRECATED> */
.jupyter-widget-inline-vbox .jupyter-widget-label {
  /* Vertical Widget Label */
  color: black;
  text-align: center;
  line-height: 28px;
}

/* Widget Readout Styling */

/* <DEPRECATED> */

.widget-readout, /* </DEPRECATED> */
.jupyter-widget-readout {
  color: black;
  font-size: 13px;
  height: 28px;
  line-height: 28px;
  overflow: hidden;
  white-space: nowrap;
  text-align: center;
}

/* <DEPRECATED> */

.widget-readout.overflow, /* </DEPRECATED> */
.jupyter-widget-readout.overflow {
  /* Overflowing Readout */

  /* From Material Design Lite
        shadow-key-umbra-opacity: 0.2;
        shadow-key-penumbra-opacity: 0.14;
        shadow-ambient-shadow-opacity: 0.12;
     */
  -webkit-box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .2),
    0 3px 1px -2px rgba(0, 0, 0, .14), 0 1px 5px 0 rgba(0, 0, 0, .12);

  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .2), 0 3px 1px -2px rgba(0, 0, 0, .14),
    0 1px 5px 0 rgba(0, 0, 0, .12);
}

/* <DEPRECATED> */

.widget-inline-hbox .widget-readout, /* </DEPRECATED> */
.jupyter-widget-inline-hbox .jupyter-widget-readout {
  /* Horizontal Readout */
  text-align: center;
  max-width: 148px;
  min-width: 72px;
  margin-left: 4px;
}

/* <DEPRECATED> */

.widget-inline-vbox .widget-readout, /* </DEPRECATED> */
.jupyter-widget-inline-vbox .jupyter-widget-readout {
  /* Vertical Readout */
  margin-top: 4px;
  /* as wide as the widget */
  width: inherit;
}

/* Widget Checkbox Styling */

/* <DEPRECATED> */

.widget-checkbox, /* </DEPRECATED> */
.jupyter-widget-checkbox {
  width: 300px;
  height: 28px;
  line-height: 28px;
}

/* <DEPRECATED> */

.widget-checkbox input[type='checkbox'], /* </DEPRECATED> */
.jupyter-widget-checkbox input[type='checkbox'] {
  margin: 0px 8px 0px 0px;
  line-height: 28px;
  font-size: large;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -ms-flex-item-align: center;
      align-self: center;
}

/* Widget Valid Styling */

/* <DEPRECATED> */

.widget-valid, /* </DEPRECATED> */
.jupyter-widget-valid {
  height: 28px;
  line-height: 28px;
  width: 148px;
  font-size: 13px;
}

/* <DEPRECATED> */

.widget-valid i, /* </DEPRECATED> */
.jupyter-widget-valid i {
  line-height: 28px;
  margin-right: 4px;
  margin-left: 4px;
}

/* <DEPRECATED> */

.widget-valid.mod-valid i, /* </DEPRECATED> */
.jupyter-widget-valid.mod-valid i {
  color: green;
}

/* <DEPRECATED> */

.widget-valid.mod-invalid i, /* </DEPRECATED> */
.jupyter-widget-valid.mod-invalid i {
  color: red;
}

/* <DEPRECATED> */

.widget-valid.mod-valid .widget-valid-readout, /* </DEPRECATED> */
.jupyter-widget-valid.mod-valid .jupyter-widget-valid-readout {
  display: none;
}

/* Widget Text and TextArea Styling */

/* <DEPRECATED> */

.widget-textarea, /* </DEPRECATED> */
/* <DEPRECATED> */ .widget-text, /* </DEPRECATED> */
.jupyter-widget-textarea,
.jupyter-widget-text {
  width: 300px;
}

/* <DEPRECATED> */

.widget-text input[type='text'], /* </DEPRECATED> */
/* <DEPRECATED> */ .widget-text input[type='number'], /* </DEPRECATED> */
/* <DEPRECATED> */ .widget-text input[type='password'], /* </DEPRECATED> */
.jupyter-widget-text input[type='text'],
.jupyter-widget-text input[type='number'],
.jupyter-widget-text input[type='password'] {
  height: 28px;
}

/* <DEPRECATED> */

.widget-text input[type='text']:disabled, /* </DEPRECATED> */
/* <DEPRECATED> */ .widget-text input[type='number']:disabled, /* </DEPRECATED> */
/* <DEPRECATED> */ .widget-text input[type='password']:disabled, /* </DEPRECATED> */
/* <DEPRECATED> */ .widget-textarea textarea:disabled, /* </DEPRECATED> */
.jupyter-widget-text input[type='text']:disabled,
.jupyter-widget-text input[type='number']:disabled,
.jupyter-widget-text input[type='password']:disabled,
.jupyter-widget-textarea textarea:disabled {
  opacity: 0.6;
}

/* <DEPRECATED> */

.widget-text input[type='text'], /* </DEPRECATED> */
/* <DEPRECATED> */ .widget-text input[type='number'], /* </DEPRECATED> */
/* <DEPRECATED> */ .widget-text input[type='password'], /* </DEPRECATED> */
/* <DEPRECATED> */ .widget-textarea textarea, /* </DEPRECATED> */
.jupyter-widget-text input[type='text'],
.jupyter-widget-text input[type='number'],
.jupyter-widget-text input[type='password'],
.jupyter-widget-textarea textarea {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  border: 1px solid
    #9e9e9e;
  background-color: white;
  color: rgba(0, 0, 0, .8);
  font-size: 13px;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  min-width: 0; /* This makes it possible for the flexbox to shrink this input */
  -ms-flex-negative: 1;
      flex-shrink: 1;
  outline: none !important;
}

/* <DEPRECATED> */

.widget-text input[type='text'], /* </DEPRECATED> */
/* <DEPRECATED> */ .widget-text input[type='password'], /* </DEPRECATED> */
/* <DEPRECATED> */ .widget-textarea textarea, /* </DEPRECATED> */
.jupyter-widget-text input[type='text'],
.jupyter-widget-text input[type='password'],
.jupyter-widget-textarea textarea {
  padding: 4px
    8px;
}

/* <DEPRECATED> */

.widget-text input[type='number'], /* </DEPRECATED> */
.jupyter-widget-text input[type='number'] {
  padding: 4px 0 4px
    8px;
}

/* <DEPRECATED> */

.widget-textarea textarea, /* </DEPRECATED> */
.jupyter-widget-textarea textarea {
  height: inherit;
  width: inherit;
}

/* <DEPRECATED> */

.widget-text input:focus, /* </DEPRECATED> */
/* <DEPRECATED> */ .widget-textarea textarea:focus, /* </DEPRECATED> */
.jupyter-widget-text input:focus,
.jupyter-widget-textarea textarea:focus {
  border-color: #64b5f6;
}

/* Horizontal Slider */

/* <DEPRECATED> */

.widget-hslider, /* </DEPRECATED> */
.jupyter-widget-hslider {
  width: 300px;
  height: 28px;
  line-height: 28px;

  /* Override the align-items baseline. This way, the description and readout
    still seem to align their baseline properly, and we don't have to have
    align-self: stretch in the .slider-container. */
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

/* <DEPRECATED> */

.widgets-slider .slider-container, /* </DEPRECATED> */
.jupyter-widgets-slider .slider-container {
  overflow: visible;
}

/* <DEPRECATED> */

.widget-hslider .slider-container, /* </DEPRECATED> */
.jupyter-widget-hslider .slider-container {
  margin-left: 6px;
  margin-right: 6px;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 148px;
          flex: 1 1 148px;
}

/* Vertical Slider */

/* <DEPRECATED> */

.widget-vbox .widget-label, /* </DEPRECATED> */
.jupyter-widget-vbox .jupyter-widget-label {
  height: 28px;
  line-height: 28px;
}

/* <DEPRECATED> */

.widget-vslider, /* </DEPRECATED> */
.jupyter-widget-vslider {
  /* Vertical Slider */
  height: 200px;
  width: 72px;
}

/* <DEPRECATED> */

.widget-vslider .slider-container, /* </DEPRECATED> */
.jupyter-widget-vslider .slider-container {
  -webkit-box-flex: 1;
      -ms-flex: 1 1 148px;
          flex: 1 1 148px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 6px;
  margin-top: 6px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

/* Widget Progress Styling */

.progress-bar {
  -webkit-transition: none;
  transition: none;
}

.progress-bar {
  height: 28px;
}

.progress-bar {
  background-color: #2196f3;
}

.progress-bar-success {
  background-color: #4caf50;
}

.progress-bar-info {
  background-color: #00bcd4;
}

.progress-bar-warning {
  background-color: #ff9800;
}

.progress-bar-danger {
  background-color: #f44336;
}

.progress {
  background-color: #eeeeee;
  border: none;
  -webkit-box-shadow: none;
          box-shadow: none;
}

/* Horisontal Progress */

/* <DEPRECATED> */

.widget-hprogress, /* </DEPRECATED> */
.jupyter-widget-hprogress {
  /* Progress Bar */
  height: 28px;
  line-height: 28px;
  width: 300px;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
}

/* <DEPRECATED> */

.widget-hprogress .progress, /* </DEPRECATED> */
.jupyter-widget-hprogress .progress {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin-top: 4px;
  margin-bottom: 4px;
  -ms-flex-item-align: stretch;
      align-self: stretch;
  /* Override bootstrap style */
  height: auto;
  height: initial;
}

/* Vertical Progress */

/* <DEPRECATED> */

.widget-vprogress, /* </DEPRECATED> */
.jupyter-widget-vprogress {
  height: 200px;
  width: 72px;
}

/* <DEPRECATED> */

.widget-vprogress .progress, /* </DEPRECATED> */
.jupyter-widget-vprogress .progress {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  width: 20px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 0;
}

/* Select Widget Styling */

/* <DEPRECATED> */

.widget-dropdown, /* </DEPRECATED> */
.jupyter-widget-dropdown {
  height: 28px;
  width: 300px;
  line-height: 28px;
}

/* <DEPRECATED> */

.widget-dropdown > select, /* </DEPRECATED> */
.jupyter-widget-dropdown > select {
  padding-right: 20px;
  border: 1px solid
    #9e9e9e;
  border-radius: 0;
  height: inherit;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 148px;
          flex: 1 1 148px;
  min-width: 0; /* This makes it possible for the flexbox to shrink this input */
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  outline: none !important;
  -webkit-box-shadow: none;
          box-shadow: none;
  background-color: white;
  color: rgba(0, 0, 0, .8);
  font-size: 13px;
  vertical-align: top;
  padding-left: 8px;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-repeat: no-repeat;
  background-size: 20px;
  background-position: right center;
  background-image: url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4KPCEtLSBHZW5lcmF0b3I6IEFkb2JlIElsbHVzdHJhdG9yIDE5LjIuMSwgU1ZHIEV4cG9ydCBQbHVnLUluIC4gU1ZHIFZlcnNpb246IDYuMDAgQnVpbGQgMCkgIC0tPgo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IgoJIHZpZXdCb3g9IjAgMCAxOCAxOCIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTggMTg7IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KCS5zdDB7ZmlsbDpub25lO30KPC9zdHlsZT4KPHBhdGggZD0iTTUuMiw1LjlMOSw5LjdsMy44LTMuOGwxLjIsMS4ybC00LjksNWwtNC45LTVMNS4yLDUuOXoiLz4KPHBhdGggY2xhc3M9InN0MCIgZD0iTTAtMC42aDE4djE4SDBWLTAuNnoiLz4KPC9zdmc+Cg');
}

/* <DEPRECATED> */

.widget-dropdown > select:focus, /* </DEPRECATED> */
.jupyter-widget-dropdown > select:focus {
  border-color: #64b5f6;
}

/* <DEPRECATED> */

.widget-dropdown > select:disabled, /* </DEPRECATED> */
.jupyter-widget-dropdown > select:disabled {
  opacity: 0.6;
}

/* To disable the dotted border in Firefox around select controls.
   See http://stackoverflow.com/a/18853002 */

/* <DEPRECATED> */

.widget-dropdown > select:-moz-focusring, /* </DEPRECATED> */
.jupyter-widget-dropdown > select:-moz-focusring {
  color: transparent;
  text-shadow: 0 0 0 #000;
}

/* Select and SelectMultiple */

/* <DEPRECATED> */

.widget-select, /* </DEPRECATED> */
.jupyter-widget-select {
  width: 300px;
  line-height: 28px;

  /* Because Firefox defines the baseline of a select as the bottom of the
    control, we align the entire control to the top and add padding to the
    select to get an approximate first line baseline alignment. */
  -webkit-box-align: start;
      -ms-flex-align: start;
          align-items: flex-start;
}

/* <DEPRECATED> */

.widget-select > select, /* </DEPRECATED> */
.jupyter-widget-select > select {
  border: 1px solid
    #9e9e9e;
  background-color: white;
  color: rgba(0, 0, 0, .8);
  font-size: 13px;
  -webkit-box-flex: 1;
      -ms-flex: 1 1 148px;
          flex: 1 1 148px;
  outline: none !important;
  overflow: auto;
  height: inherit;

  /* Because Firefox defines the baseline of a select as the bottom of the
    control, we align the entire control to the top and add padding to the
    select to get an approximate first line baseline alignment. */
  padding-top: 5px;
}

/* <DEPRECATED> */

.widget-select > select:focus, /* </DEPRECATED> */
.jupyter-widget-select > select:focus {
  border-color: #64b5f6;
}

.wiget-select > select > option,
.jupyter-wiget-select > select > option {
  padding-left: 4px;
  line-height: 28px;
  /* line-height doesn't work on some browsers for select options */
  padding-top: 21.5px;
  padding-bottom: 21.5px;
}

/* Toggle Buttons Styling */

/* <DEPRECATED> */

.widget-toggle-buttons, /* </DEPRECATED> */
.jupyter-widget-toggle-buttons {
  line-height: 28px;
}

/* <DEPRECATED> */

.widget-toggle-buttons .widget-toggle-button, /* </DEPRECATED> */
.jupyter-widget-toggle-buttons .jupyter-widget-toggle-button {
  margin-left: 2px;
  margin-right: 2px;
}

/* <DEPRECATED> */

.widget-toggle-buttons .jupyter-button:disabled, /* </DEPRECATED> */
.jupyter-widget-toggle-buttons .jupyter-button:disabled {
  opacity: 0.6;
}

/* Radio Buttons Styling */

/* <DEPRECATED> */

.widget-radio, /* </DEPRECATED> */
.jupyter-widget-radio {
  width: 300px;
  line-height: 28px;
}

/* <DEPRECATED> */

.widget-radio-box, /* </DEPRECATED> */
.jupyter-widget-radio-box {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin-bottom: 8px;
}

/* <DEPRECATED> */

.widget-radio-box-vertical, /* </DEPRECATED> */
.jupyter-widget-radio-box-vertical {
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

/* <DEPRECATED> */

.widget-radio-box-horizontal, /* </DEPRECATED> */
.jupyter-widget-radio-box-horizontal {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
}

/* <DEPRECATED> */

.widget-radio-box label, /* </DEPRECATED> */
.jupyter-widget-radio-box label {
  height: 20px;
  line-height: 20px;
  font-size: 13px;
}

.widget-radio-box-horizontal label,
.jupyter-widget-radio-box-horizontal label {
  margin: 0 8px 0 0;
}

/* <DEPRECATED> */

.widget-radio-box input, /* </DEPRECATED> */
.jupyter-widget-radio-box input {
  height: 20px;
  line-height: 20px;
  margin: 0 8px 0 1px;
  float: left;
}

/* Color Picker Styling */

/* <DEPRECATED> */

.widget-colorpicker, /* </DEPRECATED> */
.jupyter-widget-colorpicker {
  width: 300px;
  height: 28px;
  line-height: 28px;
}

/* <DEPRECATED> */

.widget-colorpicker > .widget-colorpicker-input, /* </DEPRECATED> */
.jupyter-widget-colorpicker > .jupyter-widget-colorpicker-input {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -ms-flex-negative: 1;
      flex-shrink: 1;
  min-width: 72px;
}

/* <DEPRECATED> */

.widget-colorpicker input[type='color'], /* </DEPRECATED> */
.jupyter-widget-colorpicker input[type='color'] {
  width: 28px;
  height: 28px;
  padding: 0 2px; /* make the color square actually square on Chrome on OS X */
  background: white;
  color: rgba(0, 0, 0, .8);
  border: 1px solid
    #9e9e9e;
  border-left: none;
  -webkit-box-flex: 0;
      -ms-flex-positive: 0;
          flex-grow: 0;
  -ms-flex-negative: 0;
      flex-shrink: 0;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  -ms-flex-item-align: stretch;
      align-self: stretch;
  outline: none !important;
}

/* <DEPRECATED> */

.widget-colorpicker.concise input[type='color'], /* </DEPRECATED> */
.jupyter-widget-colorpicker.concise input[type='color'] {
  border-left: 1px solid
    #9e9e9e;
}

/* <DEPRECATED> */

.widget-colorpicker input[type='color']:focus, /* </DEPRECATED> */
/* <DEPRECATED> */ .widget-colorpicker input[type='text']:focus, /* </DEPRECATED> */
.jupyter-widget-colorpicker input[type='color']:focus,
.jupyter-widget-colorpicker input[type='text']:focus {
  border-color: #64b5f6;
}

/* <DEPRECATED> */

.widget-colorpicker input[type='text'], /* </DEPRECATED> */
.jupyter-widget-colorpicker input[type='text'] {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  outline: none !important;
  height: 28px;
  line-height: 28px;
  background: white;
  color: rgba(0, 0, 0, .8);
  border: 1px solid
    #9e9e9e;
  font-size: 13px;
  padding: 4px
    8px;
  min-width: 0; /* This makes it possible for the flexbox to shrink this input */
  -ms-flex-negative: 1;
      flex-shrink: 1;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* <DEPRECATED> */

.widget-colorpicker input[type='text']:disabled, /* </DEPRECATED> */
.jupyter-widget-colorpicker input[type='text']:disabled {
  opacity: 0.6;
}

/* Date Picker Styling */

/* <DEPRECATED> */

.widget-datepicker, /* </DEPRECATED> */
.jupyter-widget-datepicker {
  width: 300px;
  height: 28px;
  line-height: 28px;
}

/* <DEPRECATED> */

.widget-datepicker input[type='date'], /* </DEPRECATED> */
.jupyter-widget-datepicker input[type='date'] {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -ms-flex-negative: 1;
      flex-shrink: 1;
  min-width: 0; /* This makes it possible for the flexbox to shrink this input */
  outline: none !important;
  height: 28px;
  border: 1px solid
    #9e9e9e;
  background-color: white;
  color: rgba(0, 0, 0, .8);
  font-size: 13px;
  padding: 4px
    8px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

/* <DEPRECATED> */

.widget-datepicker input[type='date']:focus, /* </DEPRECATED> */
.jupyter-widget-datepicker input[type='date']:focus {
  border-color: #64b5f6;
}

/* <DEPRECATED> */

.widget-datepicker input[type='date']:invalid, /* </DEPRECATED> */
.jupyter-widget-datepicker input[type='date']:invalid {
  border-color: #ff9800;
}

/* <DEPRECATED> */

.widget-datepicker input[type='date']:disabled, /* </DEPRECATED> */
.jupyter-widget-datepicker input[type='date']:disabled {
  opacity: 0.6;
}

/* Play Widget */

/* <DEPRECATED> */

.widget-play, /* </DEPRECATED> */
.jupyter-widget-play {
  width: 148px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}

/* <DEPRECATED> */

.widget-play .jupyter-button, /* </DEPRECATED> */
.jupyter-widget-play .jupyter-button {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  height: auto;
}

/* <DEPRECATED> */

.widget-play .jupyter-button:disabled, /* </DEPRECATED> */
.jupyter-widget-play .jupyter-button:disabled {
  opacity: 0.6;
}

/* Tab Widget */

/* <DEPRECATED> */

.jupyter-widgets.widget-tab, /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab > .p-TabBar, /* </DEPRECATED> */
/* <DEPRECATED> */.jupyter-widgets.jupyter-widget-tab > .p-TabBar, /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar {
  /* Necessary so that a tab can be shifted down to overlay the border of the box below. */
  overflow-x: visible;
  overflow-y: visible;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab > .p-TabBar > .p-TabBar-content, /* </DEPRECATED> */
/* <DEPRECATED> */.jupyter-widgets.jupyter-widget-tab > .p-TabBar > .p-TabBar-content, /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar > .lm-TabBar-content {
  /* Make sure that the tab grows from bottom up */
  -webkit-box-align: end;
      -ms-flex-align: end;
          align-items: flex-end;
  min-width: 0;
  min-height: 0;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab > .widget-tab-contents, /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab > .widget-tab-contents {
  width: 100%;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin: 0;
  background: white;
  color: rgba(0, 0, 0, .8);
  border: 1px solid #9e9e9e;
  padding: 15px;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  overflow: auto;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab > .p-TabBar, /* </DEPRECATED> */
/* <DEPRECATED> */.jupyter-widgets.jupyter-widget-tab > .p-TabBar, /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar {
  font: 13px Helvetica, Arial, sans-serif;
  min-height: 25px;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab, /* </DEPRECATED> */
/* <DEPRECATED> */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab, /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab {
  -webkit-box-flex: 0;
      -ms-flex: 0 1 144px;
          flex: 0 1 144px;
  min-width: 35px;
  min-height: 25px;
  line-height: 24px;
  margin-left: -1px;
  padding: 0px 10px;
  background: #eeeeee;
  color: rgba(0, 0, 0, .5);
  border: 1px solid #9e9e9e;
  border-bottom: none;
  position: relative;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab.p-mod-current, /* </DEPRECATED> */
/* <DEPRECATED> */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab.p-mod-current, /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab.lm-mod-current {
  color: rgba(0, 0, 0, 1);
  /* We want the background to match the tab content background */
  background: white;
  min-height: 26px;
  -webkit-transform: translateY(1px);
          transform: translateY(1px);
  overflow: visible;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab.p-mod-current:before, /* </DEPRECATED> */
/* <DEPRECATED> */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab.p-mod-current:before, /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab.lm-mod-current:before {
  position: absolute;
  top: -1px;
  left: -1px;
  content: '';
  height: 2px;
  width: calc(100% + 2px);
  background: #2196f3;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tab:first-child, /* </DEPRECATED> */
/* <DEPRECATED> */.jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tab:first-child, /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tab:first-child {
  margin-left: 0;
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab
  > .p-TabBar
  .p-TabBar-tab:hover:not(.p-mod-current),
/* </DEPRECATED> */
/* <DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab
  > .p-TabBar
  .p-TabBar-tab:hover:not(.p-mod-current),
/* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab
  > .lm-TabBar
  .lm-TabBar-tab:hover:not(.lm-mod-current) {
  background: white;
  color: rgba(0, 0, 0, .8);
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab
  > .p-TabBar
  .p-mod-closable
  > .p-TabBar-tabCloseIcon,
/* </DEPRECATED> */
/* <DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab
> .p-TabBar
.p-mod-closable
> .p-TabBar-tabCloseIcon,
/* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab
  > .lm-TabBar
  .lm-mod-closable
  > .lm-TabBar-tabCloseIcon {
  margin-left: 4px;
}

/* This font-awesome strategy may not work across FA4 and FA5, but we don't
actually support closable tabs, so it really doesn't matter */

/* <DEPRECATED> */

.jupyter-widgets.widget-tab
  > .p-TabBar
  .p-mod-closable
  > .p-TabBar-tabCloseIcon:before,
/* </DEPRECATED> */
/* <DEPRECATED> */
.jupyter-widgets.jupyter-widget-widget-tab
> .p-TabBar
.p-mod-closable
> .p-TabBar-tabCloseIcon:before,
/* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab
  > .lm-TabBar
  .lm-mod-closable
  > .lm-TabBar-tabCloseIcon:before {
  font-family: FontAwesome;
  content: '\f00d'; /* close */
}

/* <DEPRECATED> */

.jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabIcon, /* </DEPRECATED> */
/* <DEPRECATED> */ .jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabLabel, /* </DEPRECATED> */
/* <DEPRECATED> */ .jupyter-widgets.widget-tab > .p-TabBar .p-TabBar-tabCloseIcon, /* </DEPRECATED> */
/* <DEPRECATED> */ .jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabIcon, /* </DEPRECATED> */
/* <DEPRECATED> */ .jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabLabel, /* </DEPRECATED> */
/* <DEPRECATED> */ .jupyter-widgets.jupyter-widget-tab > .p-TabBar .p-TabBar-tabCloseIcon, /* </DEPRECATED> */
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabIcon,
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabLabel,
.jupyter-widgets.jupyter-widget-tab > .lm-TabBar .lm-TabBar-tabCloseIcon {
  line-height: 24px;
}

/* Accordion Widget */

.jupyter-widget-Collapse {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}

.jupyter-widget-Collapse-header {
  padding: 4px;
  cursor: pointer;
  color: rgba(0, 0, 0, .5);
  background-color: #eeeeee;
  border: 1px solid #9e9e9e;
  padding: 10px
    15px;
  font-weight: bold;
}

.jupyter-widget-Collapse-header:hover {
  background-color: white;
  color: rgba(0, 0, 0, .8);
}

.jupyter-widget-Collapse-open > .jupyter-widget-Collapse-header {
  background-color: white;
  color: rgba(0, 0, 0, 1);
  cursor: default;
  border-bottom: none;
}

.jupyter-widget-Collapse-contents {
  padding: 15px;
  background-color: white;
  color: rgba(0, 0, 0, .8);
  border-left: 1px solid #9e9e9e;
  border-right: 1px solid #9e9e9e;
  border-bottom: 1px solid #9e9e9e;
  overflow: auto;
}

.jupyter-widget-Accordion {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
}

.jupyter-widget-Accordion .jupyter-widget-Collapse {
  margin-bottom: 0;
}

.jupyter-widget-Accordion .jupyter-widget-Collapse + .jupyter-widget-Collapse {
  margin-top: 4px;
}

/* HTML widget */

/* <DEPRECATED> */

.widget-html, /* </DEPRECATED> */
/* <DEPRECATED> */ .widget-htmlmath, /* </DEPRECATED> */
.jupyter-widget-html,
.jupyter-widget-htmlmath {
  font-size: 13px;
}

/* <DEPRECATED> */

.widget-html > .widget-html-content, /* </DEPRECATED> */
/* <DEPRECATED> */.widget-htmlmath > .widget-html-content, /* </DEPRECATED> */
.jupyter-widget-html > .jupyter-widget-html-content,
.jupyter-widget-htmlmath > .jupyter-widget-html-content {
  /* Fill out the area in the HTML widget */
  -ms-flex-item-align: stretch;
      align-self: stretch;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  -ms-flex-negative: 1;
      flex-shrink: 1;
  /* Makes sure the baseline is still aligned with other elements */
  line-height: 28px;
  /* Make it possible to have absolutely-positioned elements in the html */
  position: relative;
}

/* Image widget  */

/* <DEPRECATED> */

.widget-image, /* </DEPRECATED> */
.jupyter-widget-image {
  max-width: 100%;
  height: auto;
}

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIndpZGdldHMuY3NzIiwibGFidmFyaWFibGVzLmNzcyIsIm1hdGVyaWFsY29sb3JzLmNzcyIsIndpZGdldHMtYmFzZS5jc3MiLCJsdW1pbm8uY3NzIiwibm91aXNsaWRlci5jc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0VBRUU7O0FDRkY7Ozs4RUFHOEU7O0FBRTlFOzs7O0NBSUM7O0FDVEQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNkJFOztBRGhCRjs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQW1CQzs7QUFFRDs7RUFFRTs7QUFDRix3REFBd0Q7O0FBQ3hELHdFQUF3RTs7QUFFeEU7O0VBRUU7O0FBTUY7RUFDRTs7O0lBR0U7O0VBUUY7Ozs7R0FJQyxFQU15QixtQkFBbUIsRUFPZix5Q0FBeUM7O0VBR3ZFOztHQUVDOztFQU9EOztJQUVFOztFQU9GOzs7R0FHQyxFQWF5QixtQkFBbUI7O0VBYTdDOzs7O0dBSUM7O0VBT0QsaUJBQWlCOztFQVlqQiw4Q0FBOEM7O0VBc0I5Qyx5QkFBeUI7RUFhekI7MkVBQ3lFO0VBRXpFO3VFQUNxRTs7RUFHckUsNkJBQTZCOztFQUs3Qiw0QkFBNEI7O0VBSTVCLDRCQUE0QjtBQVE5Qjs7QUVqTkE7O0VBRUU7O0FBRUY7Ozs7RUFJRTs7QUNSRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQTBEQzs7QUFFRDs7O0VBR0U7O0FBRUYsaUJBQWlCOztBQUNqQjs7O0VBR0Usb0JBQWE7RUFBYixvQkFBYTtFQUFiLGFBQWE7RUFDYix5QkFBeUI7RUFDekIsc0JBQXNCO0VBQ3RCLHFCQUFxQjtFQUNyQixpQkFBaUI7QUFDbkI7O0FBRUEsaUJBQWlCOztBQUNqQjs7O0VBR0UsOEJBQW1CO0VBQW5CLDZCQUFtQjtNQUFuQix1QkFBbUI7VUFBbkIsbUJBQW1CO0FBQ3JCOztBQUVBLGlCQUFpQjs7QUFDakI7OztFQUdFLDRCQUFzQjtFQUF0Qiw2QkFBc0I7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dC5jc3MiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBDb3B5cmlnaHQgKGMpIEp1cHl0ZXIgRGV2ZWxvcG1lbnQgVGVhbS5cbiAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTW9kaWZpZWQgQlNEIExpY2Vuc2UuXG4gKi9cblxuQGltcG9ydCAnLi9sYWJ2YXJpYWJsZXMuY3NzJztcbkBpbXBvcnQgJy4vd2lkZ2V0cy1iYXNlLmNzcyc7XG4iLCIvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG58IENvcHlyaWdodCAoYykgSnVweXRlciBEZXZlbG9wbWVudCBUZWFtLlxufCBEaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1vZGlmaWVkIEJTRCBMaWNlbnNlLlxufC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuXG4vKlxuVGhpcyBmaWxlIGlzIGNvcGllZCBmcm9tIHRoZSBKdXB5dGVyTGFiIHByb2plY3QgdG8gZGVmaW5lIGRlZmF1bHQgc3R5bGluZyBmb3JcbndoZW4gdGhlIHdpZGdldCBzdHlsaW5nIGlzIGNvbXBpbGVkIGRvd24gdG8gZWxpbWluYXRlIENTUyB2YXJpYWJsZXMuIFdlIG1ha2Ugb25lXG5jaGFuZ2UgLSB3ZSBjb21tZW50IG91dCB0aGUgZm9udCBpbXBvcnQgYmVsb3cuXG4qL1xuXG5AaW1wb3J0ICcuL21hdGVyaWFsY29sb3JzLmNzcyc7XG5cbi8qXG5UaGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgZGVmaW5lIHRoZSBtYWluLCBwdWJsaWMgQVBJIGZvciBzdHlsaW5nIEp1cHl0ZXJMYWIuXG5UaGVzZSB2YXJpYWJsZXMgc2hvdWxkIGJlIHVzZWQgYnkgYWxsIHBsdWdpbnMgd2hlcmV2ZXIgcG9zc2libGUuIEluIG90aGVyXG53b3JkcywgcGx1Z2lucyBzaG91bGQgbm90IGRlZmluZSBjdXN0b20gY29sb3JzLCBzaXplcywgZXRjIHVubGVzcyBhYnNvbHV0ZWx5XG5uZWNlc3NhcnkuIFRoaXMgZW5hYmxlcyB1c2VycyB0byBjaGFuZ2UgdGhlIHZpc3VhbCB0aGVtZSBvZiBKdXB5dGVyTGFiXG5ieSBjaGFuZ2luZyB0aGVzZSB2YXJpYWJsZXMuXG5cbk1hbnkgdmFyaWFibGVzIGFwcGVhciBpbiBhbiBvcmRlcmVkIHNlcXVlbmNlICgwLDEsMiwzKS4gVGhlc2Ugc2VxdWVuY2VzXG5hcmUgZGVzaWduZWQgdG8gd29yayB3ZWxsIHRvZ2V0aGVyLCBzbyBmb3IgZXhhbXBsZSwgYC0tanAtYm9yZGVyLWNvbG9yMWAgc2hvdWxkXG5iZSB1c2VkIHdpdGggYC0tanAtbGF5b3V0LWNvbG9yMWAuIFRoZSBudW1iZXJzIGhhdmUgdGhlIGZvbGxvd2luZyBtZWFuaW5nczpcblxuKiAwOiBzdXBlci1wcmltYXJ5LCByZXNlcnZlZCBmb3Igc3BlY2lhbCBlbXBoYXNpc1xuKiAxOiBwcmltYXJ5LCBtb3N0IGltcG9ydGFudCB1bmRlciBub3JtYWwgc2l0dWF0aW9uc1xuKiAyOiBzZWNvbmRhcnksIG5leHQgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnNcbiogMzogdGVydGlhcnksIG5leHQgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnNcblxuVGhyb3VnaG91dCBKdXB5dGVyTGFiLCB3ZSBhcmUgbW9zdGx5IGZvbGxvd2luZyBwcmluY2lwbGVzIGZyb20gR29vZ2xlJ3Ncbk1hdGVyaWFsIERlc2lnbiB3aGVuIHNlbGVjdGluZyBjb2xvcnMuIFdlIGFyZSBub3QsIGhvd2V2ZXIsIGZvbGxvd2luZ1xuYWxsIG9mIE1EIGFzIGl0IGlzIG5vdCBvcHRpbWl6ZWQgZm9yIGRlbnNlLCBpbmZvcm1hdGlvbiByaWNoIFVJcy5cbiovXG5cbi8qXG4gKiBPcHRpb25hbCBtb25vc3BhY2UgZm9udCBmb3IgaW5wdXQvb3V0cHV0IHByb21wdC5cbiAqL1xuLyogQ29tbWVudGVkIG91dCBpbiBpcHl3aWRnZXRzIHNpbmNlIHdlIGRvbid0IG5lZWQgaXQuICovXG4vKiBAaW1wb3J0IHVybCgnaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3M/ZmFtaWx5PVJvYm90bytNb25vJyk7ICovXG5cbi8qXG4gKiBBZGRlZCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG91dHB1dCBhcmVhXG4gKi9cbjpyb290IHtcbiAgLS1qcC1pY29uLXNlYXJjaDogbm9uZTtcbiAgLS1qcC11aS1zZWxlY3QtY2FyZXQ6IG5vbmU7XG59XG5cbjpyb290IHtcbiAgLyogQm9yZGVyc1xuXG4gIFRoZSBmb2xsb3dpbmcgdmFyaWFibGVzLCBzcGVjaWZ5IHRoZSB2aXN1YWwgc3R5bGluZyBvZiBib3JkZXJzIGluIEp1cHl0ZXJMYWIuXG4gICAqL1xuXG4gIC0tanAtYm9yZGVyLXdpZHRoOiAxcHg7XG4gIC0tanAtYm9yZGVyLWNvbG9yMDogdmFyKC0tbWQtZ3JleS03MDApO1xuICAtLWpwLWJvcmRlci1jb2xvcjE6IHZhcigtLW1kLWdyZXktNTAwKTtcbiAgLS1qcC1ib3JkZXItY29sb3IyOiB2YXIoLS1tZC1ncmV5LTMwMCk7XG4gIC0tanAtYm9yZGVyLWNvbG9yMzogdmFyKC0tbWQtZ3JleS0xMDApO1xuXG4gIC8qIFVJIEZvbnRzXG5cbiAgVGhlIFVJIGZvbnQgQ1NTIHZhcmlhYmxlcyBhcmUgdXNlZCBmb3IgdGhlIHR5cG9ncmFwaHkgYWxsIG9mIHRoZSBKdXB5dGVyTGFiXG4gIHVzZXIgaW50ZXJmYWNlIGVsZW1lbnRzIHRoYXQgYXJlIG5vdCBkaXJlY3RseSB1c2VyIGdlbmVyYXRlZCBjb250ZW50LlxuICAqL1xuXG4gIC0tanAtdWktZm9udC1zY2FsZS1mYWN0b3I6IDEuMjtcbiAgLS1qcC11aS1mb250LXNpemUwOiBjYWxjKFxuICAgIHZhcigtLWpwLXVpLWZvbnQtc2l6ZTEpIC8gdmFyKC0tanAtdWktZm9udC1zY2FsZS1mYWN0b3IpXG4gICk7XG4gIC0tanAtdWktZm9udC1zaXplMTogMTNweDsgLyogQmFzZSBmb250IHNpemUgKi9cbiAgLS1qcC11aS1mb250LXNpemUyOiBjYWxjKFxuICAgIHZhcigtLWpwLXVpLWZvbnQtc2l6ZTEpICogdmFyKC0tanAtdWktZm9udC1zY2FsZS1mYWN0b3IpXG4gICk7XG4gIC0tanAtdWktZm9udC1zaXplMzogY2FsYyhcbiAgICB2YXIoLS1qcC11aS1mb250LXNpemUyKSAqIHZhcigtLWpwLXVpLWZvbnQtc2NhbGUtZmFjdG9yKVxuICApO1xuICAtLWpwLXVpLWljb24tZm9udC1zaXplOiAxNHB4OyAvKiBFbnN1cmVzIHB4IHBlcmZlY3QgRm9udEF3ZXNvbWUgaWNvbnMgKi9cbiAgLS1qcC11aS1mb250LWZhbWlseTogJ0hlbHZldGljYSBOZXVlJywgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjtcblxuICAvKiBVc2UgdGhlc2UgZm9udCBjb2xvcnMgYWdhaW5zdCB0aGUgY29ycmVzcG9uZGluZyBtYWluIGxheW91dCBjb2xvcnMuXG4gICAgIEluIGEgbGlnaHQgdGhlbWUsIHRoZXNlIGdvIGZyb20gZGFyayB0byBsaWdodC5cbiAgKi9cblxuICAtLWpwLXVpLWZvbnQtY29sb3IwOiByZ2JhKDAsIDAsIDAsIDEpO1xuICAtLWpwLXVpLWZvbnQtY29sb3IxOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gIC0tanAtdWktZm9udC1jb2xvcjI6IHJnYmEoMCwgMCwgMCwgMC41KTtcbiAgLS1qcC11aS1mb250LWNvbG9yMzogcmdiYSgwLCAwLCAwLCAwLjMpO1xuXG4gIC8qIFVzZSB0aGVzZSBhZ2FpbnN0IHRoZSBicmFuZC9hY2NlbnQvd2Fybi9lcnJvciBjb2xvcnMuXG4gICAgIFRoZXNlIHdpbGwgdHlwaWNhbGx5IGdvIGZyb20gbGlnaHQgdG8gZGFya2VyLCBpbiBib3RoIGEgZGFyayBhbmQgbGlnaHQgdGhlbWVcbiAgICovXG5cbiAgLS1qcC11aS1pbnZlcnNlLWZvbnQtY29sb3IwOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpO1xuICAtLWpwLXVpLWludmVyc2UtZm9udC1jb2xvcjE6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7XG4gIC0tanAtdWktaW52ZXJzZS1mb250LWNvbG9yMjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjcpO1xuICAtLWpwLXVpLWludmVyc2UtZm9udC1jb2xvcjM6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTtcblxuICAvKiBDb250ZW50IEZvbnRzXG5cbiAgQ29udGVudCBmb250IHZhcmlhYmxlcyBhcmUgdXNlZCBmb3IgdHlwb2dyYXBoeSBvZiB1c2VyIGdlbmVyYXRlZCBjb250ZW50LlxuICAqL1xuXG4gIC0tanAtY29udGVudC1mb250LXNpemU6IDEzcHg7XG4gIC0tanAtY29udGVudC1saW5lLWhlaWdodDogMS41O1xuICAtLWpwLWNvbnRlbnQtZm9udC1jb2xvcjA6IGJsYWNrO1xuICAtLWpwLWNvbnRlbnQtZm9udC1jb2xvcjE6IGJsYWNrO1xuICAtLWpwLWNvbnRlbnQtZm9udC1jb2xvcjI6IHZhcigtLW1kLWdyZXktNzAwKTtcbiAgLS1qcC1jb250ZW50LWZvbnQtY29sb3IzOiB2YXIoLS1tZC1ncmV5LTUwMCk7XG5cbiAgLS1qcC11aS1mb250LXNjYWxlLWZhY3RvcjogMS4yO1xuICAtLWpwLXVpLWZvbnQtc2l6ZTA6IGNhbGMoXG4gICAgdmFyKC0tanAtdWktZm9udC1zaXplMSkgLyB2YXIoLS1qcC11aS1mb250LXNjYWxlLWZhY3RvcilcbiAgKTtcbiAgLS1qcC11aS1mb250LXNpemUxOiAxM3B4OyAvKiBCYXNlIGZvbnQgc2l6ZSAqL1xuICAtLWpwLXVpLWZvbnQtc2l6ZTI6IGNhbGMoXG4gICAgdmFyKC0tanAtdWktZm9udC1zaXplMSkgKiB2YXIoLS1qcC11aS1mb250LXNjYWxlLWZhY3RvcilcbiAgKTtcbiAgLS1qcC11aS1mb250LXNpemUzOiBjYWxjKFxuICAgIHZhcigtLWpwLXVpLWZvbnQtc2l6ZTIpICogdmFyKC0tanAtdWktZm9udC1zY2FsZS1mYWN0b3IpXG4gICk7XG5cbiAgLS1qcC1jb2RlLWZvbnQtc2l6ZTogMTNweDtcbiAgLS1qcC1jb2RlLWxpbmUtaGVpZ2h0OiAxLjMwNztcbiAgLS1qcC1jb2RlLXBhZGRpbmc6IDVweDtcbiAgLS1qcC1jb2RlLWZvbnQtZmFtaWx5OiBtb25vc3BhY2U7XG5cbiAgLyogTGF5b3V0XG5cbiAgVGhlIGZvbGxvd2luZyBhcmUgdGhlIG1haW4gbGF5b3V0IGNvbG9ycyB1c2UgaW4gSnVweXRlckxhYi4gSW4gYSBsaWdodFxuICB0aGVtZSB0aGVzZSB3b3VsZCBnbyBmcm9tIGxpZ2h0IHRvIGRhcmsuXG4gICovXG5cbiAgLS1qcC1sYXlvdXQtY29sb3IwOiB3aGl0ZTtcbiAgLS1qcC1sYXlvdXQtY29sb3IxOiB3aGl0ZTtcbiAgLS1qcC1sYXlvdXQtY29sb3IyOiB2YXIoLS1tZC1ncmV5LTIwMCk7XG4gIC0tanAtbGF5b3V0LWNvbG9yMzogdmFyKC0tbWQtZ3JleS00MDApO1xuXG4gIC8qIEJyYW5kL2FjY2VudCAqL1xuXG4gIC0tanAtYnJhbmQtY29sb3IwOiB2YXIoLS1tZC1ibHVlLTcwMCk7XG4gIC0tanAtYnJhbmQtY29sb3IxOiB2YXIoLS1tZC1ibHVlLTUwMCk7XG4gIC0tanAtYnJhbmQtY29sb3IyOiB2YXIoLS1tZC1ibHVlLTMwMCk7XG4gIC0tanAtYnJhbmQtY29sb3IzOiB2YXIoLS1tZC1ibHVlLTEwMCk7XG5cbiAgLS1qcC1hY2NlbnQtY29sb3IwOiB2YXIoLS1tZC1ncmVlbi03MDApO1xuICAtLWpwLWFjY2VudC1jb2xvcjE6IHZhcigtLW1kLWdyZWVuLTUwMCk7XG4gIC0tanAtYWNjZW50LWNvbG9yMjogdmFyKC0tbWQtZ3JlZW4tMzAwKTtcbiAgLS1qcC1hY2NlbnQtY29sb3IzOiB2YXIoLS1tZC1ncmVlbi0xMDApO1xuXG4gIC8qIFN0YXRlIGNvbG9ycyAod2FybiwgZXJyb3IsIHN1Y2Nlc3MsIGluZm8pICovXG5cbiAgLS1qcC13YXJuLWNvbG9yMDogdmFyKC0tbWQtb3JhbmdlLTcwMCk7XG4gIC0tanAtd2Fybi1jb2xvcjE6IHZhcigtLW1kLW9yYW5nZS01MDApO1xuICAtLWpwLXdhcm4tY29sb3IyOiB2YXIoLS1tZC1vcmFuZ2UtMzAwKTtcbiAgLS1qcC13YXJuLWNvbG9yMzogdmFyKC0tbWQtb3JhbmdlLTEwMCk7XG5cbiAgLS1qcC1lcnJvci1jb2xvcjA6IHZhcigtLW1kLXJlZC03MDApO1xuICAtLWpwLWVycm9yLWNvbG9yMTogdmFyKC0tbWQtcmVkLTUwMCk7XG4gIC0tanAtZXJyb3ItY29sb3IyOiB2YXIoLS1tZC1yZWQtMzAwKTtcbiAgLS1qcC1lcnJvci1jb2xvcjM6IHZhcigtLW1kLXJlZC0xMDApO1xuXG4gIC0tanAtc3VjY2Vzcy1jb2xvcjA6IHZhcigtLW1kLWdyZWVuLTcwMCk7XG4gIC0tanAtc3VjY2Vzcy1jb2xvcjE6IHZhcigtLW1kLWdyZWVuLTUwMCk7XG4gIC0tanAtc3VjY2Vzcy1jb2xvcjI6IHZhcigtLW1kLWdyZWVuLTMwMCk7XG4gIC0tanAtc3VjY2Vzcy1jb2xvcjM6IHZhcigtLW1kLWdyZWVuLTEwMCk7XG5cbiAgLS1qcC1pbmZvLWNvbG9yMDogdmFyKC0tbWQtY3lhbi03MDApO1xuICAtLWpwLWluZm8tY29sb3IxOiB2YXIoLS1tZC1jeWFuLTUwMCk7XG4gIC0tanAtaW5mby1jb2xvcjI6IHZhcigtLW1kLWN5YW4tMzAwKTtcbiAgLS1qcC1pbmZvLWNvbG9yMzogdmFyKC0tbWQtY3lhbi0xMDApO1xuXG4gIC8qIENlbGwgc3BlY2lmaWMgc3R5bGVzICovXG5cbiAgLS1qcC1jZWxsLXBhZGRpbmc6IDVweDtcbiAgLS1qcC1jZWxsLWVkaXRvci1iYWNrZ3JvdW5kOiAjZjdmN2Y3O1xuICAtLWpwLWNlbGwtZWRpdG9yLWJvcmRlci1jb2xvcjogI2NmY2ZjZjtcbiAgLS1qcC1jZWxsLWVkaXRvci1iYWNrZ3JvdW5kLWVkaXQ6IHZhcigtLWpwLXVpLWxheW91dC1jb2xvcjEpO1xuICAtLWpwLWNlbGwtZWRpdG9yLWJvcmRlci1jb2xvci1lZGl0OiB2YXIoLS1qcC1icmFuZC1jb2xvcjEpO1xuICAtLWpwLWNlbGwtcHJvbXB0LXdpZHRoOiAxMDBweDtcbiAgLS1qcC1jZWxsLXByb21wdC1mb250LWZhbWlseTogJ1JvYm90byBNb25vJywgbW9ub3NwYWNlO1xuICAtLWpwLWNlbGwtcHJvbXB0LWxldHRlci1zcGFjaW5nOiAwcHg7XG4gIC0tanAtY2VsbC1wcm9tcHQtb3BhY2l0eTogMTtcbiAgLS1qcC1jZWxsLXByb21wdC1vcGFjaXR5LW5vdC1hY3RpdmU6IDAuNDtcbiAgLS1qcC1jZWxsLXByb21wdC1mb250LWNvbG9yLW5vdC1hY3RpdmU6IHZhcigtLW1kLWdyZXktNzAwKTtcbiAgLyogQSBjdXN0b20gYmxlbmQgb2YgTUQgZ3JleSBhbmQgYmx1ZSA2MDBcbiAgICogU2VlIGh0dHBzOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY29sb3ItYmxlbmQvIzU0NkU3QToxRTg4RTU6NTpoZXggKi9cbiAgLS1qcC1jZWxsLWlucHJvbXB0LWZvbnQtY29sb3I6ICMzMDdmYzE7XG4gIC8qIEEgY3VzdG9tIGJsZW5kIG9mIE1EIGdyZXkgYW5kIG9yYW5nZSA2MDBcbiAgICogaHR0cHM6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jb2xvci1ibGVuZC8jNTQ2RTdBOkY0NTExRTo1OmhleCAqL1xuICAtLWpwLWNlbGwtb3V0cHJvbXB0LWZvbnQtY29sb3I6ICNiZjViM2Q7XG5cbiAgLyogTm90ZWJvb2sgc3BlY2lmaWMgc3R5bGVzICovXG5cbiAgLS1qcC1ub3RlYm9vay1wYWRkaW5nOiAxMHB4O1xuICAtLWpwLW5vdGVib29rLXNjcm9sbC1wYWRkaW5nOiAxMDBweDtcblxuICAvKiBDb25zb2xlIHNwZWNpZmljIHN0eWxlcyAqL1xuXG4gIC0tanAtY29uc29sZS1iYWNrZ3JvdW5kOiB2YXIoLS1tZC1ncmV5LTEwMCk7XG5cbiAgLyogVG9vbGJhciBzcGVjaWZpYyBzdHlsZXMgKi9cblxuICAtLWpwLXRvb2xiYXItYm9yZGVyLWNvbG9yOiB2YXIoLS1tZC1ncmV5LTQwMCk7XG4gIC0tanAtdG9vbGJhci1taWNyby1oZWlnaHQ6IDhweDtcbiAgLS1qcC10b29sYmFyLWJhY2tncm91bmQ6IHZhcigtLWpwLWxheW91dC1jb2xvcjApO1xuICAtLWpwLXRvb2xiYXItYm94LXNoYWRvdzogMHB4IDBweCAycHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yNCk7XG4gIC0tanAtdG9vbGJhci1oZWFkZXItbWFyZ2luOiA0cHggNHB4IDBweCA0cHg7XG4gIC0tanAtdG9vbGJhci1hY3RpdmUtYmFja2dyb3VuZDogdmFyKC0tbWQtZ3JleS0zMDApO1xufVxuIiwiLyoqXG4gKiBUaGUgbWF0ZXJpYWwgZGVzaWduIGNvbG9ycyBhcmUgYWRhcHRlZCBmcm9tIGdvb2dsZS1tYXRlcmlhbC1jb2xvciB2MS4yLjZcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5sZXZhbi9nb29nbGUtbWF0ZXJpYWwtY29sb3JcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5sZXZhbi9nb29nbGUtbWF0ZXJpYWwtY29sb3IvYmxvYi9mNjdjYTVmNDAyOGIyZjFiMzQ4NjJmNjRiMGNhNjczMjNmOTFiMDg4L2Rpc3QvcGFsZXR0ZS52YXIuY3NzXG4gKlxuICogVGhlIGxpY2Vuc2UgZm9yIHRoZSBtYXRlcmlhbCBkZXNpZ24gY29sb3IgQ1NTIHZhcmlhYmxlcyBpcyBhcyBmb2xsb3dzIChzZWVcbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5sZXZhbi9nb29nbGUtbWF0ZXJpYWwtY29sb3IvYmxvYi9mNjdjYTVmNDAyOGIyZjFiMzQ4NjJmNjRiMGNhNjczMjNmOTFiMDg4L0xJQ0VOU0UpXG4gKlxuICogVGhlIE1JVCBMaWNlbnNlIChNSVQpXG4gKlxuICogQ29weXJpZ2h0IChjKSAyMDE0IERhbiBMZSBWYW5cbiAqXG4gKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4gKiBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4gKiBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4gKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4gKiBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbiAqIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4gKlxuICogVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbiAqIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuICpcbiAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1JcbiAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuICogRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4gKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4gKiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuICogT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEVcbiAqIFNPRlRXQVJFLlxuICovXG46cm9vdCB7XG4gIC0tbWQtcmVkLTUwOiAjZmZlYmVlO1xuICAtLW1kLXJlZC0xMDA6ICNmZmNkZDI7XG4gIC0tbWQtcmVkLTIwMDogI2VmOWE5YTtcbiAgLS1tZC1yZWQtMzAwOiAjZTU3MzczO1xuICAtLW1kLXJlZC00MDA6ICNlZjUzNTA7XG4gIC0tbWQtcmVkLTUwMDogI2Y0NDMzNjtcbiAgLS1tZC1yZWQtNjAwOiAjZTUzOTM1O1xuICAtLW1kLXJlZC03MDA6ICNkMzJmMmY7XG4gIC0tbWQtcmVkLTgwMDogI2M2MjgyODtcbiAgLS1tZC1yZWQtOTAwOiAjYjcxYzFjO1xuICAtLW1kLXJlZC1BMTAwOiAjZmY4YTgwO1xuICAtLW1kLXJlZC1BMjAwOiAjZmY1MjUyO1xuICAtLW1kLXJlZC1BNDAwOiAjZmYxNzQ0O1xuICAtLW1kLXJlZC1BNzAwOiAjZDUwMDAwO1xuXG4gIC0tbWQtcGluay01MDogI2ZjZTRlYztcbiAgLS1tZC1waW5rLTEwMDogI2Y4YmJkMDtcbiAgLS1tZC1waW5rLTIwMDogI2Y0OGZiMTtcbiAgLS1tZC1waW5rLTMwMDogI2YwNjI5MjtcbiAgLS1tZC1waW5rLTQwMDogI2VjNDA3YTtcbiAgLS1tZC1waW5rLTUwMDogI2U5MWU2MztcbiAgLS1tZC1waW5rLTYwMDogI2Q4MWI2MDtcbiAgLS1tZC1waW5rLTcwMDogI2MyMTg1YjtcbiAgLS1tZC1waW5rLTgwMDogI2FkMTQ1NztcbiAgLS1tZC1waW5rLTkwMDogIzg4MGU0ZjtcbiAgLS1tZC1waW5rLUExMDA6ICNmZjgwYWI7XG4gIC0tbWQtcGluay1BMjAwOiAjZmY0MDgxO1xuICAtLW1kLXBpbmstQTQwMDogI2Y1MDA1NztcbiAgLS1tZC1waW5rLUE3MDA6ICNjNTExNjI7XG5cbiAgLS1tZC1wdXJwbGUtNTA6ICNmM2U1ZjU7XG4gIC0tbWQtcHVycGxlLTEwMDogI2UxYmVlNztcbiAgLS1tZC1wdXJwbGUtMjAwOiAjY2U5M2Q4O1xuICAtLW1kLXB1cnBsZS0zMDA6ICNiYTY4Yzg7XG4gIC0tbWQtcHVycGxlLTQwMDogI2FiNDdiYztcbiAgLS1tZC1wdXJwbGUtNTAwOiAjOWMyN2IwO1xuICAtLW1kLXB1cnBsZS02MDA6ICM4ZTI0YWE7XG4gIC0tbWQtcHVycGxlLTcwMDogIzdiMWZhMjtcbiAgLS1tZC1wdXJwbGUtODAwOiAjNmExYjlhO1xuICAtLW1kLXB1cnBsZS05MDA6ICM0YTE0OGM7XG4gIC0tbWQtcHVycGxlLUExMDA6ICNlYTgwZmM7XG4gIC0tbWQtcHVycGxlLUEyMDA6ICNlMDQwZmI7XG4gIC0tbWQtcHVycGxlLUE0MDA6ICNkNTAwZjk7XG4gIC0tbWQtcHVycGxlLUE3MDA6ICNhYTAwZmY7XG5cbiAgLS1tZC1kZWVwLXB1cnBsZS01MDogI2VkZTdmNjtcbiAgLS1tZC1kZWVwLXB1cnBsZS0xMDA6ICNkMWM0ZTk7XG4gIC0tbWQtZGVlcC1wdXJwbGUtMjAwOiAjYjM5ZGRiO1xuICAtLW1kLWRlZXAtcHVycGxlLTMwMDogIzk1NzVjZDtcbiAgLS1tZC1kZWVwLXB1cnBsZS00MDA6ICM3ZTU3YzI7XG4gIC0tbWQtZGVlcC1wdXJwbGUtNTAwOiAjNjczYWI3O1xuICAtLW1kLWRlZXAtcHVycGxlLTYwMDogIzVlMzViMTtcbiAgLS1tZC1kZWVwLXB1cnBsZS03MDA6ICM1MTJkYTg7XG4gIC0tbWQtZGVlcC1wdXJwbGUtODAwOiAjNDUyN2EwO1xuICAtLW1kLWRlZXAtcHVycGxlLTkwMDogIzMxMWI5MjtcbiAgLS1tZC1kZWVwLXB1cnBsZS1BMTAwOiAjYjM4OGZmO1xuICAtLW1kLWRlZXAtcHVycGxlLUEyMDA6ICM3YzRkZmY7XG4gIC0tbWQtZGVlcC1wdXJwbGUtQTQwMDogIzY1MWZmZjtcbiAgLS1tZC1kZWVwLXB1cnBsZS1BNzAwOiAjNjIwMGVhO1xuXG4gIC0tbWQtaW5kaWdvLTUwOiAjZThlYWY2O1xuICAtLW1kLWluZGlnby0xMDA6ICNjNWNhZTk7XG4gIC0tbWQtaW5kaWdvLTIwMDogIzlmYThkYTtcbiAgLS1tZC1pbmRpZ28tMzAwOiAjNzk4NmNiO1xuICAtLW1kLWluZGlnby00MDA6ICM1YzZiYzA7XG4gIC0tbWQtaW5kaWdvLTUwMDogIzNmNTFiNTtcbiAgLS1tZC1pbmRpZ28tNjAwOiAjMzk0OWFiO1xuICAtLW1kLWluZGlnby03MDA6ICMzMDNmOWY7XG4gIC0tbWQtaW5kaWdvLTgwMDogIzI4MzU5MztcbiAgLS1tZC1pbmRpZ28tOTAwOiAjMWEyMzdlO1xuICAtLW1kLWluZGlnby1BMTAwOiAjOGM5ZWZmO1xuICAtLW1kLWluZGlnby1BMjAwOiAjNTM2ZGZlO1xuICAtLW1kLWluZGlnby1BNDAwOiAjM2Q1YWZlO1xuICAtLW1kLWluZGlnby1BNzAwOiAjMzA0ZmZlO1xuXG4gIC0tbWQtYmx1ZS01MDogI2UzZjJmZDtcbiAgLS1tZC1ibHVlLTEwMDogI2JiZGVmYjtcbiAgLS1tZC1ibHVlLTIwMDogIzkwY2FmOTtcbiAgLS1tZC1ibHVlLTMwMDogIzY0YjVmNjtcbiAgLS1tZC1ibHVlLTQwMDogIzQyYTVmNTtcbiAgLS1tZC1ibHVlLTUwMDogIzIxOTZmMztcbiAgLS1tZC1ibHVlLTYwMDogIzFlODhlNTtcbiAgLS1tZC1ibHVlLTcwMDogIzE5NzZkMjtcbiAgLS1tZC1ibHVlLTgwMDogIzE1NjVjMDtcbiAgLS1tZC1ibHVlLTkwMDogIzBkNDdhMTtcbiAgLS1tZC1ibHVlLUExMDA6ICM4MmIxZmY7XG4gIC0tbWQtYmx1ZS1BMjAwOiAjNDQ4YWZmO1xuICAtLW1kLWJsdWUtQTQwMDogIzI5NzlmZjtcbiAgLS1tZC1ibHVlLUE3MDA6ICMyOTYyZmY7XG5cbiAgLS1tZC1saWdodC1ibHVlLTUwOiAjZTFmNWZlO1xuICAtLW1kLWxpZ2h0LWJsdWUtMTAwOiAjYjNlNWZjO1xuICAtLW1kLWxpZ2h0LWJsdWUtMjAwOiAjODFkNGZhO1xuICAtLW1kLWxpZ2h0LWJsdWUtMzAwOiAjNGZjM2Y3O1xuICAtLW1kLWxpZ2h0LWJsdWUtNDAwOiAjMjliNmY2O1xuICAtLW1kLWxpZ2h0LWJsdWUtNTAwOiAjMDNhOWY0O1xuICAtLW1kLWxpZ2h0LWJsdWUtNjAwOiAjMDM5YmU1O1xuICAtLW1kLWxpZ2h0LWJsdWUtNzAwOiAjMDI4OGQxO1xuICAtLW1kLWxpZ2h0LWJsdWUtODAwOiAjMDI3N2JkO1xuICAtLW1kLWxpZ2h0LWJsdWUtOTAwOiAjMDE1NzliO1xuICAtLW1kLWxpZ2h0LWJsdWUtQTEwMDogIzgwZDhmZjtcbiAgLS1tZC1saWdodC1ibHVlLUEyMDA6ICM0MGM0ZmY7XG4gIC0tbWQtbGlnaHQtYmx1ZS1BNDAwOiAjMDBiMGZmO1xuICAtLW1kLWxpZ2h0LWJsdWUtQTcwMDogIzAwOTFlYTtcblxuICAtLW1kLWN5YW4tNTA6ICNlMGY3ZmE7XG4gIC0tbWQtY3lhbi0xMDA6ICNiMmViZjI7XG4gIC0tbWQtY3lhbi0yMDA6ICM4MGRlZWE7XG4gIC0tbWQtY3lhbi0zMDA6ICM0ZGQwZTE7XG4gIC0tbWQtY3lhbi00MDA6ICMyNmM2ZGE7XG4gIC0tbWQtY3lhbi01MDA6ICMwMGJjZDQ7XG4gIC0tbWQtY3lhbi02MDA6ICMwMGFjYzE7XG4gIC0tbWQtY3lhbi03MDA6ICMwMDk3YTc7XG4gIC0tbWQtY3lhbi04MDA6ICMwMDgzOGY7XG4gIC0tbWQtY3lhbi05MDA6ICMwMDYwNjQ7XG4gIC0tbWQtY3lhbi1BMTAwOiAjODRmZmZmO1xuICAtLW1kLWN5YW4tQTIwMDogIzE4ZmZmZjtcbiAgLS1tZC1jeWFuLUE0MDA6ICMwMGU1ZmY7XG4gIC0tbWQtY3lhbi1BNzAwOiAjMDBiOGQ0O1xuXG4gIC0tbWQtdGVhbC01MDogI2UwZjJmMTtcbiAgLS1tZC10ZWFsLTEwMDogI2IyZGZkYjtcbiAgLS1tZC10ZWFsLTIwMDogIzgwY2JjNDtcbiAgLS1tZC10ZWFsLTMwMDogIzRkYjZhYztcbiAgLS1tZC10ZWFsLTQwMDogIzI2YTY5YTtcbiAgLS1tZC10ZWFsLTUwMDogIzAwOTY4ODtcbiAgLS1tZC10ZWFsLTYwMDogIzAwODk3YjtcbiAgLS1tZC10ZWFsLTcwMDogIzAwNzk2YjtcbiAgLS1tZC10ZWFsLTgwMDogIzAwNjk1YztcbiAgLS1tZC10ZWFsLTkwMDogIzAwNGQ0MDtcbiAgLS1tZC10ZWFsLUExMDA6ICNhN2ZmZWI7XG4gIC0tbWQtdGVhbC1BMjAwOiAjNjRmZmRhO1xuICAtLW1kLXRlYWwtQTQwMDogIzFkZTliNjtcbiAgLS1tZC10ZWFsLUE3MDA6ICMwMGJmYTU7XG5cbiAgLS1tZC1ncmVlbi01MDogI2U4ZjVlOTtcbiAgLS1tZC1ncmVlbi0xMDA6ICNjOGU2Yzk7XG4gIC0tbWQtZ3JlZW4tMjAwOiAjYTVkNmE3O1xuICAtLW1kLWdyZWVuLTMwMDogIzgxYzc4NDtcbiAgLS1tZC1ncmVlbi00MDA6ICM2NmJiNmE7XG4gIC0tbWQtZ3JlZW4tNTAwOiAjNGNhZjUwO1xuICAtLW1kLWdyZWVuLTYwMDogIzQzYTA0NztcbiAgLS1tZC1ncmVlbi03MDA6ICMzODhlM2M7XG4gIC0tbWQtZ3JlZW4tODAwOiAjMmU3ZDMyO1xuICAtLW1kLWdyZWVuLTkwMDogIzFiNWUyMDtcbiAgLS1tZC1ncmVlbi1BMTAwOiAjYjlmNmNhO1xuICAtLW1kLWdyZWVuLUEyMDA6ICM2OWYwYWU7XG4gIC0tbWQtZ3JlZW4tQTQwMDogIzAwZTY3NjtcbiAgLS1tZC1ncmVlbi1BNzAwOiAjMDBjODUzO1xuXG4gIC0tbWQtbGlnaHQtZ3JlZW4tNTA6ICNmMWY4ZTk7XG4gIC0tbWQtbGlnaHQtZ3JlZW4tMTAwOiAjZGNlZGM4O1xuICAtLW1kLWxpZ2h0LWdyZWVuLTIwMDogI2M1ZTFhNTtcbiAgLS1tZC1saWdodC1ncmVlbi0zMDA6ICNhZWQ1ODE7XG4gIC0tbWQtbGlnaHQtZ3JlZW4tNDAwOiAjOWNjYzY1O1xuICAtLW1kLWxpZ2h0LWdyZWVuLTUwMDogIzhiYzM0YTtcbiAgLS1tZC1saWdodC1ncmVlbi02MDA6ICM3Y2IzNDI7XG4gIC0tbWQtbGlnaHQtZ3JlZW4tNzAwOiAjNjg5ZjM4O1xuICAtLW1kLWxpZ2h0LWdyZWVuLTgwMDogIzU1OGIyZjtcbiAgLS1tZC1saWdodC1ncmVlbi05MDA6ICMzMzY5MWU7XG4gIC0tbWQtbGlnaHQtZ3JlZW4tQTEwMDogI2NjZmY5MDtcbiAgLS1tZC1saWdodC1ncmVlbi1BMjAwOiAjYjJmZjU5O1xuICAtLW1kLWxpZ2h0LWdyZWVuLUE0MDA6ICM3NmZmMDM7XG4gIC0tbWQtbGlnaHQtZ3JlZW4tQTcwMDogIzY0ZGQxNztcblxuICAtLW1kLWxpbWUtNTA6ICNmOWZiZTc7XG4gIC0tbWQtbGltZS0xMDA6ICNmMGY0YzM7XG4gIC0tbWQtbGltZS0yMDA6ICNlNmVlOWM7XG4gIC0tbWQtbGltZS0zMDA6ICNkY2U3NzU7XG4gIC0tbWQtbGltZS00MDA6ICNkNGUxNTc7XG4gIC0tbWQtbGltZS01MDA6ICNjZGRjMzk7XG4gIC0tbWQtbGltZS02MDA6ICNjMGNhMzM7XG4gIC0tbWQtbGltZS03MDA6ICNhZmI0MmI7XG4gIC0tbWQtbGltZS04MDA6ICM5ZTlkMjQ7XG4gIC0tbWQtbGltZS05MDA6ICM4Mjc3MTc7XG4gIC0tbWQtbGltZS1BMTAwOiAjZjRmZjgxO1xuICAtLW1kLWxpbWUtQTIwMDogI2VlZmY0MTtcbiAgLS1tZC1saW1lLUE0MDA6ICNjNmZmMDA7XG4gIC0tbWQtbGltZS1BNzAwOiAjYWVlYTAwO1xuXG4gIC0tbWQteWVsbG93LTUwOiAjZmZmZGU3O1xuICAtLW1kLXllbGxvdy0xMDA6ICNmZmY5YzQ7XG4gIC0tbWQteWVsbG93LTIwMDogI2ZmZjU5ZDtcbiAgLS1tZC15ZWxsb3ctMzAwOiAjZmZmMTc2O1xuICAtLW1kLXllbGxvdy00MDA6ICNmZmVlNTg7XG4gIC0tbWQteWVsbG93LTUwMDogI2ZmZWIzYjtcbiAgLS1tZC15ZWxsb3ctNjAwOiAjZmRkODM1O1xuICAtLW1kLXllbGxvdy03MDA6ICNmYmMwMmQ7XG4gIC0tbWQteWVsbG93LTgwMDogI2Y5YTgyNTtcbiAgLS1tZC15ZWxsb3ctOTAwOiAjZjU3ZjE3O1xuICAtLW1kLXllbGxvdy1BMTAwOiAjZmZmZjhkO1xuICAtLW1kLXllbGxvdy1BMjAwOiAjZmZmZjAwO1xuICAtLW1kLXllbGxvdy1BNDAwOiAjZmZlYTAwO1xuICAtLW1kLXllbGxvdy1BNzAwOiAjZmZkNjAwO1xuXG4gIC0tbWQtYW1iZXItNTA6ICNmZmY4ZTE7XG4gIC0tbWQtYW1iZXItMTAwOiAjZmZlY2IzO1xuICAtLW1kLWFtYmVyLTIwMDogI2ZmZTA4MjtcbiAgLS1tZC1hbWJlci0zMDA6ICNmZmQ1NGY7XG4gIC0tbWQtYW1iZXItNDAwOiAjZmZjYTI4O1xuICAtLW1kLWFtYmVyLTUwMDogI2ZmYzEwNztcbiAgLS1tZC1hbWJlci02MDA6ICNmZmIzMDA7XG4gIC0tbWQtYW1iZXItNzAwOiAjZmZhMDAwO1xuICAtLW1kLWFtYmVyLTgwMDogI2ZmOGYwMDtcbiAgLS1tZC1hbWJlci05MDA6ICNmZjZmMDA7XG4gIC0tbWQtYW1iZXItQTEwMDogI2ZmZTU3ZjtcbiAgLS1tZC1hbWJlci1BMjAwOiAjZmZkNzQwO1xuICAtLW1kLWFtYmVyLUE0MDA6ICNmZmM0MDA7XG4gIC0tbWQtYW1iZXItQTcwMDogI2ZmYWIwMDtcblxuICAtLW1kLW9yYW5nZS01MDogI2ZmZjNlMDtcbiAgLS1tZC1vcmFuZ2UtMTAwOiAjZmZlMGIyO1xuICAtLW1kLW9yYW5nZS0yMDA6ICNmZmNjODA7XG4gIC0tbWQtb3JhbmdlLTMwMDogI2ZmYjc0ZDtcbiAgLS1tZC1vcmFuZ2UtNDAwOiAjZmZhNzI2O1xuICAtLW1kLW9yYW5nZS01MDA6ICNmZjk4MDA7XG4gIC0tbWQtb3JhbmdlLTYwMDogI2ZiOGMwMDtcbiAgLS1tZC1vcmFuZ2UtNzAwOiAjZjU3YzAwO1xuICAtLW1kLW9yYW5nZS04MDA6ICNlZjZjMDA7XG4gIC0tbWQtb3JhbmdlLTkwMDogI2U2NTEwMDtcbiAgLS1tZC1vcmFuZ2UtQTEwMDogI2ZmZDE4MDtcbiAgLS1tZC1vcmFuZ2UtQTIwMDogI2ZmYWI0MDtcbiAgLS1tZC1vcmFuZ2UtQTQwMDogI2ZmOTEwMDtcbiAgLS1tZC1vcmFuZ2UtQTcwMDogI2ZmNmQwMDtcblxuICAtLW1kLWRlZXAtb3JhbmdlLTUwOiAjZmJlOWU3O1xuICAtLW1kLWRlZXAtb3JhbmdlLTEwMDogI2ZmY2NiYztcbiAgLS1tZC1kZWVwLW9yYW5nZS0yMDA6ICNmZmFiOTE7XG4gIC0tbWQtZGVlcC1vcmFuZ2UtMzAwOiAjZmY4YTY1O1xuICAtLW1kLWRlZXAtb3JhbmdlLTQwMDogI2ZmNzA0MztcbiAgLS1tZC1kZWVwLW9yYW5nZS01MDA6ICNmZjU3MjI7XG4gIC0tbWQtZGVlcC1vcmFuZ2UtNjAwOiAjZjQ1MTFlO1xuICAtLW1kLWRlZXAtb3JhbmdlLTcwMDogI2U2NGExOTtcbiAgLS1tZC1kZWVwLW9yYW5nZS04MDA6ICNkODQzMTU7XG4gIC0tbWQtZGVlcC1vcmFuZ2UtOTAwOiAjYmYzNjBjO1xuICAtLW1kLWRlZXAtb3JhbmdlLUExMDA6ICNmZjllODA7XG4gIC0tbWQtZGVlcC1vcmFuZ2UtQTIwMDogI2ZmNmU0MDtcbiAgLS1tZC1kZWVwLW9yYW5nZS1BNDAwOiAjZmYzZDAwO1xuICAtLW1kLWRlZXAtb3JhbmdlLUE3MDA6ICNkZDJjMDA7XG5cbiAgLS1tZC1icm93bi01MDogI2VmZWJlOTtcbiAgLS1tZC1icm93bi0xMDA6ICNkN2NjYzg7XG4gIC0tbWQtYnJvd24tMjAwOiAjYmNhYWE0O1xuICAtLW1kLWJyb3duLTMwMDogI2ExODg3ZjtcbiAgLS1tZC1icm93bi00MDA6ICM4ZDZlNjM7XG4gIC0tbWQtYnJvd24tNTAwOiAjNzk1NTQ4O1xuICAtLW1kLWJyb3duLTYwMDogIzZkNGM0MTtcbiAgLS1tZC1icm93bi03MDA6ICM1ZDQwMzc7XG4gIC0tbWQtYnJvd24tODAwOiAjNGUzNDJlO1xuICAtLW1kLWJyb3duLTkwMDogIzNlMjcyMztcblxuICAtLW1kLWdyZXktNTA6ICNmYWZhZmE7XG4gIC0tbWQtZ3JleS0xMDA6ICNmNWY1ZjU7XG4gIC0tbWQtZ3JleS0yMDA6ICNlZWVlZWU7XG4gIC0tbWQtZ3JleS0zMDA6ICNlMGUwZTA7XG4gIC0tbWQtZ3JleS00MDA6ICNiZGJkYmQ7XG4gIC0tbWQtZ3JleS01MDA6ICM5ZTllOWU7XG4gIC0tbWQtZ3JleS02MDA6ICM3NTc1NzU7XG4gIC0tbWQtZ3JleS03MDA6ICM2MTYxNjE7XG4gIC0tbWQtZ3JleS04MDA6ICM0MjQyNDI7XG4gIC0tbWQtZ3JleS05MDA6ICMyMTIxMjE7XG5cbiAgLS1tZC1ibHVlLWdyZXktNTA6ICNlY2VmZjE7XG4gIC0tbWQtYmx1ZS1ncmV5LTEwMDogI2NmZDhkYztcbiAgLS1tZC1ibHVlLWdyZXktMjAwOiAjYjBiZWM1O1xuICAtLW1kLWJsdWUtZ3JleS0zMDA6ICM5MGE0YWU7XG4gIC0tbWQtYmx1ZS1ncmV5LTQwMDogIzc4OTA5YztcbiAgLS1tZC1ibHVlLWdyZXktNTAwOiAjNjA3ZDhiO1xuICAtLW1kLWJsdWUtZ3JleS02MDA6ICM1NDZlN2E7XG4gIC0tbWQtYmx1ZS1ncmV5LTcwMDogIzQ1NWE2NDtcbiAgLS1tZC1ibHVlLWdyZXktODAwOiAjMzc0NzRmO1xuICAtLW1kLWJsdWUtZ3JleS05MDA6ICMyNjMyMzg7XG59XG4iLCIvKiBDb3B5cmlnaHQgKGMpIEp1cHl0ZXIgRGV2ZWxvcG1lbnQgVGVhbS5cbiAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTW9kaWZpZWQgQlNEIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqIFdlIGFzc3VtZSB0aGF0IHRoZSBDU1MgdmFyaWFibGVzIGluXG4gKiBodHRwczovL2dpdGh1Yi5jb20vanVweXRlcmxhYi9qdXB5dGVybGFiL2Jsb2IvbWFzdGVyL3NyYy9kZWZhdWx0LXRoZW1lL3ZhcmlhYmxlcy5jc3NcbiAqIGhhdmUgYmVlbiBkZWZpbmVkLlxuICovXG5cbkBpbXBvcnQgJy4vbHVtaW5vLmNzcyc7XG5AaW1wb3J0ICcuL25vdWlzbGlkZXIuY3NzJztcblxuOnJvb3Qge1xuICAtLWpwLXdpZGdldHMtY29sb3I6IHZhcigtLWpwLWNvbnRlbnQtZm9udC1jb2xvcjEpO1xuICAtLWpwLXdpZGdldHMtbGFiZWwtY29sb3I6IHZhcigtLWpwLXdpZGdldHMtY29sb3IpO1xuICAtLWpwLXdpZGdldHMtcmVhZG91dC1jb2xvcjogdmFyKC0tanAtd2lkZ2V0cy1jb2xvcik7XG4gIC0tanAtd2lkZ2V0cy1mb250LXNpemU6IHZhcigtLWpwLXVpLWZvbnQtc2l6ZTEpO1xuICAtLWpwLXdpZGdldHMtbWFyZ2luOiAycHg7XG4gIC0tanAtd2lkZ2V0cy1pbmxpbmUtaGVpZ2h0OiAyOHB4O1xuICAtLWpwLXdpZGdldHMtaW5saW5lLXdpZHRoOiAzMDBweDtcbiAgLS1qcC13aWRnZXRzLWlubGluZS13aWR0aC1zaG9ydDogY2FsYyhcbiAgICB2YXIoLS1qcC13aWRnZXRzLWlubGluZS13aWR0aCkgLyAyIC0gdmFyKC0tanAtd2lkZ2V0cy1tYXJnaW4pXG4gICk7XG4gIC0tanAtd2lkZ2V0cy1pbmxpbmUtd2lkdGgtdGlueTogY2FsYyhcbiAgICB2YXIoLS1qcC13aWRnZXRzLWlubGluZS13aWR0aC1zaG9ydCkgLyAyIC0gdmFyKC0tanAtd2lkZ2V0cy1tYXJnaW4pXG4gICk7XG4gIC0tanAtd2lkZ2V0cy1pbmxpbmUtbWFyZ2luOiA0cHg7IC8qIG1hcmdpbiBiZXR3ZWVuIGlubGluZSBlbGVtZW50cyAqL1xuICAtLWpwLXdpZGdldHMtaW5saW5lLWxhYmVsLXdpZHRoOiA4MHB4O1xuICAtLWpwLXdpZGdldHMtYm9yZGVyLXdpZHRoOiB2YXIoLS1qcC1ib3JkZXItd2lkdGgpO1xuICAtLWpwLXdpZGdldHMtdmVydGljYWwtaGVpZ2h0OiAyMDBweDtcbiAgLS1qcC13aWRnZXRzLWhvcml6b250YWwtdGFiLWhlaWdodDogMjRweDtcbiAgLS1qcC13aWRnZXRzLWhvcml6b250YWwtdGFiLXdpZHRoOiAxNDRweDtcbiAgLS1qcC13aWRnZXRzLWhvcml6b250YWwtdGFiLXRvcC1ib3JkZXI6IDJweDtcbiAgLS1qcC13aWRnZXRzLXByb2dyZXNzLXRoaWNrbmVzczogMjBweDtcbiAgLS1qcC13aWRnZXRzLWNvbnRhaW5lci1wYWRkaW5nOiAxNXB4O1xuICAtLWpwLXdpZGdldHMtaW5wdXQtcGFkZGluZzogNHB4O1xuICAtLWpwLXdpZGdldHMtcmFkaW8taXRlbS1oZWlnaHQtYWRqdXN0bWVudDogOHB4O1xuICAtLWpwLXdpZGdldHMtcmFkaW8taXRlbS1oZWlnaHQ6IGNhbGMoXG4gICAgdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtaGVpZ2h0KSAtXG4gICAgICB2YXIoLS1qcC13aWRnZXRzLXJhZGlvLWl0ZW0taGVpZ2h0LWFkanVzdG1lbnQpXG4gICk7XG4gIC0tanAtd2lkZ2V0cy1zbGlkZXItdHJhY2stdGhpY2tuZXNzOiA0cHg7XG4gIC0tanAtd2lkZ2V0cy1zbGlkZXItYm9yZGVyLXdpZHRoOiB2YXIoLS1qcC13aWRnZXRzLWJvcmRlci13aWR0aCk7XG4gIC0tanAtd2lkZ2V0cy1zbGlkZXItaGFuZGxlLXNpemU6IDE2cHg7XG4gIC0tanAtd2lkZ2V0cy1zbGlkZXItaGFuZGxlLWJvcmRlci1jb2xvcjogdmFyKC0tanAtYm9yZGVyLWNvbG9yMSk7XG4gIC0tanAtd2lkZ2V0cy1zbGlkZXItaGFuZGxlLWJhY2tncm91bmQtY29sb3I6IHZhcigtLWpwLWxheW91dC1jb2xvcjEpO1xuICAtLWpwLXdpZGdldHMtc2xpZGVyLWFjdGl2ZS1oYW5kbGUtY29sb3I6IHZhcigtLWpwLWJyYW5kLWNvbG9yMSk7XG4gIC0tanAtd2lkZ2V0cy1tZW51LWl0ZW0taGVpZ2h0OiAyNHB4O1xuICAtLWpwLXdpZGdldHMtZHJvcGRvd24tYXJyb3c6IHVybCgnZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREU1TGpJdU1Td2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBeE9DQXhPQ0lnYzNSNWJHVTlJbVZ1WVdKc1pTMWlZV05yWjNKdmRXNWtPbTVsZHlBd0lEQWdNVGdnTVRnN0lpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajRLUEhOMGVXeGxJSFI1Y0dVOUluUmxlSFF2WTNOeklqNEtDUzV6ZERCN1ptbHNiRHB1YjI1bE8zMEtQQzl6ZEhsc1pUNEtQSEJoZEdnZ1pEMGlUVFV1TWl3MUxqbE1PU3c1TGpkc015NDRMVE11T0d3eExqSXNNUzR5YkMwMExqa3NOV3d0TkM0NUxUVk1OUzR5TERVdU9Yb2lMejRLUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRUQXRNQzQyYURFNGRqRTRTREJXTFRBdU5ub2lMejRLUEM5emRtYytDZycpO1xuICAtLWpwLXdpZGdldHMtaW5wdXQtY29sb3I6IHZhcigtLWpwLXVpLWZvbnQtY29sb3IxKTtcbiAgLS1qcC13aWRnZXRzLWlucHV0LWJhY2tncm91bmQtY29sb3I6IHZhcigtLWpwLWxheW91dC1jb2xvcjEpO1xuICAtLWpwLXdpZGdldHMtaW5wdXQtYm9yZGVyLWNvbG9yOiB2YXIoLS1qcC1ib3JkZXItY29sb3IxKTtcbiAgLS1qcC13aWRnZXRzLWlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjogdmFyKC0tanAtYnJhbmQtY29sb3IyKTtcbiAgLS1qcC13aWRnZXRzLWlucHV0LWJvcmRlci13aWR0aDogdmFyKC0tanAtd2lkZ2V0cy1ib3JkZXItd2lkdGgpO1xuICAtLWpwLXdpZGdldHMtZGlzYWJsZWQtb3BhY2l0eTogMC42O1xuXG4gIC8qIEZyb20gTWF0ZXJpYWwgRGVzaWduIExpdGUgKi9cbiAgLS1tZC1zaGFkb3cta2V5LXVtYnJhLW9wYWNpdHk6IDAuMjtcbiAgLS1tZC1zaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHk6IDAuMTQ7XG4gIC0tbWQtc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHk6IDAuMTI7XG59XG5cbi5qdXB5dGVyLXdpZGdldHMge1xuICBtYXJnaW46IHZhcigtLWpwLXdpZGdldHMtbWFyZ2luKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6IHZhcigtLWpwLXdpZGdldHMtY29sb3IpO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLmpwLU91dHB1dC1yZXN1bHQgPiAuanVweXRlci13aWRnZXRzIHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLyogdmJveCBhbmQgaGJveCAqL1xuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtaW5saW5lLWhib3gsIC8qIDwvREVQUkVDQVRFRD4gKi9cbiAuanVweXRlci13aWRnZXQtaW5saW5lLWhib3gge1xuICAvKiBIb3Jpem9udGFsIHdpZGdldHMgKi9cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgYWxpZ24taXRlbXM6IGJhc2VsaW5lO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtaW5saW5lLXZib3gsIC8qIDwvREVQUkVDQVRFRD4gKi9cbiAuanVweXRlci13aWRnZXQtaW5saW5lLXZib3gge1xuICAvKiBWZXJ0aWNhbCBXaWRnZXRzICovXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC1ib3gsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1ib3gge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtZ3JpZGJveCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LWdyaWRib3gge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBkaXNwbGF5OiBncmlkO1xuICBtYXJnaW46IDA7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtaGJveCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LWhib3gge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtdmJveCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LXZib3gge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4vKiBHZW5lcmFsIFRhZ3MgU3R5bGluZyAqL1xuXG4uanVweXRlci13aWRnZXQtdGFnc2lucHV0IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBvdmVyZmxvdzogYXV0bztcblxuICBjdXJzb3I6IHRleHQ7XG59XG5cbi5qdXB5dGVyLXdpZGdldC10YWcge1xuICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gIHBhZGRpbmctdG9wOiAwcHg7XG4gIHBhZGRpbmctYm90dG9tOiAwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiB2YXIoLS1qcC13aWRnZXRzLWZvbnQtc2l6ZSk7XG5cbiAgaGVpZ2h0OiBjYWxjKHZhcigtLWpwLXdpZGdldHMtaW5saW5lLWhlaWdodCkgLSAycHgpO1xuICBib3JkZXI6IDBweCBzb2xpZDtcbiAgbGluZS1oZWlnaHQ6IGNhbGModmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtaGVpZ2h0KSAtIDJweCk7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG5cbiAgY29sb3I6IHZhcigtLWpwLXVpLWZvbnQtY29sb3IxKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tanAtbGF5b3V0LWNvbG9yMik7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tanAtYm9yZGVyLWNvbG9yMik7XG4gIGJvcmRlcjogbm9uZTtcbiAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgY3Vyc29yOiBncmFiO1xuICB0cmFuc2l0aW9uOiBtYXJnaW4tbGVmdCAyMDBtcztcbiAgbWFyZ2luOiAxcHggMXB4IDFweCAxcHg7XG59XG5cbi5qdXB5dGVyLXdpZGdldC10YWcubW9kLWFjdGl2ZSB7XG4gIC8qIE1EIExpdGUgNGRwIHNoYWRvdyAqL1xuICBib3gtc2hhZG93OiAwIDRweCA1cHggMCByZ2JhKDAsIDAsIDAsIHZhcigtLW1kLXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSkpLFxuICAgIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIHZhcigtLW1kLXNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5KSksXG4gICAgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCB2YXIoLS1tZC1zaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkpKTtcbiAgY29sb3I6IHZhcigtLWpwLXVpLWZvbnQtY29sb3IxKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tanAtbGF5b3V0LWNvbG9yMyk7XG59XG5cbi5qdXB5dGVyLXdpZGdldC1jb2xvcnRhZyB7XG4gIGNvbG9yOiB2YXIoLS1qcC1pbnZlcnNlLXVpLWZvbnQtY29sb3IxKTtcbn1cblxuLmp1cHl0ZXItd2lkZ2V0LWNvbG9ydGFnLm1vZC1hY3RpdmUge1xuICBjb2xvcjogdmFyKC0tanAtaW52ZXJzZS11aS1mb250LWNvbG9yMCk7XG59XG5cbi5qdXB5dGVyLXdpZGdldC10YWdpbnB1dCB7XG4gIGNvbG9yOiB2YXIoLS1qcC11aS1mb250LWNvbG9yMCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWpwLWxheW91dC1jb2xvcjApO1xuXG4gIGN1cnNvcjogdGV4dDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLmp1cHl0ZXItd2lkZ2V0LXRhZ2lucHV0OmZvY3VzIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuLmp1cHl0ZXItd2lkZ2V0LXRhZy1jbG9zZSB7XG4gIG1hcmdpbi1sZWZ0OiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1tYXJnaW4pO1xuICBwYWRkaW5nOiAycHggMHB4IDJweCAycHg7XG59XG5cbi5qdXB5dGVyLXdpZGdldC10YWctY2xvc2U6aG92ZXIge1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi8qIFRhZyBcIlByaW1hcnlcIiBTdHlsaW5nICovXG5cbi5qdXB5dGVyLXdpZGdldC10YWcubW9kLXByaW1hcnkge1xuICBjb2xvcjogdmFyKC0tanAtaW52ZXJzZS11aS1mb250LWNvbG9yMSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWpwLWJyYW5kLWNvbG9yMSk7XG59XG5cbi5qdXB5dGVyLXdpZGdldC10YWcubW9kLXByaW1hcnkubW9kLWFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1qcC1pbnZlcnNlLXVpLWZvbnQtY29sb3IwKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tanAtYnJhbmQtY29sb3IwKTtcbn1cblxuLyogVGFnIFwiU3VjY2Vzc1wiIFN0eWxpbmcgKi9cblxuLmp1cHl0ZXItd2lkZ2V0LXRhZy5tb2Qtc3VjY2VzcyB7XG4gIGNvbG9yOiB2YXIoLS1qcC1pbnZlcnNlLXVpLWZvbnQtY29sb3IxKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tanAtc3VjY2Vzcy1jb2xvcjEpO1xufVxuXG4uanVweXRlci13aWRnZXQtdGFnLm1vZC1zdWNjZXNzLm1vZC1hY3RpdmUge1xuICBjb2xvcjogdmFyKC0tanAtaW52ZXJzZS11aS1mb250LWNvbG9yMCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWpwLXN1Y2Nlc3MtY29sb3IwKTtcbn1cblxuLyogVGFnIFwiSW5mb1wiIFN0eWxpbmcgKi9cblxuLmp1cHl0ZXItd2lkZ2V0LXRhZy5tb2QtaW5mbyB7XG4gIGNvbG9yOiB2YXIoLS1qcC1pbnZlcnNlLXVpLWZvbnQtY29sb3IxKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tanAtaW5mby1jb2xvcjEpO1xufVxuXG4uanVweXRlci13aWRnZXQtdGFnLm1vZC1pbmZvLm1vZC1hY3RpdmUge1xuICBjb2xvcjogdmFyKC0tanAtaW52ZXJzZS11aS1mb250LWNvbG9yMCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWpwLWluZm8tY29sb3IwKTtcbn1cblxuLyogVGFnIFwiV2FybmluZ1wiIFN0eWxpbmcgKi9cblxuLmp1cHl0ZXItd2lkZ2V0LXRhZy5tb2Qtd2FybmluZyB7XG4gIGNvbG9yOiB2YXIoLS1qcC1pbnZlcnNlLXVpLWZvbnQtY29sb3IxKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tanAtd2Fybi1jb2xvcjEpO1xufVxuXG4uanVweXRlci13aWRnZXQtdGFnLm1vZC13YXJuaW5nLm1vZC1hY3RpdmUge1xuICBjb2xvcjogdmFyKC0tanAtaW52ZXJzZS11aS1mb250LWNvbG9yMCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWpwLXdhcm4tY29sb3IwKTtcbn1cblxuLyogVGFnIFwiRGFuZ2VyXCIgU3R5bGluZyAqL1xuXG4uanVweXRlci13aWRnZXQtdGFnLm1vZC1kYW5nZXIge1xuICBjb2xvcjogdmFyKC0tanAtaW52ZXJzZS11aS1mb250LWNvbG9yMSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWpwLWVycm9yLWNvbG9yMSk7XG59XG5cbi5qdXB5dGVyLXdpZGdldC10YWcubW9kLWRhbmdlci5tb2QtYWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLWpwLWludmVyc2UtdWktZm9udC1jb2xvcjApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1qcC1lcnJvci1jb2xvcjApO1xufVxuXG4vKiBHZW5lcmFsIEJ1dHRvbiBTdHlsaW5nICovXG5cbi5qdXB5dGVyLWJ1dHRvbiB7XG4gIHBhZGRpbmctbGVmdDogMTBweDtcbiAgcGFkZGluZy1yaWdodDogMTBweDtcbiAgcGFkZGluZy10b3A6IDBweDtcbiAgcGFkZGluZy1ib3R0b206IDBweDtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IHZhcigtLWpwLXdpZGdldHMtZm9udC1zaXplKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIGhlaWdodDogdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtaGVpZ2h0KTtcbiAgYm9yZGVyOiAwcHggc29saWQ7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1oZWlnaHQpO1xuICBib3gtc2hhZG93OiBub25lO1xuXG4gIGNvbG9yOiB2YXIoLS1qcC11aS1mb250LWNvbG9yMSk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWpwLWxheW91dC1jb2xvcjIpO1xuICBib3JkZXItY29sb3I6IHZhcigtLWpwLWJvcmRlci1jb2xvcjIpO1xuICBib3JkZXI6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4uanVweXRlci1idXR0b24gaS5mYSB7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtbWFyZ2luKTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5qdXB5dGVyLWJ1dHRvbjplbXB0eTpiZWZvcmUge1xuICBjb250ZW50OiAnXFwyMDBiJzsgLyogemVyby13aWR0aCBzcGFjZSAqL1xufVxuXG4uanVweXRlci13aWRnZXRzLmp1cHl0ZXItYnV0dG9uOmRpc2FibGVkIHtcbiAgb3BhY2l0eTogdmFyKC0tanAtd2lkZ2V0cy1kaXNhYmxlZC1vcGFjaXR5KTtcbn1cblxuLmp1cHl0ZXItYnV0dG9uIGkuZmEuY2VudGVyIHtcbiAgbWFyZ2luLXJpZ2h0OiAwO1xufVxuXG4uanVweXRlci1idXR0b246aG92ZXI6ZW5hYmxlZCxcbi5qdXB5dGVyLWJ1dHRvbjpmb2N1czplbmFibGVkIHtcbiAgLyogTUQgTGl0ZSAyZHAgc2hhZG93ICovXG4gIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgdmFyKC0tbWQtc2hhZG93LWtleS1wZW51bWJyYS1vcGFjaXR5KSksXG4gICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCB2YXIoLS1tZC1zaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkpKSxcbiAgICAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIHZhcigtLW1kLXNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5KSk7XG59XG5cbi5qdXB5dGVyLWJ1dHRvbjphY3RpdmUsXG4uanVweXRlci1idXR0b24ubW9kLWFjdGl2ZSB7XG4gIC8qIE1EIExpdGUgNGRwIHNoYWRvdyAqL1xuICBib3gtc2hhZG93OiAwIDRweCA1cHggMCByZ2JhKDAsIDAsIDAsIHZhcigtLW1kLXNoYWRvdy1rZXktcGVudW1icmEtb3BhY2l0eSkpLFxuICAgIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIHZhcigtLW1kLXNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5KSksXG4gICAgMCAycHggNHB4IC0xcHggcmdiYSgwLCAwLCAwLCB2YXIoLS1tZC1zaGFkb3cta2V5LXVtYnJhLW9wYWNpdHkpKTtcbiAgY29sb3I6IHZhcigtLWpwLXVpLWZvbnQtY29sb3IxKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tanAtbGF5b3V0LWNvbG9yMyk7XG59XG5cbi5qdXB5dGVyLWJ1dHRvbjpmb2N1czplbmFibGVkIHtcbiAgb3V0bGluZTogMXB4IHNvbGlkIHZhcigtLWpwLXdpZGdldHMtaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbn1cblxuLyogQnV0dG9uIFwiUHJpbWFyeVwiIFN0eWxpbmcgKi9cblxuLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5IHtcbiAgY29sb3I6IHZhcigtLWpwLXVpLWludmVyc2UtZm9udC1jb2xvcjEpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1qcC1icmFuZC1jb2xvcjEpO1xufVxuXG4uanVweXRlci1idXR0b24ubW9kLXByaW1hcnkubW9kLWFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1qcC11aS1pbnZlcnNlLWZvbnQtY29sb3IwKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tanAtYnJhbmQtY29sb3IwKTtcbn1cblxuLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5OmFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1qcC11aS1pbnZlcnNlLWZvbnQtY29sb3IwKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tanAtYnJhbmQtY29sb3IwKTtcbn1cblxuLyogQnV0dG9uIFwiU3VjY2Vzc1wiIFN0eWxpbmcgKi9cblxuLmp1cHl0ZXItYnV0dG9uLm1vZC1zdWNjZXNzIHtcbiAgY29sb3I6IHZhcigtLWpwLXVpLWludmVyc2UtZm9udC1jb2xvcjEpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1qcC1zdWNjZXNzLWNvbG9yMSk7XG59XG5cbi5qdXB5dGVyLWJ1dHRvbi5tb2Qtc3VjY2Vzcy5tb2QtYWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLWpwLXVpLWludmVyc2UtZm9udC1jb2xvcjApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1qcC1zdWNjZXNzLWNvbG9yMCk7XG59XG5cbi5qdXB5dGVyLWJ1dHRvbi5tb2Qtc3VjY2VzczphY3RpdmUge1xuICBjb2xvcjogdmFyKC0tanAtdWktaW52ZXJzZS1mb250LWNvbG9yMCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWpwLXN1Y2Nlc3MtY29sb3IwKTtcbn1cblxuLyogQnV0dG9uIFwiSW5mb1wiIFN0eWxpbmcgKi9cblxuLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvIHtcbiAgY29sb3I6IHZhcigtLWpwLXVpLWludmVyc2UtZm9udC1jb2xvcjEpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1qcC1pbmZvLWNvbG9yMSk7XG59XG5cbi5qdXB5dGVyLWJ1dHRvbi5tb2QtaW5mby5tb2QtYWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLWpwLXVpLWludmVyc2UtZm9udC1jb2xvcjApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1qcC1pbmZvLWNvbG9yMCk7XG59XG5cbi5qdXB5dGVyLWJ1dHRvbi5tb2QtaW5mbzphY3RpdmUge1xuICBjb2xvcjogdmFyKC0tanAtdWktaW52ZXJzZS1mb250LWNvbG9yMCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWpwLWluZm8tY29sb3IwKTtcbn1cblxuLyogQnV0dG9uIFwiV2FybmluZ1wiIFN0eWxpbmcgKi9cblxuLmp1cHl0ZXItYnV0dG9uLm1vZC13YXJuaW5nIHtcbiAgY29sb3I6IHZhcigtLWpwLXVpLWludmVyc2UtZm9udC1jb2xvcjEpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1qcC13YXJuLWNvbG9yMSk7XG59XG5cbi5qdXB5dGVyLWJ1dHRvbi5tb2Qtd2FybmluZy5tb2QtYWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLWpwLXVpLWludmVyc2UtZm9udC1jb2xvcjApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1qcC13YXJuLWNvbG9yMCk7XG59XG5cbi5qdXB5dGVyLWJ1dHRvbi5tb2Qtd2FybmluZzphY3RpdmUge1xuICBjb2xvcjogdmFyKC0tanAtdWktaW52ZXJzZS1mb250LWNvbG9yMCk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWpwLXdhcm4tY29sb3IwKTtcbn1cblxuLyogQnV0dG9uIFwiRGFuZ2VyXCIgU3R5bGluZyAqL1xuXG4uanVweXRlci1idXR0b24ubW9kLWRhbmdlciB7XG4gIGNvbG9yOiB2YXIoLS1qcC11aS1pbnZlcnNlLWZvbnQtY29sb3IxKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tanAtZXJyb3ItY29sb3IxKTtcbn1cblxuLmp1cHl0ZXItYnV0dG9uLm1vZC1kYW5nZXIubW9kLWFjdGl2ZSB7XG4gIGNvbG9yOiB2YXIoLS1qcC11aS1pbnZlcnNlLWZvbnQtY29sb3IwKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tanAtZXJyb3ItY29sb3IwKTtcbn1cblxuLmp1cHl0ZXItYnV0dG9uLm1vZC1kYW5nZXI6YWN0aXZlIHtcbiAgY29sb3I6IHZhcigtLWpwLXVpLWludmVyc2UtZm9udC1jb2xvcjApO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1qcC1lcnJvci1jb2xvcjApO1xufVxuXG4vKiBXaWRnZXQgQnV0dG9uLCBXaWRnZXQgVG9nZ2xlIEJ1dHRvbiwgV2lkZ2V0IFVwbG9hZCAqL1xuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtYnV0dG9uLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4vKiA8REVQUkVDQVRFRD4gKi8gLndpZGdldC10b2dnbGUtYnV0dG9uLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4vKiA8REVQUkVDQVRFRD4gKi8gLndpZGdldC11cGxvYWQsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1idXR0b24sXG4uanVweXRlci13aWRnZXQtdG9nZ2xlLWJ1dHRvbixcbi5qdXB5dGVyLXdpZGdldC11cGxvYWQge1xuICB3aWR0aDogdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtd2lkdGgtc2hvcnQpO1xufVxuXG4vKiBXaWRnZXQgTGFiZWwgU3R5bGluZyAqL1xuXG4vKiBPdmVycmlkZSBCb290c3RyYXAgbGFiZWwgY3NzICovXG4uanVweXRlci13aWRnZXRzIGxhYmVsIHtcbiAgbWFyZ2luLWJvdHRvbTogaW5pdGlhbDtcbn1cblxuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LWxhYmVsLWJhc2ljLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtbGFiZWwtYmFzaWMge1xuICAvKiBCYXNpYyBMYWJlbCAqL1xuICBjb2xvcjogdmFyKC0tanAtd2lkZ2V0cy1sYWJlbC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLWhlaWdodCk7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC1sYWJlbCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LWxhYmVsIHtcbiAgLyogTGFiZWwgKi9cbiAgY29sb3I6IHZhcigtLWpwLXdpZGdldHMtbGFiZWwtY29sb3IpO1xuICBmb250LXNpemU6IHZhcigtLWpwLXdpZGdldHMtZm9udC1zaXplKTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1oZWlnaHQpO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtaW5saW5lLWhib3ggLndpZGdldC1sYWJlbCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LWlubGluZS1oYm94IC5qdXB5dGVyLXdpZGdldC1sYWJlbCB7XG4gIC8qIEhvcml6b250YWwgV2lkZ2V0IExhYmVsICovXG4gIGNvbG9yOiB2YXIoLS1qcC13aWRnZXRzLWxhYmVsLWNvbG9yKTtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIG1hcmdpbi1yaWdodDogY2FsYyh2YXIoLS1qcC13aWRnZXRzLWlubGluZS1tYXJnaW4pICogMik7XG4gIHdpZHRoOiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1sYWJlbC13aWR0aCk7XG4gIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtaW5saW5lLXZib3ggLndpZGdldC1sYWJlbCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LWlubGluZS12Ym94IC5qdXB5dGVyLXdpZGdldC1sYWJlbCB7XG4gIC8qIFZlcnRpY2FsIFdpZGdldCBMYWJlbCAqL1xuICBjb2xvcjogdmFyKC0tanAtd2lkZ2V0cy1sYWJlbC1jb2xvcik7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLWhlaWdodCk7XG59XG5cbi8qIFdpZGdldCBSZWFkb3V0IFN0eWxpbmcgKi9cblxuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LXJlYWRvdXQsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1yZWFkb3V0IHtcbiAgY29sb3I6IHZhcigtLWpwLXdpZGdldHMtcmVhZG91dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpO1xuICBoZWlnaHQ6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLWhlaWdodCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1oZWlnaHQpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC1yZWFkb3V0Lm92ZXJmbG93LCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtcmVhZG91dC5vdmVyZmxvdyB7XG4gIC8qIE92ZXJmbG93aW5nIFJlYWRvdXQgKi9cblxuICAvKiBGcm9tIE1hdGVyaWFsIERlc2lnbiBMaXRlXG4gICAgICAgIHNoYWRvdy1rZXktdW1icmEtb3BhY2l0eTogMC4yO1xuICAgICAgICBzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHk6IDAuMTQ7XG4gICAgICAgIHNoYWRvdy1hbWJpZW50LXNoYWRvdy1vcGFjaXR5OiAwLjEyO1xuICAgICAqL1xuICAtd2Via2l0LWJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgMC4yKSxcbiAgICAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLCAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuXG4gIC1tb3otYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLFxuICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgMC4xNCksIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG5cbiAgYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpLCAwIDNweCAxcHggLTJweCByZ2JhKDAsIDAsIDAsIDAuMTQpLFxuICAgIDAgMXB4IDVweCAwIHJnYmEoMCwgMCwgMCwgMC4xMik7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC1pbmxpbmUtaGJveCAud2lkZ2V0LXJlYWRvdXQsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1pbmxpbmUtaGJveCAuanVweXRlci13aWRnZXQtcmVhZG91dCB7XG4gIC8qIEhvcml6b250YWwgUmVhZG91dCAqL1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1heC13aWR0aDogdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtd2lkdGgtc2hvcnQpO1xuICBtaW4td2lkdGg6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLXdpZHRoLXRpbnkpO1xuICBtYXJnaW4tbGVmdDogdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtbWFyZ2luKTtcbn1cblxuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LWlubGluZS12Ym94IC53aWRnZXQtcmVhZG91dCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LWlubGluZS12Ym94IC5qdXB5dGVyLXdpZGdldC1yZWFkb3V0IHtcbiAgLyogVmVydGljYWwgUmVhZG91dCAqL1xuICBtYXJnaW4tdG9wOiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1tYXJnaW4pO1xuICAvKiBhcyB3aWRlIGFzIHRoZSB3aWRnZXQgKi9cbiAgd2lkdGg6IGluaGVyaXQ7XG59XG5cbi8qIFdpZGdldCBDaGVja2JveCBTdHlsaW5nICovXG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC1jaGVja2JveCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LWNoZWNrYm94IHtcbiAgd2lkdGg6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLXdpZHRoKTtcbiAgaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1oZWlnaHQpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtaGVpZ2h0KTtcbn1cblxuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LWNoZWNrYm94IGlucHV0W3R5cGU9J2NoZWNrYm94J10sIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1jaGVja2JveCBpbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgbWFyZ2luOiAwcHggY2FsYyh2YXIoLS1qcC13aWRnZXRzLWlubGluZS1tYXJnaW4pICogMikgMHB4IDBweDtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLWhlaWdodCk7XG4gIGZvbnQtc2l6ZTogbGFyZ2U7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZmxleC1zaHJpbms6IDA7XG4gIGFsaWduLXNlbGY6IGNlbnRlcjtcbn1cblxuLyogV2lkZ2V0IFZhbGlkIFN0eWxpbmcgKi9cblxuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LXZhbGlkLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtdmFsaWQge1xuICBoZWlnaHQ6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLWhlaWdodCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1oZWlnaHQpO1xuICB3aWR0aDogdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtd2lkdGgtc2hvcnQpO1xuICBmb250LXNpemU6IHZhcigtLWpwLXdpZGdldHMtZm9udC1zaXplKTtcbn1cblxuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LXZhbGlkIGksIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC12YWxpZCBpIHtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLWhlaWdodCk7XG4gIG1hcmdpbi1yaWdodDogdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtbWFyZ2luKTtcbiAgbWFyZ2luLWxlZnQ6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLW1hcmdpbik7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC12YWxpZC5tb2QtdmFsaWQgaSwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LXZhbGlkLm1vZC12YWxpZCBpIHtcbiAgY29sb3I6IGdyZWVuO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtdmFsaWQubW9kLWludmFsaWQgaSwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LXZhbGlkLm1vZC1pbnZhbGlkIGkge1xuICBjb2xvcjogcmVkO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtdmFsaWQubW9kLXZhbGlkIC53aWRnZXQtdmFsaWQtcmVhZG91dCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LXZhbGlkLm1vZC12YWxpZCAuanVweXRlci13aWRnZXQtdmFsaWQtcmVhZG91dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIFdpZGdldCBUZXh0IGFuZCBUZXh0QXJlYSBTdHlsaW5nICovXG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC10ZXh0YXJlYSwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLyogPERFUFJFQ0FURUQ+ICovIC53aWRnZXQtdGV4dCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LXRleHRhcmVhLFxuLmp1cHl0ZXItd2lkZ2V0LXRleHQge1xuICB3aWR0aDogdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtd2lkdGgpO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtdGV4dCBpbnB1dFt0eXBlPSd0ZXh0J10sIC8qIDwvREVQUkVDQVRFRD4gKi9cbi8qIDxERVBSRUNBVEVEPiAqLyAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0nbnVtYmVyJ10sIC8qIDwvREVQUkVDQVRFRD4gKi9cbi8qIDxERVBSRUNBVEVEPiAqLyAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0ndGV4dCddLFxuLmp1cHl0ZXItd2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0nbnVtYmVyJ10sXG4uanVweXRlci13aWRnZXQtdGV4dCBpbnB1dFt0eXBlPSdwYXNzd29yZCddIHtcbiAgaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1oZWlnaHQpO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtdGV4dCBpbnB1dFt0eXBlPSd0ZXh0J106ZGlzYWJsZWQsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi8qIDxERVBSRUNBVEVEPiAqLyAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0nbnVtYmVyJ106ZGlzYWJsZWQsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi8qIDxERVBSRUNBVEVEPiAqLyAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXTpkaXNhYmxlZCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLyogPERFUFJFQ0FURUQ+ICovIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6ZGlzYWJsZWQsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC10ZXh0IGlucHV0W3R5cGU9J3RleHQnXTpkaXNhYmxlZCxcbi5qdXB5dGVyLXdpZGdldC10ZXh0IGlucHV0W3R5cGU9J251bWJlciddOmRpc2FibGVkLFxuLmp1cHl0ZXItd2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXTpkaXNhYmxlZCxcbi5qdXB5dGVyLXdpZGdldC10ZXh0YXJlYSB0ZXh0YXJlYTpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IHZhcigtLWpwLXdpZGdldHMtZGlzYWJsZWQtb3BhY2l0eSk7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC10ZXh0IGlucHV0W3R5cGU9J3RleHQnXSwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLyogPERFUFJFQ0FURUQ+ICovIC53aWRnZXQtdGV4dCBpbnB1dFt0eXBlPSdudW1iZXInXSwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLyogPERFUFJFQ0FURUQ+ICovIC53aWRnZXQtdGV4dCBpbnB1dFt0eXBlPSdwYXNzd29yZCddLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4vKiA8REVQUkVDQVRFRD4gKi8gLndpZGdldC10ZXh0YXJlYSB0ZXh0YXJlYSwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0ndGV4dCddLFxuLmp1cHl0ZXItd2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0nbnVtYmVyJ10sXG4uanVweXRlci13aWRnZXQtdGV4dCBpbnB1dFt0eXBlPSdwYXNzd29yZCddLFxuLmp1cHl0ZXItd2lkZ2V0LXRleHRhcmVhIHRleHRhcmVhIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm9yZGVyOiB2YXIoLS1qcC13aWRnZXRzLWlucHV0LWJvcmRlci13aWR0aCkgc29saWRcbiAgICB2YXIoLS1qcC13aWRnZXRzLWlucHV0LWJvcmRlci1jb2xvcik7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWpwLXdpZGdldHMtaW5wdXQtYmFja2dyb3VuZC1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1qcC13aWRnZXRzLWlucHV0LWNvbG9yKTtcbiAgZm9udC1zaXplOiB2YXIoLS1qcC13aWRnZXRzLWZvbnQtc2l6ZSk7XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqL1xuICBmbGV4LXNocmluazogMTtcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtdGV4dCBpbnB1dFt0eXBlPSd0ZXh0J10sIC8qIDwvREVQUkVDQVRFRD4gKi9cbi8qIDxERVBSRUNBVEVEPiAqLyAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0ncGFzc3dvcmQnXSwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLyogPERFUFJFQ0FURUQ+ICovIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWEsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC10ZXh0IGlucHV0W3R5cGU9J3RleHQnXSxcbi5qdXB5dGVyLXdpZGdldC10ZXh0IGlucHV0W3R5cGU9J3Bhc3N3b3JkJ10sXG4uanVweXRlci13aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWEge1xuICBwYWRkaW5nOiB2YXIoLS1qcC13aWRnZXRzLWlucHV0LXBhZGRpbmcpXG4gICAgY2FsYyh2YXIoLS1qcC13aWRnZXRzLWlucHV0LXBhZGRpbmcpICogMik7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC10ZXh0IGlucHV0W3R5cGU9J251bWJlciddLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtdGV4dCBpbnB1dFt0eXBlPSdudW1iZXInXSB7XG4gIHBhZGRpbmc6IHZhcigtLWpwLXdpZGdldHMtaW5wdXQtcGFkZGluZykgMCB2YXIoLS1qcC13aWRnZXRzLWlucHV0LXBhZGRpbmcpXG4gICAgY2FsYyh2YXIoLS1qcC13aWRnZXRzLWlucHV0LXBhZGRpbmcpICogMik7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC10ZXh0YXJlYSB0ZXh0YXJlYSwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LXRleHRhcmVhIHRleHRhcmVhIHtcbiAgaGVpZ2h0OiBpbmhlcml0O1xuICB3aWR0aDogaW5oZXJpdDtcbn1cblxuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LXRleHQgaW5wdXQ6Zm9jdXMsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi8qIDxERVBSRUNBVEVEPiAqLyAud2lkZ2V0LXRleHRhcmVhIHRleHRhcmVhOmZvY3VzLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtdGV4dCBpbnB1dDpmb2N1cyxcbi5qdXB5dGVyLXdpZGdldC10ZXh0YXJlYSB0ZXh0YXJlYTpmb2N1cyB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tanAtd2lkZ2V0cy1pbnB1dC1mb2N1cy1ib3JkZXItY29sb3IpO1xufVxuXG4vKiBIb3Jpem9udGFsIFNsaWRlciAqL1xuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LWhzbGlkZXIsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1oc2xpZGVyIHtcbiAgd2lkdGg6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLXdpZHRoKTtcbiAgaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1oZWlnaHQpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtaGVpZ2h0KTtcblxuICAvKiBPdmVycmlkZSB0aGUgYWxpZ24taXRlbXMgYmFzZWxpbmUuIFRoaXMgd2F5LCB0aGUgZGVzY3JpcHRpb24gYW5kIHJlYWRvdXRcbiAgICBzdGlsbCBzZWVtIHRvIGFsaWduIHRoZWlyIGJhc2VsaW5lIHByb3Blcmx5LCBhbmQgd2UgZG9uJ3QgaGF2ZSB0byBoYXZlXG4gICAgYWxpZ24tc2VsZjogc3RyZXRjaCBpbiB0aGUgLnNsaWRlci1jb250YWluZXIuICovXG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldHMtc2xpZGVyIC5zbGlkZXItY29udGFpbmVyLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLXNsaWRlciAuc2xpZGVyLWNvbnRhaW5lciB7XG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtaHNsaWRlciAuc2xpZGVyLWNvbnRhaW5lciwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LWhzbGlkZXIgLnNsaWRlci1jb250YWluZXIge1xuICBtYXJnaW4tbGVmdDogY2FsYyhcbiAgICB2YXIoLS1qcC13aWRnZXRzLXNsaWRlci1oYW5kbGUtc2l6ZSkgLyAyIC0gMiAqXG4gICAgICB2YXIoLS1qcC13aWRnZXRzLXNsaWRlci1ib3JkZXItd2lkdGgpXG4gICk7XG4gIG1hcmdpbi1yaWdodDogY2FsYyhcbiAgICB2YXIoLS1qcC13aWRnZXRzLXNsaWRlci1oYW5kbGUtc2l6ZSkgLyAyIC0gMiAqXG4gICAgICB2YXIoLS1qcC13aWRnZXRzLXNsaWRlci1ib3JkZXItd2lkdGgpXG4gICk7XG4gIGZsZXg6IDEgMSB2YXIoLS1qcC13aWRnZXRzLWlubGluZS13aWR0aC1zaG9ydCk7XG59XG5cbi8qIFZlcnRpY2FsIFNsaWRlciAqL1xuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtdmJveCAud2lkZ2V0LWxhYmVsLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtdmJveCAuanVweXRlci13aWRnZXQtbGFiZWwge1xuICBoZWlnaHQ6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLWhlaWdodCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1oZWlnaHQpO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtdnNsaWRlciwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LXZzbGlkZXIge1xuICAvKiBWZXJ0aWNhbCBTbGlkZXIgKi9cbiAgaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLXZlcnRpY2FsLWhlaWdodCk7XG4gIHdpZHRoOiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS13aWR0aC10aW55KTtcbn1cblxuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LXZzbGlkZXIgLnNsaWRlci1jb250YWluZXIsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC12c2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHtcbiAgZmxleDogMSAxIHZhcigtLWpwLXdpZGdldHMtaW5saW5lLXdpZHRoLXNob3J0KTtcbiAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIG1hcmdpbi1yaWdodDogYXV0bztcbiAgbWFyZ2luLWJvdHRvbTogY2FsYyhcbiAgICB2YXIoLS1qcC13aWRnZXRzLXNsaWRlci1oYW5kbGUtc2l6ZSkgLyAyIC0gMiAqXG4gICAgICB2YXIoLS1qcC13aWRnZXRzLXNsaWRlci1ib3JkZXItd2lkdGgpXG4gICk7XG4gIG1hcmdpbi10b3A6IGNhbGMoXG4gICAgdmFyKC0tanAtd2lkZ2V0cy1zbGlkZXItaGFuZGxlLXNpemUpIC8gMiAtIDIgKlxuICAgICAgdmFyKC0tanAtd2lkZ2V0cy1zbGlkZXItYm9yZGVyLXdpZHRoKVxuICApO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4vKiBXaWRnZXQgUHJvZ3Jlc3MgU3R5bGluZyAqL1xuXG4ucHJvZ3Jlc3MtYmFyIHtcbiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lO1xuICAtbW96LXRyYW5zaXRpb246IG5vbmU7XG4gIC1tcy10cmFuc2l0aW9uOiBub25lO1xuICAtby10cmFuc2l0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4ucHJvZ3Jlc3MtYmFyIHtcbiAgaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1oZWlnaHQpO1xufVxuXG4ucHJvZ3Jlc3MtYmFyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tanAtYnJhbmQtY29sb3IxKTtcbn1cblxuLnByb2dyZXNzLWJhci1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tanAtc3VjY2Vzcy1jb2xvcjEpO1xufVxuXG4ucHJvZ3Jlc3MtYmFyLWluZm8ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1qcC1pbmZvLWNvbG9yMSk7XG59XG5cbi5wcm9ncmVzcy1iYXItd2FybmluZyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWpwLXdhcm4tY29sb3IxKTtcbn1cblxuLnByb2dyZXNzLWJhci1kYW5nZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1qcC1lcnJvci1jb2xvcjEpO1xufVxuXG4ucHJvZ3Jlc3Mge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1qcC1sYXlvdXQtY29sb3IyKTtcbiAgYm9yZGVyOiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4vKiBIb3Jpc29udGFsIFByb2dyZXNzICovXG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC1ocHJvZ3Jlc3MsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1ocHJvZ3Jlc3Mge1xuICAvKiBQcm9ncmVzcyBCYXIgKi9cbiAgaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1oZWlnaHQpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtaGVpZ2h0KTtcbiAgd2lkdGg6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLXdpZHRoKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LWhwcm9ncmVzcyAucHJvZ3Jlc3MsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1ocHJvZ3Jlc3MgLnByb2dyZXNzIHtcbiAgZmxleC1ncm93OiAxO1xuICBtYXJnaW4tdG9wOiB2YXIoLS1qcC13aWRnZXRzLWlucHV0LXBhZGRpbmcpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS1qcC13aWRnZXRzLWlucHV0LXBhZGRpbmcpO1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICAvKiBPdmVycmlkZSBib290c3RyYXAgc3R5bGUgKi9cbiAgaGVpZ2h0OiBpbml0aWFsO1xufVxuXG4vKiBWZXJ0aWNhbCBQcm9ncmVzcyAqL1xuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtdnByb2dyZXNzLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtdnByb2dyZXNzIHtcbiAgaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLXZlcnRpY2FsLWhlaWdodCk7XG4gIHdpZHRoOiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS13aWR0aC10aW55KTtcbn1cblxuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LXZwcm9ncmVzcyAucHJvZ3Jlc3MsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC12cHJvZ3Jlc3MgLnByb2dyZXNzIHtcbiAgZmxleC1ncm93OiAxO1xuICB3aWR0aDogdmFyKC0tanAtd2lkZ2V0cy1wcm9ncmVzcy10aGlja25lc3MpO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4vKiBTZWxlY3QgV2lkZ2V0IFN0eWxpbmcgKi9cblxuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LWRyb3Bkb3duLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtZHJvcGRvd24ge1xuICBoZWlnaHQ6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLWhlaWdodCk7XG4gIHdpZHRoOiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS13aWR0aCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1oZWlnaHQpO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtZHJvcGRvd24gPiBzZWxlY3QsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1kcm9wZG93biA+IHNlbGVjdCB7XG4gIHBhZGRpbmctcmlnaHQ6IDIwcHg7XG4gIGJvcmRlcjogdmFyKC0tanAtd2lkZ2V0cy1pbnB1dC1ib3JkZXItd2lkdGgpIHNvbGlkXG4gICAgdmFyKC0tanAtd2lkZ2V0cy1pbnB1dC1ib3JkZXItY29sb3IpO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBoZWlnaHQ6IGluaGVyaXQ7XG4gIGZsZXg6IDEgMSB2YXIoLS1qcC13aWRnZXRzLWlubGluZS13aWR0aC1zaG9ydCk7XG4gIG1pbi13aWR0aDogMDsgLyogVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSBmb3IgdGhlIGZsZXhib3ggdG8gc2hyaW5rIHRoaXMgaW5wdXQgKi9cbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1qcC13aWRnZXRzLWlucHV0LWJhY2tncm91bmQtY29sb3IpO1xuICBjb2xvcjogdmFyKC0tanAtd2lkZ2V0cy1pbnB1dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpO1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICBwYWRkaW5nLWxlZnQ6IGNhbGModmFyKC0tanAtd2lkZ2V0cy1pbnB1dC1wYWRkaW5nKSAqIDIpO1xuICBhcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogbm9uZTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiAyMHB4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCBjZW50ZXI7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHZhcigtLWpwLXdpZGdldHMtZHJvcGRvd24tYXJyb3cpO1xufVxuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0OmZvY3VzLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtZHJvcGRvd24gPiBzZWxlY3Q6Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHZhcigtLWpwLXdpZGdldHMtaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbn1cblxuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0OmRpc2FibGVkLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtZHJvcGRvd24gPiBzZWxlY3Q6ZGlzYWJsZWQge1xuICBvcGFjaXR5OiB2YXIoLS1qcC13aWRnZXRzLWRpc2FibGVkLW9wYWNpdHkpO1xufVxuXG4vKiBUbyBkaXNhYmxlIHRoZSBkb3R0ZWQgYm9yZGVyIGluIEZpcmVmb3ggYXJvdW5kIHNlbGVjdCBjb250cm9scy5cbiAgIFNlZSBodHRwOi8vc3RhY2tvdmVyZmxvdy5jb20vYS8xODg1MzAwMiAqL1xuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0Oi1tb3otZm9jdXNyaW5nLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtZHJvcGRvd24gPiBzZWxlY3Q6LW1vei1mb2N1c3Jpbmcge1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwO1xufVxuXG4vKiBTZWxlY3QgYW5kIFNlbGVjdE11bHRpcGxlICovXG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC1zZWxlY3QsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1zZWxlY3Qge1xuICB3aWR0aDogdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtd2lkdGgpO1xuICBsaW5lLWhlaWdodDogdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtaGVpZ2h0KTtcblxuICAvKiBCZWNhdXNlIEZpcmVmb3ggZGVmaW5lcyB0aGUgYmFzZWxpbmUgb2YgYSBzZWxlY3QgYXMgdGhlIGJvdHRvbSBvZiB0aGVcbiAgICBjb250cm9sLCB3ZSBhbGlnbiB0aGUgZW50aXJlIGNvbnRyb2wgdG8gdGhlIHRvcCBhbmQgYWRkIHBhZGRpbmcgdG8gdGhlXG4gICAgc2VsZWN0IHRvIGdldCBhbiBhcHByb3hpbWF0ZSBmaXJzdCBsaW5lIGJhc2VsaW5lIGFsaWdubWVudC4gKi9cbiAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC1zZWxlY3QgPiBzZWxlY3QsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1zZWxlY3QgPiBzZWxlY3Qge1xuICBib3JkZXI6IHZhcigtLWpwLXdpZGdldHMtaW5wdXQtYm9yZGVyLXdpZHRoKSBzb2xpZFxuICAgIHZhcigtLWpwLXdpZGdldHMtaW5wdXQtYm9yZGVyLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tanAtd2lkZ2V0cy1pbnB1dC1iYWNrZ3JvdW5kLWNvbG9yKTtcbiAgY29sb3I6IHZhcigtLWpwLXdpZGdldHMtaW5wdXQtY29sb3IpO1xuICBmb250LXNpemU6IHZhcigtLWpwLXdpZGdldHMtZm9udC1zaXplKTtcbiAgZmxleDogMSAxIHZhcigtLWpwLXdpZGdldHMtaW5saW5lLXdpZHRoLXNob3J0KTtcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogYXV0bztcbiAgaGVpZ2h0OiBpbmhlcml0O1xuXG4gIC8qIEJlY2F1c2UgRmlyZWZveCBkZWZpbmVzIHRoZSBiYXNlbGluZSBvZiBhIHNlbGVjdCBhcyB0aGUgYm90dG9tIG9mIHRoZVxuICAgIGNvbnRyb2wsIHdlIGFsaWduIHRoZSBlbnRpcmUgY29udHJvbCB0byB0aGUgdG9wIGFuZCBhZGQgcGFkZGluZyB0byB0aGVcbiAgICBzZWxlY3QgdG8gZ2V0IGFuIGFwcHJveGltYXRlIGZpcnN0IGxpbmUgYmFzZWxpbmUgYWxpZ25tZW50LiAqL1xuICBwYWRkaW5nLXRvcDogNXB4O1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtc2VsZWN0ID4gc2VsZWN0OmZvY3VzLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtc2VsZWN0ID4gc2VsZWN0OmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1qcC13aWRnZXRzLWlucHV0LWZvY3VzLWJvcmRlci1jb2xvcik7XG59XG5cbi53aWdldC1zZWxlY3QgPiBzZWxlY3QgPiBvcHRpb24sXG4uanVweXRlci13aWdldC1zZWxlY3QgPiBzZWxlY3QgPiBvcHRpb24ge1xuICBwYWRkaW5nLWxlZnQ6IHZhcigtLWpwLXdpZGdldHMtaW5wdXQtcGFkZGluZyk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1oZWlnaHQpO1xuICAvKiBsaW5lLWhlaWdodCBkb2Vzbid0IHdvcmsgb24gc29tZSBicm93c2VycyBmb3Igc2VsZWN0IG9wdGlvbnMgKi9cbiAgcGFkZGluZy10b3A6IGNhbGMoXG4gICAgdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtaGVpZ2h0KSAtIHZhcigtLWpwLXdpZGdldHMtZm9udC1zaXplKSAvIDJcbiAgKTtcbiAgcGFkZGluZy1ib3R0b206IGNhbGMoXG4gICAgdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtaGVpZ2h0KSAtIHZhcigtLWpwLXdpZGdldHMtZm9udC1zaXplKSAvIDJcbiAgKTtcbn1cblxuLyogVG9nZ2xlIEJ1dHRvbnMgU3R5bGluZyAqL1xuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC10b2dnbGUtYnV0dG9ucyB7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1oZWlnaHQpO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLndpZGdldC10b2dnbGUtYnV0dG9uLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLmp1cHl0ZXItd2lkZ2V0LXRvZ2dsZS1idXR0b24ge1xuICBtYXJnaW4tbGVmdDogdmFyKC0tanAtd2lkZ2V0cy1tYXJnaW4pO1xuICBtYXJnaW4tcmlnaHQ6IHZhcigtLWpwLXdpZGdldHMtbWFyZ2luKTtcbn1cblxuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LXRvZ2dsZS1idXR0b25zIC5qdXB5dGVyLWJ1dHRvbjpkaXNhYmxlZCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LXRvZ2dsZS1idXR0b25zIC5qdXB5dGVyLWJ1dHRvbjpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IHZhcigtLWpwLXdpZGdldHMtZGlzYWJsZWQtb3BhY2l0eSk7XG59XG5cbi8qIFJhZGlvIEJ1dHRvbnMgU3R5bGluZyAqL1xuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtcmFkaW8sIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1yYWRpbyB7XG4gIHdpZHRoOiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS13aWR0aCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1oZWlnaHQpO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtcmFkaW8tYm94LCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtcmFkaW8tYm94IHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIGZsZXgtZ3JvdzogMTtcbiAgbWFyZ2luLWJvdHRvbTogdmFyKC0tanAtd2lkZ2V0cy1yYWRpby1pdGVtLWhlaWdodC1hZGp1c3RtZW50KTtcbn1cblxuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LXJhZGlvLWJveC12ZXJ0aWNhbCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LXJhZGlvLWJveC12ZXJ0aWNhbCB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC1yYWRpby1ib3gtaG9yaXpvbnRhbCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LXJhZGlvLWJveC1ob3Jpem9udGFsIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbn1cblxuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LXJhZGlvLWJveCBsYWJlbCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LXJhZGlvLWJveCBsYWJlbCB7XG4gIGhlaWdodDogdmFyKC0tanAtd2lkZ2V0cy1yYWRpby1pdGVtLWhlaWdodCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLXJhZGlvLWl0ZW0taGVpZ2h0KTtcbiAgZm9udC1zaXplOiB2YXIoLS1qcC13aWRnZXRzLWZvbnQtc2l6ZSk7XG59XG5cbi53aWRnZXQtcmFkaW8tYm94LWhvcml6b250YWwgbGFiZWwsXG4uanVweXRlci13aWRnZXQtcmFkaW8tYm94LWhvcml6b250YWwgbGFiZWwge1xuICBtYXJnaW46IDAgY2FsYyh2YXIoLS1qcC13aWRnZXRzLWlucHV0LXBhZGRpbmcpICogMikgMCAwO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtcmFkaW8tYm94IGlucHV0LCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtcmFkaW8tYm94IGlucHV0IHtcbiAgaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLXJhZGlvLWl0ZW0taGVpZ2h0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWpwLXdpZGdldHMtcmFkaW8taXRlbS1oZWlnaHQpO1xuICBtYXJnaW46IDAgY2FsYyh2YXIoLS1qcC13aWRnZXRzLWlucHV0LXBhZGRpbmcpICogMikgMCAxcHg7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4vKiBDb2xvciBQaWNrZXIgU3R5bGluZyAqL1xuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtY29sb3JwaWNrZXIsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1jb2xvcnBpY2tlciB7XG4gIHdpZHRoOiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS13aWR0aCk7XG4gIGhlaWdodDogdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtaGVpZ2h0KTtcbiAgbGluZS1oZWlnaHQ6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLWhlaWdodCk7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC1jb2xvcnBpY2tlciA+IC53aWRnZXQtY29sb3JwaWNrZXItaW5wdXQsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1jb2xvcnBpY2tlciA+IC5qdXB5dGVyLXdpZGdldC1jb2xvcnBpY2tlci1pbnB1dCB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZmxleC1zaHJpbms6IDE7XG4gIG1pbi13aWR0aDogdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtd2lkdGgtdGlueSk7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC1jb2xvcnBpY2tlciBpbnB1dFt0eXBlPSdjb2xvciddLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0nY29sb3InXSB7XG4gIHdpZHRoOiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1oZWlnaHQpO1xuICBoZWlnaHQ6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLWhlaWdodCk7XG4gIHBhZGRpbmc6IDAgMnB4OyAvKiBtYWtlIHRoZSBjb2xvciBzcXVhcmUgYWN0dWFsbHkgc3F1YXJlIG9uIENocm9tZSBvbiBPUyBYICovXG4gIGJhY2tncm91bmQ6IHZhcigtLWpwLXdpZGdldHMtaW5wdXQtYmFja2dyb3VuZC1jb2xvcik7XG4gIGNvbG9yOiB2YXIoLS1qcC13aWRnZXRzLWlucHV0LWNvbG9yKTtcbiAgYm9yZGVyOiB2YXIoLS1qcC13aWRnZXRzLWlucHV0LWJvcmRlci13aWR0aCkgc29saWRcbiAgICB2YXIoLS1qcC13aWRnZXRzLWlucHV0LWJvcmRlci1jb2xvcik7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBmbGV4LWdyb3c6IDA7XG4gIGZsZXgtc2hyaW5rOiAwO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC1jb2xvcnBpY2tlci5jb25jaXNlIGlucHV0W3R5cGU9J2NvbG9yJ10sIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1jb2xvcnBpY2tlci5jb25jaXNlIGlucHV0W3R5cGU9J2NvbG9yJ10ge1xuICBib3JkZXItbGVmdDogdmFyKC0tanAtd2lkZ2V0cy1pbnB1dC1ib3JkZXItd2lkdGgpIHNvbGlkXG4gICAgdmFyKC0tanAtd2lkZ2V0cy1pbnB1dC1ib3JkZXItY29sb3IpO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0nY29sb3InXTpmb2N1cywgLyogPC9ERVBSRUNBVEVEPiAqL1xuLyogPERFUFJFQ0FURUQ+ICovIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0ndGV4dCddOmZvY3VzLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0nY29sb3InXTpmb2N1cyxcbi5qdXB5dGVyLXdpZGdldC1jb2xvcnBpY2tlciBpbnB1dFt0eXBlPSd0ZXh0J106Zm9jdXMge1xuICBib3JkZXItY29sb3I6IHZhcigtLWpwLXdpZGdldHMtaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yKTtcbn1cblxuLyogPERFUFJFQ0FURUQ+ICovXG4ud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9J3RleHQnXSwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9J3RleHQnXSB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLWhlaWdodCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1oZWlnaHQpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1qcC13aWRnZXRzLWlucHV0LWJhY2tncm91bmQtY29sb3IpO1xuICBjb2xvcjogdmFyKC0tanAtd2lkZ2V0cy1pbnB1dC1jb2xvcik7XG4gIGJvcmRlcjogdmFyKC0tanAtd2lkZ2V0cy1pbnB1dC1ib3JkZXItd2lkdGgpIHNvbGlkXG4gICAgdmFyKC0tanAtd2lkZ2V0cy1pbnB1dC1ib3JkZXItY29sb3IpO1xuICBmb250LXNpemU6IHZhcigtLWpwLXdpZGdldHMtZm9udC1zaXplKTtcbiAgcGFkZGluZzogdmFyKC0tanAtd2lkZ2V0cy1pbnB1dC1wYWRkaW5nKVxuICAgIGNhbGModmFyKC0tanAtd2lkZ2V0cy1pbnB1dC1wYWRkaW5nKSAqIDIpO1xuICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovXG4gIGZsZXgtc2hyaW5rOiAxO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0ndGV4dCddOmRpc2FibGVkLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0ndGV4dCddOmRpc2FibGVkIHtcbiAgb3BhY2l0eTogdmFyKC0tanAtd2lkZ2V0cy1kaXNhYmxlZC1vcGFjaXR5KTtcbn1cblxuLyogRGF0ZSBQaWNrZXIgU3R5bGluZyAqL1xuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtZGF0ZXBpY2tlciwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LWRhdGVwaWNrZXIge1xuICB3aWR0aDogdmFyKC0tanAtd2lkZ2V0cy1pbmxpbmUtd2lkdGgpO1xuICBoZWlnaHQ6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLWhlaWdodCk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS1oZWlnaHQpO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSdkYXRlJ10sIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1kYXRlcGlja2VyIGlucHV0W3R5cGU9J2RhdGUnXSB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgZmxleC1zaHJpbms6IDE7XG4gIG1pbi13aWR0aDogMDsgLyogVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSBmb3IgdGhlIGZsZXhib3ggdG8gc2hyaW5rIHRoaXMgaW5wdXQgKi9cbiAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLWhlaWdodCk7XG4gIGJvcmRlcjogdmFyKC0tanAtd2lkZ2V0cy1pbnB1dC1ib3JkZXItd2lkdGgpIHNvbGlkXG4gICAgdmFyKC0tanAtd2lkZ2V0cy1pbnB1dC1ib3JkZXItY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1qcC13aWRnZXRzLWlucHV0LWJhY2tncm91bmQtY29sb3IpO1xuICBjb2xvcjogdmFyKC0tanAtd2lkZ2V0cy1pbnB1dC1jb2xvcik7XG4gIGZvbnQtc2l6ZTogdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpO1xuICBwYWRkaW5nOiB2YXIoLS1qcC13aWRnZXRzLWlucHV0LXBhZGRpbmcpXG4gICAgY2FsYyh2YXIoLS1qcC13aWRnZXRzLWlucHV0LXBhZGRpbmcpICogMik7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC1kYXRlcGlja2VyIGlucHV0W3R5cGU9J2RhdGUnXTpmb2N1cywgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LWRhdGVwaWNrZXIgaW5wdXRbdHlwZT0nZGF0ZSddOmZvY3VzIHtcbiAgYm9yZGVyLWNvbG9yOiB2YXIoLS1qcC13aWRnZXRzLWlucHV0LWZvY3VzLWJvcmRlci1jb2xvcik7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC1kYXRlcGlja2VyIGlucHV0W3R5cGU9J2RhdGUnXTppbnZhbGlkLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSdkYXRlJ106aW52YWxpZCB7XG4gIGJvcmRlci1jb2xvcjogdmFyKC0tanAtd2Fybi1jb2xvcjEpO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSdkYXRlJ106ZGlzYWJsZWQsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1kYXRlcGlja2VyIGlucHV0W3R5cGU9J2RhdGUnXTpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IHZhcigtLWpwLXdpZGdldHMtZGlzYWJsZWQtb3BhY2l0eSk7XG59XG5cbi8qIFBsYXkgV2lkZ2V0ICovXG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC1wbGF5LCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXQtcGxheSB7XG4gIHdpZHRoOiB2YXIoLS1qcC13aWRnZXRzLWlubGluZS13aWR0aC1zaG9ydCk7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtcGxheSAuanVweXRlci1idXR0b24sIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1wbGF5IC5qdXB5dGVyLWJ1dHRvbiB7XG4gIGZsZXgtZ3JvdzogMTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtcGxheSAuanVweXRlci1idXR0b246ZGlzYWJsZWQsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1wbGF5IC5qdXB5dGVyLWJ1dHRvbjpkaXNhYmxlZCB7XG4gIG9wYWNpdHk6IHZhcigtLWpwLXdpZGdldHMtZGlzYWJsZWQtb3BhY2l0eSk7XG59XG5cbi8qIFRhYiBXaWRnZXQgKi9cblxuLyogPERFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLndpZGdldC10YWIsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLyogPERFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi8qIDxERVBSRUNBVEVEPiAqLy5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiID4gLnAtVGFiQmFyLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC5sbS1UYWJCYXIge1xuICAvKiBOZWNlc3Nhcnkgc28gdGhhdCBhIHRhYiBjYW4gYmUgc2hpZnRlZCBkb3duIHRvIG92ZXJsYXkgdGhlIGJvcmRlciBvZiB0aGUgYm94IGJlbG93LiAqL1xuICBvdmVyZmxvdy14OiB2aXNpYmxlO1xuICBvdmVyZmxvdy15OiB2aXNpYmxlO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciA+IC5wLVRhYkJhci1jb250ZW50LCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4vKiA8REVQUkVDQVRFRD4gKi8uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC5wLVRhYkJhciA+IC5wLVRhYkJhci1jb250ZW50LCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC5sbS1UYWJCYXIgPiAubG0tVGFiQmFyLWNvbnRlbnQge1xuICAvKiBNYWtlIHN1cmUgdGhhdCB0aGUgdGFiIGdyb3dzIGZyb20gYm90dG9tIHVwICovXG4gIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgbWluLXdpZHRoOiAwO1xuICBtaW4taGVpZ2h0OiAwO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC53aWRnZXQtdGFiLWNvbnRlbnRzLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC53aWRnZXQtdGFiLWNvbnRlbnRzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1hcmdpbjogMDtcbiAgYmFja2dyb3VuZDogdmFyKC0tanAtbGF5b3V0LWNvbG9yMSk7XG4gIGNvbG9yOiB2YXIoLS1qcC11aS1mb250LWNvbG9yMSk7XG4gIGJvcmRlcjogdmFyKC0tanAtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1qcC1ib3JkZXItY29sb3IxKTtcbiAgcGFkZGluZzogdmFyKC0tanAtd2lkZ2V0cy1jb250YWluZXItcGFkZGluZyk7XG4gIGZsZXgtZ3JvdzogMTtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4vKiA8REVQUkVDQVRFRD4gKi8uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC5wLVRhYkJhciwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldC10YWIgPiAubG0tVGFiQmFyIHtcbiAgZm9udDogdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIG1pbi1oZWlnaHQ6IGNhbGMoXG4gICAgdmFyKC0tanAtd2lkZ2V0cy1ob3Jpem9udGFsLXRhYi1oZWlnaHQpICsgdmFyKC0tanAtYm9yZGVyLXdpZHRoKVxuICApO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4vKiA8REVQUkVDQVRFRD4gKi8uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC5sbS1UYWJCYXIgLmxtLVRhYkJhci10YWIge1xuICBmbGV4OiAwIDEgdmFyKC0tanAtd2lkZ2V0cy1ob3Jpem9udGFsLXRhYi13aWR0aCk7XG4gIG1pbi13aWR0aDogMzVweDtcbiAgbWluLWhlaWdodDogY2FsYyhcbiAgICB2YXIoLS1qcC13aWRnZXRzLWhvcml6b250YWwtdGFiLWhlaWdodCkgKyB2YXIoLS1qcC1ib3JkZXItd2lkdGgpXG4gICk7XG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLWhvcml6b250YWwtdGFiLWhlaWdodCk7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKC0xICogdmFyKC0tanAtYm9yZGVyLXdpZHRoKSk7XG4gIHBhZGRpbmc6IDBweCAxMHB4O1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1qcC1sYXlvdXQtY29sb3IyKTtcbiAgY29sb3I6IHZhcigtLWpwLXVpLWZvbnQtY29sb3IyKTtcbiAgYm9yZGVyOiB2YXIoLS1qcC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWpwLWJvcmRlci1jb2xvcjEpO1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIucC1tb2QtY3VycmVudCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLyogPERFUFJFQ0FURUQ+ICovLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYi5wLW1vZC1jdXJyZW50LCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC5sbS1UYWJCYXIgLmxtLVRhYkJhci10YWIubG0tbW9kLWN1cnJlbnQge1xuICBjb2xvcjogdmFyKC0tanAtdWktZm9udC1jb2xvcjApO1xuICAvKiBXZSB3YW50IHRoZSBiYWNrZ3JvdW5kIHRvIG1hdGNoIHRoZSB0YWIgY29udGVudCBiYWNrZ3JvdW5kICovXG4gIGJhY2tncm91bmQ6IHZhcigtLWpwLWxheW91dC1jb2xvcjEpO1xuICBtaW4taGVpZ2h0OiBjYWxjKFxuICAgIHZhcigtLWpwLXdpZGdldHMtaG9yaXpvbnRhbC10YWItaGVpZ2h0KSArIDIgKiB2YXIoLS1qcC1ib3JkZXItd2lkdGgpXG4gICk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWSh2YXIoLS1qcC1ib3JkZXItd2lkdGgpKTtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIucC1tb2QtY3VycmVudDpiZWZvcmUsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi8qIDxERVBSRUNBVEVEPiAqLy5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIucC1tb2QtY3VycmVudDpiZWZvcmUsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiID4gLmxtLVRhYkJhciAubG0tVGFiQmFyLXRhYi5sbS1tb2QtY3VycmVudDpiZWZvcmUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogY2FsYygtMSAqIHZhcigtLWpwLWJvcmRlci13aWR0aCkpO1xuICBsZWZ0OiBjYWxjKC0xICogdmFyKC0tanAtYm9yZGVyLXdpZHRoKSk7XG4gIGNvbnRlbnQ6ICcnO1xuICBoZWlnaHQ6IHZhcigtLWpwLXdpZGdldHMtaG9yaXpvbnRhbC10YWItdG9wLWJvcmRlcik7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAyICogdmFyKC0tanAtYm9yZGVyLXdpZHRoKSk7XG4gIGJhY2tncm91bmQ6IHZhcigtLWpwLWJyYW5kLWNvbG9yMSk7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWI6Zmlyc3QtY2hpbGQsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi8qIDxERVBSRUNBVEVEPiAqLy5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWI6Zmlyc3QtY2hpbGQsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiID4gLmxtLVRhYkJhciAubG0tVGFiQmFyLXRhYjpmaXJzdC1jaGlsZCB7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYlxuICA+IC5wLVRhYkJhclxuICAucC1UYWJCYXItdGFiOmhvdmVyOm5vdCgucC1tb2QtY3VycmVudCksXG4vKiA8L0RFUFJFQ0FURUQ+ICovXG4vKiA8REVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiXG4gID4gLnAtVGFiQmFyXG4gIC5wLVRhYkJhci10YWI6aG92ZXI6bm90KC5wLW1vZC1jdXJyZW50KSxcbi8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiXG4gID4gLmxtLVRhYkJhclxuICAubG0tVGFiQmFyLXRhYjpob3Zlcjpub3QoLmxtLW1vZC1jdXJyZW50KSB7XG4gIGJhY2tncm91bmQ6IHZhcigtLWpwLWxheW91dC1jb2xvcjEpO1xuICBjb2xvcjogdmFyKC0tanAtdWktZm9udC1jb2xvcjEpO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYlxuICA+IC5wLVRhYkJhclxuICAucC1tb2QtY2xvc2FibGVcbiAgPiAucC1UYWJCYXItdGFiQ2xvc2VJY29uLFxuLyogPC9ERVBSRUNBVEVEPiAqL1xuLyogPERFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYlxuPiAucC1UYWJCYXJcbi5wLW1vZC1jbG9zYWJsZVxuPiAucC1UYWJCYXItdGFiQ2xvc2VJY29uLFxuLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldC10YWJcbiAgPiAubG0tVGFiQmFyXG4gIC5sbS1tb2QtY2xvc2FibGVcbiAgPiAubG0tVGFiQmFyLXRhYkNsb3NlSWNvbiB7XG4gIG1hcmdpbi1sZWZ0OiA0cHg7XG59XG5cbi8qIFRoaXMgZm9udC1hd2Vzb21lIHN0cmF0ZWd5IG1heSBub3Qgd29yayBhY3Jvc3MgRkE0IGFuZCBGQTUsIGJ1dCB3ZSBkb24ndFxuYWN0dWFsbHkgc3VwcG9ydCBjbG9zYWJsZSB0YWJzLCBzbyBpdCByZWFsbHkgZG9lc24ndCBtYXR0ZXIgKi9cbi8qIDxERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiXG4gID4gLnAtVGFiQmFyXG4gIC5wLW1vZC1jbG9zYWJsZVxuICA+IC5wLVRhYkJhci10YWJDbG9zZUljb246YmVmb3JlLFxuLyogPC9ERVBSRUNBVEVEPiAqL1xuLyogPERFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXdpZGdldC10YWJcbj4gLnAtVGFiQmFyXG4ucC1tb2QtY2xvc2FibGVcbj4gLnAtVGFiQmFyLXRhYkNsb3NlSWNvbjpiZWZvcmUsXG4vKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYlxuICA+IC5sbS1UYWJCYXJcbiAgLmxtLW1vZC1jbG9zYWJsZVxuICA+IC5sbS1UYWJCYXItdGFiQ2xvc2VJY29uOmJlZm9yZSB7XG4gIGZvbnQtZmFtaWx5OiBGb250QXdlc29tZTtcbiAgY29udGVudDogJ1xcZjAwZCc7IC8qIGNsb3NlICovXG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4vKiA8REVQUkVDQVRFRD4gKi8gLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJMYWJlbCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLyogPERFUFJFQ0FURUQ+ICovIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiQ2xvc2VJY29uLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4vKiA8REVQUkVDQVRFRD4gKi8gLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkljb24sIC8qIDwvREVQUkVDQVRFRD4gKi9cbi8qIDxERVBSRUNBVEVEPiAqLyAuanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiTGFiZWwsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi8qIDxERVBSRUNBVEVEPiAqLyAuanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiQ2xvc2VJY29uLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC5sbS1UYWJCYXIgLmxtLVRhYkJhci10YWJJY29uLFxuLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldC10YWIgPiAubG0tVGFiQmFyIC5sbS1UYWJCYXItdGFiTGFiZWwsXG4uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC5sbS1UYWJCYXIgLmxtLVRhYkJhci10YWJDbG9zZUljb24ge1xuICBsaW5lLWhlaWdodDogdmFyKC0tanAtd2lkZ2V0cy1ob3Jpem9udGFsLXRhYi1oZWlnaHQpO1xufVxuXG4vKiBBY2NvcmRpb24gV2lkZ2V0ICovXG5cbi5qdXB5dGVyLXdpZGdldC1Db2xsYXBzZSB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4uanVweXRlci13aWRnZXQtQ29sbGFwc2UtaGVhZGVyIHtcbiAgcGFkZGluZzogdmFyKC0tanAtd2lkZ2V0cy1pbnB1dC1wYWRkaW5nKTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBjb2xvcjogdmFyKC0tanAtdWktZm9udC1jb2xvcjIpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1qcC1sYXlvdXQtY29sb3IyKTtcbiAgYm9yZGVyOiB2YXIoLS1qcC13aWRnZXRzLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tanAtYm9yZGVyLWNvbG9yMSk7XG4gIHBhZGRpbmc6IGNhbGModmFyKC0tanAtd2lkZ2V0cy1jb250YWluZXItcGFkZGluZykgKiAyIC8gMylcbiAgICB2YXIoLS1qcC13aWRnZXRzLWNvbnRhaW5lci1wYWRkaW5nKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5qdXB5dGVyLXdpZGdldC1Db2xsYXBzZS1oZWFkZXI6aG92ZXIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1qcC1sYXlvdXQtY29sb3IxKTtcbiAgY29sb3I6IHZhcigtLWpwLXVpLWZvbnQtY29sb3IxKTtcbn1cblxuLmp1cHl0ZXItd2lkZ2V0LUNvbGxhcHNlLW9wZW4gPiAuanVweXRlci13aWRnZXQtQ29sbGFwc2UtaGVhZGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tanAtbGF5b3V0LWNvbG9yMSk7XG4gIGNvbG9yOiB2YXIoLS1qcC11aS1mb250LWNvbG9yMCk7XG4gIGN1cnNvcjogZGVmYXVsdDtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbn1cblxuLmp1cHl0ZXItd2lkZ2V0LUNvbGxhcHNlLWNvbnRlbnRzIHtcbiAgcGFkZGluZzogdmFyKC0tanAtd2lkZ2V0cy1jb250YWluZXItcGFkZGluZyk7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWpwLWxheW91dC1jb2xvcjEpO1xuICBjb2xvcjogdmFyKC0tanAtdWktZm9udC1jb2xvcjEpO1xuICBib3JkZXItbGVmdDogdmFyKC0tanAtd2lkZ2V0cy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWpwLWJvcmRlci1jb2xvcjEpO1xuICBib3JkZXItcmlnaHQ6IHZhcigtLWpwLXdpZGdldHMtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1qcC1ib3JkZXItY29sb3IxKTtcbiAgYm9yZGVyLWJvdHRvbTogdmFyKC0tanAtd2lkZ2V0cy1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWpwLWJvcmRlci1jb2xvcjEpO1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLmp1cHl0ZXItd2lkZ2V0LUFjY29yZGlvbiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4uanVweXRlci13aWRnZXQtQWNjb3JkaW9uIC5qdXB5dGVyLXdpZGdldC1Db2xsYXBzZSB7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5qdXB5dGVyLXdpZGdldC1BY2NvcmRpb24gLmp1cHl0ZXItd2lkZ2V0LUNvbGxhcHNlICsgLmp1cHl0ZXItd2lkZ2V0LUNvbGxhcHNlIHtcbiAgbWFyZ2luLXRvcDogNHB4O1xufVxuXG4vKiBIVE1MIHdpZGdldCAqL1xuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi53aWRnZXQtaHRtbCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLyogPERFUFJFQ0FURUQ+ICovIC53aWRnZXQtaHRtbG1hdGgsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldC1odG1sLFxuLmp1cHl0ZXItd2lkZ2V0LWh0bWxtYXRoIHtcbiAgZm9udC1zaXplOiB2YXIoLS1qcC13aWRnZXRzLWZvbnQtc2l6ZSk7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC1odG1sID4gLndpZGdldC1odG1sLWNvbnRlbnQsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi8qIDxERVBSRUNBVEVEPiAqLy53aWRnZXQtaHRtbG1hdGggPiAud2lkZ2V0LWh0bWwtY29udGVudCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LWh0bWwgPiAuanVweXRlci13aWRnZXQtaHRtbC1jb250ZW50LFxuLmp1cHl0ZXItd2lkZ2V0LWh0bWxtYXRoID4gLmp1cHl0ZXItd2lkZ2V0LWh0bWwtY29udGVudCB7XG4gIC8qIEZpbGwgb3V0IHRoZSBhcmVhIGluIHRoZSBIVE1MIHdpZGdldCAqL1xuICBhbGlnbi1zZWxmOiBzdHJldGNoO1xuICBmbGV4LWdyb3c6IDE7XG4gIGZsZXgtc2hyaW5rOiAxO1xuICAvKiBNYWtlcyBzdXJlIHRoZSBiYXNlbGluZSBpcyBzdGlsbCBhbGlnbmVkIHdpdGggb3RoZXIgZWxlbWVudHMgKi9cbiAgbGluZS1oZWlnaHQ6IHZhcigtLWpwLXdpZGdldHMtaW5saW5lLWhlaWdodCk7XG4gIC8qIE1ha2UgaXQgcG9zc2libGUgdG8gaGF2ZSBhYnNvbHV0ZWx5LXBvc2l0aW9uZWQgZWxlbWVudHMgaW4gdGhlIGh0bWwgKi9cbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4vKiBJbWFnZSB3aWRnZXQgICovXG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLndpZGdldC1pbWFnZSwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0LWltYWdlIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG4iLCIvKiBUaGlzIGZpbGUgaGFzIGNvZGUgZGVyaXZlZCBmcm9tIEx1bWlubyBDU1MgZmlsZXMsIGFzIG5vdGVkIGJlbG93LiBUaGUgbGljZW5zZSBmb3IgdGhpcyBMdW1pbm8gY29kZSBpczpcblxuQ29weXJpZ2h0IChjKSAyMDE5IFByb2plY3QgSnVweXRlciBDb250cmlidXRvcnNcbkFsbCByaWdodHMgcmVzZXJ2ZWQuXG5cblJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dFxubW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSBtZXQ6XG5cbjEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwgdGhpc1xuICAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuXG5cbjIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSxcbiAgIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb25cbiAgIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLlxuXG4zLiBOZWl0aGVyIHRoZSBuYW1lIG9mIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vciB0aGUgbmFtZXMgb2YgaXRzXG4gICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbVxuICAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi5cblxuVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyBcIkFTIElTXCJcbkFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEVcbklNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRVxuRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRVxuRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUxcbkRBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SXG5TRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUlxuQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSxcbk9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFXG5PRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuXG5cbkNvcHlyaWdodCAoYykgMjAxNC0yMDE3LCBQaG9zcGhvckpTIENvbnRyaWJ1dG9yc1xuQWxsIHJpZ2h0cyByZXNlcnZlZC5cblxuUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0XG5tb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDpcblxuKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UsIHRoaXNcbiAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuXG5cbiogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLFxuICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uXG4gIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLlxuXG4qIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHNcbiAgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb21cbiAgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi5cblxuVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUyBcIkFTIElTXCJcbkFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEVcbklNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRVxuRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRVxuRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUxcbkRBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SXG5TRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUlxuQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSxcbk9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFXG5PRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLlxuKi9cblxuLypcbiAqIFRoZSBmb2xsb3dpbmcgc2VjdGlvbiBpcyBkZXJpdmVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2p1cHl0ZXJsYWIvbHVtaW5vL2Jsb2IvMjNiOWQwNzVlYmM1YjczYWIxNDhiNmViZmMyMGFmOTdmODU3MTRjNC9wYWNrYWdlcy93aWRnZXRzL3N0eWxlL3RhYmJhci5jc3MgXG4gKiBXZSd2ZSBzY29wZWQgdGhlIHJ1bGVzIHNvIHRoYXQgdGhleSBhcmUgY29uc2lzdGVudCB3aXRoIGV4YWN0bHkgb3VyIGNvZGUuXG4gKi9cblxuLyogPERFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi8qIDxERVBSRUNBVEVEPiAqLy5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiID4gLnAtVGFiQmFyLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC5sbS1UYWJCYXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhcltkYXRhLW9yaWVudGF0aW9uPSdob3Jpem9udGFsJ10sIC8qIDwvREVQUkVDQVRFRD4gKi9cbi8qIDxERVBSRUNBVEVEPiAqLy5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiID4gLnAtVGFiQmFyW2RhdGEtb3JpZW50YXRpb249J2hvcml6b250YWwnXSwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldC10YWIgPiAubG0tVGFiQmFyW2RhdGEtb3JpZW50YXRpb249J2hvcml6b250YWwnXSB7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10sIC8qIDwvREVQUkVDQVRFRD4gKi9cbi8qIDxERVBSRUNBVEVEPiAqLy5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiID4gLnAtVGFiQmFyW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10sIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiID4gLmxtLVRhYkJhcltkYXRhLW9yaWVudGF0aW9uPSd2ZXJ0aWNhbCddIHtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbn1cblxuLyogPERFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLyogPERFUFJFQ0FURUQ+ICovLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldC10YWIgPiAubG0tVGFiQmFyID4gLmxtLVRhYkJhci1jb250ZW50IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4OiAxIDEgYXV0bztcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYlxuICA+IC5wLVRhYkJhcltkYXRhLW9yaWVudGF0aW9uPSdob3Jpem9udGFsJ11cbiAgPiAucC1UYWJCYXItY29udGVudCxcbi8qIDwvREVQUkVDQVRFRD4gKi9cbi8qIDxERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldC10YWJcbj4gLnAtVGFiQmFyW2RhdGEtb3JpZW50YXRpb249J2hvcml6b250YWwnXVxuPiAucC1UYWJCYXItY29udGVudCxcbi8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiXG4gID4gLmxtLVRhYkJhcltkYXRhLW9yaWVudGF0aW9uPSdob3Jpem9udGFsJ11cbiAgPiAubG0tVGFiQmFyLWNvbnRlbnQge1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYlxuICA+IC5wLVRhYkJhcltkYXRhLW9yaWVudGF0aW9uPSd2ZXJ0aWNhbCddXG4gID4gLnAtVGFiQmFyLWNvbnRlbnQsXG4vKiA8L0RFUFJFQ0FURUQ+ICovXG4vKiA8REVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiXG4+IC5wLVRhYkJhcltkYXRhLW9yaWVudGF0aW9uPSd2ZXJ0aWNhbCddXG4+IC5wLVRhYkJhci1jb250ZW50LFxuLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldC10YWJcbiAgPiAubG0tVGFiQmFyW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ11cbiAgPiAubG0tVGFiQmFyLWNvbnRlbnQge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4vKiA8REVQUkVDQVRFRD4gKi8uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC5sbS1UYWJCYXIgLmxtLVRhYkJhci10YWIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiSWNvbiwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLyogPERFUFJFQ0FURUQ+ICovIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiQ2xvc2VJY29uLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4vKiA8REVQUkVDQVRFRD4gKi8uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiSWNvbiwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLyogPERFUFJFQ0FURUQ+ICovIC5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJDbG9zZUljb24sIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiID4gLmxtLVRhYkJhciAubG0tVGFiQmFyLXRhYkljb24sXG4uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC5sbS1UYWJCYXIgLmxtLVRhYkJhci10YWJDbG9zZUljb24ge1xuICBmbGV4OiAwIDAgYXV0bztcbn1cblxuLyogPERFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4vKiA8REVQUkVDQVRFRD4gKi8uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiTGFiZWwsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiID4gLmxtLVRhYkJhciAubG0tVGFiQmFyLXRhYkxhYmVsIHtcbiAgZmxleDogMSAxIGF1dG87XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIucC1tb2QtaGlkZGVuLCAvKiA8L0RFUFJFQ0FURUQ+ICovXG4vKiA8REVQUkVDQVRFRD4gKi8uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiLnAtbW9kLWhpZGRlbiwgLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldC10YWIgPiAubG0tVGFiQmFyIC5sbS1UYWJCYXItdGFiLmxtLW1vZC1oaWRkZW4ge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyLnAtbW9kLWRyYWdnaW5nIC5wLVRhYkJhci10YWIsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi8qIDxERVBSRUNBVEVEPiAqLy5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiID4gLnAtVGFiQmFyLnAtbW9kLWRyYWdnaW5nIC5wLVRhYkJhci10YWIsIC8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiID4gLmxtLVRhYkJhci5sbS1tb2QtZHJhZ2dpbmcgLmxtLVRhYkJhci10YWIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qIDxERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiXG4gID4gLnAtVGFiQmFyLnAtbW9kLWRyYWdnaW5nW2RhdGEtb3JpZW50YXRpb249J2hvcml6b250YWwnXVxuICAucC1UYWJCYXItdGFiLFxuLyogPC9ERVBSRUNBVEVEPiAqL1xuLyogPERFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLmp1cHl0ZXItd2lkZ2V0LXRhYlxuICA+IC5wLVRhYkJhci5wLW1vZC1kcmFnZ2luZ1tkYXRhLW9yaWVudGF0aW9uPSdob3Jpem9udGFsJ11cbiAgLnAtVGFiQmFyLXRhYixcbi8qIDwvREVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiXG4gID4gLmxtLVRhYkJhci5sbS1tb2QtZHJhZ2dpbmdbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddXG4gIC5sbS1UYWJCYXItdGFiIHtcbiAgbGVmdDogMDtcbiAgdHJhbnNpdGlvbjogbGVmdCAxNTBtcyBlYXNlO1xufVxuXG4vKiA8REVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYlxuICA+IC5wLVRhYkJhci5wLW1vZC1kcmFnZ2luZ1tkYXRhLW9yaWVudGF0aW9uPSd2ZXJ0aWNhbCddXG4gIC5wLVRhYkJhci10YWIsXG4vKiA8L0RFUFJFQ0FURUQ+ICovXG4vKiA8REVQUkVDQVRFRD4gKi9cbi5qdXB5dGVyLXdpZGdldHMuanVweXRlci13aWRnZXQtdGFiXG4+IC5wLVRhYkJhci5wLW1vZC1kcmFnZ2luZ1tkYXRhLW9yaWVudGF0aW9uPSd2ZXJ0aWNhbCddXG4ucC1UYWJCYXItdGFiLFxuLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldC10YWJcbiAgPiAubG0tVGFiQmFyLmxtLW1vZC1kcmFnZ2luZ1tkYXRhLW9yaWVudGF0aW9uPSd2ZXJ0aWNhbCddXG4gIC5sbS1UYWJCYXItdGFiIHtcbiAgdG9wOiAwO1xuICB0cmFuc2l0aW9uOiB0b3AgMTUwbXMgZWFzZTtcbn1cblxuLyogPERFUFJFQ0FURUQ+ICovXG4uanVweXRlci13aWRnZXRzLndpZGdldC10YWJcbiAgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmdcbiAgLnAtVGFiQmFyLXRhYi5wLW1vZC1kcmFnZ2luZyxcbi8qIDwvREVQUkVDQVRFRD4gKi9cbi8qIDxERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldC10YWJcbj4gLnAtVGFiQmFyLnAtbW9kLWRyYWdnaW5nXG4ucC1UYWJCYXItdGFiLnAtbW9kLWRyYWdnaW5nLFxuLyogPC9ERVBSRUNBVEVEPiAqL1xuLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldC10YWJcbiAgPiAubG0tVGFiQmFyLmxtLW1vZC1kcmFnZ2luZ1xuICAubG0tVGFiQmFyLXRhYi5sbS1tb2QtZHJhZ2dpbmcge1xuICB0cmFuc2l0aW9uOiBub25lO1xufVxuXG4vKiBFbmQgdGFiYmFyLmNzcyAqL1xuIiwiLypcblxuVGhlIG5vdWlzbGlkZXIuY3NzIGZpbGUgaXMgYXV0b2dlbmVyYXRlZCBmcm9tIG5vdWlzbGlkZXIubGVzcywgd2hpY2ggaW1wb3J0cyBhbmQgd3JhcHMgdGhlIG5vdWlzbGlkZXIvc3JjL25vdWlzbGlkZXIubGVzcyBzdHlsZXMuXG5cbk1JVCBMaWNlbnNlXG5cbkNvcHlyaWdodCAoYykgMjAxOSBMw6lvbiBHZXJzZW5cblxuUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbCBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblxuVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG5cblRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IgSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFIFNPRlRXQVJFLlxuKi9cbi8qIFRoZSAud2lkZ2V0LXNsaWRlciBjbGFzcyBpcyBkZXByZWNhdGVkICovXG4ud2lkZ2V0LXNsaWRlcixcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIge1xuICAvKiBGdW5jdGlvbmFsIHN0eWxpbmc7XG4gKiBUaGVzZSBzdHlsZXMgYXJlIHJlcXVpcmVkIGZvciBub1VpU2xpZGVyIHRvIGZ1bmN0aW9uLlxuICogWW91IGRvbid0IG5lZWQgdG8gY2hhbmdlIHRoZXNlIHJ1bGVzIHRvIGFwcGx5IHlvdXIgZGVzaWduLlxuICovXG4gIC8qIFdyYXBwZXIgZm9yIGFsbCBjb25uZWN0IGVsZW1lbnRzLlxuICovXG4gIC8qIE9mZnNldCBkaXJlY3Rpb25cbiAqL1xuICAvKiBHaXZlIG9yaWdpbnMgMCBoZWlnaHQvd2lkdGggc28gdGhleSBkb24ndCBpbnRlcmZlcmUgd2l0aCBjbGlja2luZyB0aGVcbiAqIGNvbm5lY3QgZWxlbWVudHMuXG4gKi9cbiAgLyogU2xpZGVyIHNpemUgYW5kIGhhbmRsZSBwbGFjZW1lbnQ7XG4gKi9cbiAgLyogU3R5bGluZztcbiAqIEdpdmluZyB0aGUgY29ubmVjdCBlbGVtZW50IGEgYm9yZGVyIHJhZGl1cyBjYXVzZXMgaXNzdWVzIHdpdGggdXNpbmcgdHJhbnNmb3JtOiBzY2FsZVxuICovXG4gIC8qIEhhbmRsZXMgYW5kIGN1cnNvcnM7XG4gKi9cbiAgLyogSGFuZGxlIHN0cmlwZXM7XG4gKi9cbiAgLyogRGlzYWJsZWQgc3RhdGU7XG4gKi9cbiAgLyogQmFzZTtcbiAqXG4gKi9cbiAgLyogVmFsdWVzO1xuICpcbiAqL1xuICAvKiBNYXJraW5ncztcbiAqXG4gKi9cbiAgLyogSG9yaXpvbnRhbCBsYXlvdXQ7XG4gKlxuICovXG4gIC8qIFZlcnRpY2FsIGxheW91dDtcbiAqXG4gKi9cbiAgLyogQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uXG4gKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1vZGlmaWVkIEJTRCBMaWNlbnNlLlxuICovXG4gIC8qIEN1c3RvbSBDU1MgZm9yIG5vdWlzbGlkZXIgKi9cbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLXRhcmdldCxcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktdGFyZ2V0LFxuLndpZGdldC1zbGlkZXIgLm5vVWktdGFyZ2V0ICosXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLXRhcmdldCAqIHtcbiAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMCk7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIC1tcy10b3VjaC1hY3Rpb246IG5vbmU7XG4gIHRvdWNoLWFjdGlvbjogbm9uZTtcbiAgLW1zLXVzZXItc2VsZWN0OiBub25lO1xuICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktdGFyZ2V0LFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS10YXJnZXQge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS1iYXNlLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS1iYXNlLFxuLndpZGdldC1zbGlkZXIgLm5vVWktY29ubmVjdHMsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLWNvbm5lY3RzIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktY29ubmVjdHMsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLWNvbm5lY3RzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgei1pbmRleDogMDtcbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLWNvbm5lY3QsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLWNvbm5lY3QsXG4ud2lkZ2V0LXNsaWRlciAubm9VaS1vcmlnaW4sXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLW9yaWdpbiB7XG4gIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogMTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgLW1zLXRyYW5zZm9ybS1vcmlnaW46IDAgMDtcbiAgLXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOiAwIDA7XG4gIC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDtcbiAgdHJhbnNmb3JtLW9yaWdpbjogMCAwO1xuICB0cmFuc2Zvcm0tc3R5bGU6IGZsYXQ7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS1jb25uZWN0LFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS1jb25uZWN0IHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLW9yaWdpbixcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktb3JpZ2luIHtcbiAgaGVpZ2h0OiAxMCU7XG4gIHdpZHRoOiAxMCU7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS10eHQtZGlyLXJ0bC5ub1VpLWhvcml6b250YWwgLm5vVWktb3JpZ2luLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS10eHQtZGlyLXJ0bC5ub1VpLWhvcml6b250YWwgLm5vVWktb3JpZ2luIHtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IGF1dG87XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS12ZXJ0aWNhbCAubm9VaS1vcmlnaW4sXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLXZlcnRpY2FsIC5ub1VpLW9yaWdpbiB7XG4gIHdpZHRoOiAwO1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktaG9yaXpvbnRhbCAubm9VaS1vcmlnaW4sXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLWhvcml6b250YWwgLm5vVWktb3JpZ2luIHtcbiAgaGVpZ2h0OiAwO1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktaGFuZGxlLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS1oYW5kbGUge1xuICAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgYmFja2ZhY2UtdmlzaWJpbGl0eTogaGlkZGVuO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS10b3VjaC1hcmVhLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS10b3VjaC1hcmVhIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLXN0YXRlLXRhcCAubm9VaS1jb25uZWN0LFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS1zdGF0ZS10YXAgLm5vVWktY29ubmVjdCxcbi53aWRnZXQtc2xpZGVyIC5ub1VpLXN0YXRlLXRhcCAubm9VaS1vcmlnaW4sXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLXN0YXRlLXRhcCAubm9VaS1vcmlnaW4ge1xuICAtd2Via2l0LXRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzO1xuICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcztcbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLXN0YXRlLWRyYWcgKixcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktc3RhdGUtZHJhZyAqIHtcbiAgY3Vyc29yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS1ob3Jpem9udGFsLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS1ob3Jpem9udGFsIHtcbiAgaGVpZ2h0OiAxOHB4O1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktaG9yaXpvbnRhbCAubm9VaS1oYW5kbGUsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLWhvcml6b250YWwgLm5vVWktaGFuZGxlIHtcbiAgd2lkdGg6IDM0cHg7XG4gIGhlaWdodDogMjhweDtcbiAgcmlnaHQ6IC0xN3B4O1xuICB0b3A6IC02cHg7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS12ZXJ0aWNhbCxcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktdmVydGljYWwge1xuICB3aWR0aDogMThweDtcbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLXZlcnRpY2FsIC5ub1VpLWhhbmRsZSxcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktdmVydGljYWwgLm5vVWktaGFuZGxlIHtcbiAgd2lkdGg6IDI4cHg7XG4gIGhlaWdodDogMzRweDtcbiAgcmlnaHQ6IC02cHg7XG4gIHRvcDogLTE3cHg7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS10eHQtZGlyLXJ0bC5ub1VpLWhvcml6b250YWwgLm5vVWktaGFuZGxlLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS10eHQtZGlyLXJ0bC5ub1VpLWhvcml6b250YWwgLm5vVWktaGFuZGxlIHtcbiAgbGVmdDogLTE3cHg7XG4gIHJpZ2h0OiBhdXRvO1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktdGFyZ2V0LFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS10YXJnZXQge1xuICBiYWNrZ3JvdW5kOiAjRkFGQUZBO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNEM0QzRDM7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDFweCAjRjBGMEYwLCAwIDNweCA2cHggLTVweCAjQkJCO1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktY29ubmVjdHMsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLWNvbm5lY3RzIHtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktY29ubmVjdCxcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktY29ubmVjdCB7XG4gIGJhY2tncm91bmQ6ICMzRkI4QUY7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS1kcmFnZ2FibGUsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLWRyYWdnYWJsZSB7XG4gIGN1cnNvcjogZXctcmVzaXplO1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktdmVydGljYWwgLm5vVWktZHJhZ2dhYmxlLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS12ZXJ0aWNhbCAubm9VaS1kcmFnZ2FibGUge1xuICBjdXJzb3I6IG5zLXJlc2l6ZTtcbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLWhhbmRsZSxcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktaGFuZGxlIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q5RDlEOTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiAjRkZGO1xuICBjdXJzb3I6IGRlZmF1bHQ7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAxcHggI0ZGRiwgaW5zZXQgMCAxcHggN3B4ICNFQkVCRUIsIDAgM3B4IDZweCAtM3B4ICNCQkI7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS1hY3RpdmUsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLWFjdGl2ZSB7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMCAxcHggI0ZGRiwgaW5zZXQgMCAxcHggN3B4ICNEREQsIDAgM3B4IDZweCAtM3B4ICNCQkI7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS1oYW5kbGU6YmVmb3JlLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS1oYW5kbGU6YmVmb3JlLFxuLndpZGdldC1zbGlkZXIgLm5vVWktaGFuZGxlOmFmdGVyLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS1oYW5kbGU6YWZ0ZXIge1xuICBjb250ZW50OiBcIlwiO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBoZWlnaHQ6IDE0cHg7XG4gIHdpZHRoOiAxcHg7XG4gIGJhY2tncm91bmQ6ICNFOEU3RTY7XG4gIGxlZnQ6IDE0cHg7XG4gIHRvcDogNnB4O1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktaGFuZGxlOmFmdGVyLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS1oYW5kbGU6YWZ0ZXIge1xuICBsZWZ0OiAxN3B4O1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktdmVydGljYWwgLm5vVWktaGFuZGxlOmJlZm9yZSxcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktdmVydGljYWwgLm5vVWktaGFuZGxlOmJlZm9yZSxcbi53aWRnZXQtc2xpZGVyIC5ub1VpLXZlcnRpY2FsIC5ub1VpLWhhbmRsZTphZnRlcixcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktdmVydGljYWwgLm5vVWktaGFuZGxlOmFmdGVyIHtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogMXB4O1xuICBsZWZ0OiA2cHg7XG4gIHRvcDogMTRweDtcbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLXZlcnRpY2FsIC5ub1VpLWhhbmRsZTphZnRlcixcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktdmVydGljYWwgLm5vVWktaGFuZGxlOmFmdGVyIHtcbiAgdG9wOiAxN3B4O1xufVxuLndpZGdldC1zbGlkZXIgW2Rpc2FibGVkXSAubm9VaS1jb25uZWN0LFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciBbZGlzYWJsZWRdIC5ub1VpLWNvbm5lY3Qge1xuICBiYWNrZ3JvdW5kOiAjQjhCOEI4O1xufVxuLndpZGdldC1zbGlkZXIgW2Rpc2FibGVkXS5ub1VpLXRhcmdldCxcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgW2Rpc2FibGVkXS5ub1VpLXRhcmdldCxcbi53aWRnZXQtc2xpZGVyIFtkaXNhYmxlZF0ubm9VaS1oYW5kbGUsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIFtkaXNhYmxlZF0ubm9VaS1oYW5kbGUsXG4ud2lkZ2V0LXNsaWRlciBbZGlzYWJsZWRdIC5ub1VpLWhhbmRsZSxcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgW2Rpc2FibGVkXSAubm9VaS1oYW5kbGUge1xuICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktcGlwcyxcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktcGlwcyxcbi53aWRnZXQtc2xpZGVyIC5ub1VpLXBpcHMgKixcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktcGlwcyAqIHtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktcGlwcyxcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktcGlwcyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgY29sb3I6ICM5OTk7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS12YWx1ZSxcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktdmFsdWUge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLXZhbHVlLXN1Yixcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktdmFsdWUtc3ViIHtcbiAgY29sb3I6ICNjY2M7XG4gIGZvbnQtc2l6ZTogMTBweDtcbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLW1hcmtlcixcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktbWFya2VyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBiYWNrZ3JvdW5kOiAjQ0NDO1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktbWFya2VyLXN1Yixcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktbWFya2VyLXN1YiB7XG4gIGJhY2tncm91bmQ6ICNBQUE7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS1tYXJrZXItbGFyZ2UsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLW1hcmtlci1sYXJnZSB7XG4gIGJhY2tncm91bmQ6ICNBQUE7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS1waXBzLWhvcml6b250YWwsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLXBpcHMtaG9yaXpvbnRhbCB7XG4gIHBhZGRpbmc6IDEwcHggMDtcbiAgaGVpZ2h0OiA4MHB4O1xuICB0b3A6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHdpZHRoOiAxMDAlO1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktdmFsdWUtaG9yaXpvbnRhbCxcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktdmFsdWUtaG9yaXpvbnRhbCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgNTAlKTtcbn1cbi5ub1VpLXJ0bCAud2lkZ2V0LXNsaWRlciAubm9VaS12YWx1ZS1ob3Jpem9udGFsLFxuLm5vVWktcnRsIC5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktdmFsdWUtaG9yaXpvbnRhbCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoNTAlLCA1MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSg1MCUsIDUwJSk7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS1tYXJrZXItaG9yaXpvbnRhbC5ub1VpLW1hcmtlcixcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktbWFya2VyLWhvcml6b250YWwubm9VaS1tYXJrZXIge1xuICBtYXJnaW4tbGVmdDogLTFweDtcbiAgd2lkdGg6IDJweDtcbiAgaGVpZ2h0OiA1cHg7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS1tYXJrZXItaG9yaXpvbnRhbC5ub1VpLW1hcmtlci1zdWIsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLW1hcmtlci1ob3Jpem9udGFsLm5vVWktbWFya2VyLXN1YiB7XG4gIGhlaWdodDogMTBweDtcbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLW1hcmtlci1ob3Jpem9udGFsLm5vVWktbWFya2VyLWxhcmdlLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS1tYXJrZXItaG9yaXpvbnRhbC5ub1VpLW1hcmtlci1sYXJnZSB7XG4gIGhlaWdodDogMTVweDtcbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLXBpcHMtdmVydGljYWwsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLXBpcHMtdmVydGljYWwge1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIGhlaWdodDogMTAwJTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAxMDAlO1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktdmFsdWUtdmVydGljYWwsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLXZhbHVlLXZlcnRpY2FsIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTUwJSk7XG4gIHBhZGRpbmctbGVmdDogMjVweDtcbn1cbi5ub1VpLXJ0bCAud2lkZ2V0LXNsaWRlciAubm9VaS12YWx1ZS12ZXJ0aWNhbCxcbi5ub1VpLXJ0bCAuanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLXZhbHVlLXZlcnRpY2FsIHtcbiAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCA1MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCA1MCUpO1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktbWFya2VyLXZlcnRpY2FsLm5vVWktbWFya2VyLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS1tYXJrZXItdmVydGljYWwubm9VaS1tYXJrZXIge1xuICB3aWR0aDogNXB4O1xuICBoZWlnaHQ6IDJweDtcbiAgbWFyZ2luLXRvcDogLTFweDtcbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLW1hcmtlci12ZXJ0aWNhbC5ub1VpLW1hcmtlci1zdWIsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLW1hcmtlci12ZXJ0aWNhbC5ub1VpLW1hcmtlci1zdWIge1xuICB3aWR0aDogMTBweDtcbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLW1hcmtlci12ZXJ0aWNhbC5ub1VpLW1hcmtlci1sYXJnZSxcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktbWFya2VyLXZlcnRpY2FsLm5vVWktbWFya2VyLWxhcmdlIHtcbiAgd2lkdGg6IDE1cHg7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS10b29sdGlwLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS10b29sdGlwIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm9yZGVyOiAxcHggc29saWQgI0Q5RDlEOTtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBjb2xvcjogIzAwMDtcbiAgcGFkZGluZzogNXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS1ob3Jpem9udGFsIC5ub1VpLXRvb2x0aXAsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLWhvcml6b250YWwgLm5vVWktdG9vbHRpcCB7XG4gIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDApO1xuICBsZWZ0OiA1MCU7XG4gIGJvdHRvbTogMTIwJTtcbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLXZlcnRpY2FsIC5ub1VpLXRvb2x0aXAsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLXZlcnRpY2FsIC5ub1VpLXRvb2x0aXAge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC01MCUpO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgdG9wOiA1MCU7XG4gIHJpZ2h0OiAxMjAlO1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktaG9yaXpvbnRhbCAubm9VaS1vcmlnaW4gPiAubm9VaS10b29sdGlwLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS1ob3Jpem9udGFsIC5ub1VpLW9yaWdpbiA+IC5ub1VpLXRvb2x0aXAge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgMCk7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKDUwJSwgMCk7XG4gIGxlZnQ6IGF1dG87XG4gIGJvdHRvbTogMTBweDtcbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLXZlcnRpY2FsIC5ub1VpLW9yaWdpbiA+IC5ub1VpLXRvb2x0aXAsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLXZlcnRpY2FsIC5ub1VpLW9yaWdpbiA+IC5ub1VpLXRvb2x0aXAge1xuICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIC0xOHB4KTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgLTE4cHgpO1xuICB0b3A6IGF1dG87XG4gIHJpZ2h0OiAyOHB4O1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktY29ubmVjdCxcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktY29ubmVjdCB7XG4gIGJhY2tncm91bmQ6ICMyMTk2ZjM7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS1ob3Jpem9udGFsLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS1ob3Jpem9udGFsIHtcbiAgaGVpZ2h0OiB2YXIoLS1qcC13aWRnZXRzLXNsaWRlci10cmFjay10aGlja25lc3MpO1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktdmVydGljYWwsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLXZlcnRpY2FsIHtcbiAgd2lkdGg6IHZhcigtLWpwLXdpZGdldHMtc2xpZGVyLXRyYWNrLXRoaWNrbmVzcyk7XG4gIGhlaWdodDogMTAwJTtcbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLWhvcml6b250YWwgLm5vVWktaGFuZGxlLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS1ob3Jpem9udGFsIC5ub1VpLWhhbmRsZSB7XG4gIHdpZHRoOiB2YXIoLS1qcC13aWRnZXRzLXNsaWRlci1oYW5kbGUtc2l6ZSk7XG4gIGhlaWdodDogdmFyKC0tanAtd2lkZ2V0cy1zbGlkZXItaGFuZGxlLXNpemUpO1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gIHRvcDogY2FsYygodmFyKC0tanAtd2lkZ2V0cy1zbGlkZXItdHJhY2stdGhpY2tuZXNzKSAtIHZhcigtLWpwLXdpZGdldHMtc2xpZGVyLWhhbmRsZS1zaXplKSkgLyAyKTtcbiAgcmlnaHQ6IGNhbGModmFyKC0tanAtd2lkZ2V0cy1zbGlkZXItaGFuZGxlLXNpemUpIC8gLTIpO1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktdmVydGljYWwgLm5vVWktaGFuZGxlLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS12ZXJ0aWNhbCAubm9VaS1oYW5kbGUge1xuICBoZWlnaHQ6IHZhcigtLWpwLXdpZGdldHMtc2xpZGVyLWhhbmRsZS1zaXplKTtcbiAgd2lkdGg6IHZhcigtLWpwLXdpZGdldHMtc2xpZGVyLWhhbmRsZS1zaXplKTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICByaWdodDogY2FsYygodmFyKC0tanAtd2lkZ2V0cy1zbGlkZXItaGFuZGxlLXNpemUpIC0gdmFyKC0tanAtd2lkZ2V0cy1zbGlkZXItdHJhY2stdGhpY2tuZXNzKSkgLyAtMik7XG4gIHRvcDogY2FsYyh2YXIoLS1qcC13aWRnZXRzLXNsaWRlci1oYW5kbGUtc2l6ZSkgLyAtMik7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS1oYW5kbGU6YWZ0ZXIsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLWhhbmRsZTphZnRlciB7XG4gIGNvbnRlbnQ6IG5vbmU7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS1oYW5kbGU6YmVmb3JlLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAubm9VaS1oYW5kbGU6YmVmb3JlIHtcbiAgY29udGVudDogbm9uZTtcbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLXRhcmdldCxcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktdGFyZ2V0IHtcbiAgYmFja2dyb3VuZDogI2ZhZmFmYTtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXI6IDFweDtcbiAgLyogYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMXB4ICNGMEYwRjAsIDAgM3B4IDZweCAtNXB4ICNCQkI7ICovXG59XG4ud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyLFxuLmp1cHl0ZXItd2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIHtcbiAgYm9yZGVyOiB2YXIoLS1qcC13aWRnZXRzLXNsaWRlci1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWpwLWxheW91dC1jb2xvcjMpO1xuICBiYWNrZ3JvdW5kOiB2YXIoLS1qcC1sYXlvdXQtY29sb3IzKTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBib3JkZXItcmFkaXVzOiAwcHg7XG59XG4ud2lkZ2V0LXNsaWRlciAubm9VaS1oYW5kbGUsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLWhhbmRsZSB7XG4gIHdpZHRoOiB2YXIoLS1qcC13aWRnZXRzLXNsaWRlci1oYW5kbGUtc2l6ZSk7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkOWQ5ZDk7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBib3gtc2hhZG93OiBub25lO1xuICBvdXRsaW5lOiBub25lO1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktdGFyZ2V0Om5vdChbZGlzYWJsZWRdKSAubm9VaS1oYW5kbGU6aG92ZXIsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLXRhcmdldDpub3QoW2Rpc2FibGVkXSkgLm5vVWktaGFuZGxlOmhvdmVyLFxuLndpZGdldC1zbGlkZXIgLm5vVWktdGFyZ2V0Om5vdChbZGlzYWJsZWRdKSAubm9VaS1oYW5kbGU6Zm9jdXMsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLXRhcmdldDpub3QoW2Rpc2FibGVkXSkgLm5vVWktaGFuZGxlOmZvY3VzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tanAtd2lkZ2V0cy1zbGlkZXItYWN0aXZlLWhhbmRsZS1jb2xvcik7XG4gIGJvcmRlcjogdmFyKC0tanAtd2lkZ2V0cy1zbGlkZXItYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1qcC13aWRnZXRzLXNsaWRlci1hY3RpdmUtaGFuZGxlLWNvbG9yKTtcbn1cbi53aWRnZXQtc2xpZGVyIFtkaXNhYmxlZF0ubm9VaS10YXJnZXQsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIFtkaXNhYmxlZF0ubm9VaS10YXJnZXQge1xuICBvcGFjaXR5OiAwLjM1O1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktY29ubmVjdHMsXG4uanVweXRlci13aWRnZXQtc2xpZGVyIC5ub1VpLWNvbm5lY3RzIHtcbiAgb3ZlcmZsb3c6IHZpc2libGU7XG4gIHotaW5kZXg6IDA7XG4gIGJhY2tncm91bmQ6IHZhcigtLWpwLWxheW91dC1jb2xvcjMpO1xufVxuLndpZGdldC1zbGlkZXIgLm5vVWktdmVydGljYWwgLm5vVWktY29ubmVjdCxcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktdmVydGljYWwgLm5vVWktY29ubmVjdCB7XG4gIHdpZHRoOiBjYWxjKDEwMCUgKyAycHgpO1xuICByaWdodDogLTFweDtcbn1cbi53aWRnZXQtc2xpZGVyIC5ub1VpLWhvcml6b250YWwgLm5vVWktY29ubmVjdCxcbi5qdXB5dGVyLXdpZGdldC1zbGlkZXIgLm5vVWktaG9yaXpvbnRhbCAubm9VaS1jb25uZWN0IHtcbiAgaGVpZ2h0OiBjYWxjKDEwMCUgKyAycHgpO1xuICB0b3A6IC0xcHg7XG59XG4iXX0= */