@charset "UTF-8";
@-webkit-keyframes oscilate {
  0% {
    background: #dc5323; }
  50% {
    background: #e78765; }
  100% {
    background: #dc5323; } }

@-moz-keyframes oscilate {
  0% {
    background: #dc5323; }
  50% {
    background: #e78765; }
  100% {
    background: #dc5323; } }

@keyframes oscilate {
  0% {
    background: #dc5323; }
  50% {
    background: #e78765; }
  100% {
    background: #dc5323; } }

html {
  box-sizing: border-box; }

*, *::after, *::before {
  box-sizing: inherit; }

/**
 * x-background
 *
 * Sets a solid or semi-transparent background color.  Accepts an optional 
 * opacity (alpha) value.  Provides a solid color fallback.
 */
/**
 * x-clear
 *
 * Multi-use clear mixin for various contexts.  Accepts an optional context.
 * Default usage implements a Bourbon micro-clearfix.
 */
/**
 * x-container
 */
/**
 *
 * x-font-face
 *
 * Implements standardized site copy. Accepts arguments for
 * variants (inversions, etc.).
 *
 */
/**
 * x-hide-text
 *
 * Hides text of applied element.  Accepts no arguments. Based
 * off of a previous version of the H5BP image replacement 
 * method.  I've found it to be far more reliable than the clip
 * method.
 *
 */
/**
 * x-icon
 *
 * Implements a webfont glyph  Needs to be used within
 * a pseudo element (e.g. &:before, &:after).  Accepts a required, named
 * icon, an optional size, and an optional color.  
 */
/**
 * x-layer
 *
 * Sets a z-index value based on semantic naming as opposed to explicit integer
 * values.  Accepts a required, named layer.  Hierarchy can be modified by
 * adding directly to the $layers map stack.
 */
/**
 * x-max-size
 *
 */
button, input[type=submit] {
  background: none; }

article, aside, details, footer, header, menu, nav, section, audio, canvas, embed, figure, figure figcaption, iframe, object, video {
  display: block; }

address, cite, dfn, em, i, var {
  font-style: normal; }

button, input[type=submit], input[type=text], input[type=email], input[type=password], textarea, blockquote, dialog, dl, dl dd, menu, p, pre, form fieldset, h1, h2, h3, h4, h5, h6, select, ul, ol, figure, hr, body {
  margin: 0; }

button, input[type=submit], input[type=text], input[type=email], input[type=password], textarea, dialog, menu, form fieldset, form fieldset legend, ul, ol, table thead th, table tbody td, table tfoot td {
  padding: 0; }

button, input[type=submit], input[type=text], input[type=email], input[type=password], textarea, dialog, form fieldset, iframe {
  border: 0; }

ul, ul li, ol, ol li {
  list-style: none; }

q {
  quotes: none; }

button, input[type=submit], input[type=text], input[type=email], input[type=password], textarea {
  font-family: inherit; }

button, input[type=submit], input[type=text], input[type=email], input[type=password], textarea {
  font-size: inherit; }

button, input[type=submit] {
  outline: none;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent; }

input[type=text]:focus, input[type=email]:focus, input[type=password]:focus, textarea:focus {
  outline: none; }

a {
  text-decoration: none; }
  a:active {
    outline: 0; }

/*
*
*  Global Border-Box Override
*
*  Unnecessary if Bourbon/Neat already being loaded.
*
*  * {
*    @include box-sizing(border-box);
*  }
*
*/
body {
  width: 100%; }

table {
  border-collapse: collapse;
  border-spacing: 0; }

/* Slider */
.slick-slider {
  position: relative;
  display: block;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -ms-touch-action: pan-y;
  touch-action: pan-y;
  -webkit-tap-highlight-color: transparent; }

.slick-list {
  position: relative;
  overflow: hidden;
  display: block;
  margin: 0;
  padding: 0; }
  .slick-list:focus {
    outline: none; }
  .slick-list.dragging {
    cursor: pointer;
    cursor: hand; }

.slick-slider .slick-track,
.slick-slider .slick-list {
  -webkit-transform: translate3d(0, 0, 0);
  -moz-transform: translate3d(0, 0, 0);
  -ms-transform: translate3d(0, 0, 0);
  -o-transform: translate3d(0, 0, 0);
  transform: translate3d(0, 0, 0); }

.slick-track {
  position: relative;
  left: 0;
  top: 0;
  display: block; }
  .slick-track:before, .slick-track:after {
    content: "";
    display: table; }
  .slick-track:after {
    clear: both; }
  .slick-loading .slick-track {
    visibility: hidden; }

.slick-slide {
  float: left;
  height: 100%;
  min-height: 1px;
  display: none; }
  [dir="rtl"] .slick-slide {
    float: right; }
  .slick-slide img {
    display: block; }
  .slick-slide.slick-loading img {
    display: none; }
  .slick-slide.dragging img {
    pointer-events: none; }
  .slick-initialized .slick-slide {
    display: block; }
  .slick-loading .slick-slide {
    visibility: hidden; }
  .slick-vertical .slick-slide {
    display: block;
    height: auto;
    border: 1px solid transparent; }

.slick-arrow.slick-hidden {
  display: none; }

@font-face {
  font-family: "glyphs";
  font-weight: normal;
  font-style: normal;
  src: url("/wp-content/themes/stockrover/fonts/glyphs/fonts/glyphs.eot");
  src: url("/wp-content/themes/stockrover/fonts/glyphs/fonts/glyphs.eot?#iefix") format("embedded-opentype"), url("/wp-content/themes/stockrover/fonts/glyphs/fonts/glyphs.woff") format("woff"), url("/wp-content/themes/stockrover/fonts/glyphs/fonts/glyphs.ttf") format("truetype"), url("/wp-content/themes/stockrover/fonts/glyphs/fonts/glyphs.svg#glyphs") format("svg"); }

@font-face {
  font-family: 'glyphs';
  src: url("fonts/glyphs.eot?48348k");
  src: url("fonts/glyphs.eot?48348k#iefix") format("embedded-opentype"), url("fonts/glyphs.ttf?48348k") format("truetype"), url("fonts/glyphs.woff?48348k") format("woff"), url("fonts/glyphs.svg?48348k#glyphs") format("svg");
  font-weight: normal;
  font-style: normal; }

.glyph {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'glyphs' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.glyph--film:before {
  content: ""; }

.glyph--folder:before {
  content: ""; }

.glyph--folder--open:before {
  content: ""; }

.glyph--phone:before {
  content: ""; }

.glyph--twitter:before {
  content: ""; }

.glyph--facebook:before {
  content: ""; }

.glyph--google-plus:before {
  content: ""; }

.glyph--caret--down:before {
  content: ""; }

.glyph--caret--up:before {
  content: ""; }

.glyph--caret--left:before {
  content: ""; }

.glyph--caret--right:before {
  content: ""; }

.glyph--mail:before {
  content: ""; }

.glyph--email:before {
  content: ""; }

.glyph--bullet:before {
  content: ""; }

.glyph--question:before {
  content: ""; }

.glyph--info:before {
  content: ""; }

.glyph--calendar:before {
  content: ""; }

.glyph--warning:before {
  content: ""; }

.glyph--new:before {
  content: ""; }

.glyph--close:before {
  content: ""; }

.glyph--currency:before {
  content: ""; }

.glyph--quote:before {
  content: ""; }

.glyph--edit:before {
  content: ""; }

.glyph--arrow--down:before {
  content: ""; }

.glyph--arrow--left:before {
  content: ""; }

.glyph--arrow--right:before {
  content: ""; }

.glyph--arrow--up:before {
  content: ""; }

.glyph--check:before {
  content: ""; }

.glyph--menu:before {
  content: ""; }

.glyph--checkbox--filled:before {
  content: ""; }

.glyph--checkbox:before {
  content: ""; }

.glyph--radio:before {
  content: ""; }

.glyph--radio--filled:before {
  content: ""; }

.glyph--document:before {
  content: ""; }

.glyph--home:before {
  content: ""; }

.glyph--lock:before {
  content: ""; }

.glyph--credit-card:before {
  content: ""; }

.glyph--location:before {
  content: ""; }

.glyph--clock:before {
  content: ""; }

.glyph--search:before {
  content: ""; }

.glyph--line-chart:before {
  content: ""; }

.glyph--play:before {
  content: ""; }

.application {
  font-family: 'Open Sans', sans-serif;
  background: #5890e3;
  background: #5890e3; }

.main {
  background: #fff;
  background: white; }

.header {
  position: relative;
  z-index: 10;
  height: 3.125em;
  width: 100%;
  display: table;
  background: #fff;
  /*  border-bottom: 2px solid rgba(35,35,35,1);*/ }
  .header .header__inner a .livedemo {
    padding: 3px 15px 2px 15px;
    background-color: #5890e3;
    color: #fff;
    height: 28px;
    float: right;
    text-align: center;
    font-weight: 500;
    margin-top: 18px;
    margin-right: 10px;
    font-size: 16px; }
  @media screen and (max-width: 62.4375em) {
    .header .header__inner {
      padding-right: 2.5%;
      padding-left: 2.5%;
      overflow: hidden; }
      .header .header__inner a .livedemo {
        margin-top: 12px;
        padding-top: 3px; } }
  @media screen and (min-width: 62.5em) {
    .header {
      height: 3.75em;
      width: 100%; }
      .header .header__inner {
        max-width: 62.5em;
        margin-left: auto;
        margin-right: auto; }
        .header .header__inner::after {
          clear: both;
          content: "";
          display: table; } }
  @media screen and (max-width: 359px) {
    .header .header__inner a .livedemo {
      font-size: 12px;
      padding-top: 2px;
      height: 20px; } }

.logo {
  float: left; }
  .logo .logo__link {
    display: table-cell;
    vertical-align: middle;
    height: 3.125em;
    width: auto; }
  .logo .logo__heading {
    display: none; }
  .logo .logo__image {
    display: block;
    height: 100%;
    padding-top: 0.625em;
    padding-bottom: 0.625em;
    padding-left: 0; }
  @media screen and (min-width: 62.5em) {
    .logo .logo__link {
      height: 3.75em;
      width: auto; }
    .logo .logo__image {
      padding-top: 0.75em;
      padding-bottom: 0.75em;
      padding-left: 0; } }

.toggle.toggle--navigation {
  float: right; }
  .toggle.toggle--navigation .toggle__inner {
    display: table-cell;
    height: 3.125em;
    width: auto;
    vertical-align: middle; }
  .toggle.toggle--navigation .toggle__button {
    font-size: 0; }
    .toggle.toggle--navigation .toggle__button:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 40px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #232323;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale; }
  @media screen and (min-width: 62.5em) {
    .toggle.toggle--navigation {
      display: none; } }

.toggle.toggle--search {
  display: none; }
  @media screen and (min-width: 62.5em) {
    .toggle.toggle--search {
      display: block;
      float: left;
      background: #fff;
      background: white;
      padding-left: 1em; }
      .toggle.toggle--search .toggle__inner {
        display: table-cell;
        height: 3.75em;
        width: auto;
        vertical-align: middle; }
      .toggle.toggle--search .toggle__button {
        font-size: 0; }
        .toggle.toggle--search .toggle__button:before {
          display: inline-block;
          content: "";
          font-family: 'glyphs';
          font-size: 32px;
          font-variant: normal;
          text-align: center;
          text-transform: none;
          font-style: normal;
          font-weight: normal;
          color: #000;
          speak: none;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale;
          -webkit-transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
          -moz-transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
          transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955); } }

.aside {
  background: #414141;
  background: #414141;
  z-index: 5; }
  @media screen and (max-width: 62.4375em) {
    .aside {
      height: 100%;
      width: 17.5em;
      position: fixed;
      top: 0;
      bottom: 0;
      left: 0;
      padding-top: 3.125em;
      -webkit-transform: translate3d(-100%, 0, 0);
      -moz-transform: translate3d(-100%, 0, 0);
      -ms-transform: translate3d(-100%, 0, 0);
      -o-transform: translate3d(-100%, 0, 0);
      transform: translate3d(-100%, 0, 0);
      -webkit-transition: -webkit-transform, 500ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: -moz-transform, 500ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: transform, 500ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      overflow-y: auto; }
      .aside .aside__inner {
        max-height: 100%; } }
  @media screen and (min-width: 62.5em) {
    .aside {
      background: #fff;
      background: white;
      position: absolute;
      top: 0;
      left: 50%;
      margin-right: -17.1875em;
      height: 3.75em;
      width: auto;
      -webkit-transform: translateX(-50%);
      -moz-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      -o-transform: translateX(-50%);
      transform: translateX(-50%);
      z-index: 10; } }

.navigation .navigation__item {
  position: relative; }

.navigation .navigation__link {
  display: inline-block;
  height: auto;
  width: 100%;
  padding: 0.5em 1em;
  color: #fff;
  font-weight: 400;
  -webkit-transition: background-color 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: background-color 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: background-color 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955); }

@media screen and (max-width: 62.4375em) {
  .navigation {
    margin-top: 4em; }
    .navigation .navigation__item:before {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      height: 100%;
      width: 0px;
      background: #272727;
      background: #272727;
      -webkit-transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .navigation .navigation__item.navigation__item--active:before {
      content: '';
      position: absolute;
      top: 0;
      bottom: 0;
      left: 0;
      height: 100%;
      width: 4px;
      background: #ccc;
      background: #cccccc; }
    .navigation .navigation__item.navigation__item--active .navigation__link {
      background: #272727;
      background: #272727; } }

@media screen and (min-width: 62.5em) {
  .navigation {
    float: left;
    background: #fff;
    background: white;
    height: 3.75em;
    width: auto;
    line-height: 3.75em; }
    .navigation .navigation__item {
      display: inline-block; }
      .navigation .navigation__item:hover .navigation__text:before {
        height: 4px;
        width: 100%; }
      .navigation .navigation__item:hover > .subnavigation .subnavigation__inner {
        opacity: 1;
        -webkit-transition: opacity 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        -moz-transition: opacity 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        transition: opacity 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        width: 20em;
        height: auto;
        margin-left: auto; }
      .navigation .navigation__item.navigation__item--active .navigation__text:before {
        height: 4px;
        width: 100%; }
    .navigation .navigation__link {
      padding: 0 1em;
      color: #232323;
      font-weight: 600; }
    .navigation .navigation__text {
      position: relative; }
      .navigation .navigation__text:before {
        content: '';
        position: absolute;
        top: initial;
        right: 0;
        bottom: -0.25em;
        left: 0;
        height: 4px;
        width: 0;
        background: #5E94DF;
        background: #5e94df;
        -webkit-transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        -moz-transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955); } }

.subnavigation .subnavigation__toggle {
  position: absolute;
  top: 0.4rem;
  right: 1rem;
  font-size: 0; }
  .subnavigation .subnavigation__toggle:before {
    -webkit-transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 24px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }

.subnavigation .subnavigation__link {
  display: inline-block;
  height: auto;
  width: 100%;
  padding: 0.5em 0 0.5em 1em;
  color: #fff;
  font-size: 0.875em;
  font-weight: 400; }

.subnavigation.subnavigation--active .subnavigation__toggle:before {
  color: #ccc;
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transform: rotate(180deg); }

.subnavigation.subnavigation--active .subnavigation__inner {
  -webkit-transition: max-height 500ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: max-height 500ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: max-height 500ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  max-height: 200px; }

@media screen and (max-width: 62.4375em) {
  .subnavigation .subnavigation__inner {
    -webkit-transition: max-height 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: max-height 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: max-height 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    max-height: 0;
    overflow: hidden; } }

@media screen and (min-width: 62.5em) {
  .subnavigation {
    position: absolute; }
    .subnavigation .subnavigation__toggle {
      display: none; }
    .subnavigation .subnavigation__inner {
      height: 0;
      opacity: 0;
      overflow: hidden; }
    .subnavigation .subnavigation__list {
      background: #414141;
      background: #414141;
      line-height: 1.6; }
    .subnavigation .subnavigation__item {
      position: relative; }
      .subnavigation .subnavigation__item:before {
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        content: '';
        height: 100%;
        width: 0px;
        background: #ccc;
        background: #cccccc;
        -webkit-transition: all 100ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        -moz-transition: all 100ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        transition: all 100ms cubic-bezier(0.455, 0.03, 0.515, 0.955); }
      .subnavigation .subnavigation__item:hover:before {
        height: 100%;
        width: 4px; } }

.form.form--search {
  position: absolute;
  top: 3.625em;
  right: 0;
  left: 0;
  padding-top: 1em;
  padding-right: 1em;
  padding-left: 1em; }
  .form.form--search .form__field.form__field--search .form__input {
    height: 2em;
    width: 100%;
    padding: 0 2em 0 0.5em; }
    .form.form--search .form__field.form__field--search .form__input::-webkit-input-placeholder {
      padding-top: 0.1em;
      font-size: 0.875em; }
    .form.form--search .form__field.form__field--search .form__input::-moz-placeholder {
      padding-top: 0.1em;
      font-size: 0.875em; }
    .form.form--search .form__field.form__field--search .form__input:-moz-placeholder {
      padding-top: 0.1em;
      font-size: 0.875em; }
    .form.form--search .form__field.form__field--search .form__input:-ms-input-placeholder {
      padding-top: 0.1em;
      font-size: 0.875em; }
  .form.form--search .form__field.form__field--submit .form__submit {
    position: absolute;
    top: 1rem;
    right: 1rem;
    bottom: 1rem;
    height: 2rem;
    width: 2rem;
    font-size: 0; }
    .form.form--search .form__field.form__field--submit .form__submit:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 24px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #5890e3;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale; }
  @media screen and (min-width: 62.5em) {
    .form.form--search {
      -webkit-transform: translateY(-400%);
      -moz-transform: translateY(-400%);
      -ms-transform: translateY(-400%);
      -o-transform: translateY(-400%);
      transform: translateY(-400%);
      position: absolute;
      top: 3.75em;
      right: 0;
      left: 10px;
      height: 3em;
      width: 100%;
      background: #5890e3;
      background: #5890e3;
      -webkit-transition: all 400ms cubic-bezier(0.86, 0, 0.07, 1);
      -moz-transition: all 400ms cubic-bezier(0.86, 0, 0.07, 1);
      transition: all 400ms cubic-bezier(0.86, 0, 0.07, 1);
      z-index: -1;
      padding: 0.5em; }
      .form.form--search .form__field.form__field--submit .form__submit {
        position: absolute;
        top: 0.5rem;
        right: 0.5rem;
        bottom: 0.5rem; } }

.form.form--sign-in {
  position: relative;
  max-width: 31.25em;
  margin-left: auto;
  margin-right: auto; }
  .form.form--sign-in::after {
    clear: both;
    content: "";
    display: table; }
  .form.form--sign-in .form__inner {
    margin-right: 1em;
    margin-left: 1em; }
  .form.form--sign-in .form__heading {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727;
    color: #fff;
    text-align: center;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
    background: #5890e3;
    background: #5890e3; }
    @media screen and (min-width: 46.875em) {
      .form.form--sign-in .form__heading {
        font-size: 2.5em; } }
  .form.form--sign-in .form__form {
    padding: 1em;
    background: #f2f2f2;
    background: #f2f2f2; }
  .form.form--sign-in .form__field {
    position: relative;
    margin-top: 1.5em; }
    .form.form--sign-in .form__field:first-child {
      margin-top: 1em; }
    .form.form--sign-in .form__field.form__field--forgot-password {
      margin-top: 0.25em;
      font-size: 0.75em; }
      .form.form--sign-in .form__field.form__field--forgot-password .form__link {
        color: #5890e3; }
    .form.form--sign-in .form__field.form__field--sign-in {
      margin-top: 0.5em; }
  .form.form--sign-in .form__input[type=text], .form.form--sign-in .form__input[type=email], .form.form--sign-in .form__input[type=password] {
    height: auto;
    width: 100%;
    padding: 1em 0.5em;
    color: #272727;
    font-size: 0.875em;
    -webkit-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -moz-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    border-bottom: 3px solid #f2f2f2; }
    .form.form--sign-in .form__input[type=text]::-webkit-input-placeholder, .form.form--sign-in .form__input[type=email]::-webkit-input-placeholder, .form.form--sign-in .form__input[type=password]::-webkit-input-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--sign-in .form__input[type=text]::-moz-placeholder, .form.form--sign-in .form__input[type=email]::-moz-placeholder, .form.form--sign-in .form__input[type=password]::-moz-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--sign-in .form__input[type=text]:-moz-placeholder, .form.form--sign-in .form__input[type=email]:-moz-placeholder, .form.form--sign-in .form__input[type=password]:-moz-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--sign-in .form__input[type=text]:-ms-input-placeholder, .form.form--sign-in .form__input[type=email]:-ms-input-placeholder, .form.form--sign-in .form__input[type=password]:-ms-input-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--sign-in .form__input[type=text] ~ .form__label, .form.form--sign-in .form__input[type=email] ~ .form__label, .form.form--sign-in .form__input[type=password] ~ .form__label {
      position: absolute;
      top: -1.5em;
      right: 0;
      display: block;
      color: #5890e3;
      -webkit-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      text-align: right;
      white-space: nowrap;
      font-size: 10px;
      opacity: 0; }
    .form.form--sign-in .form__input[type=text]:focus, .form.form--sign-in .form__input[type=email]:focus, .form.form--sign-in .form__input[type=password]:focus {
      border-bottom: 3px solid #5890e3; }
      .form.form--sign-in .form__input[type=text]:focus ~ .form__label, .form.form--sign-in .form__input[type=email]:focus ~ .form__label, .form.form--sign-in .form__input[type=password]:focus ~ .form__label {
        opacity: 1; }
      .form.form--sign-in .form__input[type=text]:focus::-webkit-input-placeholder, .form.form--sign-in .form__input[type=email]:focus::-webkit-input-placeholder, .form.form--sign-in .form__input[type=password]:focus::-webkit-input-placeholder {
        color: #ffffff; }
      .form.form--sign-in .form__input[type=text]:focus::-moz-placeholder, .form.form--sign-in .form__input[type=email]:focus::-moz-placeholder, .form.form--sign-in .form__input[type=password]:focus::-moz-placeholder {
        color: #ffffff; }
      .form.form--sign-in .form__input[type=text]:focus:-moz-placeholder, .form.form--sign-in .form__input[type=email]:focus:-moz-placeholder, .form.form--sign-in .form__input[type=password]:focus:-moz-placeholder {
        color: #ffffff; }
      .form.form--sign-in .form__input[type=text]:focus:-ms-input-placeholder, .form.form--sign-in .form__input[type=email]:focus:-ms-input-placeholder, .form.form--sign-in .form__input[type=password]:focus:-ms-input-placeholder {
        color: #ffffff; }
    .form.form--sign-in .form__input[type=text]:valid ~ .form__label, .form.form--sign-in .form__input[type=email]:valid ~ .form__label, .form.form--sign-in .form__input[type=password]:valid ~ .form__label {
      opacity: 1; }
  .form.form--sign-in .form__input[type=radio] ~ .form__label, .form.form--sign-in .form__input[type=checkbox] ~ .form__label {
    position: relative;
    top: 1px;
    font-size: 0.875em;
    color: #272727; }
  .form.form--sign-in .form__submit {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 0;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%);
    background: #5890e3;
    background: #5890e3;
    width: 100%; }
    .form.form--sign-in .form__submit:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .form.form--sign-in .form__submit:after {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 18px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: 3px;
      left: 4px; }
    .form.form--sign-in .form__submit:hover {
      background: #6e9fe7;
      background: #6e9fe7; }

.form.form--register {
  position: relative;
  max-width: 46.875em;
  margin-left: auto;
  margin-right: auto;
  padding-bottom: 5em; }
  .form.form--register::after {
    clear: both;
    content: "";
    display: table; }
  .form.form--register .form__inner {
    margin-right: 1em;
    margin-left: 1em; }
  .form.form--register .form__heading {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727;
    color: #fff;
    text-align: center;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
    background: #5890e3;
    background: #5890e3; }
    @media screen and (min-width: 46.875em) {
      .form.form--register .form__heading {
        font-size: 2.5em; } }
  .form.form--register .form__copy {
    padding: 1em 1em 0;
    background: #f2f2f2;
    background: #f2f2f2; }
    .form.form--register .form__copy p {
      margin-top: 1em; }
  .form.form--register .form__form {
    padding: 1em; }
  .form.form--register .form__field {
    position: relative;
    margin-top: 1em; }
    .form.form--register .form__field:first-child {
      margin-top: 1em; }
    .form.form--register .form__field.form__field--forgot-password {
      margin-top: 0.25em;
      font-size: 0.75em; }
      .form.form--register .form__field.form__field--forgot-password .form__link {
        color: #5890e3; }
    .form.form--register .form__field.form__field--sign-in {
      margin-top: 0.5em; }
    .form.form--register .form__field.form__field--other {
      display: none; }
  .form.form--register .form__fieldset {
    margin-top: 2em; }
    .form.form--register .form__fieldset:first-child {
      margin-top: 1em; }
  .form.form--register .form__legend {
    font-weight: 600; }
  .form.form--register .form__input[type=text], .form.form--register .form__input[type=email], .form.form--register .form__input[type=password] {
    height: auto;
    width: 100%;
    padding: 1em 0.5em;
    margin-top: 0.5em;
    color: #272727;
    font-size: 0.875em;
    -webkit-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -moz-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    border-bottom: 3px solid #f2f2f2; }
    .form.form--register .form__input[type=text]::-webkit-input-placeholder, .form.form--register .form__input[type=email]::-webkit-input-placeholder, .form.form--register .form__input[type=password]::-webkit-input-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--register .form__input[type=text]::-moz-placeholder, .form.form--register .form__input[type=email]::-moz-placeholder, .form.form--register .form__input[type=password]::-moz-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--register .form__input[type=text]:-moz-placeholder, .form.form--register .form__input[type=email]:-moz-placeholder, .form.form--register .form__input[type=password]:-moz-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--register .form__input[type=text]:-ms-input-placeholder, .form.form--register .form__input[type=email]:-ms-input-placeholder, .form.form--register .form__input[type=password]:-ms-input-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--register .form__input[type=text] ~ .form__label, .form.form--register .form__input[type=email] ~ .form__label, .form.form--register .form__input[type=password] ~ .form__label {
      position: absolute;
      top: -1em;
      right: 0;
      display: block;
      color: #5890e3;
      -webkit-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      text-align: right;
      white-space: nowrap;
      font-size: 10px;
      opacity: 0; }
    .form.form--register .form__input[type=text]:focus, .form.form--register .form__input[type=email]:focus, .form.form--register .form__input[type=password]:focus {
      border-bottom: 3px solid #5890e3; }
      .form.form--register .form__input[type=text]:focus ~ .form__label, .form.form--register .form__input[type=email]:focus ~ .form__label, .form.form--register .form__input[type=password]:focus ~ .form__label {
        opacity: 1; }
      .form.form--register .form__input[type=text]:focus::-webkit-input-placeholder, .form.form--register .form__input[type=email]:focus::-webkit-input-placeholder, .form.form--register .form__input[type=password]:focus::-webkit-input-placeholder {
        color: #ffffff; }
      .form.form--register .form__input[type=text]:focus::-moz-placeholder, .form.form--register .form__input[type=email]:focus::-moz-placeholder, .form.form--register .form__input[type=password]:focus::-moz-placeholder {
        color: #ffffff; }
      .form.form--register .form__input[type=text]:focus:-moz-placeholder, .form.form--register .form__input[type=email]:focus:-moz-placeholder, .form.form--register .form__input[type=password]:focus:-moz-placeholder {
        color: #ffffff; }
      .form.form--register .form__input[type=text]:focus:-ms-input-placeholder, .form.form--register .form__input[type=email]:focus:-ms-input-placeholder, .form.form--register .form__input[type=password]:focus:-ms-input-placeholder {
        color: #ffffff; }
    .form.form--register .form__input[type=text]:valid ~ .form__label, .form.form--register .form__input[type=email]:valid ~ .form__label, .form.form--register .form__input[type=password]:valid ~ .form__label {
      opacity: 1; }
  .form.form--register .form__input[type=radio] ~ .form__label, .form.form--register .form__input[type=checkbox] ~ .form__label {
    position: relative;
    top: 1px;
    font-size: 0.875em;
    color: #272727; }
  .form.form--register .form__input.form__input--select {
    -webkit-appearance: none;
    height: auto;
    width: 100%;
    padding: 1em 0.5em;
    margin-top: 0.5em;
    color: #272727;
    font-size: 0.875em;
    -webkit-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -moz-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    border: none;
    border-bottom: 3px solid #f2f2f2;
    background: white;
    border-radius: 0; }
  .form.form--register .form__submit {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 0;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%);
    background: #5890e3;
    background: #5890e3;
    width: 100%; }
    .form.form--register .form__submit:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .form.form--register .form__submit:after {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 18px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: 3px;
      left: 4px; }
    .form.form--register .form__submit:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
  @media screen and (min-width: 62.5em) {
    .form.form--register .form__inner {
      margin-right: 0;
      margin-left: 0; } }

.form.form--product {
  position: relative;
  padding-top: 2.5em;
  padding-bottom: 4em;
  max-width: 46.875em;
  margin-left: auto;
  margin-right: auto; }
  .form.form--product::after {
    clear: both;
    content: "";
    display: table; }
  .form.form--product .form__inner {
    margin-right: 1em;
    margin-left: 1em; }
  .form.form--product .form__copy {
    padding: 1em 1em 0;
    text-align: center; }
    .form.form--product .form__copy p {
      margin-top: 1em;
      font-size: 1.25em; }
  .form.form--product .form__form {
    padding: 1em; }
  .form.form--product .form__field {
    position: relative;
    margin-top: 1em; }
    .form.form--product .form__field:first-child {
      margin-top: 1em; }
    .form.form--product .form__field.form__field--forgot-password {
      margin-top: 0.25em;
      font-size: 0.75em; }
      .form.form--product .form__field.form__field--forgot-password .form__link {
        color: #5890e3; }
    .form.form--product .form__field.form__field--sign-in {
      margin-top: 0.5em; }
    .form.form--product .form__field.form__field--other {
      display: none; }
  .form.form--product .form__fieldset {
    margin-top: 2em; }
    .form.form--product .form__fieldset:first-child {
      margin-top: 1em; }
  .form.form--product .form__legend {
    font-weight: 600; }
  .form.form--product .form__input[type=text], .form.form--product .form__input[type=email], .form.form--product .form__input[type=password] {
    height: auto;
    width: 100%;
    padding: 1em 0.5em;
    margin-top: 0.5em;
    color: #272727;
    font-size: 0.875em;
    -webkit-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    -moz-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
    border-bottom: 3px solid #f2f2f2;
    background: #f2f2f2;
    background: #f2f2f2; }
    .form.form--product .form__input[type=text]::-webkit-input-placeholder, .form.form--product .form__input[type=email]::-webkit-input-placeholder, .form.form--product .form__input[type=password]::-webkit-input-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--product .form__input[type=text]::-moz-placeholder, .form.form--product .form__input[type=email]::-moz-placeholder, .form.form--product .form__input[type=password]::-moz-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--product .form__input[type=text]:-moz-placeholder, .form.form--product .form__input[type=email]:-moz-placeholder, .form.form--product .form__input[type=password]:-moz-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--product .form__input[type=text]:-ms-input-placeholder, .form.form--product .form__input[type=email]:-ms-input-placeholder, .form.form--product .form__input[type=password]:-ms-input-placeholder {
      -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .form.form--product .form__input[type=text] ~ .form__label, .form.form--product .form__input[type=email] ~ .form__label, .form.form--product .form__input[type=password] ~ .form__label {
      position: absolute;
      top: -1em;
      right: 0;
      display: block;
      color: #5890e3;
      -webkit-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
      text-align: right;
      white-space: nowrap;
      font-size: 10px;
      opacity: 0; }
    .form.form--product .form__input[type=text]:focus, .form.form--product .form__input[type=email]:focus, .form.form--product .form__input[type=password]:focus {
      border-bottom: 3px solid #5890e3;
      background: #f2f2f2;
      background: rgba(242, 242, 242, 0); }
      .form.form--product .form__input[type=text]:focus ~ .form__label, .form.form--product .form__input[type=email]:focus ~ .form__label, .form.form--product .form__input[type=password]:focus ~ .form__label {
        opacity: 1; }
      .form.form--product .form__input[type=text]:focus::-webkit-input-placeholder, .form.form--product .form__input[type=email]:focus::-webkit-input-placeholder, .form.form--product .form__input[type=password]:focus::-webkit-input-placeholder {
        color: #ffffff; }
      .form.form--product .form__input[type=text]:focus::-moz-placeholder, .form.form--product .form__input[type=email]:focus::-moz-placeholder, .form.form--product .form__input[type=password]:focus::-moz-placeholder {
        color: #ffffff; }
      .form.form--product .form__input[type=text]:focus:-moz-placeholder, .form.form--product .form__input[type=email]:focus:-moz-placeholder, .form.form--product .form__input[type=password]:focus:-moz-placeholder {
        color: #ffffff; }
      .form.form--product .form__input[type=text]:focus:-ms-input-placeholder, .form.form--product .form__input[type=email]:focus:-ms-input-placeholder, .form.form--product .form__input[type=password]:focus:-ms-input-placeholder {
        color: #ffffff; }
    .form.form--product .form__input[type=text]:valid ~ .form__label, .form.form--product .form__input[type=email]:valid ~ .form__label, .form.form--product .form__input[type=password]:valid ~ .form__label {
      opacity: 1; }
  .form.form--product .form__submit {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 0;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%);
    width: 100%; }
    .form.form--product .form__submit:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .form.form--product .form__submit:after {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 18px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: 3px;
      left: 4px; }
  .form.form--product .form__button {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 0;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%);
    width: 100%;
    border-radius: 10px; }
    .form.form--product .form__button:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .form.form--product .form__button:after {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 18px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: 3px;
      left: 4px; }
  @media screen and (min-width: 46.875em) {
    .form.form--product .form__form {
      margin-right: 4em;
      margin-left: 4em; }
    .form.form--product .form__submit {
      height: auto;
      width: 48%;
      float: left; }
    .form.form--product .form__button {
      height: auto;
      width: 48%;
      float: right; } }
  @media screen and (min-width: 62.5em) {
    .form.form--product .form__inner {
      margin-right: 0;
      margin-left: 0; } }

.form.form--splunk .form__input[type=text] ~ .form__label, .form.form--splunk .form__input[type=email] ~ .form__label, .form.form--splunk .form__input[type=password] ~ .form__label {
  color: #000; }

.form.form--splunk .form__input[type=text]:focus, .form.form--splunk .form__input[type=email]:focus, .form.form--splunk .form__input[type=password]:focus {
  border-bottom: 3px solid #000;
  background: #f2f2f2;
  background: rgba(242, 242, 242, 0); }
  .form.form--splunk .form__input[type=text]:focus ~ .form__label, .form.form--splunk .form__input[type=email]:focus ~ .form__label, .form.form--splunk .form__input[type=password]:focus ~ .form__label {
    opacity: 1; }
  .form.form--splunk .form__input[type=text]:focus::-webkit-input-placeholder, .form.form--splunk .form__input[type=email]:focus::-webkit-input-placeholder, .form.form--splunk .form__input[type=password]:focus::-webkit-input-placeholder {
    color: #ffffff; }
  .form.form--splunk .form__input[type=text]:focus::-moz-placeholder, .form.form--splunk .form__input[type=email]:focus::-moz-placeholder, .form.form--splunk .form__input[type=password]:focus::-moz-placeholder {
    color: #ffffff; }
  .form.form--splunk .form__input[type=text]:focus:-moz-placeholder, .form.form--splunk .form__input[type=email]:focus:-moz-placeholder, .form.form--splunk .form__input[type=password]:focus:-moz-placeholder {
    color: #ffffff; }
  .form.form--splunk .form__input[type=text]:focus:-ms-input-placeholder, .form.form--splunk .form__input[type=email]:focus:-ms-input-placeholder, .form.form--splunk .form__input[type=password]:focus:-ms-input-placeholder {
    color: #ffffff; }

.form.form--splunk .form__input[type=text]:valid ~ .form__label, .form.form--splunk .form__input[type=email]:valid ~ .form__label, .form.form--splunk .form__input[type=password]:valid ~ .form__label {
  opacity: 1; }

.form.form--splunk .form__submit {
  display: inline-block;
  margin-top: 1em;
  background: #5890e3;
  background: #5890e3;
  color: #fff;
  font-weight: bold;
  font-size: 14px;
  text-transform: uppercase;
  padding: 0.5em 1em;
  -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  line-height: normal;
  position: relative;
  left: 0;
  -webkit-transform: translateX(0%);
  -moz-transform: translateX(0%);
  -ms-transform: translateX(0%);
  -o-transform: translateX(0%);
  transform: translateX(0%);
  background: #000;
  background: black;
  width: 48%; }
  .form.form--splunk .form__submit:hover {
    background: #6e9fe7;
    background: #6e9fe7; }
  .form.form--splunk .form__submit:after {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 3px;
    left: 4px; }

.form.form--splunk .form__button {
  display: inline-block;
  margin-top: 1em;
  background: #5890e3;
  background: #5890e3;
  color: #fff;
  font-weight: bold;
  font-size: 14px;
  text-transform: uppercase;
  padding: 0.5em 1em;
  -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  line-height: normal;
  position: relative;
  left: 0;
  -webkit-transform: translateX(0%);
  -moz-transform: translateX(0%);
  -ms-transform: translateX(0%);
  -o-transform: translateX(0%);
  transform: translateX(0%);
  background: #000;
  background: black;
  width: 48%; }
  .form.form--splunk .form__button:hover {
    background: #6e9fe7;
    background: #6e9fe7; }
  .form.form--splunk .form__button:after {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 3px;
    left: 4px; }

.form.form--split .form__form {
  padding: 0; }

@media screen and (max-width: 62.4375em) {
  .form.form--split .progress {
    margin-top: -2.5em; } }

@media screen and (min-width: 62.5em) {
  .form.form--split {
    max-width: none; }
    .form.form--split .form__form {
      padding: 0; }
    .form.form--split .form__fieldset {
      padding: 1em; }
    .form.form--split .form__region:nth-child(1) {
      float: left;
      display: block;
      margin-right: 1.16509%;
      width: 49.41745%; }
      .form.form--split .form__region:nth-child(1):last-child {
        margin-right: 0; }
      .form.form--split .form__region:nth-child(1) .form__fieldset {
        padding: 0; }
    .form.form--split .form__region:nth-child(2) {
      padding-top: 5em;
      padding-bottom: 5em;
      margin-left: 4.21521%;
      float: left;
      display: block;
      margin-right: 1.16509%;
      width: 45.20224%;
      margin-right: 0; }
      .form.form--split .form__region:nth-child(2):last-child {
        margin-right: 0; }
    .form.form--split .form__field.form__field--submit {
      margin-top: 0;
      padding-right: 1em;
      padding-left: 1em; }
    .form.form--split .form__submit {
      margin-top: 0.5em; } }

.form.form--newsletter {
  display: none; }
  @media screen and (min-width: 62.5em) {
    .form.form--newsletter {
      display: block;
      margin-top: 2.5em;
      background: #fafafa;
      padding: 1.75em; }
      .form.form--newsletter .form__heading {
        font-weight: 700;
        font-size: 1.125em; }
      .form.form--newsletter .form__copy {
        margin-top: 1em;
        font-size: 0.875em; }
      .form.form--newsletter .form__form {
        margin-top: 1em; }
      .form.form--newsletter .form__field {
        position: relative; }
      .form.form--newsletter .form__input[type=text], .form.form--newsletter .form__input[type=email], .form.form--newsletter .form__input[type=password] {
        height: auto;
        width: 100%;
        padding: 1em 0.5em;
        margin-top: 0.5em;
        color: #272727;
        font-size: 0.875em;
        -webkit-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
        -moz-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
        transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
        border-bottom: 3px solid #f2f2f2;
        background: #fff;
        background: white; }
        .form.form--newsletter .form__input[type=text]::-webkit-input-placeholder, .form.form--newsletter .form__input[type=email]::-webkit-input-placeholder, .form.form--newsletter .form__input[type=password]::-webkit-input-placeholder {
          -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
        .form.form--newsletter .form__input[type=text]::-moz-placeholder, .form.form--newsletter .form__input[type=email]::-moz-placeholder, .form.form--newsletter .form__input[type=password]::-moz-placeholder {
          -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
        .form.form--newsletter .form__input[type=text]:-moz-placeholder, .form.form--newsletter .form__input[type=email]:-moz-placeholder, .form.form--newsletter .form__input[type=password]:-moz-placeholder {
          -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
        .form.form--newsletter .form__input[type=text]:-ms-input-placeholder, .form.form--newsletter .form__input[type=email]:-ms-input-placeholder, .form.form--newsletter .form__input[type=password]:-ms-input-placeholder {
          -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
        .form.form--newsletter .form__input[type=text] ~ .form__label, .form.form--newsletter .form__input[type=email] ~ .form__label, .form.form--newsletter .form__input[type=password] ~ .form__label {
          position: absolute;
          top: -1em;
          right: 0;
          display: block;
          color: #5890e3;
          -webkit-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          -moz-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
          text-align: right;
          white-space: nowrap;
          font-size: 10px;
          opacity: 0; }
        .form.form--newsletter .form__input[type=text]:focus, .form.form--newsletter .form__input[type=email]:focus, .form.form--newsletter .form__input[type=password]:focus {
          border-bottom: 3px solid #5890e3; }
          .form.form--newsletter .form__input[type=text]:focus ~ .form__label, .form.form--newsletter .form__input[type=email]:focus ~ .form__label, .form.form--newsletter .form__input[type=password]:focus ~ .form__label {
            opacity: 1; }
          .form.form--newsletter .form__input[type=text]:focus::-webkit-input-placeholder, .form.form--newsletter .form__input[type=email]:focus::-webkit-input-placeholder, .form.form--newsletter .form__input[type=password]:focus::-webkit-input-placeholder {
            color: #ffffff; }
          .form.form--newsletter .form__input[type=text]:focus::-moz-placeholder, .form.form--newsletter .form__input[type=email]:focus::-moz-placeholder, .form.form--newsletter .form__input[type=password]:focus::-moz-placeholder {
            color: #ffffff; }
          .form.form--newsletter .form__input[type=text]:focus:-moz-placeholder, .form.form--newsletter .form__input[type=email]:focus:-moz-placeholder, .form.form--newsletter .form__input[type=password]:focus:-moz-placeholder {
            color: #ffffff; }
          .form.form--newsletter .form__input[type=text]:focus:-ms-input-placeholder, .form.form--newsletter .form__input[type=email]:focus:-ms-input-placeholder, .form.form--newsletter .form__input[type=password]:focus:-ms-input-placeholder {
            color: #ffffff; }
        .form.form--newsletter .form__input[type=text]:valid ~ .form__label, .form.form--newsletter .form__input[type=email]:valid ~ .form__label, .form.form--newsletter .form__input[type=password]:valid ~ .form__label {
          opacity: 1; }
      .form.form--newsletter .form__submit {
        font-size: 0.875em;
        display: inline-block;
        margin-top: 1em;
        background: #5890e3;
        background: #5890e3;
        color: #fff;
        font-weight: bold;
        font-size: 14px;
        text-transform: uppercase;
        padding: 0.5em 1em;
        -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        line-height: normal;
        position: relative;
        left: 0;
        -webkit-transform: translateX(0%);
        -moz-transform: translateX(0%);
        -ms-transform: translateX(0%);
        -o-transform: translateX(0%);
        transform: translateX(0%);
        width: 100%; }
        .form.form--newsletter .form__submit:hover {
          background: #6e9fe7;
          background: #6e9fe7; } }

.form.form--single-line {
  padding-bottom: 10em; }
  .form.form--single-line .form__inner {
    margin-right: auto;
    margin-left: auto;
    max-width: 90%; }
    .form.form--single-line .form__inner::after {
      clear: both;
      content: "";
      display: table; }
    @media screen and (min-width: 62.5em) {
      .form.form--single-line .form__inner {
        max-width: 1000px; } }
  .form.form--single-line .form__form {
    padding: 0em; }
  .form.form--single-line .form__field {
    position: relative;
    margin-top: 1.5em; }
    .form.form--single-line .form__field.form__field--single-line {
      border: 1px solid;
      height: 30px;
      width: 80%;
      padding-right: 100px; }
    .form.form--single-line .form__field.form__field--single-line-button {
      border: 1px solid;
      height: 30px;
      width: 100px;
      padding-left: -100px; }

.menu.menu--longitude .menu__list {
  padding-top: 1em;
  padding-bottom: 1em;
  text-align: center; }

.menu.menu--longitude .menu__item {
  display: block; }

.menu.menu--longitude .menu__link {
  color: #5890e3;
  font-size: 1.25em;
  font-weight: 600;
  text-transform: uppercase;
  display: inline-block;
  padding-top: 0.5em;
  padding-bottom: 0.5em; }
  .menu.menu--longitude .menu__link:after {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 28px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #5890e3;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 4px;
    left: 2px; }

@media screen and (min-width: 62.5em) {
  .menu.menu--longitude .menu__item {
    margin-right: 1.5em;
    margin-left: 1.5em;
    display: inline-block; } }

.menu.menu--header .menu__item:nth-child(1) .menu__link {
  background: #dc5323;
  background: #dc5323;
  border: 1px solid #dc5323; }

.menu.menu--header .menu__item:nth-child(2) .menu__link {
  background: #000;
  background: black;
  border: 1px solid #000; }

.menu.menu--header .menu__link {
  display: block;
  margin: 0.5em 1em;
  padding: 0.5em 1em;
  color: #fff;
  font-weight: 400;
  text-align: center;
  -webkit-transition: all 100ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: all 100ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: all 100ms cubic-bezier(0.455, 0.03, 0.515, 0.955); }

@media screen and (max-width: 62.4375em) {
  .menu.menu--header {
    margin-top: 1em; } }

@media screen and (min-width: 62.5em) {
  .menu.menu--header {
    float: left;
    background: #272727;
    background: #272727;
    padding-left: 1em; }
    .menu.menu--header .menu__inner {
      height: 3.75em;
      width: auto;
      display: table-cell;
      vertical-align: middle; }
    .menu.menu--header .menu__item {
      display: inline-block;
      margin: 0 0.5em; }
      .menu.menu--header .menu__item:hover:nth-child(1) .menu__link {
        border: 1px solid #ea987b; }
      .menu.menu--header .menu__item:hover:nth-child(2) .menu__link {
        border: 1px solid #333333; }
    .menu.menu--header .menu__link {
      margin: 0; } }

.menu.menu--footer {
  position: relative;
  margin-top: 1em; }
  .menu.menu--footer .menu__list {
    text-align: center; }
  .menu.menu--footer .menu__item:last-child {
    margin-top: 1em; }
    .menu.menu--footer .menu__item:last-child .menu__link {
      font-size: 12px; }
  .menu.menu--footer .menu__link {
    font-size: 14px;
    color: #fff;
    display: inline-block; }
  @media screen and (min-width: 46.875em) {
    .menu.menu--footer .menu__item {
      display: inline-block; }
      .menu.menu--footer .menu__item:before {
        content: '|';
        padding-right: 0.5em;
        padding-left: 0.5em;
        color: #fff;
        font-size: 14px; }
      .menu.menu--footer .menu__item:first-child:before {
        display: none; }
      .menu.menu--footer .menu__item:last-child {
        display: block; }
        .menu.menu--footer .menu__item:last-child:before {
          display: none; } }

.menu.menu--social .menu__list {
  text-align: center; }

.menu.menu--social .menu__item {
  display: inline-block; }
  .menu.menu--social .menu__item.menu__item--facebook .menu__link:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 24px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }
  .menu.menu--social .menu__item.menu__item--twitter .menu__link:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 24px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }
  .menu.menu--social .menu__item.menu__item--googleplus .menu__link:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 24px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }
  .menu.menu--social .menu__item.menu__item--email .menu__link:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 24px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }

.menu.menu--social .menu__link {
  display: inline-block;
  font-size: 0; }
  .menu.menu--social .menu__link:before {
    padding-right: 0.25em;
    padding-left: 0.25em; }

.menu.menu--about-us {
  display: none; }
  @media screen and (min-width: 62.5em) {
    .menu.menu--about-us {
      display: block;
      margin-top: 5.65em;
      background: #fafafa;
      padding: 1.75em; }
      .menu.menu--about-us .menu__list {
        margin-top: 1em; }
      .menu.menu--about-us .menu__heading {
        font-weight: 700;
        font-size: 1.125em; }
      .menu.menu--about-us .menu__item.menu__item--active .menu__link {
        font-weight: 700; }
      .menu.menu--about-us .menu__link {
        display: inline-block;
        padding-top: 0.5em;
        padding-bottom: 0.5em;
        color: #5890e3;
        font-size: 0.9375em; } }

.menu.menu--help {
  display: none; }
  @media screen and (min-width: 62.5em) {
    .menu.menu--help {
      display: block;
      margin-top: 5.65em;
      background: #fafafa;
      padding: 1.75em; }
      .menu.menu--help .menu__list {
        margin-top: 1em; }
      .menu.menu--help .menu__heading {
        font-weight: 700;
        font-size: 1.125em; }
      .menu.menu--help .menu__item.menu__item--active .menu__link {
        font-weight: 700; }
      .menu.menu--help .menu__link {
        display: inline-block;
        padding-top: 0.5em;
        padding-bottom: 0.5em;
        color: #5890e3;
        font-size: 0.9375em; } }
  .menu.menu--help .menu__item:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #5890e3;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 2px; }
  .menu.menu--help .menu__item.menu__item--toggled:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #5890e3;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 2px; }
  .menu.menu--help .menu__item.menu__item--toggled .submenu {
    display: block; }

.resources {
  margin: 155px 0 0 15px;
  padding: 20px 5px 20px 15px;
  background-color: #fafafa;
  font-family: 'Open-Sans', sans-serif; }
  .resources table {
    table-layout: fixed; }
    .resources table tr td {
      padding: 10px; }
  .resources h3 {
    color: black;
    margin-bottom: 20px; }
    .resources h3 a {
      color: black; }
  .resources ul li {
    padding-top: 15px;
    font-size: 16px;
    color: #5890e3; }
    .resources ul li a {
      color: #5890e3; }
    .resources ul li ul li {
      padding-left: 15px;
      padding-top: 5px;
      font-size: 14px; }
  @media (max-width: 1000px) {
    .resources {
      margin: 0 0 0 20px; }
      .resources table tr td {
        display: block;
        padding: 5px; }
      .resources table tr th {
        display: none; } }

.submenu.submenu--help {
  display: none; }
  .submenu.submenu--help .submenu__item.submenu__item--active .submenu__link {
    font-weight: 700; }
  .submenu.submenu--help .submenu__item.submenu__item--toggled .subsubmenu, .submenu.submenu--help .submenu__item.submenu__item--active .subsubmenu {
    display: block; }
  .submenu.submenu--help .submenu__link {
    display: inline-block;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
    color: #5890e3;
    font-size: 0.875em; }

.subsubmenu.subsubmenu--help {
  display: none;
  padding-left: 0.5em; }
  .subsubmenu.subsubmenu--help .subsubmenu__item.subsubmenu__item--active .subsubmenu__link {
    font-weight: 700; }
  .subsubmenu.subsubmenu--help .subsubmenu__link {
    display: inline-block;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
    color: #5890e3;
    font-size: 0.8125em; }

.subsubmenu.subsubmenu--active {
  display: block; }

.carousel {
  padding-top: 2.5em;
  padding-bottom: 2.5em;
  background: #000;
  background: black; }
  .carousel .carousel__inner {
    position: relative;
    max-width: 80%;
    margin-left: auto;
    margin-right: auto; }
    .carousel .carousel__inner::after {
      clear: both;
      content: "";
      display: table; }
  .carousel .carousel__button {
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
    font-size: 0; }
    .carousel .carousel__button:before {
      -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .carousel .carousel__button.carousel__button--previous {
      position: absolute;
      top: 50%;
      left: -40px; }
      .carousel .carousel__button.carousel__button--previous:before {
        display: inline-block;
        content: "";
        font-family: 'glyphs';
        font-size: 50px;
        font-variant: normal;
        text-align: center;
        text-transform: none;
        font-style: normal;
        font-weight: normal;
        color: #999;
        speak: none;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale; }
      .carousel .carousel__button.carousel__button--previous:hover:before {
        color: #5890e3; }
    .carousel .carousel__button.carousel__button--next {
      position: absolute;
      top: 50%;
      right: -40px; }
      .carousel .carousel__button.carousel__button--next:before {
        display: inline-block;
        content: "";
        font-family: 'glyphs';
        font-size: 50px;
        font-variant: normal;
        text-align: center;
        text-transform: none;
        font-style: normal;
        font-weight: normal;
        color: #999;
        speak: none;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale; }
      .carousel .carousel__button.carousel__button--next:hover:before {
        color: #5890e3; }
  .carousel .slick-slide {
    outline: none; }
  .carousel .slick-dots {
    margin-top: 1em;
    text-align: center; }
    .carousel .slick-dots li {
      display: inline-block; }
      .carousel .slick-dots li.slick-active button:before, .carousel .slick-dots li:hover button:before {
        background-color: #5890e3;
        border-color: #5890e3;
        -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
        transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .carousel .slick-dots button {
      font-size: 0;
      padding-right: 2px;
      padding-left: 2px; }
      .carousel .slick-dots button:before {
        position: relative;
        display: block;
        content: '';
        border-radius: 50%;
        border: 1px solid #999;
        height: 10px;
        width: 10px; }
  .carousel .carousel__cta {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    transform: translateX(-50%); }
    .carousel .carousel__cta:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .carousel .carousel__cta:after {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 18px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: 3px;
      left: 4px; }
  @media screen and (min-width: 46.875em) {
    .carousel .carousel__button.carousel__button--previous:before {
      font-size: 70px; }
    .carousel .carousel__button.carousel__button--next:before {
      font-size: 70px; } }
  @media screen and (min-width: 62.5em) {
    .carousel .carousel__button.carousel__button--previous {
      position: absolute;
      left: -80px; }
    .carousel .carousel__button.carousel__button--next {
      position: absolute;
      right: -80px; } }

.slide .slide__inner {
  max-width: 500px;
  margin-left: auto;
  margin-right: auto; }
  .slide .slide__inner::after {
    clear: both;
    content: "";
    display: table; }

.slide .slide__heading {
  font-weight: 700;
  font-size: 1.5em;
  line-height: 1.2;
  color: #272727; }

.slide .slide__copy {
  margin-top: 1em;
  margin-bottom: 1em;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.8;
  color: #272727;
  color: #fff; }
  .slide .slide__copy strong {
    font-weight: 600; }
  .slide .slide__copy a {
    color: #5890e3; }
    .slide .slide__copy a:hover {
      color: #2c73dc; }

.slide .slide__cta {
  display: inline-block;
  margin-top: 1em;
  background: #5890e3;
  background: #5890e3;
  color: #fff;
  font-weight: bold;
  font-size: 14px;
  text-transform: uppercase;
  padding: 0.5em 1em;
  -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  line-height: normal;
  position: relative;
  left: 50%;
  -webkit-transform: translateX(-50%);
  -moz-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  transform: translateX(-50%); }
  .slide .slide__cta:hover {
    background: #6e9fe7;
    background: #6e9fe7; }
  .slide .slide__cta:after {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 3px;
    left: 4px; }

.slide .slide__figure {
  text-align: center; }

.slide .slide__link {
  display: inline-block; }

.slide .slide__image {
  margin-top: 1em;
  display: inline-block;
  height: auto;
  max-width: 100%; }

.slide .slide__content {
  text-align: center; }
  .slide .slide__content img {
    height: auto;
    max-width: 100%; }
  .slide .slide__content h2 {
    font-size: 1.75em;
    font-weight: 600;
    line-height: 1.4; }
  .slide .slide__content em {
    font-style: italic; }
  .slide .slide__content p {
    margin-top: 0.5em;
    margin-bottom: 0.5em; }

@media screen and (min-width: 46.875em) {
  .slide .slide__content {
    text-align: center; }
    .slide .slide__content img {
      margin-right: auto;
      margin-left: auto; }
  .slide .slide__heading {
    font-size: 2em; }
  .slide .slide__cta {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 0;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%); }
    .slide .slide__cta:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .slide .slide__cta:after {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 18px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: 3px;
      left: 4px; }
  .slide .slide__image {
    margin-top: 2em; } }

@media screen and (min-width: 62.5em) {
  .slide .slide__inner {
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    height: 300px;
    width: 100%; }
    .slide .slide__inner::after {
      clear: both;
      content: "";
      display: table; }
  .slide .slide__content {
    text-align: left;
    position: absolute;
    top: 50%;
    right: 0;
    padding-right: 1em;
    height: auto;
    width: 60%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%); }
    .slide .slide__content img {
      margin-right: 0;
      margin-left: 0; }
    .slide .slide__content h1 {
      font-size: 2.25em;
      font-weight: 400; }
    .slide .slide__content h2 {
      font-size: 2.25em;
      font-weight: 400; }
  .slide .slide__figure {
    position: absolute;
    top: 50%;
    left: 0;
    height: auto;
    width: 40%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%); } }

@media screen and (min-width: 62.5em) {
  .slide.slide--no-image .slide__figure {
    display: none; }
  .slide.slide--no-image .slide__content {
    text-align: center;
    position: absolute;
    top: 50%;
    right: 0;
    left: 0;
    height: auto;
    width: 100%; }
    .slide.slide--no-image .slide__content img {
      margin-right: auto;
      margin-left: auto; } }

@media screen and (min-width: 62.5em) {
  .home .slide .slide__inner {
    height: 400px;
    width: 100%; } }

.collection.collection--plans {
  padding-top: 2.5em;
  padding-bottom: 2.5em;
  background: #f2f2f2;
  background: #f2f2f2; }
  .collection.collection--plans .slick-slide, .collection.collection--plans .slick-slide a {
    outline: none !important; }
  .collection.collection--plans .slick-arrow {
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
    font-size: 0;
    z-index: 1; }
    .collection.collection--plans .slick-arrow:before {
      -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
      -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
      transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955); }
    .collection.collection--plans .slick-arrow.slick-prev {
      position: absolute;
      top: 50%;
      left: -5px; }
      .collection.collection--plans .slick-arrow.slick-prev:before {
        display: inline-block;
        content: "";
        font-family: 'glyphs';
        font-size: 50px;
        font-variant: normal;
        text-align: center;
        text-transform: none;
        font-style: normal;
        font-weight: normal;
        color: #5890e3;
        speak: none;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale; }
      .collection.collection--plans .slick-arrow.slick-prev:hover:before {
        color: #5890e3; }
    .collection.collection--plans .slick-arrow.slick-next {
      position: absolute;
      top: 50%;
      right: -5px; }
      .collection.collection--plans .slick-arrow.slick-next:before {
        display: inline-block;
        content: "";
        font-family: 'glyphs';
        font-size: 50px;
        font-variant: normal;
        text-align: center;
        text-transform: none;
        font-style: normal;
        font-weight: normal;
        color: #5890e3;
        speak: none;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale; }
      .collection.collection--plans .slick-arrow.slick-next:hover:before {
        color: #5890e3; }
  @media screen and (min-width: 62.5em) {
    .collection.collection--plans {
      padding-top: 5em;
      padding-bottom: 5em; }
      .collection.collection--plans .collection__inner {
        max-width: 1000px;
        margin-left: auto;
        margin-right: auto; }
        .collection.collection--plans .collection__inner::after {
          clear: both;
          content: "";
          display: table; } }
  .collection.collection--plans .collection__cta {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    transform: translateX(-50%);
    background-color: transparent;
    border: 1px solid #fff;
    margin-top: 2.5em;
    display: none; }
    .collection.collection--plans .collection__cta:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .collection.collection--plans .collection__cta:hover {
      background-color: #fff;
      color: #5890e3; }
      .collection.collection--plans .collection__cta:hover:after {
        color: #5890e3; }
  @media screen and (min-width: 62.5em) {
    .collection.collection--plans {
      padding-bottom: 0; } }

.collection.collection--plan-descriptions {
  padding-top: 2.5em;
  padding-bottom: 2.5em;
  background: #f2f2f2;
  background: #f2f2f2; }
  .collection.collection--plan-descriptions .collection__inner {
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto; }
    .collection.collection--plan-descriptions .collection__inner::after {
      clear: both;
      content: "";
      display: table; }
  .collection.collection--plan-descriptions .collection__cta {
    display: none; }
  @media screen and (min-width: 62.5em) {
    .collection.collection--plan-descriptions {
      padding-bottom: 5em; } }

.collection.collection--testimonials {
  padding-top: 0.5em;
  padding-bottom: 0.5em; }
  .collection.collection--testimonials .collection__item {
    height: 350px;
    position: relative; }
  @media screen and (min-width: 46.875em) {
    .collection.collection--testimonials .collection__item {
      height: 250px;
      width: auto; } }
  @media screen and (min-width: 62.5em) {
    .collection.collection--testimonials {
      padding-top: 0.5em;
      padding-bottom: 0.5em; } }

.collection.collection--recent-news {
  padding-top: 2.5em;
  padding-bottom: 5em; }
  .collection.collection--recent-news .collection__heading {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727;
    border-bottom: 1px solid #999;
    padding-bottom: 0.5em;
    margin-bottom: 0.5em; }
    @media screen and (min-width: 46.875em) {
      .collection.collection--recent-news .collection__heading {
        font-size: 2.5em; } }
  .collection.collection--recent-news .collection__inner {
    max-width: 80%;
    margin-left: auto;
    margin-right: auto; }
    .collection.collection--recent-news .collection__inner::after {
      clear: both;
      content: "";
      display: table; }
  .collection.collection--recent-news .collection__item {
    margin-top: 2.5em; }
  @media screen and (min-width: 62.5em) {
    .collection.collection--recent-news {
      max-width: 1000px;
      margin-left: auto;
      margin-right: auto;
      padding-top: 0; }
      .collection.collection--recent-news::after {
        clear: both;
        content: "";
        display: table; }
      .collection.collection--recent-news .collection__heading {
        font-size: 2em;
        padding-top: 0; } }

.collection.collection--focus-areas {
  padding-top: 2.5em;
  padding-bottom: 2.5em; }
  .collection.collection--focus-areas .collection__item {
    margin-top: 2.5em; }
    .collection.collection--focus-areas .collection__item::after {
      clear: both;
      content: "";
      display: table; }
  .collection.collection--focus-areas .collection__inner {
    margin-right: auto;
    margin-left: auto;
    max-width: 90%; }
    .collection.collection--focus-areas .collection__inner::after {
      clear: both;
      content: "";
      display: table; }
    @media screen and (min-width: 62.5em) {
      .collection.collection--focus-areas .collection__inner {
        max-width: 1000px; } }
  .collection.collection--focus-areas .collection__heading {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727;
    border-bottom: 1px solid #999;
    padding-bottom: 0.5em;
    margin-bottom: 0.5em; }
    @media screen and (min-width: 46.875em) {
      .collection.collection--focus-areas .collection__heading {
        font-size: 2.5em; } }
  .collection.collection--focus-areas:after {
    content: '';
    display: block;
    height: 1px;
    width: 90%;
    margin-right: auto;
    margin-left: auto;
    border-bottom: 1px dashed #f2f2f2;
    position: relative;
    top: 2.5em;
    max-width: 1000px; }
  @media screen and (min-width: 46.875em) {
    .collection.collection--focus-areas .collection__item {
      margin-top: 4em; } }
  @media screen and (min-width: 62.5em) {
    .collection.collection--focus-areas {
      padding-top: 5em;
      padding-bottom: 5em; }
      .collection.collection--focus-areas:after {
        position: relative;
        top: 5em; } }

.collection.collection--splunk .collection__item:last-child {
  margin-top: 4em; }

.footer {
  position: relative;
  background: #5890e3;
  background: #5890e3; }
  .footer .footer__inner {
    padding-top: 3em;
    padding-bottom: 4em; }

.modal {
  visibility: hidden;
  z-index: 50;
  opacity: 0;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  height: 100%;
  width: 100%;
  -webkit-transition: opacity, 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: opacity, 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: opacity, 250ms cubic-bezier(0.455, 0.03, 0.515, 0.955); }
  .modal:before {
    content: '';
    display: block;
    background: #5890e3;
    background: rgba(88, 144, 227, 0.95);
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    height: 100%;
    width: 100%; }
  .modal .modal__inner {
    position: fixed;
    top: 50%;
    left: 50%;
    -webkit-transform: translate3d(-50%, -50%, 0);
    -moz-transform: translate3d(-50%, -50%, 0);
    -ms-transform: translate3d(-50%, -50%, 0);
    -o-transform: translate3d(-50%, -50%, 0);
    transform: translate3d(-50%, -50%, 0);
    position: relative; }
  .modal .modal__close {
    position: fixed;
    top: -2px;
    right: 7px;
    font-size: 0; }
    .modal .modal__close:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 50px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale; }
  @media screen and (min-width: 46.875em) {
    .modal .modal__close {
      position: fixed;
      top: 0px;
      right: 20px; } }
  @media screen and (min-width: 62.5em) {
    .modal {
      z-index: 5; }
      .modal .modal__close {
        position: fixed;
        top: 50%;
        left: 50%;
        margin-top: -250px;
        margin-left: 230px; }
        .modal .modal__close:before {
          display: inline-block;
          content: "";
          font-family: 'glyphs';
          font-size: 60px;
          font-variant: normal;
          text-align: center;
          text-transform: none;
          font-style: normal;
          font-weight: normal;
          color: #fff;
          speak: none;
          -webkit-font-smoothing: antialiased;
          -moz-osx-font-smoothing: grayscale; } }
  .modal.modal--embed .modal__inner {
    height: 0;
    width: 100%;
    padding-top: 56%;
    overflow: hidden; }
    .modal.modal--embed .modal__inner iframe {
      position: absolute;
      top: 0;
      left: 0;
      height: 100%;
      width: 100%; }
  @media screen and (min-width: 46.875em) {
    .modal.modal--embed .modal__inner {
      height: auto;
      width: 750px;
      padding-top: 420px; } }
  @media screen and (min-width: 62.5em) {
    .modal.modal--embed .modal__close {
      margin-top: -265px;
      margin-left: 370px; } }

.tile.tile--features {
  height: 220px;
  width: 220px;
  position: relative;
  left: 50%;
  margin-left: -110px;
  background: #fff;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.5); }
  .tile.tile--features .tile__image {
    position: relative;
    top: 15px;
    left: 50%;
    margin-left: -75px;
    height: 150px;
    width: 150px; }
  .tile.tile--features .tile__content {
    color: #fff;
    height: auto;
    width: 100%;
    position: absolute;
    bottom: 1em;
    left: 0;
    text-align: center; }
  .tile.tile--features .tile__heading {
    font-size: 1.25em;
    font-weight: 600; }
  .tile.tile--features .tile__copy {
    font-style: italic; }
  .tile.tile--features .tile__cta {
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0; }
  @media screen and (min-width: 62.5em) {
    .tile.tile--features .tile__cta {
      display: block; } }

.tile.tile--plans {
  height: 220px;
  width: 220px;
  position: relative;
  left: 50%;
  margin-left: -110px;
  background: #fff;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.5);
  border: 1px solid #272727;
  border: none; }
  .tile.tile--plans .tile__image {
    position: relative;
    top: 15px;
    left: 50%;
    margin-left: -75px;
    height: 150px;
    width: 150px; }
  .tile.tile--plans .tile__content {
    color: #fff;
    height: auto;
    width: 100%;
    position: absolute;
    bottom: 1em;
    left: 0;
    text-align: center; }
  .tile.tile--plans .tile__heading {
    font-size: 1.25em;
    font-weight: 600; }
  .tile.tile--plans .tile__copy {
    font-style: italic; }
  .tile.tile--plans .tile__cta {
    display: none;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0; }
  @media screen and (min-width: 62.5em) {
    .tile.tile--plans .tile__cta {
      display: block; } }
  .tile.tile--plans .tile__heading {
    color: #272727; }
  .tile.tile--plans .tile__copy {
    color: #272727; }
  .tile.tile--plans .tile__cta {
    display: none; }
  @media screen and (min-width: 62.5em) {
    .tile.tile--plans {
      position: relative;
      left: 0;
      width: 90%;
      margin-right: auto;
      margin-left: auto;
      max-width: 500px; }
      .tile.tile--plans .tile__image {
        position: relative;
        left: 0;
        margin-right: auto;
        margin-left: -45px; }
      .tile.tile--plans .tile__content {
        text-align: left; } }

.spot.spot--feature .spot__inner {
  max-width: 80%;
  margin-left: auto;
  margin-right: auto;
  padding-top: 2em;
  padding-bottom: 2em; }
  .spot.spot--feature .spot__inner::after {
    clear: both;
    content: "";
    display: table; }

.spot.spot--feature .spot__figure {
  text-align: center; }

.spot.spot--feature .spot__image {
  display: inline-block;
  max-width: 6.25em;
  height: auto; }

.spot.spot--feature .spot__heading {
  font-size: 1.25em;
  font-weight: 600; }

.spot.spot--feature .spot__content {
  margin-top: 1em; }

.spot.spot--feature .spot__copy {
  margin-top: 1em;
  font-weight: 400;
  font-size: 16px;
  line-height: 1.8;
  color: #272727;
  font-size: 1.0625em; }
  .spot.spot--feature .spot__copy strong {
    font-weight: 600; }
  .spot.spot--feature .spot__copy a {
    color: #5890e3; }
    .spot.spot--feature .spot__copy a:hover {
      color: #2c73dc; }
  .spot.spot--feature .spot__copy p:not(:first-child) {
    margin-top: 1em; }
  .spot.spot--feature .spot__copy ul {
    margin-top: 1em; }
  .spot.spot--feature .spot__copy li {
    position: relative;
    padding-left: 1em; }
    .spot.spot--feature .spot__copy li:before {
      position: absolute;
      top: 0.6em;
      left: 0;
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 8px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale; }
    .spot.spot--feature .spot__copy li:not(:first-child) {
      margin-top: 0.25em; }

.spot.spot--feature .spot__cta {
  display: inline-block;
  margin-top: 1em;
  background: #5890e3;
  background: #5890e3;
  color: #fff;
  font-weight: bold;
  font-size: 14px;
  text-transform: uppercase;
  padding: 0.5em 1em;
  -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  line-height: normal;
  position: relative;
  left: 0;
  -webkit-transform: translateX(0%);
  -moz-transform: translateX(0%);
  -ms-transform: translateX(0%);
  -o-transform: translateX(0%);
  transform: translateX(0%);
  margin-top: 2em;
  border-radius: 10px; }
  .spot.spot--feature .spot__cta:hover {
    background: #6e9fe7;
    background: #6e9fe7; }
  .spot.spot--feature .spot__cta:after {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 3px;
    left: 4px; }

@media screen and (min-width: 62.5em) {
  .spot.spot--feature .spot__inner {
    max-width: 1000px;
    margin-left: auto;
    margin-right: auto;
    position: relative;
    height: 330px;
    width: 100%; }
    .spot.spot--feature .spot__inner::after {
      clear: both;
      content: "";
      display: table; }
  .spot.spot--feature .spot__content {
    text-align: left;
    position: absolute;
    top: 50%;
    left: 0;
    padding-right: 1em;
    margin-top: 0;
    height: auto;
    width: 70%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%); }
  .spot.spot--feature .spot__heading {
    font-size: 1.75em; }
  .spot.spot--feature .spot__figure {
    position: absolute;
    top: 50%;
    right: 0;
    height: auto;
    width: 30%;
    -webkit-transform: translateY(-50%);
    -moz-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
    text-align: right; }
  .spot.spot--feature .spot__image {
    max-width: 100%; } }

@media screen and (min-width: 62.5em) {
  .spot.spot--thin .spot__inner {
    height: 300px;
    width: 100%;
    padding-top: 0;
    padding-bottom: 0; }
  .spot.spot--thin .spot__image {
    max-width: 9.375em; } }

@media screen and (min-width: 62.5em) {
  .spot.spot--thinner .spot__inner {
    height: 100px;
    width: 100%;
    padding-top: 0;
    padding-bottom: 0; }
  .spot.spot--thinner h3 {
    display: inline;
    text-align: left;
    margin-right: 0;
    margin-left: 10%; }
  .spot.spot--thinner .spot__copy {
    display: inline; }
  .spot.spot--thinner .spot_content {
    width: 100%; }
  .spot.spot--thinner .spot__cta {
    display: inline;
    margin-right: 0;
    margin-left: 3%;
    font-weight: 300;
    border-radius: 10px;
    font-size: .85em; }
  .spot.spot--thinner .spot__image {
    max-width: 3.125em; } }

@media screen and (min-width: 62.5em) {
  .spot.spot--thinner--trtl .spot__content {
    position: absolute;
    top: 50%;
    right: 0;
    left: initial;
    height: auto;
    width: 100%; }
  .spot.spot--thinner--trtl .spot__figure {
    position: absolute;
    top: 50%;
    right: initial;
    left: 0;
    height: auto;
    width: 5%;
    text-align: right; }
  .spot.spot--thinner--trtl .spot__heading {
    font-size: 1.5em; } }

@media screen and (min-width: 62.5em) {
  .spot.spot--trtl .spot__content {
    position: absolute;
    top: 50%;
    right: 0;
    left: initial;
    height: auto;
    width: 85%; }
  .spot.spot--trtl .spot__figure {
    position: absolute;
    top: 50%;
    right: initial;
    left: 0;
    height: auto;
    width: 15%;
    text-align: left; } }

@media screen and (min-width: 62.5em) {
  .spot.spot--splunk .spot__image {
    max-width: 9.375em; } }

@media screen and (min-width: 62.5em) {
  .spot.spot--rtl .spot__content {
    position: absolute;
    top: 50%;
    right: 0;
    left: initial;
    height: auto;
    width: 75%; }
  .spot.spot--rtl .spot__figure {
    position: absolute;
    top: 50%;
    right: initial;
    left: 0;
    height: auto;
    width: 25%;
    text-align: left; } }

.spot.spot--full .spot__content {
  height: auto;
  width: 100%; }

.spot.spot--grey {
  background: #b6b6b6;
  background: #b6b6b6; }

.spot.spot--grey-dark {
  background: #b6b6b6;
  background: #b6b6b6; }
  .spot.spot--grey-dark .spot__cta {
    background: #000;
    background: black;
    border-radius: 10px; }
    .spot.spot--grey-dark .spot__cta:hover {
      background: #333;
      background: #333333; }

.spot.spot--grey-light {
  background: #f0f4fc;
  background: #f0f4fc; }

.spot.spot--blue-light {
  background: #d1e0f5;
  background: #d1e0f5; }

.spot.spot--focus-areas .spot__figure {
  text-align: center; }

.spot.spot--focus-areas .spot__image {
  height: auto;
  width: 150px; }

.spot.spot--focus-areas .spot__caption {
  font-size: 1em;
  font-weight: 600;
  color: #272727; }

.spot.spot--focus-areas .spot__content {
  margin-top: 1em; }

.spot.spot--focus-areas .spot__copy {
  margin-top: 1em; }
  .spot.spot--focus-areas .spot__copy a {
    color: #5890e3; }
  .spot.spot--focus-areas .spot__copy h1 {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727; }
    @media screen and (min-width: 46.875em) {
      .spot.spot--focus-areas .spot__copy h1 {
        font-size: 2.5em; } }
  .spot.spot--focus-areas .spot__copy h2 {
    font-size: 1.5em;
    font-weight: 600;
    line-height: 1.2;
    color: #272727; }
    .spot.spot--focus-areas .spot__copy h2:not(:first-child) {
      margin-top: 2em; }
  .spot.spot--focus-areas .spot__copy h3 {
    font-size: 1.25em;
    font-weight: 600; }
    .spot.spot--focus-areas .spot__copy h3:not(:first-child) {
      margin-top: 1em; }
  .spot.spot--focus-areas .spot__copy h4 {
    font-size: 1.25em;
    font-weight: 600; }
  .spot.spot--focus-areas .spot__copy h5 {
    font-size: 1em;
    font-weight: 600;
    color: #272727; }
  .spot.spot--focus-areas .spot__copy em {
    font-style: italic; }
  .spot.spot--focus-areas .spot__copy ol:not(:first-child) {
    margin-top: 1em; }
  .spot.spot--focus-areas .spot__copy ol li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-bottom: 1em;
    margin-left: 1.5em;
    list-style: decimal; }
    .spot.spot--focus-areas .spot__copy ol li strong {
      font-weight: 600; }
    .spot.spot--focus-areas .spot__copy ol li a {
      color: #5890e3; }
      .spot.spot--focus-areas .spot__copy ol li a:hover {
        color: #2c73dc; }
  .spot.spot--focus-areas .spot__copy ul li ol li ol li, .spot.spot--focus-areas .spot__copy ul li ol li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-bottom: 1em;
    margin-left: 1.5em;
    list-style: decimal; }
    .spot.spot--focus-areas .spot__copy ul li ol li ol li strong, .spot.spot--focus-areas .spot__copy ul li ol li strong {
      font-weight: 600; }
    .spot.spot--focus-areas .spot__copy ul li ol li ol li a, .spot.spot--focus-areas .spot__copy ul li ol li a {
      color: #5890e3; }
      .spot.spot--focus-areas .spot__copy ul li ol li ol li a:hover, .spot.spot--focus-areas .spot__copy ul li ol li a:hover {
        color: #2c73dc; }
    .spot.spot--focus-areas .spot__copy ul li ol li ol li:before, .spot.spot--focus-areas .spot__copy ul li ol li:before {
      content: none; }
  .spot.spot--focus-areas .spot__copy ul:not(:first-child) {
    margin-top: 1em; }
  .spot.spot--focus-areas .spot__copy ul li, .spot.spot--focus-areas .spot__copy ol ul li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-top: 0.5em;
    margin-left: 0.5em;
    list-style: disc; }
    .spot.spot--focus-areas .spot__copy ul li strong, .spot.spot--focus-areas .spot__copy ol ul li strong {
      font-weight: 600; }
    .spot.spot--focus-areas .spot__copy ul li a, .spot.spot--focus-areas .spot__copy ol ul li a {
      color: #5890e3; }
      .spot.spot--focus-areas .spot__copy ul li a:hover, .spot.spot--focus-areas .spot__copy ol ul li a:hover {
        color: #2c73dc; }
  .spot.spot--focus-areas .spot__copy ul li ul li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-top: 0.3em;
    margin-left: 2em;
    list-style: square;
    padding: none; }
    .spot.spot--focus-areas .spot__copy ul li ul li strong {
      font-weight: 600; }
    .spot.spot--focus-areas .spot__copy ul li ul li a {
      color: #5890e3; }
      .spot.spot--focus-areas .spot__copy ul li ul li a:hover {
        color: #2c73dc; }
    .spot.spot--focus-areas .spot__copy ul li ul li:before {
      content: none; }
  .spot.spot--focus-areas .spot__copy table {
    margin-top: 1em;
    height: auto;
    width: 85%; }
    .spot.spot--focus-areas .spot__copy table.ltr td:first-child {
      font-weight: 600; }
    @media screen and (min-width: 46.875em) {
      .spot.spot--focus-areas .spot__copy table.ltr td:first-child {
        height: auto;
        width: 25%; } }
    .spot.spot--focus-areas .spot__copy table tr:first-child td:first-child {
      margin-top: 0; }
    .spot.spot--focus-areas .spot__copy table td {
      display: block;
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727; }
      .spot.spot--focus-areas .spot__copy table td strong {
        font-weight: 600; }
      .spot.spot--focus-areas .spot__copy table td a {
        color: #5890e3; }
        .spot.spot--focus-areas .spot__copy table td a:hover {
          color: #2c73dc; }
      .spot.spot--focus-areas .spot__copy table td:nth-child(odd) {
        margin-top: 1em; }
      .spot.spot--focus-areas .spot__copy table td:nth-child(even) {
        padding-bottom: 1em; }
    @media screen and (min-width: 46.875em) {
      .spot.spot--focus-areas .spot__copy table td {
        display: table-cell;
        vertical-align: top;
        padding-top: 1em;
        padding-bottom: 1em; } }
  .spot.spot--focus-areas .spot__copy dl {
    margin-top: 1em;
    display: block; }
    .spot.spot--focus-areas .spot__copy dl::after {
      clear: both;
      content: "";
      display: table; }
    .spot.spot--focus-areas .spot__copy dl dt {
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727;
      font-weight: 600;
      display: block; }
      .spot.spot--focus-areas .spot__copy dl dt strong {
        font-weight: 600; }
      .spot.spot--focus-areas .spot__copy dl dt a {
        color: #5890e3; }
        .spot.spot--focus-areas .spot__copy dl dt a:hover {
          color: #2c73dc; }
      .spot.spot--focus-areas .spot__copy dl dt:not(:first-child) {
        margin-top: 1em; }
    .spot.spot--focus-areas .spot__copy dl dd {
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727;
      display: block;
      border-bottom: 1px dashed #f2f2f2;
      padding-bottom: 1em; }
      .spot.spot--focus-areas .spot__copy dl dd strong {
        font-weight: 600; }
      .spot.spot--focus-areas .spot__copy dl dd a {
        color: #5890e3; }
        .spot.spot--focus-areas .spot__copy dl dd a:hover {
          color: #2c73dc; }
    @media screen and (min-width: 46.875em) {
      .spot.spot--focus-areas .spot__copy dl dt {
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 24.12618%;
        clear: left;
        border-bottom: 1px dashed #f2f2f2;
        padding-bottom: 1em; }
        .spot.spot--focus-areas .spot__copy dl dt:last-child {
          margin-right: 0; }
      .spot.spot--focus-areas .spot__copy dl dd {
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 74.70873%;
        margin-right: 0; }
        .spot.spot--focus-areas .spot__copy dl dd:last-child {
          margin-right: 0; }
        .spot.spot--focus-areas .spot__copy dl dd:not(:nth-child(2)) {
          margin-top: 1em; } }
  .spot.spot--focus-areas .spot__copy p {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727; }
    .spot.spot--focus-areas .spot__copy p strong {
      font-weight: 600; }
    .spot.spot--focus-areas .spot__copy p a {
      color: #5890e3; }
      .spot.spot--focus-areas .spot__copy p a:hover {
        color: #2c73dc; }
    .spot.spot--focus-areas .spot__copy p:not(:first-child) {
      margin-top: 1em; }
  .spot.spot--focus-areas .spot__copy img {
    max-width: 100%;
    height: auto;
    /** @include padding(2px 2px 2px 2px);**/
    /** border: 1px solid lighten($color-grey, 10%);**/ }
    .spot.spot--focus-areas .spot__copy img.float {
      float: left;
      margin-top: 1.5em;
      margin-right: 1em;
      margin-bottom: 1em; }
  .spot.spot--focus-areas .spot__copy small {
    font-size: 0.875em; }
  .spot.spot--focus-areas .spot__copy .responsive-iframe {
    height: 0;
    width: 100%;
    padding-top: 56.5%;
    position: relative;
    margin-top: 1em;
    margin-bottom: 1em; }
  .spot.spot--focus-areas .spot__copy iframe {
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0; }

.spot.spot--focus-areas .spot__heading {
  font-size: 1.5em;
  font-weight: 600;
  line-height: 1.2;
  color: #272727; }

@media screen and (min-width: 46.875em) {
  .spot.spot--focus-areas .spot__figure {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 24.12618%;
    margin-top: 3.125em; }
    .spot.spot--focus-areas .spot__figure:last-child {
      margin-right: 0; }
  .spot.spot--focus-areas .spot__content {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 74.70873%; }
    .spot.spot--focus-areas .spot__content:last-child {
      margin-right: 0; } }

.spot.spot--compare {
  padding-top: 2.5em; }
  .spot.spot--compare .spot__inner {
    margin-right: auto;
    margin-left: auto;
    max-width: 90%; }
    .spot.spot--compare .spot__inner::after {
      clear: both;
      content: "";
      display: table; }
    @media screen and (min-width: 62.5em) {
      .spot.spot--compare .spot__inner {
        max-width: 1000px; } }
  .spot.spot--compare .spot__content {
    position: relative;
    margin-bottom: 2.5em; }
  .spot.spot--compare .spot__heading {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727;
    border-bottom: 1px solid #999;
    padding-bottom: 0.5em;
    margin-bottom: 0.5em; }
    @media screen and (min-width: 46.875em) {
      .spot.spot--compare .spot__heading {
        font-size: 2.5em; } }
  .spot.spot--compare .spot__cta {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 0;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%);
    border-radius: 10px; }
    .spot.spot--compare .spot__cta:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
  @media screen and (min-width: 46.875em) {
    .spot.spot--compare {
      padding-bottom: 7.5em; }
      .spot.spot--compare .spot__cta {
        position: absolute;
        right: 0;
        left: auto;
        height: auto;
        width: 20%;
        margin-top: 0;
        text-align: center;
        border-radius: 10px; } }
  @media screen and (min-width: 62.5em) {
    .spot.spot--compare {
      padding-top: 5em;
      padding-bottom: 5em; } }

.spot.spot--recent-news .spot__content {
  padding-left: 0.5em; }

.spot.spot--recent-news .spot__heading {
  font-size: 1.5em;
  font-weight: 600;
  line-height: 1.2;
  color: #272727; }

.spot.spot--recent-news .spot__copy {
  font-weight: 400;
  font-size: 16px;
  line-height: 1.8;
  color: #272727;
  margin-top: 1em; }
  .spot.spot--recent-news .spot__copy strong {
    font-weight: 600; }
  .spot.spot--recent-news .spot__copy a {
    color: #5890e3; }
    .spot.spot--recent-news .spot__copy a:hover {
      color: #2c73dc; }

.spot.spot--recent-news .spot__cta {
  display: inline-block;
  margin-top: 1em;
  background: #5890e3;
  background: #5890e3;
  color: #fff;
  font-weight: bold;
  font-size: 14px;
  text-transform: uppercase;
  padding: 0.5em 1em;
  -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  line-height: normal;
  position: relative;
  left: 0;
  -webkit-transform: translateX(0%);
  -moz-transform: translateX(0%);
  -ms-transform: translateX(0%);
  -o-transform: translateX(0%);
  transform: translateX(0%);
  border-radius: 10px; }
  .spot.spot--recent-news .spot__cta:hover {
    background: #6e9fe7;
    background: #6e9fe7; }
  .spot.spot--recent-news .spot__cta:after {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 3px;
    left: 4px; }

@media screen and (min-width: 46.875em) {
  .spot.spot--recent-news {
    margin-left: 4.5em; } }

.spot.spot--recent-news {
  position: relative; }
  @media screen and (min-width: 46.875em) {
    .spot.spot--recent-news:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 65px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #5890e3;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: absolute;
      top: 0;
      left: -1.2em; } }

.spot.spot--weekly-market-brief {
  position: relative; }
  @media screen and (min-width: 46.875em) {
    .spot.spot--weekly-market-brief:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 65px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #5890e3;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: absolute;
      top: 0;
      left: -1.2em; } }

.spot.spot--product-news {
  position: relative; }
  @media screen and (min-width: 46.875em) {
    .spot.spot--product-news:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 65px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #5890e3;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: absolute;
      top: 0;
      left: -1.2em; } }

.spot.spot--product-features {
  position: relative; }
  @media screen and (min-width: 46.875em) {
    .spot.spot--product-features:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 65px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #5890e3;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: absolute;
      top: 0;
      left: -1.2em; } }

.spot.spot--videos {
  position: relative; }
  @media screen and (min-width: 46.875em) {
    .spot.spot--videos:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 65px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #5890e3;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: absolute;
      top: 0;
      left: -1.2em; } }

.spot.spot--plan-descriptions .spot__inner {
  max-width: 500px;
  margin-left: auto;
  margin-right: auto;
  height: auto;
  width: 90%; }
  .spot.spot--plan-descriptions .spot__inner::after {
    clear: both;
    content: "";
    display: table; }

.spot.spot--plan-descriptions .spot__heading {
  font-size: 1.5em;
  font-weight: 600;
  line-height: 1.2;
  color: #272727; }

.spot.spot--plan-descriptions .spot__copy {
  margin-top: 1em; }
  .spot.spot--plan-descriptions .spot__copy a {
    color: #5890e3; }
  .spot.spot--plan-descriptions .spot__copy h1 {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727; }
    @media screen and (min-width: 46.875em) {
      .spot.spot--plan-descriptions .spot__copy h1 {
        font-size: 2.5em; } }
  .spot.spot--plan-descriptions .spot__copy h2 {
    font-size: 1.5em;
    font-weight: 600;
    line-height: 1.2;
    color: #272727; }
    .spot.spot--plan-descriptions .spot__copy h2:not(:first-child) {
      margin-top: 2em; }
  .spot.spot--plan-descriptions .spot__copy h3 {
    font-size: 1.25em;
    font-weight: 600; }
    .spot.spot--plan-descriptions .spot__copy h3:not(:first-child) {
      margin-top: 1em; }
  .spot.spot--plan-descriptions .spot__copy h4 {
    font-size: 1.25em;
    font-weight: 600; }
  .spot.spot--plan-descriptions .spot__copy h5 {
    font-size: 1em;
    font-weight: 600;
    color: #272727; }
  .spot.spot--plan-descriptions .spot__copy em {
    font-style: italic; }
  .spot.spot--plan-descriptions .spot__copy ol:not(:first-child) {
    margin-top: 1em; }
  .spot.spot--plan-descriptions .spot__copy ol li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-bottom: 1em;
    margin-left: 1.5em;
    list-style: decimal; }
    .spot.spot--plan-descriptions .spot__copy ol li strong {
      font-weight: 600; }
    .spot.spot--plan-descriptions .spot__copy ol li a {
      color: #5890e3; }
      .spot.spot--plan-descriptions .spot__copy ol li a:hover {
        color: #2c73dc; }
  .spot.spot--plan-descriptions .spot__copy ul li ol li ol li, .spot.spot--plan-descriptions .spot__copy ul li ol li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-bottom: 1em;
    margin-left: 1.5em;
    list-style: decimal; }
    .spot.spot--plan-descriptions .spot__copy ul li ol li ol li strong, .spot.spot--plan-descriptions .spot__copy ul li ol li strong {
      font-weight: 600; }
    .spot.spot--plan-descriptions .spot__copy ul li ol li ol li a, .spot.spot--plan-descriptions .spot__copy ul li ol li a {
      color: #5890e3; }
      .spot.spot--plan-descriptions .spot__copy ul li ol li ol li a:hover, .spot.spot--plan-descriptions .spot__copy ul li ol li a:hover {
        color: #2c73dc; }
    .spot.spot--plan-descriptions .spot__copy ul li ol li ol li:before, .spot.spot--plan-descriptions .spot__copy ul li ol li:before {
      content: none; }
  .spot.spot--plan-descriptions .spot__copy ul:not(:first-child) {
    margin-top: 1em; }
  .spot.spot--plan-descriptions .spot__copy ul li, .spot.spot--plan-descriptions .spot__copy ol ul li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-top: 0.5em;
    margin-left: 0.5em;
    list-style: disc; }
    .spot.spot--plan-descriptions .spot__copy ul li strong, .spot.spot--plan-descriptions .spot__copy ol ul li strong {
      font-weight: 600; }
    .spot.spot--plan-descriptions .spot__copy ul li a, .spot.spot--plan-descriptions .spot__copy ol ul li a {
      color: #5890e3; }
      .spot.spot--plan-descriptions .spot__copy ul li a:hover, .spot.spot--plan-descriptions .spot__copy ol ul li a:hover {
        color: #2c73dc; }
  .spot.spot--plan-descriptions .spot__copy ul li ul li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-top: 0.3em;
    margin-left: 2em;
    list-style: square;
    padding: none; }
    .spot.spot--plan-descriptions .spot__copy ul li ul li strong {
      font-weight: 600; }
    .spot.spot--plan-descriptions .spot__copy ul li ul li a {
      color: #5890e3; }
      .spot.spot--plan-descriptions .spot__copy ul li ul li a:hover {
        color: #2c73dc; }
    .spot.spot--plan-descriptions .spot__copy ul li ul li:before {
      content: none; }
  .spot.spot--plan-descriptions .spot__copy table {
    margin-top: 1em;
    height: auto;
    width: 85%; }
    .spot.spot--plan-descriptions .spot__copy table.ltr td:first-child {
      font-weight: 600; }
    @media screen and (min-width: 46.875em) {
      .spot.spot--plan-descriptions .spot__copy table.ltr td:first-child {
        height: auto;
        width: 25%; } }
    .spot.spot--plan-descriptions .spot__copy table tr:first-child td:first-child {
      margin-top: 0; }
    .spot.spot--plan-descriptions .spot__copy table td {
      display: block;
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727; }
      .spot.spot--plan-descriptions .spot__copy table td strong {
        font-weight: 600; }
      .spot.spot--plan-descriptions .spot__copy table td a {
        color: #5890e3; }
        .spot.spot--plan-descriptions .spot__copy table td a:hover {
          color: #2c73dc; }
      .spot.spot--plan-descriptions .spot__copy table td:nth-child(odd) {
        margin-top: 1em; }
      .spot.spot--plan-descriptions .spot__copy table td:nth-child(even) {
        padding-bottom: 1em; }
    @media screen and (min-width: 46.875em) {
      .spot.spot--plan-descriptions .spot__copy table td {
        display: table-cell;
        vertical-align: top;
        padding-top: 1em;
        padding-bottom: 1em; } }
  .spot.spot--plan-descriptions .spot__copy dl {
    margin-top: 1em;
    display: block; }
    .spot.spot--plan-descriptions .spot__copy dl::after {
      clear: both;
      content: "";
      display: table; }
    .spot.spot--plan-descriptions .spot__copy dl dt {
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727;
      font-weight: 600;
      display: block; }
      .spot.spot--plan-descriptions .spot__copy dl dt strong {
        font-weight: 600; }
      .spot.spot--plan-descriptions .spot__copy dl dt a {
        color: #5890e3; }
        .spot.spot--plan-descriptions .spot__copy dl dt a:hover {
          color: #2c73dc; }
      .spot.spot--plan-descriptions .spot__copy dl dt:not(:first-child) {
        margin-top: 1em; }
    .spot.spot--plan-descriptions .spot__copy dl dd {
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727;
      display: block;
      border-bottom: 1px dashed #f2f2f2;
      padding-bottom: 1em; }
      .spot.spot--plan-descriptions .spot__copy dl dd strong {
        font-weight: 600; }
      .spot.spot--plan-descriptions .spot__copy dl dd a {
        color: #5890e3; }
        .spot.spot--plan-descriptions .spot__copy dl dd a:hover {
          color: #2c73dc; }
    @media screen and (min-width: 46.875em) {
      .spot.spot--plan-descriptions .spot__copy dl dt {
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 24.12618%;
        clear: left;
        border-bottom: 1px dashed #f2f2f2;
        padding-bottom: 1em; }
        .spot.spot--plan-descriptions .spot__copy dl dt:last-child {
          margin-right: 0; }
      .spot.spot--plan-descriptions .spot__copy dl dd {
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 74.70873%;
        margin-right: 0; }
        .spot.spot--plan-descriptions .spot__copy dl dd:last-child {
          margin-right: 0; }
        .spot.spot--plan-descriptions .spot__copy dl dd:not(:nth-child(2)) {
          margin-top: 1em; } }
  .spot.spot--plan-descriptions .spot__copy p {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727; }
    .spot.spot--plan-descriptions .spot__copy p strong {
      font-weight: 600; }
    .spot.spot--plan-descriptions .spot__copy p a {
      color: #5890e3; }
      .spot.spot--plan-descriptions .spot__copy p a:hover {
        color: #2c73dc; }
    .spot.spot--plan-descriptions .spot__copy p:not(:first-child) {
      margin-top: 1em; }
  .spot.spot--plan-descriptions .spot__copy img {
    max-width: 100%;
    height: auto;
    /** @include padding(2px 2px 2px 2px);**/
    /** border: 1px solid lighten($color-grey, 10%);**/ }
    .spot.spot--plan-descriptions .spot__copy img.float {
      float: left;
      margin-top: 1.5em;
      margin-right: 1em;
      margin-bottom: 1em; }
  .spot.spot--plan-descriptions .spot__copy small {
    font-size: 0.875em; }
  .spot.spot--plan-descriptions .spot__copy .responsive-iframe {
    height: 0;
    width: 100%;
    padding-top: 56.5%;
    position: relative;
    margin-top: 1em;
    margin-bottom: 1em; }
  .spot.spot--plan-descriptions .spot__copy iframe {
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0; }

.spot.spot--plan-descriptions .spot__cta {
  display: inline-block;
  margin-top: 1em;
  background: #5890e3;
  background: #5890e3;
  color: #fff;
  font-weight: bold;
  font-size: 14px;
  text-transform: uppercase;
  padding: 0.5em 1em;
  -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  line-height: normal;
  position: relative;
  left: 0;
  -webkit-transform: translateX(0%);
  -moz-transform: translateX(0%);
  -ms-transform: translateX(0%);
  -o-transform: translateX(0%);
  transform: translateX(0%);
  font-size: 20px;
  border-radius: 10px; }
  .spot.spot--plan-descriptions .spot__cta:hover {
    background: #6e9fe7;
    background: #6e9fe7; }
  .spot.spot--plan-descriptions .spot__cta:after {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 3px;
    left: 4px; }
  .spot.spot--plan-descriptions .spot__cta:after {
    position: relative;
    top: 0px; }

.testimonial {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -moz-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%); }
  .testimonial .testimonial__inner {
    max-width: 80%;
    margin-left: auto;
    margin-right: auto;
    text-align: center; }
    .testimonial .testimonial__inner::after {
      clear: both;
      content: "";
      display: table; }
  .testimonial .testimonial__quote {
    font-size: 18px;
    position: relative; }
    .testimonial .testimonial__quote:before {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 75px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #999;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      -webkit-transform: rotate(180deg);
      -moz-transform: rotate(180deg);
      -ms-transform: rotate(180deg);
      -o-transform: rotate(180deg);
      transform: rotate(180deg);
      position: absolute;
      top: -0.5em;
      left: -0.25em;
      opacity: .2; }
    .testimonial .testimonial__quote:after {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 75px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #999;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: absolute;
      top: -0.5em;
      right: -0.25em;
      opacity: .2; }
  .testimonial .testimonial__meta {
    margin-top: 1em; }
  .testimonial .testimonial__author {
    font-style: italic;
    font-size: 0.75em; }
    .testimonial .testimonial__author:before {
      content: "\2014";
      padding-right: 0.25em; }
  .testimonial .testimonial__image {
    display: inline-block;
    max-width: 200px;
    height: auto;
    margin-top: 2em; }
  @media screen and (min-width: 46.875em) {
    .testimonial {
      height: auto;
      width: 100%; }
      .testimonial .testimonial__inner {
        height: auto;
        width: 750px; }
      .testimonial .testimonial__quote {
        font-size: 20px; } }

.components {
  display: none; }

.table:not(:last-child) {
  margin-bottom: 2.5em; }

.table.table--active .table__heading:after {
  -webkit-transform: rotate(180deg);
  -moz-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transform: rotate(180deg); }

.table.table--active .table__table {
  max-height: 2500px; }

.table .table__inner {
  margin-right: auto;
  margin-left: auto;
  max-width: 90%; }
  .table .table__inner::after {
    clear: both;
    content: "";
    display: table; }
  @media screen and (min-width: 62.5em) {
    .table .table__inner {
      max-width: 1000px; } }

.table .table__heading {
  font-size: 1.5em;
  font-weight: 600;
  line-height: 1.2;
  color: #272727;
  color: #5890e3; }

.table .table__row {
  border-bottom: 1px dashed #d9d9d9; }

.table .table__cell {
  display: block;
  padding-top: 0.5em;
  padding-bottom: 0.5em; }
  .table .table__cell a {
    color: #5890e3; }
  .table .table__cell h1 {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727; }
    @media screen and (min-width: 46.875em) {
      .table .table__cell h1 {
        font-size: 2.5em; } }
  .table .table__cell h2 {
    font-size: 1.5em;
    font-weight: 600;
    line-height: 1.2;
    color: #272727; }
    .table .table__cell h2:not(:first-child) {
      margin-top: 2em; }
  .table .table__cell h3 {
    font-size: 1.25em;
    font-weight: 600; }
    .table .table__cell h3:not(:first-child) {
      margin-top: 1em; }
  .table .table__cell h4 {
    font-size: 1.25em;
    font-weight: 600; }
  .table .table__cell h5 {
    font-size: 1em;
    font-weight: 600;
    color: #272727; }
  .table .table__cell em {
    font-style: italic; }
  .table .table__cell ol:not(:first-child) {
    margin-top: 1em; }
  .table .table__cell ol li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-bottom: 1em;
    margin-left: 1.5em;
    list-style: decimal; }
    .table .table__cell ol li strong {
      font-weight: 600; }
    .table .table__cell ol li a {
      color: #5890e3; }
      .table .table__cell ol li a:hover {
        color: #2c73dc; }
  .table .table__cell ul li ol li ol li, .table .table__cell ul li ol li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-bottom: 1em;
    margin-left: 1.5em;
    list-style: decimal; }
    .table .table__cell ul li ol li ol li strong, .table .table__cell ul li ol li strong {
      font-weight: 600; }
    .table .table__cell ul li ol li ol li a, .table .table__cell ul li ol li a {
      color: #5890e3; }
      .table .table__cell ul li ol li ol li a:hover, .table .table__cell ul li ol li a:hover {
        color: #2c73dc; }
    .table .table__cell ul li ol li ol li:before, .table .table__cell ul li ol li:before {
      content: none; }
  .table .table__cell ul:not(:first-child) {
    margin-top: 1em; }
  .table .table__cell ul li, .table .table__cell ol ul li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-top: 0.5em;
    margin-left: 0.5em;
    list-style: disc; }
    .table .table__cell ul li strong, .table .table__cell ol ul li strong {
      font-weight: 600; }
    .table .table__cell ul li a, .table .table__cell ol ul li a {
      color: #5890e3; }
      .table .table__cell ul li a:hover, .table .table__cell ol ul li a:hover {
        color: #2c73dc; }
  .table .table__cell ul li ul li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-top: 0.3em;
    margin-left: 2em;
    list-style: square;
    padding: none; }
    .table .table__cell ul li ul li strong {
      font-weight: 600; }
    .table .table__cell ul li ul li a {
      color: #5890e3; }
      .table .table__cell ul li ul li a:hover {
        color: #2c73dc; }
    .table .table__cell ul li ul li:before {
      content: none; }
  .table .table__cell table {
    margin-top: 1em;
    height: auto;
    width: 85%; }
    .table .table__cell table.ltr td:first-child {
      font-weight: 600; }
    @media screen and (min-width: 46.875em) {
      .table .table__cell table.ltr td:first-child {
        height: auto;
        width: 25%; } }
    .table .table__cell table tr:first-child td:first-child {
      margin-top: 0; }
    .table .table__cell table td {
      display: block;
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727; }
      .table .table__cell table td strong {
        font-weight: 600; }
      .table .table__cell table td a {
        color: #5890e3; }
        .table .table__cell table td a:hover {
          color: #2c73dc; }
      .table .table__cell table td:nth-child(odd) {
        margin-top: 1em; }
      .table .table__cell table td:nth-child(even) {
        padding-bottom: 1em; }
    @media screen and (min-width: 46.875em) {
      .table .table__cell table td {
        display: table-cell;
        vertical-align: top;
        padding-top: 1em;
        padding-bottom: 1em; } }
  .table .table__cell dl {
    margin-top: 1em;
    display: block; }
    .table .table__cell dl::after {
      clear: both;
      content: "";
      display: table; }
    .table .table__cell dl dt {
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727;
      font-weight: 600;
      display: block; }
      .table .table__cell dl dt strong {
        font-weight: 600; }
      .table .table__cell dl dt a {
        color: #5890e3; }
        .table .table__cell dl dt a:hover {
          color: #2c73dc; }
      .table .table__cell dl dt:not(:first-child) {
        margin-top: 1em; }
    .table .table__cell dl dd {
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727;
      display: block;
      border-bottom: 1px dashed #f2f2f2;
      padding-bottom: 1em; }
      .table .table__cell dl dd strong {
        font-weight: 600; }
      .table .table__cell dl dd a {
        color: #5890e3; }
        .table .table__cell dl dd a:hover {
          color: #2c73dc; }
    @media screen and (min-width: 46.875em) {
      .table .table__cell dl dt {
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 24.12618%;
        clear: left;
        border-bottom: 1px dashed #f2f2f2;
        padding-bottom: 1em; }
        .table .table__cell dl dt:last-child {
          margin-right: 0; }
      .table .table__cell dl dd {
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 74.70873%;
        margin-right: 0; }
        .table .table__cell dl dd:last-child {
          margin-right: 0; }
        .table .table__cell dl dd:not(:nth-child(2)) {
          margin-top: 1em; } }
  .table .table__cell p {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727; }
    .table .table__cell p strong {
      font-weight: 600; }
    .table .table__cell p a {
      color: #5890e3; }
      .table .table__cell p a:hover {
        color: #2c73dc; }
    .table .table__cell p:not(:first-child) {
      margin-top: 1em; }
  .table .table__cell img {
    max-width: 100%;
    height: auto;
    /** @include padding(2px 2px 2px 2px);**/
    /** border: 1px solid lighten($color-grey, 10%);**/ }
    .table .table__cell img.float {
      float: left;
      margin-top: 1.5em;
      margin-right: 1em;
      margin-bottom: 1em; }
  .table .table__cell small {
    font-size: 0.875em; }
  .table .table__cell .responsive-iframe {
    height: 0;
    width: 100%;
    padding-top: 56.5%;
    position: relative;
    margin-top: 1em;
    margin-bottom: 1em; }
  .table .table__cell iframe {
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0; }
  .table .table__cell .glyph {
    font-size: 2em; }
    .table .table__cell .glyph.glyph--check {
      color: #5890e3; }
    .table .table__cell .glyph.glyph--close {
      color: #999; }
  .table .table__cell:nth-child(1) {
    height: auto;
    width: 100%;
    padding-top: 1.5em;
    padding-bottom: 1em; }
  .table .table__cell:nth-child(2) {
    text-align: center;
    font-size: 0.875em; }
  .table .table__cell:nth-child(3) {
    text-align: center;
    font-size: 0.875em;
    border-left: 1px dashed #d9d9d9;
    background: #dc5323;
    background: rgba(220, 83, 35, 0.02); }

.table:last-child {
  padding-bottom: 2.5em; }

@media screen and (max-width: 46.8125em) {
  .table .table__cell:nth-child(2) {
    position: relative;
    float: left;
    height: auto;
    width: 50%;
    border-top: 1px dashed #d9d9d9; }
    .table .table__cell:nth-child(2) span {
      display: block;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translateY(-60%);
      -moz-transform: translateY(-60%);
      -ms-transform: translateY(-60%);
      -o-transform: translateY(-60%);
      transform: translateY(-60%);
      height: auto;
      width: 50%; }
    .table .table__cell:nth-child(2) .glyph {
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translateY(-60%);
      -moz-transform: translateY(-60%);
      -ms-transform: translateY(-60%);
      -o-transform: translateY(-60%);
      transform: translateY(-60%); }
    .table .table__cell:nth-child(2):before {
      position: relative;
      left: -5px;
      content: url("/wp-content/themes/stockrover/media/images/icon-basic--grayscale.svg");
      display: inline-block;
      float: left; }
    .table .table__cell:nth-child(2):after {
      font-weight: 600;
      content: 'Basic';
      height: auto;
      width: 100px;
      display: inline-block;
      position: absolute;
      top: 10px;
      left: -5px; }
  .table .table__cell:nth-child(3) {
    position: relative;
    float: left;
    height: auto;
    width: 50%;
    border-top: 1px dashed #d9d9d9; }
    .table .table__cell:nth-child(3) span {
      display: block;
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translateY(-60%);
      -moz-transform: translateY(-60%);
      -ms-transform: translateY(-60%);
      -o-transform: translateY(-60%);
      transform: translateY(-60%);
      height: auto;
      width: 50%; }
    .table .table__cell:nth-child(3) .glyph {
      position: absolute;
      top: 50%;
      left: 50%;
      -webkit-transform: translateY(-60%);
      -moz-transform: translateY(-60%);
      -ms-transform: translateY(-60%);
      -o-transform: translateY(-60%);
      transform: translateY(-60%); }
    .table .table__cell:nth-child(3):before {
      position: relative;
      left: -5px;
      content: url("/wp-content/themes/stockrover/media/images/icon-premium--grayscale.svg");
      display: inline-block;
      float: left; }
    .table .table__cell:nth-child(3):after {
      font-weight: 600;
      content: 'Premium';
      height: auto;
      width: 100px;
      display: inline-block;
      position: absolute;
      top: 10px;
      left: -5px; } }

@media screen and (min-width: 46.875em) {
  .table:not(:last-child) {
    margin-bottom: 7.5em; }
  .table .table__row:nth-child(1) .table__cell {
    position: relative; }
    .table .table__row:nth-child(1) .table__cell:nth-child(2):before {
      display: inline-block;
      position: absolute;
      top: -100px;
      left: 50%;
      -webkit-transform: translateX(-50%);
      -moz-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      -o-transform: translateX(-50%);
      transform: translateX(-50%);
      content: url("/wp-content/themes/stockrover/media/images/icon-basic--grayscale.svg"); }
    .table .table__row:nth-child(1) .table__cell:nth-child(2):after {
      display: inline-block;
      position: absolute;
      top: -25px;
      left: 50%;
      -webkit-transform: translateX(-50%);
      -moz-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      -o-transform: translateX(-50%);
      transform: translateX(-50%);
      height: auto;
      width: 100px;
      content: 'Basic';
      font-weight: 600; }
    .table .table__row:nth-child(1) .table__cell:nth-child(3):before {
      display: inline-block;
      position: absolute;
      top: -100px;
      left: 50%;
      -webkit-transform: translateX(-50%);
      -moz-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      -o-transform: translateX(-50%);
      transform: translateX(-50%);
      content: url("/wp-content/themes/stockrover/media/images/icon-premium--grayscale.svg"); }
    .table .table__row:nth-child(1) .table__cell:nth-child(3):after {
      display: inline-block;
      position: absolute;
      top: -25px;
      left: 50%;
      -webkit-transform: translateX(-50%);
      -moz-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      -o-transform: translateX(-50%);
      transform: translateX(-50%);
      height: auto;
      width: 100px;
      content: 'Premium';
      font-weight: 600; }
  .table .table__cell {
    display: table-cell; }
    .table .table__cell:nth-child(1) {
      height: auto;
      width: 60%; }
    .table .table__cell:nth-child(2) {
      height: auto;
      width: 20%; }
      .table .table__cell:nth-child(2):before {
        display: none; }
      .table .table__cell:nth-child(2):after {
        display: none; }
    .table .table__cell:nth-child(3) {
      height: auto;
      width: 20%;
      background: #dc5323;
      background: rgba(220, 83, 35, 0.02); } }

@media screen and (min-width: 62.5em) {
  .table:last-child {
    padding-bottom: 5em; } }

.content {
  padding-top: 2.5em;
  padding-bottom: 2.5em; }
  .content .content__inner {
    margin-right: auto;
    margin-left: auto;
    max-width: 90%; }
    .content .content__inner::after {
      clear: both;
      content: "";
      display: table; }
    @media screen and (min-width: 62.5em) {
      .content .content__inner {
        max-width: 1000px; } }
  .content .content__heading {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727;
    border-bottom: 1px solid #999;
    padding-bottom: 0.5em;
    margin-bottom: 0.5em; }
    @media screen and (min-width: 46.875em) {
      .content .content__heading {
        font-size: 2.5em; } }
  .content .content__copy a {
    color: #5890e3; }
  .content .content__copy h1 {
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1.2;
    color: #272727; }
    @media screen and (min-width: 46.875em) {
      .content .content__copy h1 {
        font-size: 2.5em; } }
  .content .content__copy h2 {
    font-size: 1.5em;
    font-weight: 600;
    line-height: 1.2;
    color: #272727; }
    .content .content__copy h2:not(:first-child) {
      margin-top: 2em; }
  .content .content__copy h3 {
    font-size: 1.25em;
    font-weight: 600; }
    .content .content__copy h3:not(:first-child) {
      margin-top: 1em; }
  .content .content__copy h4 {
    font-size: 1.25em;
    font-weight: 600; }
  .content .content__copy h5 {
    font-size: 1em;
    font-weight: 600;
    color: #272727; }
  .content .content__copy em {
    font-style: italic; }
  .content .content__copy ol:not(:first-child) {
    margin-top: 1em; }
  .content .content__copy ol li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-bottom: 1em;
    margin-left: 1.5em;
    list-style: decimal; }
    .content .content__copy ol li strong {
      font-weight: 600; }
    .content .content__copy ol li a {
      color: #5890e3; }
      .content .content__copy ol li a:hover {
        color: #2c73dc; }
  .content .content__copy ul li ol li ol li, .content .content__copy ul li ol li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-bottom: 1em;
    margin-left: 1.5em;
    list-style: decimal; }
    .content .content__copy ul li ol li ol li strong, .content .content__copy ul li ol li strong {
      font-weight: 600; }
    .content .content__copy ul li ol li ol li a, .content .content__copy ul li ol li a {
      color: #5890e3; }
      .content .content__copy ul li ol li ol li a:hover, .content .content__copy ul li ol li a:hover {
        color: #2c73dc; }
    .content .content__copy ul li ol li ol li:before, .content .content__copy ul li ol li:before {
      content: none; }
  .content .content__copy ul:not(:first-child) {
    margin-top: 1em; }
  .content .content__copy ul li, .content .content__copy ol ul li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-top: 0.5em;
    margin-left: 0.5em;
    list-style: disc; }
    .content .content__copy ul li strong, .content .content__copy ol ul li strong {
      font-weight: 600; }
    .content .content__copy ul li a, .content .content__copy ol ul li a {
      color: #5890e3; }
      .content .content__copy ul li a:hover, .content .content__copy ol ul li a:hover {
        color: #2c73dc; }
  .content .content__copy ul li ul li {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727;
    line-height: 1.8;
    margin-top: 0.3em;
    margin-left: 2em;
    list-style: square;
    padding: none; }
    .content .content__copy ul li ul li strong {
      font-weight: 600; }
    .content .content__copy ul li ul li a {
      color: #5890e3; }
      .content .content__copy ul li ul li a:hover {
        color: #2c73dc; }
    .content .content__copy ul li ul li:before {
      content: none; }
  .content .content__copy table {
    margin-top: 1em;
    height: auto;
    width: 85%; }
    .content .content__copy table.ltr td:first-child {
      font-weight: 600; }
    @media screen and (min-width: 46.875em) {
      .content .content__copy table.ltr td:first-child {
        height: auto;
        width: 25%; } }
    .content .content__copy table tr:first-child td:first-child {
      margin-top: 0; }
    .content .content__copy table td {
      display: block;
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727; }
      .content .content__copy table td strong {
        font-weight: 600; }
      .content .content__copy table td a {
        color: #5890e3; }
        .content .content__copy table td a:hover {
          color: #2c73dc; }
      .content .content__copy table td:nth-child(odd) {
        margin-top: 1em; }
      .content .content__copy table td:nth-child(even) {
        padding-bottom: 1em; }
    @media screen and (min-width: 46.875em) {
      .content .content__copy table td {
        display: table-cell;
        vertical-align: top;
        padding-top: 1em;
        padding-bottom: 1em; } }
  .content .content__copy dl {
    margin-top: 1em;
    display: block; }
    .content .content__copy dl::after {
      clear: both;
      content: "";
      display: table; }
    .content .content__copy dl dt {
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727;
      font-weight: 600;
      display: block; }
      .content .content__copy dl dt strong {
        font-weight: 600; }
      .content .content__copy dl dt a {
        color: #5890e3; }
        .content .content__copy dl dt a:hover {
          color: #2c73dc; }
      .content .content__copy dl dt:not(:first-child) {
        margin-top: 1em; }
    .content .content__copy dl dd {
      font-weight: 400;
      font-size: 16px;
      line-height: 1.8;
      color: #272727;
      display: block;
      border-bottom: 1px dashed #f2f2f2;
      padding-bottom: 1em; }
      .content .content__copy dl dd strong {
        font-weight: 600; }
      .content .content__copy dl dd a {
        color: #5890e3; }
        .content .content__copy dl dd a:hover {
          color: #2c73dc; }
    @media screen and (min-width: 46.875em) {
      .content .content__copy dl dt {
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 24.12618%;
        clear: left;
        border-bottom: 1px dashed #f2f2f2;
        padding-bottom: 1em; }
        .content .content__copy dl dt:last-child {
          margin-right: 0; }
      .content .content__copy dl dd {
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 74.70873%;
        margin-right: 0; }
        .content .content__copy dl dd:last-child {
          margin-right: 0; }
        .content .content__copy dl dd:not(:nth-child(2)) {
          margin-top: 1em; } }
  .content .content__copy p {
    font-weight: 400;
    font-size: 16px;
    line-height: 1.8;
    color: #272727; }
    .content .content__copy p strong {
      font-weight: 600; }
    .content .content__copy p a {
      color: #5890e3; }
      .content .content__copy p a:hover {
        color: #2c73dc; }
    .content .content__copy p:not(:first-child) {
      margin-top: 1em; }
  .content .content__copy img {
    max-width: 100%;
    height: auto;
    /** @include padding(2px 2px 2px 2px);**/
    /** border: 1px solid lighten($color-grey, 10%);**/ }
    .content .content__copy img.float {
      float: left;
      margin-top: 1.5em;
      margin-right: 1em;
      margin-bottom: 1em; }
  .content .content__copy small {
    font-size: 0.875em; }
  .content .content__copy .responsive-iframe {
    height: 0;
    width: 100%;
    padding-top: 56.5%;
    position: relative;
    margin-top: 1em;
    margin-bottom: 1em; }
  .content .content__copy iframe {
    height: 100%;
    width: 100%;
    position: absolute;
    top: 0;
    left: 0; }
  @media screen and (min-width: 62.5em) {
    .content {
      padding-top: 5em;
      padding-bottom: 5em; } }
  .content.content--tags .content__inner, .content.content--author .content__inner {
    position: relative; }
  .content.content--tags .content__cta, .content.content--author .content__cta {
    position: absolute;
    top: 0.65em;
    right: 0;
    color: #5890e3;
    font-size: 0.875em; }
  @media screen and (min-width: 46.875em) {
    .content.content--tags .content__cta, .content.content--author .content__cta {
      position: absolute;
      top: 2em;
      right: 0; } }

.progress .progress__list {
  text-align: center; }

.progress .progress__item {
  position: relative;
  background: #ddd;
  display: inline-block;
  border-radius: 50%;
  height: 50px;
  width: 50px;
  color: #fff;
  line-height: 50px;
  text-align: center;
  font-size: 18px;
  margin: 1em 0.5em; }
  .progress .progress__item:before {
    content: '';
    position: absolute;
    top: 50%;
    left: 100%;
    height: 1px;
    width: 100%;
    background: #ddd; }
  .progress .progress__item:last-child:before {
    display: none; }
  .progress .progress__item.progress__item--completed {
    background: #5890e3; }
    .progress .progress__item.progress__item--completed:before {
      background: #ddd; }
  .progress .progress__item.progress__item--active {
    -webkit-animation: oscilate 1.5s infinite;
    -moz-animation: oscilate 1.5s infinite;
    animation: oscilate 1.5s infinite; }
  .progress .progress__item.progress__item--check span:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 30px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: absolute;
    left: 0;
    width: 100%; }

@media screen and (min-width: 62.5em) {
  .progress .progress__item {
    margin-right: 1em;
    margin-left: 1em; } }

.layout.layout--home {
  padding-bottom: 5em; }

@media screen and (min-width: 62.5em) {
  .layout.layout--sidebar {
    padding-bottom: 5em; }
    .layout.layout--sidebar .layout__inner {
      margin-right: auto;
      margin-left: auto;
      max-width: 90%; }
      .layout.layout--sidebar .layout__inner::after {
        clear: both;
        content: "";
        display: table; } }
    @media screen and (min-width: 62.5em) and (min-width: 62.5em) {
      .layout.layout--sidebar .layout__inner {
        max-width: 1000px; } }

@media screen and (min-width: 62.5em) {
    .layout.layout--sidebar .layout__region:nth-child(1) {
      float: left;
      display: block;
      margin-right: 1.16509%;
      width: 24.12618%; }
      .layout.layout--sidebar .layout__region:nth-child(1):last-child {
        margin-right: 0; }
    .layout.layout--sidebar .layout__region:nth-child(2) {
      margin-left: 4.21521%;
      float: left;
      display: block;
      margin-right: 1.16509%;
      width: 70.49352%; }
      .layout.layout--sidebar .layout__region:nth-child(2):last-child {
        margin-right: 0; } }

.layout.layout--basic .layout__region {
  padding-bottom: 5em; }

@media screen and (max-width: 62.4375em) {
  .layout.layout--basic .layout__inner {
    position: relative; }
  .layout.layout--basic .progress {
    position: absolute;
    top: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    transform: translateX(-50%);
    width: 100%; } }

.layout.layout--register {
  background: #F7F9FA; }
  .layout.layout--register .content__cta {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 0;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%);
    background: #5890e3;
    background: #5890e3; }
    .layout.layout--register .content__cta:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .layout.layout--register .content__cta:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
  @media screen and (max-width: 62.4375em) {
    .layout.layout--register .layout__inner {
      position: relative;
      padding-top: 2.5em; }
    .layout.layout--register .progress {
      position: absolute;
      top: 0;
      left: 50%;
      -webkit-transform: translateX(-50%);
      -moz-transform: translateX(-50%);
      -ms-transform: translateX(-50%);
      -o-transform: translateX(-50%);
      transform: translateX(-50%);
      width: 100%; } }
  @media screen and (min-width: 62.5em) {
    .layout.layout--register {
      padding-bottom: 10em; }
      .layout.layout--register .layout__inner {
        margin-right: auto;
        margin-left: auto;
        max-width: 90%; }
        .layout.layout--register .layout__inner::after {
          clear: both;
          content: "";
          display: table; } }
    @media screen and (min-width: 62.5em) and (min-width: 62.5em) {
      .layout.layout--register .layout__inner {
        max-width: 1000px; } }
  @media screen and (min-width: 62.5em) {
      .layout.layout--register .layout__region:nth-child(1) {
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 49.41745%; }
        .layout.layout--register .layout__region:nth-child(1):last-child {
          margin-right: 0; }
      .layout.layout--register .layout__region:nth-child(2) {
        padding-top: 5em;
        padding-bottom: 5em;
        margin-left: 4.21521%;
        float: left;
        display: block;
        margin-right: 1.16509%;
        width: 45.20224%; }
        .layout.layout--register .layout__region:nth-child(2):last-child {
          margin-right: 0; }
        .layout.layout--register .layout__region:nth-child(2) .content {
          padding-top: 2em; }
      .layout.layout--register .content {
        padding-top: 6em;
        padding-bottom: 0; }
        .layout.layout--register .content .content__heading {
          margin-bottom: 0.75em; } }

.layout.layout--split .content {
  padding-bottom: 0; }
  .layout.layout--split .content .content__inner {
    margin-right: 0;
    margin-left: 0; }
  .layout.layout--split .content + .form__fieldset {
    margin-top: 0; }

@media screen and (min-width: 62.5em) {
  .layout.layout--split .content {
    padding-top: 6em;
    padding-bottom: 0; }
    .layout.layout--split .content .content__heading {
      margin-bottom: 0.75em; }
  .layout.layout--split .layout__region:nth-child(1) {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 100%; }
    .layout.layout--split .layout__region:nth-child(1):last-child {
      margin-right: 0; } }

.definitions .definitions__inner {
  margin-right: auto;
  margin-left: auto;
  max-width: 90%; }
  .definitions .definitions__inner::after {
    clear: both;
    content: "";
    display: table; }
  @media screen and (min-width: 62.5em) {
    .definitions .definitions__inner {
      max-width: 1000px; } }

.definitions .definitions__heading {
  font-size: 1.5em;
  font-weight: 600;
  line-height: 1.2;
  color: #272727;
  margin-top: 2em; }

.definitions .definitions__list {
  margin-top: 1em; }

.definitions .definitions__term {
  font-weight: 400;
  font-size: 16px;
  line-height: 1.8;
  color: #272727;
  font-weight: 600; }
  .definitions .definitions__term strong {
    font-weight: 600; }
  .definitions .definitions__term a {
    color: #5890e3; }
    .definitions .definitions__term a:hover {
      color: #2c73dc; }
  .definitions .definitions__term:not(:first-child) {
    margin-top: 1em; }

.definitions .definitions__definition {
  font-weight: 400;
  font-size: 16px;
  line-height: 1.8;
  color: #272727; }
  .definitions .definitions__definition strong {
    font-weight: 600; }
  .definitions .definitions__definition a {
    color: #5890e3; }
    .definitions .definitions__definition a:hover {
      color: #2c73dc; }

.comments-title {
  margin-top: 2rem; }

.comment-list .comment-author img {
  display: none; }

.comment-list .comment-metadata {
  font-size: 12px; }

.comment-list .comment {
  margin-top: 1em;
  padding-top: 1em; }
  .comment-list .comment:not(:first-child) {
    border-top: 1px dashed #f2f2f2; }
  .comment-list .comment.depth-2 {
    margin-left: 1em; }

.comment-list .comment-awaiting-moderation {
  display: none; }

.comment-list .comment-content {
  margin-top: 1em;
  margin-bottom: 1em; }

.comment-list .reply {
  font-size: 12px;
  text-align: right; }

.comment-respond {
  margin-top: 2em;
  padding-top: 2em;
  border-top: 1px solid #f2f2f2; }

.comment-form .comment-form-url {
  display: none; }

.comment-form .comment-notes {
  display: none; }

.comment-form label {
  color: #272727;
  font-size: 0.75em; }

.comment-form textarea {
  display: block;
  width: 100%;
  border: 1px solid #f2f2f2;
  border-bottom: 3px solid #f2f2f2;
  padding: 1em 0.5em;
  color: #272727;
  font-size: 0.875em;
  margin-top: 0.5em;
  -webkit-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
  -moz-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
  transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06); }
  .comment-form textarea:focus {
    border-bottom: 3px solid #5890e3; }

.comment-form input[type=text], .comment-form input[type=email], .comment-form input[type=password] {
  height: auto;
  width: 100%;
  padding: 1em 0.5em;
  margin-top: 0.5em;
  color: #272727;
  font-size: 0.875em;
  -webkit-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
  -moz-transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
  transition: all, 250ms, cubic-bezier(0.755, 0.05, 0.855, 0.06);
  border: 1px solid #f2f2f2;
  border-bottom: 3px solid #f2f2f2; }
  .comment-form input[type=text]::-webkit-input-placeholder, .comment-form input[type=email]::-webkit-input-placeholder, .comment-form input[type=password]::-webkit-input-placeholder {
    -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
  .comment-form input[type=text]::-moz-placeholder, .comment-form input[type=email]::-moz-placeholder, .comment-form input[type=password]::-moz-placeholder {
    -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
  .comment-form input[type=text]:-moz-placeholder, .comment-form input[type=email]:-moz-placeholder, .comment-form input[type=password]:-moz-placeholder {
    -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
  .comment-form input[type=text]:-ms-input-placeholder, .comment-form input[type=email]:-ms-input-placeholder, .comment-form input[type=password]:-ms-input-placeholder {
    -webkit-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: color, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955); }
  .comment-form input[type=text] ~ .form__label, .comment-form input[type=email] ~ .form__label, .comment-form input[type=password] ~ .form__label {
    position: absolute;
    top: -1em;
    right: 0;
    display: block;
    color: #5890e3;
    -webkit-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: opacity, 250ms, cubic-bezier(0.455, 0.03, 0.515, 0.955);
    text-align: right;
    white-space: nowrap;
    font-size: 10px;
    opacity: 0; }
  .comment-form input[type=text]:focus, .comment-form input[type=email]:focus, .comment-form input[type=password]:focus {
    border-bottom: 3px solid #5890e3; }
    .comment-form input[type=text]:focus ~ .form__label, .comment-form input[type=email]:focus ~ .form__label, .comment-form input[type=password]:focus ~ .form__label {
      opacity: 1; }
    .comment-form input[type=text]:focus::-webkit-input-placeholder, .comment-form input[type=email]:focus::-webkit-input-placeholder, .comment-form input[type=password]:focus::-webkit-input-placeholder {
      color: #ffffff; }
    .comment-form input[type=text]:focus::-moz-placeholder, .comment-form input[type=email]:focus::-moz-placeholder, .comment-form input[type=password]:focus::-moz-placeholder {
      color: #ffffff; }
    .comment-form input[type=text]:focus:-moz-placeholder, .comment-form input[type=email]:focus:-moz-placeholder, .comment-form input[type=password]:focus:-moz-placeholder {
      color: #ffffff; }
    .comment-form input[type=text]:focus:-ms-input-placeholder, .comment-form input[type=email]:focus:-ms-input-placeholder, .comment-form input[type=password]:focus:-ms-input-placeholder {
      color: #ffffff; }
  .comment-form input[type=text]:valid ~ .form__label, .comment-form input[type=email]:valid ~ .form__label, .comment-form input[type=password]:valid ~ .form__label {
    opacity: 1; }

.comment-form input.submit {
  display: inline-block;
  margin-top: 1em;
  background: #5890e3;
  background: #5890e3;
  color: #fff;
  font-weight: bold;
  font-size: 14px;
  text-transform: uppercase;
  padding: 0.5em 1em;
  -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
  line-height: normal;
  position: relative;
  left: 0;
  -webkit-transform: translateX(0%);
  -moz-transform: translateX(0%);
  -ms-transform: translateX(0%);
  -o-transform: translateX(0%);
  transform: translateX(0%);
  background: #5890e3;
  background: #5890e3;
  width: 100%; }
  .comment-form input.submit:hover {
    background: #6e9fe7;
    background: #6e9fe7; }
  .comment-form input.submit:after {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 3px;
    left: 4px; }
  .comment-form input.submit:hover {
    background: #6e9fe7;
    background: #6e9fe7; }

.application.active--navigation {
  overflow: hidden; }
  .application.active--navigation .aside {
    -webkit-transform: translate3d(0%, 0, 0);
    -moz-transform: translate3d(0%, 0, 0);
    -ms-transform: translate3d(0%, 0, 0);
    -o-transform: translate3d(0%, 0, 0);
    transform: translate3d(0%, 0, 0); }
  .application.active--navigation .toggle.toggle--navigation .toggle__button:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 40px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #232323;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale; }

.application.active--search .toggle.toggle--search .toggle__button:before {
  display: inline-block;
  content: "";
  font-family: 'glyphs';
  font-size: 32px;
  font-variant: normal;
  text-align: center;
  text-transform: none;
  font-style: normal;
  font-weight: normal;
  color: #5890e3;
  speak: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.application.active--search .form.form--search {
  -webkit-transform: translateY(0%);
  -moz-transform: translateY(0%);
  -ms-transform: translateY(0%);
  -o-transform: translateY(0%);
  transform: translateY(0%); }

.application.active--modal {
  overflow: hidden; }
  .application.active--modal .modal {
    visibility: visible;
    opacity: 1; }

@media screen and (max-width: 62.4375em) {
  .page-id-1712 .layout__inner {
    position: relative;
    padding-top: 2.5em; }
  .page-id-1712 .progress {
    position: absolute;
    top: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    transform: translateX(-50%);
    width: 100%; } }

@media screen and (min-width: 62.5em) {
  .page-id-1712 .content .content__heading {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 49.41745%; }
    .page-id-1712 .content .content__heading:last-child {
      margin-right: 0; }
  .page-id-1712 .content .content__copy {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 100%; }
    .page-id-1712 .content .content__copy:last-child {
      margin-right: 0; }
  .page-id-1712 .progress {
    margin-left: 4.21521%;
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 45.20224%;
    margin-right: 0; }
    .page-id-1712 .progress:last-child {
      margin-right: 0; } }

.newspaperrover {
  margin-top: 1.5em; }

.indicessummary {
  margin-top: 1.5em;
  margin-bottom: 2.5em; }

.commoditiessummary {
  margin-top: 1.5em;
  margin-bottom: 2.5em; }

@media screen and (min-width: 46.875em) {
  .indicessummary {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 49.41745%; }
    .indicessummary:last-child {
      margin-right: 0; }
  .commoditiessummary {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 49.41745%;
    margin-right: 0; }
    .commoditiessummary:last-child {
      margin-right: 0; } }

.resources-page img {
  padding: 0;
  margin: 5px 0; }

.resources-page th {
  text-align: left;
  vertical-align: bottom;
  padding: 3em 0 .2em .1em;
  margin: 0;
  border-bottom: 1px solid grey; }

.resources-page td {
  text-align: left;
  vertical-align: bottom;
  margin: 0;
  padding: 0; }

.resources-page .resource_nav {
  width: 100%;
  position: relative;
  left: 0;
  transform: translateX(0%); }
  .resources-page .resource_nav a {
    color: white;
    font-weight: 300; }
  .resources-page .resource_nav .links {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 0;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%);
    float: right; }
    .resources-page .resource_nav .links:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .resources-page .resource_nav .links:after {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 18px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: 3px;
      left: 4px; }
  .resources-page .resource_nav .backlinks {
    float: left; }
  .resources-page .resource_nav .applinks {
    float: none;
    margin-left: 25%; }
  .resources-page .resource_nav .backlinks:before, .resources-page .resource_nav .applinks:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 3px;
    right: 4px; }
  .resources-page .resource_nav .backlinks:after, .resources-page .resource_nav .applinks:after {
    content: none; }
  .resources-page .resource_nav .links, .resources-page .resource_nav .backlinks, .resources-page .resource_nav .applinks {
    display: inline-block;
    width: 46%;
    font: 14px Arial;
    background-color: #5890E3;
    margin-top: 1em;
    text-align: center;
    vertical-align: middle;
    padding: .5em 1em;
    text-transform: none;
    border-radius: 10px; }
  .resources-page .resource_nav .links:hover, .resources-page .resource_nav .backlinks:hover {
    background-color: #6E9FE7; }

.resources-page table {
  table-layout: fixed; }
  .resources-page table tbody tr td {
    padding: 10px; }
  @media (max-width: 1000px) {
    .resources-page table tr td {
      display: block;
      padding: 5px; }
    .resources-page table tr th {
      display: none; } }

.content.content__inner.content__heading.content__copy.resources-page {
  background-color: #ffffff; }
  @media (max-width: 1000px) {
    .content.content__inner.content__heading.content__copy.resources-page {
      max-width: 1000px;
      width: 100vw; } }
  @media (max-width: 320px) {
    .content.content__inner.content__heading.content__copy.resources-page {
      max-width: 320px;
      width: 100vw; } }

@media screen and (max-width: 62.4375em) {
  .page-id-1712 .layout__inner {
    position: relative;
    padding-top: 2.5em; }
  .page-id-1712 .progress {
    position: absolute;
    top: 0;
    left: 50%;
    -webkit-transform: translateX(-50%);
    -moz-transform: translateX(-50%);
    -ms-transform: translateX(-50%);
    -o-transform: translateX(-50%);
    transform: translateX(-50%);
    width: 100%; } }

@media screen and (min-width: 62.5em) {
  .page-id-1712 .content .content__heading {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 49.41745%; }
    .page-id-1712 .content .content__heading:last-child {
      margin-right: 0; }
  .page-id-1712 .content .content__copy {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 100%; }
    .page-id-1712 .content .content__copy:last-child {
      margin-right: 0; }
  .page-id-1712 .progress {
    margin-left: 4.21521%;
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 45.20224%;
    margin-right: 0; }
    .page-id-1712 .progress:last-child {
      margin-right: 0; } }

.newspaperrover {
  margin-top: 1.5em; }

.indicessummary {
  margin-top: 1.5em;
  margin-bottom: 2.5em; }

.commoditiessummary {
  margin-top: 1.5em;
  margin-bottom: 2.5em; }

@media screen and (min-width: 46.875em) {
  .indicessummary {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 49.41745%; }
    .indicessummary:last-child {
      margin-right: 0; }
  .commoditiessummary {
    float: left;
    display: block;
    margin-right: 1.16509%;
    width: 49.41745%;
    margin-right: 0; }
    .commoditiessummary:last-child {
      margin-right: 0; } }

.resources-page img {
  padding: 0;
  margin: 5px 0; }

.resources-page th {
  text-align: left;
  vertical-align: bottom;
  padding: 3em 0 .2em .1em;
  margin: 0;
  border-bottom: 1px solid grey; }

.resources-page td {
  text-align: left;
  vertical-align: bottom;
  margin: 0;
  padding: 0; }

.resources-page .resource_nav {
  width: 100%;
  position: relative;
  left: 0;
  transform: translateX(0%); }
  .resources-page .resource_nav a {
    color: white;
    font-weight: 300; }
  .resources-page .resource_nav .links {
    display: inline-block;
    margin-top: 1em;
    background: #5890e3;
    background: #5890e3;
    color: #fff;
    font-weight: bold;
    font-size: 14px;
    text-transform: uppercase;
    padding: 0.5em 1em;
    -webkit-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    -moz-transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    transition: all 150ms cubic-bezier(0.455, 0.03, 0.515, 0.955);
    line-height: normal;
    position: relative;
    left: 0;
    -webkit-transform: translateX(0%);
    -moz-transform: translateX(0%);
    -ms-transform: translateX(0%);
    -o-transform: translateX(0%);
    transform: translateX(0%);
    float: right; }
    .resources-page .resource_nav .links:hover {
      background: #6e9fe7;
      background: #6e9fe7; }
    .resources-page .resource_nav .links:after {
      display: inline-block;
      content: "";
      font-family: 'glyphs';
      font-size: 18px;
      font-variant: normal;
      text-align: center;
      text-transform: none;
      font-style: normal;
      font-weight: normal;
      color: #fff;
      speak: none;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      position: relative;
      top: 3px;
      left: 4px; }
  .resources-page .resource_nav .backlinks {
    float: left; }
  .resources-page .resource_nav .applinks {
    float: none;
    margin-left: 25%; }
  .resources-page .resource_nav .backlinks:before, .resources-page .resource_nav .applinks:before {
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 18px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    position: relative;
    top: 3px;
    right: 4px; }
  .resources-page .resource_nav .backlinks:after, .resources-page .resource_nav .applinks:after {
    content: none; }
  .resources-page .resource_nav .links, .resources-page .resource_nav .backlinks, .resources-page .resource_nav .applinks {
    display: inline-block;
    width: 46%;
    font: 14px Arial;
    background-color: #5890E3;
    margin-top: 1em;
    text-align: center;
    vertical-align: middle;
    padding: .5em 1em;
    text-transform: none; }
  .resources-page .resource_nav .links:hover, .resources-page .resource_nav .backlinks:hover {
    background-color: #6E9FE7; }

.price_text {
  width: 100%;
  text-align: left;
  margin-left: 20px; }
  @media only screen and (max-width: 600px) {
    .price_text {
      width: 90%;
      margin: auto 10px; } }

.form.form--product .form__submit.pricing {
  width: 46%;
  margin: auto 10px;
  display: inline-block; }
  @media only screen and (max-width: 749px) {
    .form.form--product .form__submit.pricing {
      display: block;
      width: 200px;
      margin: 20px auto 10px auto;
      padding: 1em 2em; } }

.content .content__inner .content__copy table.pricingTable {
  width: 80%;
  margin: auto;
  border: 1px solid black; }
  @media only screen and (max-width: 600px) {
    .content .content__inner .content__copy table.pricingTable th, .content .content__inner .content__copy table.pricingTable td, .content .content__inner .content__copy table.pricingTable tr {
      display: block; } }
  @media only screen and (max-width: 600px) {
    .content .content__inner .content__copy table.pricingTable tbody tr nth-child(even) {
      background-color: #ccc; }
    .content .content__inner .content__copy table.pricingTable tbody tr nth-child(odd) {
      background-color: #fff; } }
  .content .content__inner .content__copy table.pricingTable tbody tr td.pricingTableTitle, .content .content__inner .content__copy table.pricingTable tbody tr td.pricingTableTitleVirtual {
    font-size: 16px;
    font-weight: 600;
    line-height: 36px;
    background-color: #eee;
    height: 60px; }
    @media only screen and (max-width: 600px) {
      .content .content__inner .content__copy table.pricingTable tbody tr td.pricingTableTitle, .content .content__inner .content__copy table.pricingTable tbody tr td.pricingTableTitleVirtual {
        display: block;
        background-color: #eee;
        padding: 10px 30px;
        line-height: 1.2; } }
  @media only screen and (max-width: 600px) {
    .content .content__inner .content__copy table.pricingTable tbody tr td.pricingTableTitle {
      padding: 10px 30px;
      line-height: 1.2; } }
  @media only screen and (max-width: 600px) {
    .content .content__inner .content__copy table.pricingTable tbody tr td.pricingTableTitleVirtual {
      padding: 20px;
      line-height: 1.2; } }
  .content .content__inner .content__copy table.pricingTable tbody tr th {
    width: 33%;
    font-weight: bold;
    background-color: #ddd;
    height: 40px; }
    @media only screen and (max-width: 600px) {
      .content .content__inner .content__copy table.pricingTable tbody tr th {
        display: none;
        border: none;
        height: 0; } }
  .content .content__inner .content__copy table.pricingTable tbody tr td {
    text-align: center;
    border-top: 1px solid black;
    display: table-cell; }
  @media only screen and (max-width: 600px) {
    .content .content__inner .content__copy table.pricingTable tbody tr td:nth-child(3n) {
      margin-top: 0;
      margin-bottom: 20px; }
    .content .content__inner .content__copy table.pricingTable tbody tr td {
      font-size: 14px;
      font-weight: 400;
      display: block;
      padding: 5px 0;
      border: none; }
    .content .content__inner .content__copy table.pricingTable tbody tr td:nth-child(2n) {
      padding-bottom: 20px; }
    .content .content__inner .content__copy table.pricingTable tbody tr td:nth-child(1n):before {
      content: "Managed Devices: ";
      text-align: left;
      font-weight: 600;
      font-size: 14px; }
    .content .content__inner .content__copy table.pricingTable tbody tr td:nth-child(2n):before {
      content: "License: ";
      text-align: left;
      font-weight: 600;
      font-size: 14px; }
    .content .content__inner .content__copy table.pricingTable tbody tr td:nth-child(3n):before {
      content: "Discount: ";
      text-align: left;
      font-weight: 600;
      font-size: 14px; }
    .content .content__inner .content__copy table.pricingTable tbody tr .pricingTableTitle:before {
      display: none; }
    .content .content__inner .content__copy table.pricingTable tbody tr .pricingTableTitleVirtual:before {
      display: none; } }

.pricingTable button {
  color: #fff;
  background-color: #5890e3;
  border-radius: 5px;
  width: 100px;
  height: 40px;
  margin: auto; }

@media screen and (min-width: 46.875em) {
  .pricingDownload {
    margin-left: auto; } }

@media screen and (min-width: 62.5em) {
  .pricingDownload {
    margin-left: 34%; } }

.footer .footer__inner .sm__icons ul {
  display: block;
  text-align: center;
  padding-bottom: 10px; }
  .footer .footer__inner .sm__icons ul li {
    display: inline-block;
    padding: 0 5px; }
    .footer .footer__inner .sm__icons ul li img {
      height: 20px; }

.hs-form-booleancheckbox li {
  content: none; }

/* styles for video pages: border div around video & download button */
.video_box {
  background: black;
  border: 2px solid black;
  margin-top: 20px; }

.video_trial {
  font: Arial 14px;
  background-color: #5890E3;
  padding: 1em 1.5em;
  border-radius: 15px;
  width: 40%;
  margin: 60px auto 0 auto; }

/* styles for metrics page */
.metric_table table {
  border-collapse: collapse; }

.metric_table tbody tr th {
  padding: 15px 0 15px 15px;
  text-align: left;
  background: #f2f2f2;
  border: 1px solid #dcdcdc; }

.metric_table tbody tr th.appheader {
  padding: 20px;
  margin-top: 20px;
  background: #dcdcdc;
  border-bottom: 1px solid #dcdcdc; }

.metric_table tbody tr td {
  padding: 10px;
  text-align: left;
  border: 1px solid #dcdcdc; }

.ret_to_top {
  background: #5890E3;
  border-radius: 10px;
  padding: .5em 1em;
  width: 35%;
  float: right;
  margin: .5em 0 2em 0;
  text-align: center;
  valign: center;
  font: 16px Arial; }

.content .content__copy .ret_to_top a {
  color: #fff;
  font-weight: 400;
  text-decoration-color: #fff; }

/* pdf on metrics page */
.content .content__copy img.pdfBlueRight {
  margin-top: -4px;
  border: none; }

#back2Top {
  overflow: hidden;
  z-index: 999;
  display: none;
  cursor: pointer;
  font-family: 'Open Sans', sans-serif;
  font-weight: 900;
  font-size: .9em;
  line-height: 25px;
  padding: 5px;
  background-color: #50b7ed;
  color: #ffffff;
  text-align: center;
  text-decoration: none;
  border-radius: 10px;
  position: fixed;
  top: 120px;
  right: 50px; }
  #back2Top hover {
    background-color: #50b7ed;
    color: #000; }
  @media screen and (max-width: 1400px) {
    #back2Top {
      right: 3%;
      font-size: .85em; } }
  @media screen and (max-width: 1000px) {
    #back2Top {
      top: 10px;
      right: 2%;
      font-size: .75em; } }

.prev_link_text, .next_link_text, .left_blog_text, .right_blog_text, .left_button, .right_button, .left_button_wide, .right_button_wide, .left_button_narrow {
  margin: 0 0 1em 0;
  background-color: #50b7ed;
  border: none;
  color: #ffffff;
  border-radius: 10px;
  font-weight: 900;
  font-size: .9em; }
  .prev_link_text a, .next_link_text a, .left_blog_text a, .right_blog_text a, .left_button a, .right_button a, .left_button_wide a, .right_button_wide a, .left_button_narrow a {
    color: #ffffff;
    display: block; }
  .prev_link_text .tooltip, .next_link_text .tooltip, .left_blog_text .tooltip, .right_blog_text .tooltip, .left_button .tooltip, .right_button .tooltip, .left_button_wide .tooltip, .right_button_wide .tooltip, .left_button_narrow .tooltip {
    display: inline;
    position: relative; }
  .prev_link_text .tooltip:hover:after, .next_link_text .tooltip:hover:after, .left_blog_text .tooltip:hover:after, .right_blog_text .tooltip:hover:after, .left_button .tooltip:hover:after, .right_button .tooltip:hover:after, .left_button_wide .tooltip:hover:after, .right_button_wide .tooltip:hover:after, .left_button_narrow .tooltip:hover:after {
    background: #555;
    border-radius: 5px;
    content: attr(title); }
  .prev_link_text .tooltip:hover:before, .next_link_text .tooltip:hover:before, .left_blog_text .tooltip:hover:before, .right_blog_text .tooltip:hover:before, .left_button .tooltip:hover:before, .right_button .tooltip:hover:before, .left_button_wide .tooltip:hover:before, .right_button_wide .tooltip:hover:before, .left_button_narrow .tooltip:hover:before {
    border: solid;
    border-color: #555 transparent;
    content: ""; }

.prev_link_text {
  padding: .8em 2.5em .7em 2em;
  float: left;
  max-width: 48%; }
  .prev_link_text:before {
    display: inline;
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 30px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    vertical-align: middle;
    margin: 0;
    padding: 0; }
  @media screen and (max-width: 1000px) {
    .prev_link_text {
      padding: 15px 10px;
      margin: 15px;
      font-size: .85em;
      max-width: 44%; }
      .prev_link_text:before {
        display: inline;
        display: inline-block;
        content: "";
        font-family: 'glyphs';
        font-size: 30px;
        font-variant: normal;
        text-align: center;
        text-transform: none;
        font-style: normal;
        font-weight: normal;
        color: #fff;
        speak: none;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        vertical-align: middle;
        margin: 0;
        padding: 0; } }
  @media screen and (max-width: 480px) {
    .prev_link_text {
      padding: 10px 5px;
      margin: 10px;
      font-size: .75em;
      max-width: 42%; }
      .prev_link_text:before {
        display: inline;
        display: inline-block;
        content: "";
        font-family: 'glyphs';
        font-size: 15px;
        font-variant: normal;
        text-align: center;
        text-transform: none;
        font-style: normal;
        font-weight: normal;
        color: #fff;
        speak: none;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        vertical-align: middle;
        margin: 0;
        padding: 0; } }

.next_link_text {
  padding: .8em 2em .7em 2.5em;
  float: right; }
  .next_link_text:after {
    display: inline;
    display: inline-block;
    content: "";
    font-family: 'glyphs';
    font-size: 30px;
    font-variant: normal;
    text-align: center;
    text-transform: none;
    font-style: normal;
    font-weight: normal;
    color: #fff;
    speak: none;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    vertical-align: middle;
    margin: 0;
    padding: 0; }
  @media screen and (max-width: 1000px) {
    .next_link_text {
      padding: 15px 10px;
      margin: 15px;
      font-size: .85em;
      max-width: 44%; }
      .next_link_text:after {
        display: inline;
        display: inline-block;
        content: "";
        font-family: 'glyphs';
        font-size: 30px;
        font-variant: normal;
        text-align: center;
        text-transform: none;
        font-style: normal;
        font-weight: normal;
        color: #fff;
        speak: none;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        vertical-align: middle;
        margin: 0;
        padding: 0; } }
  @media screen and (max-width: 480px) {
    .next_link_text {
      padding: 10px 5px;
      margin: 10px;
      font-size: .75em;
      max-width: 42%; }
      .next_link_text:after {
        display: inline;
        display: inline-block;
        content: "";
        font-family: 'glyphs';
        font-size: 15px;
        font-variant: normal;
        text-align: center;
        text-transform: none;
        font-style: normal;
        font-weight: normal;
        color: #fff;
        speak: none;
        -webkit-font-smoothing: antialiased;
        -moz-osx-font-smoothing: grayscale;
        vertical-align: middle;
        margin: 0;
        padding: 0; } }

.left_button {
  padding: .8em 2em .7em 2.5em;
  background: #5890E3 !important;
  float: left; }
  .left_button a {
    color: #fff !important;
    width: 11em !important;
    font-weight: bold !important; }

.right_button {
  padding: .8em 2em .7em 2.5em;
  background: #5890E3 !important;
  float: right; }
  .right_button a {
    color: #fff !important;
    width: 7em !important;
    font-weight: bold !important; }

.left_button_narrow {
  padding: .8em 2em .7em 2.5em;
  width: 32% !important;
  background: #5890E3 !important;
  float: left; }
  .left_button_narrow a {
    color: #fff !important;
    width: 11em !important;
    font-weight: bold !important; }

.left_button_wide {
  padding: .8em 2em .7em 2.5em;
  width: 90% !important;
  background: #5890E3 !important;
  float: left; }
  .left_button_wide a {
    color: #fff !important;
    font-weight: bold !important;
    text-align: center; }

.right_button_wide {
  padding: .8em 2em .7em 2.5em;
  width: 90% !important;
  background: #5890E3 !important;
  float: right; }
  .right_button_wide a {
    color: #fff !important;
    font-weight: bold !important;
    text-align: center; }

.left-cell {
  padding: .8em 2em .7em 2.5em;
  width: 58%;
  float: left; }

.right-cell {
  padding: .8em 2em .7em 2.5em;
  width: 28%;
  border: none;
  border-radius: 10px;
  background: #5890E3 !important;
  float: right; }
  .right-cell a {
    color: white !important;
    font-weight: bold !important; }

.center-cell {
  padding: .8em 2em .7em 2.5em;
  margin-top: 1em;
  margin-left: 23%;
  width: 54%;
  border: none;
  border-radius: 10px;
  background: #5890E3 !important; }
  .center-cell a {
    align-text: center;
    color: white !important;
    font-weight: bold !important; }

.center-cell-small {
  padding: .8em 2em .7em 2.5em;
  margin-top: 1em;
  margin-left: 29%;
  width: 42%;
  border: none;
  border-radius: 10px;
  background: #5890E3 !important; }
  .center-cell-small a {
    align-text: center;
    color: white !important;
    font-weight: bold !important; }

form.tech_specs {
  padding-top: 10px; }
  form.tech_specs select {
    padding: 10px 5px;
    background-color: #D1E0F5;
    font-size: 16px;
    overflow: hidden;
    font-weight: 600;
    font-family: 'Open Sans', sans-serif; }
  form.tech_specs option:not(:checked) {
    font-weight: 600;
    margin: 10px;
    padding: 10px; }
  form.tech_specs option:checked {
    font-weight: 600;
    margin: 10px;
    padding: 10px; }

.install_instructions {
  max-width: 90%;
  margin-top: 40px; }
  .install_instructions .web_text {
    margin: 30px 30px 60px 40px;
    display: block;
    background-color: #ddd;
    font-size: 12px;
    max-width: 60%; }
    .install_instructions .web_text .web_text_content {
      padding: 20px 40px; }
  .install_instructions ol li ol {
    padding-top: 20px; }

.content .content__inner .content__copy .install_instructions ol li ol li {
  list-style-type: lower-alpha;
  margin-bottom: 40px;
  margin-left: 40px; }
  .content .content__inner .content__copy .install_instructions ol li ol li .code {
    margin-left: 60px;
    font-weight: 600;
    font-size: 14px; }

/*position on banner on homepage*/
.banner_page {
  max-width: 1000px;
  margin: auto;
  background-color: #d1e0f5; }

.homepage__hero {
  background-image: url("/wp-content/themes/stockrover/media/images/new-hero-wide.jpg");
  background-size: 100% auto;
  background-repeat: no-repeat;
  background-position: left top;
  font-family: Arial, Verdana, sans-serif;
  text-align: center;
  color: #fff;
  border-top: 1px solid #000;
  min-height: 200px;
  max-height: 600px;
  height: 40vh;
  position: relative; }
  .homepage__hero a {
    color: #eee; }
  @media screen and (min-width: 1000px) {
    .homepage__hero {
      height: 60VH; }
      .homepage__hero .homepage_banner_title {
        font-size: 90px;
        color: #5890e3;
        font-weight: 400;
        border: none;
        background-color: transparent;
        width: 400px;
        margin-top: 80px;
        font-family: 'Times New Roman', Georgia, Palatino, Bookman, 'New Century Schoolbook', serif; }
        .homepage__hero .homepage_banner_title .degree {
          color: #fff;
          font-weight: 500;
          margin-top: 0; }
      .homepage__hero img {
        max-width: 400px;
        width: 100%; }
      .homepage__hero .homepage_banner_subtitle {
        font-size: 22px;
        color: #000;
        font-weight: 600;
        margin-top: 0; }
      .homepage__hero a .homepage_banner_link {
        margin-top: 5px;
        color: #5890e3;
        font-weight: 600;
        font-size: 28px;
        line-height: 1.2; }
      .homepage__hero a .homepage_feature_text {
        color: #fff;
        font-weight: 600;
        font-size: 36px;
        position: absolute;
        bottom: 70px;
        right: 60px; } }
  @media screen and (max-width: 1000px) and (min-width: 700px) {
    .homepage__hero .homepage_banner_title {
      font-size: calc( 80px + .1vw);
      color: #5890e3;
      font-weight: 500;
      border: none;
      background-color: transparent;
      max-width: 400px;
      width: 40%;
      margin-top: 10vh;
      text-align: center;
      font-family: 'Times New Roman', Georgia, Palatino, Bookman, 'New Century Schoolbook', serif; }
      .homepage__hero .homepage_banner_title .degree {
        color: #fff;
        font-weight: 500;
        margin-top: 0; }
    .homepage__hero img {
      max-width: 400px;
      width: 100%; }
    .homepage__hero .homepage_banner_subtitle {
      font-size: calc( 14px + .7vw);
      color: #000;
      font-weight: 600;
      margin-top: 0;
      margin-left: 28vw; }
    .homepage__hero a .homepage_banner_link {
      margin-top: 1vh;
      margin-right: 2vw;
      color: #5890e3;
      font-weight: 600;
      font-size: calc( 14px + .8vw);
      line-height: 1.2; }
    .homepage__hero a .homepage_feature_text {
      color: #fff;
      font-weight: 700;
      font-size: calc( 20px + 1.4vw);
      position: absolute;
      bottom: 5vh;
      right: 6vw; } }
  @media screen and (max-width: 700px) {
    .homepage__hero {
      height: 22VH; }
      .homepage__hero .homepage_banner_title {
        font-size: calc( 42px + .5vw);
        color: #5890e3;
        font-weight: 500;
        border: none;
        background-color: transparent;
        max-width: 400px;
        margin-top: 2vh;
        font-family: 'Times New Roman', Georgia, Palatino, Bookman, 'New Century Schoolbook', serif; }
        .homepage__hero .homepage_banner_title .degree {
          color: #fff;
          font-weight: 500;
          margin-top: 0; }
      .homepage__hero img {
        max-width: 400px;
        width: 100%; }
      .homepage__hero .homepage_banner_subtitle {
        font-size: calc( 14px + .7vw);
        color: #000;
        font-weight: 600;
        margin-top: 0; }
      .homepage__hero a .homepage_banner_link {
        margin-top: 0vh;
        margin-right: 2vw;
        color: #5890e3;
        font-weight: 600;
        font-size: calc( 10px + 1vw);
        line-height: 1.2; }
      .homepage__hero a .homepage_feature_text {
        color: #fff;
        font-weight: 700;
        font-size: calc( 16px + 1.2vw);
        position: absolute;
        bottom: 3vh;
        right: 4vw; } }
  @media screen and (max-height: 450px) {
    .homepage__hero {
      height: 320px; }
      .homepage__hero a .homepage_feature_text {
        bottom: 8vh; } }

.homepage_buttons {
  background-color: #92b6ed;
  width: 100%;
  height: auto;
  padding: 10px; }
  .homepage_buttons .homepage_buttons_list {
    font-size: 0;
    height: auto;
    width: 100%;
    display: flex;
    flex-direction: row;
    margin: auto; }
    .homepage_buttons .homepage_buttons_list a {
      text-decoration: none;
      color: #fff; }
    .homepage_buttons .homepage_buttons_list .text_button {
      font-size: calc( 12px + .5vw);
      padding: 0;
      height: 32px;
      text-align: left;
      flex-grow: 1;
      margin: auto;
      width: auto; }
      @media screen and (max-width: 700px) {
        .homepage_buttons .homepage_buttons_list .text_button {
          font-size: calc( 10px + .5vw);
          margin: auto;
          padding: 0;
          height: auto; } }
    .homepage_buttons .homepage_buttons_list .link_button {
      font-size: 16px;
      background-color: #5890e3;
      padding: 4px 20px 4px 20px;
      height: 32px;
      text-align: center;
      margin: auto 2%;
      width: 120px; }
      @media screen and (max-width: 700px) {
        .homepage_buttons .homepage_buttons_list .link_button {
          font-size: 14px;
          margin: auto 2%;
          padding: 5px 10px;
          width: 90px; } }

.crozdesk {
  display: inline-block;
  text-align: center;
  max-width: 300px;
  width: 30%;
  padding: 0 35% 40px 35%; }
  .crozdesk img {
    max-width: 300px; }
    @media screen and (max-width: 1000px) {
      .crozdesk img {
        max-width: 200px; } }

a.remove {
  text-indent: -9999px;
  border: 0; }

.woocommerce a.remove:hover {
  color: red;
  background-color: #fff; }

.woocommerce a.remove:before {
  font-family: sans-serif;
  content: "Delete";
  font-size: 10px;
  font-weight: 400;
  float: left;
  text-indent: 0;
  transform: translate(0, 10px);
  color: #5890e3;
  background-color: #fff; }

.woocommerce-error {
  border-top-color: #5890e3; }

.woocommerce-error::before {
  content: none; }

.woocommerce-error {
  padding: 1em 2em 1em 1em; }

.woocommerce-info, .woocommerce-message {
  display: none; }

.woocommerce-cart-form, .shop_table.woocommerce-checkout-review-order-table,
.woocommerce-checkout-review-order-table > tfoot:nth-child(3) > tr:nth-child(2) > td:nth-child(1) {
  margin: 10px auto 60px auto;
  width: 100%; }
  .woocommerce-cart-form button.button:nth-child(1), .shop_table.woocommerce-checkout-review-order-table button.button:nth-child(1),
  .woocommerce-checkout-review-order-table > tfoot:nth-child(3) > tr:nth-child(2) > td:nth-child(1) button.button:nth-child(1) {
    background-color: #5890e3;
    color: #fff;
    float: right;
    font-weight: 400; }
  .woocommerce-cart-form .shop_table_responsive th, .shop_table.woocommerce-checkout-review-order-table .shop_table_responsive th,
  .woocommerce-checkout-review-order-table > tfoot:nth-child(3) > tr:nth-child(2) > td:nth-child(1) .shop_table_responsive th {
    background-color: #eee; }

.woocommerce-checkout-review-order-table > thead:nth-child(1) > tr:nth-child(1) {
  background-color: #eee; }

.woocommerce .col2-set .col-1, .woocommerce-page .col2-set .col-1 {
  width: 45%;
  max-width: 600px; }
  @media (max-width: 770px) {
    .woocommerce .col2-set .col-1, .woocommerce-page .col2-set .col-1 {
      width: 100%;
      max-width: 100%; } }

#billing_last_name_field {
  margin-top: 0;
  margin-bottom: 1em; }

input#billing_phone.input-text {
  height: 28px;
  padding-left: 8px;
  margin: 0;
  border: none; }

.select2-container--default .select2-selection--single {
  border-radius: 0;
  border: 0px; }

.select2-container {
  vertical-align: text-top; }

.woocommerce-billing-fields__field-wrapper {
  background-color: #eee;
  border: none;
  padding: 20px 10px;
  margin: 10px 0; }

span.woocommerce-input-wrapper {
  border: none; }
  span.woocommerce-input-wrapper input {
    padding-left: 8px;
    font-size: 16px;
    font-family: 'Open Sans', sans-serif;
    font-weight: 400;
    height: 32px;
    line-height: 32px; }

#place_order {
  background-color: #5890e3; }

.woocommerce-checkout #payment {
  background-color: #eee; }

fieldset#wc-braintree-cc-form.wc-credit-card-form.wc-payment-form p.form-row.form-row-last.woocommerce-validated {
  width: 40%; }

@media (max-width: 770px) {
  .woocommerce table.shop_table_responsive tr td::before, .woocommerce-page table.shop_table_responsive tr td::before {
    content: attr(data-title); } }

table.woocommerce-order-overview {
  margin: 10px 10px 60px 0px;
  width: 90%;
  min-width: 280px;
  max-width: 600px;
  table-layout: fixed;
  border: 1px solid #eee; }

table.woocommerce-order-overview tbody tr {
  border: 1px solid #eee; }

td.woocommerce-order-overview-title {
  font-size: 18px;
  padding: 5px 0 5px 15px;
  width: 70%;
  min-width: 100px; }

td.woocommerce-order-overview-data {
  font-weight: 600;
  font-size: 1.4em;
  padding: 5px 0 5px 15px;
  width: 30%;
  min-width: 200px; }

.purchasePage {
  text-align: left;
  margin: auto 5%; }

@media only screen and (max-width: 750px) {
  .woocommerce table.shop_table thead {
    display: none; }
  .woocommerce table.shop_table td {
    display: table-cell; } }

.purchaseTableForm h4 {
  margin: 20px auto;
  font-family: sans-serif;
  font-weight: 600;
  font-size: 18px; }

.purchaseButtons {
  text-align: left;
  margin: 40px auto;
  display: inline-flex; }
  @media (max-width: 1000px) {
    .purchaseButtons {
      display: table-cell; } }
  .purchaseButtons a.lic_add_to_cart {
    display: inline-block;
    text-align: center;
    font-weight: 600;
    color: #fff;
    background-color: #5890e3;
    padding: 10px 15px;
    margin: 5px 40px 5px 0;
    font-size: 18px;
    width: 400px;
    height: 100px;
    text-decoration: none;
    vertical-align: middle; }
    @media (max-width: 1000px) {
      .purchaseButtons a.lic_add_to_cart {
        margin: 20px auto; } }
    @media (max-width: 500px) {
      .purchaseButtons a.lic_add_to_cart {
        width: 300px; } }

.woocommerce .woocommerce-order-details, .woocommerce .woocommerce-order-downloads {
  width: 90%;
  max-width: 600px;
  min-width: 280px;
  margin: 10px 10px 60px 0; }

.woocommerce .woocommerce-customer-details {
  width: 90%;
  max-width: 400px;
  padding-top: 20px; }
  .woocommerce .woocommerce-customer-details address {
    padding-left: 5%; }
  .woocommerce .woocommerce-customer-details h2 {
    margin-bottom: 10px; }

.woocommerce-checkout p.woocommerce-invalid-required-field span.error {
  color: #e2401c;
  display: block !important;
  font-weight: bold; }

.select-css {
  display: block;
  font-size: 16px;
  font-family: sans-serif;
  font-weight: 600;
  color: #444;
  line-height: 1.3;
  padding: .6em 1.4em .5em .8em;
  width: 400px;
  max-width: 400px;
  box-sizing: border-box;
  margin: 0;
  border: 1px solid #aaa;
  box-shadow: 0 1px 0 1px rgba(0, 0, 0, 0.04);
  border-radius: .5em;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  background-color: #fff;
  background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E"), linear-gradient(to bottom, #ffffff 0%, #e5e5e5 100%);
  background-repeat: no-repeat, repeat;
  background-position: right .7em top 50%, 0 0;
  background-size: .65em auto, 100%; }
  @media (max-width: 1000px) {
    .select-css {
      margin-bottom: 20px; } }
  @media (max-width: 500px) {
    .select-css {
      width: 300px; } }

.select-css::-ms-expand {
  display: none; }

.select-css:hover {
  border-color: #888; }

.select-css:focus {
  border-color: #aaa;
  box-shadow: 0 0 1px 3px rgba(59, 153, 252, 0.7);
  box-shadow: 0 0 0 3px -moz-mac-focusring;
  color: #222;
  outline: none; }

.select-css option {
  font-weight: normal; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxsLmNzcyIsInNvdXJjZXMiOlsiYWxsLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19ib3VyYm9uLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19wcmVmaXhlci5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fcHgtdG8tZW0uc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX2Fzc2V0LXBpcGVsaW5lLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fYXNzaWduLWlucHV0cy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2NvbnRhaW5zLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fY29udGFpbnMtZmFsc3kuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1sZW5ndGguc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1saWdodC5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLW51bWJlci5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLXNpemUuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19weC10by1lbS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3B4LXRvLXJlbS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3NoYWRlLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fc3RyaXAtdW5pdHMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL190aW50LnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdW5wYWNrLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fbW9kdWxhci1zY2FsZS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19jb252ZXJ0LXVuaXRzLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19mb250LXNvdXJjZS1kZWNsYXJhdGlvbi5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1hbmdsZS1wYXJzZXIuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1hcmctcGFyc2VyLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmVuZGVyLWdyYWRpZW50cy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19zaGFwZS1zaXplLXN0cmlwcGVyLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3N0ci10by1udW0uc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYW5pbWF0aW9uLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2FwcGVhcmFuY2Uuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2ZhY2UtdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZ3JvdW5kLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tncm91bmQtaW1hZ2Uuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYm9yZGVyLWltYWdlLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2NhbGMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fY29sdW1ucy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19maWx0ZXIuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZmxleC1ib3guc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZm9udC1mYWNlLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19oaWRwaS1tZWRpYS1xdWVyeS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19oeXBoZW5zLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ltYWdlLXJlbmRlcmluZy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19rZXlmcmFtZXMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fbGluZWFyLWdyYWRpZW50LnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BsYWNlaG9sZGVyLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3JhZGlhbC1ncmFkaWVudC5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19zZWxlY3Rpb24uc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdGV4dC1kZWNvcmF0aW9uLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3VzZXItc2VsZWN0LnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLWNvbG9yLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1zdHlsZS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci13aWR0aC5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2J1dHRvbnMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19jbGVhcmZpeC5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2VsbGlwc2lzLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fZm9udC1zdGFja3Muc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19oaWRlLXRleHQuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19tYXJnaW4uc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wYWRkaW5nLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcG9zaXRpb24uc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wcmVmaXhlci5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3JldGluYS1pbWFnZS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3NpemUuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190ZXh0LWlucHV0cy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RpbWluZy1mdW5jdGlvbnMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190cmlhbmdsZS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3dvcmQtd3JhcC5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19uZWF0LWhlbHBlcnMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19wcml2YXRlLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fbmV3LWJyZWFrcG9pbnQuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX2dyaWQuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3Zpc3VhbC1ncmlkLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19kaXNhYmxlLXdhcm5pbmdzLnNjc3MiLCJfdmFyaWFibGVzLnNjc3MiLCJfYW5pbWF0aW9ucy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fbmVhdC5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19wcml2YXRlLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX2JveC1zaXppbmcuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fb21lZ2Euc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fb3V0ZXItY29udGFpbmVyLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3NwYW4tY29sdW1ucy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19yb3cuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fc2hpZnQuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fcGFkLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX2ZpbGwtcGFyZW50LnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX21lZGlhLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3RvLWRlcHJlY2F0ZS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL192aXN1YWwtZ3JpZC5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19kaXNwbGF5LWNvbnRleHQuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fZGlyZWN0aW9uLWNvbnRleHQuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9kYWlzaG8vX2RhaXNoby5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2RhaXNoby9oZWxwZXJzL19taXhpbnMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9kYWlzaG8vaGVscGVycy9taXhpbnMvX2JhY2tncm91bmQuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9kYWlzaG8vaGVscGVycy9taXhpbnMvX2NsZWFyLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvZGFpc2hvL2hlbHBlcnMvbWl4aW5zL19jb250YWluZXIuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9kYWlzaG8vaGVscGVycy9taXhpbnMvX2ZvbnQtZmFjZS5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2RhaXNoby9oZWxwZXJzL21peGlucy9faGlkZS10ZXh0LnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvZGFpc2hvL2hlbHBlcnMvbWl4aW5zL19pY29uLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvZGFpc2hvL2hlbHBlcnMvbWl4aW5zL19sYXllci5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2RhaXNoby9oZWxwZXJzL21peGlucy9fbWF4LXNpemUuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9kYWlzaG8vaGVscGVycy9fcmVzZXRzLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvZGFpc2hvL3Jlc2V0L19ibG9jay5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2RhaXNoby9yZXNldC9fZm9ybXMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9kYWlzaG8vcmVzZXQvX2hlYWRpbmdzLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvZGFpc2hvL3Jlc2V0L19pbmxpbmUuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9kYWlzaG8vcmVzZXQvX2lucHV0cy5zY3NzIiwiLi4vLi4vZGVwZW5kZW5jaWVzL2RhaXNoby9yZXNldC9fbGlzdHMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9kYWlzaG8vcmVzZXQvX21lZGlhLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvZGFpc2hvL3Jlc2V0L19zaXRlLnNjc3MiLCIuLi8uLi9kZXBlbmRlbmNpZXMvZGFpc2hvL3Jlc2V0L190YWJsZXMuc2NzcyIsIi4uLy4uL2RlcGVuZGVuY2llcy9zbGljay1jYXJvdXNlbC9zbGljay9zbGljay5zY3NzIiwiX2dseXBocy5zY3NzIiwiLi4vLi4vZm9udHMvZ2x5cGhzL3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vZm9udHMvZ2x5cGhzL3N0eWxlLnNjc3MiLCJfbWl4aW5zLnNjc3MiLCJjb21wb25lbnRzL19hcHBsaWNhdGlvbi5zY3NzIiwiY29tcG9uZW50cy9fbWFpbi5zY3NzIiwiY29tcG9uZW50cy9faGVhZGVyLnNjc3MiLCJjb21wb25lbnRzL19sb2dvLnNjc3MiLCJjb21wb25lbnRzL190b2dnbGUuc2NzcyIsImNvbXBvbmVudHMvX2FzaWRlLnNjc3MiLCJjb21wb25lbnRzL19uYXZpZ2F0aW9uLnNjc3MiLCJjb21wb25lbnRzL19zdWJuYXZpZ2F0aW9uLnNjc3MiLCJjb21wb25lbnRzL19mb3JtLnNjc3MiLCJjb21wb25lbnRzL19tZW51LnNjc3MiLCJjb21wb25lbnRzL19zdWJtZW51LnNjc3MiLCJjb21wb25lbnRzL19zdWJzdWJtZW51LnNjc3MiLCJjb21wb25lbnRzL19jYXJvdXNlbC5zY3NzIiwiY29tcG9uZW50cy9fc2xpZGUuc2NzcyIsImNvbXBvbmVudHMvX2NvbGxlY3Rpb24uc2NzcyIsImNvbXBvbmVudHMvX2Zvb3Rlci5zY3NzIiwiY29tcG9uZW50cy9fbW9kYWwuc2NzcyIsImNvbXBvbmVudHMvX3RpbGUuc2NzcyIsImNvbXBvbmVudHMvX3Nwb3Quc2NzcyIsImNvbXBvbmVudHMvX3Rlc3RpbW9uaWFsLnNjc3MiLCJjb21wb25lbnRzL19jb21wb25lbnRzLnNjc3MiLCJjb21wb25lbnRzL190YWJsZS5zY3NzIiwiY29tcG9uZW50cy9fY29udGVudC5zY3NzIiwiY29tcG9uZW50cy9fcHJvZ3Jlc3Muc2NzcyIsImNvbXBvbmVudHMvX2xheW91dC5zY3NzIiwiY29tcG9uZW50cy9fZGVmaW5pdGlvbnMuc2NzcyIsImNvbXBvbmVudHMvX2NvbW1lbnRzLnNjc3MiLCJjb21wb25lbnRzL19wYWdlLXN0YXRlcy5zY3NzIiwiY29tcG9uZW50cy9fcGFnZS1zcGVjaWZpYy1vdmVycmlkZXMuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAaW1wb3J0IFwiLi4vLi4vZGVwZW5kZW5jaWVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ib3VyYm9uXCI7XG5AaW1wb3J0IFwiLi4vLi4vZGVwZW5kZW5jaWVzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9uZWF0LWhlbHBlcnNcIjtcbkBpbXBvcnQgXCJ2YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJhbmltYXRpb25zXCI7XG5AaW1wb3J0IFwiLi4vLi4vZGVwZW5kZW5jaWVzL25lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9uZWF0XCI7XG5AaW1wb3J0IFwiLi4vLi4vZGVwZW5kZW5jaWVzL2RhaXNoby9kYWlzaG9cIjtcbkBpbXBvcnQgXCIuLi8uLi9kZXBlbmRlbmNpZXMvc2xpY2stY2Fyb3VzZWwvc2xpY2svc2xpY2suc2Nzc1wiO1xuXG5AaW1wb3J0IFwiZ2x5cGhzXCI7XG5AaW1wb3J0IFwibWl4aW5zXCI7XG5cbkBpbXBvcnQgXCJjb21wb25lbnRzL2FwcGxpY2F0aW9uXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9tYWluXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9oZWFkZXJcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2xvZ29cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3RvZ2dsZVwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYXNpZGVcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL25hdmlnYXRpb25cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3N1Ym5hdmlnYXRpb25cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Zvcm1cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL21lbnVcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3N1Ym1lbnVcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3N1YnN1Ym1lbnVcIjtcblxuQGltcG9ydCBcImNvbXBvbmVudHMvY2Fyb3VzZWxcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3NsaWRlXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9jb2xsZWN0aW9uXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9mb290ZXJcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL21vZGFsXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy90aWxlXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9zcG90XCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy90ZXN0aW1vbmlhbFwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvY29tcG9uZW50c1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvdGFibGVcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2NvbnRlbnRcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3Byb2dyZXNzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9sYXlvdXRcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2RlZmluaXRpb25zXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9jb21tZW50c1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvcGFnZS1zdGF0ZXNcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3BhZ2Utc3BlY2lmaWMtb3ZlcnJpZGVzXCI7XG4iLCIvLyBCb3VyYm9uIDQuMi42XG4vLyBodHRwOi8vYm91cmJvbi5pb1xuLy8gQ29weXJpZ2h0IDIwMTEtMjAxNSB0aG91Z2h0Ym90LCBpbmMuXG4vLyBNSVQgTGljZW5zZVxuXG5AaW1wb3J0IFwic2V0dGluZ3MvcHJlZml4ZXJcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9weC10by1lbVwiO1xuQGltcG9ydCBcInNldHRpbmdzL2Fzc2V0LXBpcGVsaW5lXCI7XG5cbkBpbXBvcnQgXCJmdW5jdGlvbnMvYXNzaWduLWlucHV0c1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWluc1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9jb250YWlucy1mYWxzeVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1sZW5ndGhcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbGlnaHRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtbnVtYmVyXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLXNpemVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvcHgtdG8tcmVtXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3NoYWRlXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3N0cmlwLXVuaXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3RpbnRcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL3VucGFja1wiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9tb2R1bGFyLXNjYWxlXCI7XG5cbkBpbXBvcnQgXCJoZWxwZXJzL2NvbnZlcnQtdW5pdHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2RpcmVjdGlvbmFsLXZhbHVlc1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZm9udC1zb3VyY2UtZGVjbGFyYXRpb25cIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1hbmdsZS1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtYXJnLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JlbmRlci1ncmFkaWVudHNcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3NoYXBlLXNpemUtc3RyaXBwZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3N0ci10by1udW1cIjtcblxuQGltcG9ydCBcImNzczMvYW5pbWF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy9hcHBlYXJhbmNlXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZmFjZS12aXNpYmlsaXR5XCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kXCI7XG5AaW1wb3J0IFwiY3NzMy9iYWNrZ3JvdW5kLWltYWdlXCI7XG5AaW1wb3J0IFwiY3NzMy9ib3JkZXItaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2NhbGNcIjtcbkBpbXBvcnQgXCJjc3MzL2NvbHVtbnNcIjtcbkBpbXBvcnQgXCJjc3MzL2ZpbHRlclwiO1xuQGltcG9ydCBcImNzczMvZmxleC1ib3hcIjtcbkBpbXBvcnQgXCJjc3MzL2ZvbnQtZmFjZVwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mZWF0dXJlLXNldHRpbmdzXCI7XG5AaW1wb3J0IFwiY3NzMy9oaWRwaS1tZWRpYS1xdWVyeVwiO1xuQGltcG9ydCBcImNzczMvaHlwaGVuc1wiO1xuQGltcG9ydCBcImNzczMvaW1hZ2UtcmVuZGVyaW5nXCI7XG5AaW1wb3J0IFwiY3NzMy9rZXlmcmFtZXNcIjtcbkBpbXBvcnQgXCJjc3MzL2xpbmVhci1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvcGVyc3BlY3RpdmVcIjtcbkBpbXBvcnQgXCJjc3MzL3BsYWNlaG9sZGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9yYWRpYWwtZ3JhZGllbnRcIjtcbkBpbXBvcnQgXCJjc3MzL3NlbGVjdGlvblwiO1xuQGltcG9ydCBcImNzczMvdGV4dC1kZWNvcmF0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90cmFuc2Zvcm1cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zaXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3VzZXItc2VsZWN0XCI7XG5cbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLWNvbG9yXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci1yYWRpdXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXN0eWxlXCI7XG5AaW1wb3J0IFwiYWRkb25zL2JvcmRlci13aWR0aFwiO1xuQGltcG9ydCBcImFkZG9ucy9idXR0b25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL2NsZWFyZml4XCI7XG5AaW1wb3J0IFwiYWRkb25zL2VsbGlwc2lzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2ZvbnQtc3RhY2tzXCI7XG5AaW1wb3J0IFwiYWRkb25zL2hpZGUtdGV4dFwiO1xuQGltcG9ydCBcImFkZG9ucy9tYXJnaW5cIjtcbkBpbXBvcnQgXCJhZGRvbnMvcGFkZGluZ1wiO1xuQGltcG9ydCBcImFkZG9ucy9wb3NpdGlvblwiO1xuQGltcG9ydCBcImFkZG9ucy9wcmVmaXhlclwiO1xuQGltcG9ydCBcImFkZG9ucy9yZXRpbmEtaW1hZ2VcIjtcbkBpbXBvcnQgXCJhZGRvbnMvc2l6ZVwiO1xuQGltcG9ydCBcImFkZG9ucy90ZXh0LWlucHV0c1wiO1xuQGltcG9ydCBcImFkZG9ucy90aW1pbmctZnVuY3Rpb25zXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RyaWFuZ2xlXCI7XG5AaW1wb3J0IFwiYWRkb25zL3dvcmQtd3JhcFwiO1xuXG5AaW1wb3J0IFwiYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nXCI7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBvciBkaXNhYmxlIHZlbmRvciBwcmVmaXhlc1xuXG4kcHJlZml4LWZvci13ZWJraXQ6ICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1tb3ppbGxhOiAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1taWNyb3NvZnQ6IHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1vcGVyYTogICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1zcGVjOiAgICAgIHRydWUgIWRlZmF1bHQ7XG4iLCIkZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgZ2xvYmFsIHNldHRpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGAkYXNzZXQtcGlwZWxpbmVgIHZhcmlhYmxlIGZvciBhbGwgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGl0LlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kYXNzZXQtcGlwZWxpbmU6IGZhbHNlICFkZWZhdWx0O1xuIiwiQGZ1bmN0aW9uIGFzc2lnbi1pbnB1dHMoJGlucHV0cywgJHBzZXVkbzogbnVsbCkge1xuICAkbGlzdDogKCk7XG5cbiAgQGVhY2ggJGlucHV0IGluICRpbnB1dHMge1xuICAgICRpbnB1dDogdW5xdW90ZSgkaW5wdXQpO1xuICAgICRpbnB1dDogaWYoJHBzZXVkbywgJGlucHV0ICsgXCI6XCIgKyAkcHNldWRvLCAkaW5wdXQpO1xuICAgICRsaXN0OiBhcHBlbmQoJGxpc3QsICRpbnB1dCwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbGlzdDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgY29udGFpbnMgYSB2YWx1ZShzKS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHVlc1xuLy8vICAgQSBzaW5nbGUgdmFsdWUgb3IgbGlzdCBvZiB2YWx1ZXMgdG8gY2hlY2sgZm9yLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBjb250YWlucygkbGlzdCwgJHZhbHVlKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWVzLi4uKSB7XG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcbiAgICBAaWYgdHlwZS1vZihpbmRleCgkbGlzdCwgJHZhbHVlKSkgIT0gXCJudW1iZXJcIiB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBpZiBhIGxpc3QgZG9lcyBub3QgY29udGFpbnMgYSB2YWx1ZS5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkbGlzdFxuLy8vICAgVGhlIGxpc3QgdG8gY2hlY2sgYWdhaW5zdC5cbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucy1mYWxzeSgkbGlzdCkge1xuICBAZWFjaCAkaXRlbSBpbiAkbGlzdCB7XG4gICAgQGlmIG5vdCAkaXRlbSB7XG4gICAgICBAcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBmYWxzZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoZWNrcyBmb3IgYSB2YWxpZCBDU1MgbGVuZ3RoLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuXG5AZnVuY3Rpb24gaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICBAcmV0dXJuIHR5cGUtb2YoJHZhbHVlKSAhPSBcIm51bGxcIiBhbmQgKHN0ci1zbGljZSgkdmFsdWUgKyBcIlwiLCAxLCA0KSA9PSBcImNhbGNcIlxuICAgICAgIG9yIGluZGV4KGF1dG8gaW5oZXJpdCBpbml0aWFsIDAsICR2YWx1ZSlcbiAgICAgICBvciAodHlwZS1vZigkdmFsdWUpID09IFwibnVtYmVyXCIgYW5kIG5vdCh1bml0bGVzcygkdmFsdWUpKSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvZ3JhbWF0aWNhbGx5IGRldGVybWluZXMgd2hldGhlciBhIGNvbG9yIGlzIGxpZ2h0IG9yIGRhcmsuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vcm9ib3RzLnRob3VnaHRib3QuY29tL2Nsb3Nlci1sb29rLWNvbG9yLWxpZ2h0bmVzc1xuLy8vXG4vLy8gQHBhcmFtIHtDb2xvciAoSGV4KX0gJGNvbG9yXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGlzLWxpZ2h0KCRjb2xvcilcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBpcy1saWdodCgkaGV4LWNvbG9yKSB7XG4gICQtbG9jYWwtcmVkOiByZWQocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtZ3JlZW46IGdyZWVuKHJnYmEoJGhleC1jb2xvciwgMSkpO1xuICAkLWxvY2FsLWJsdWU6IGJsdWUocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtbGlnaHRuZXNzOiAoJC1sb2NhbC1yZWQgKiAwLjIxMjYgKyAkLWxvY2FsLWdyZWVuICogMC43MTUyICsgJC1sb2NhbC1ibHVlICogMC4wNzIyKSAvIDI1NTtcblxuICBAcmV0dXJuICQtbG9jYWwtbGlnaHRuZXNzID4gMC42O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWVcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnNcblxuQGZ1bmN0aW9uIGlzLW51bWJlcigkdmFsdWUpIHtcbiAgQHJldHVybiBjb250YWlucyhcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIiAwIDEgMiAzIDQgNSA2IDcgOCA5LCAkdmFsdWUpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBzaXplLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG5cbkBmdW5jdGlvbiBpcy1zaXplKCR2YWx1ZSkge1xuICBAcmV0dXJuIGlzLWxlbmd0aCgkdmFsdWUpXG4gICAgICAgICAgb3IgY29udGFpbnMoXCJmaWxsXCIgXCJmaXQtY29udGVudFwiIFwibWluLWNvbnRlbnRcIiBcIm1heC1jb250ZW50XCIsICR2YWx1ZSk7XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byBlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgZW0oMTIpIHdoZW4gdGhlIHBhcmVudCBpcyAxNnB4XG4vLyBpZiB0aGUgcGFyZW50IGlzIGFub3RoZXIgdmFsdWUgc2F5IDI0cHggd3JpdGUgZW0oMTIsIDI0KVxuXG5AZnVuY3Rpb24gZW0oJHB4dmFsLCAkYmFzZTogJGVtLWJhc2UpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cbiAgQGlmIG5vdCB1bml0bGVzcygkYmFzZSkge1xuICAgICRiYXNlOiBzdHJpcC11bml0cygkYmFzZSk7XG4gIH1cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMWVtO1xufVxuIiwiLy8gQ29udmVydCBwaXhlbHMgdG8gcmVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSByZW0oMTIpXG4vLyBBc3N1bWVzICRlbS1iYXNlIGlzIHRoZSBmb250LXNpemUgb2YgPGh0bWw+XG5cbkBmdW5jdGlvbiByZW0oJHB4dmFsKSB7XG4gIEBpZiBub3QgdW5pdGxlc3MoJHB4dmFsKSB7XG4gICAgJHB4dmFsOiBzdHJpcC11bml0cygkcHh2YWwpO1xuICB9XG5cbiAgJGJhc2U6ICRlbS1iYXNlO1xuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxcmVtO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIGJsYWNrLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIGJsYWNrIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHNoYWRlKCNmZmJiNTIsIDYwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICM2NjRhMjA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHNoYWRlKCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoIzAwMCwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTdHJpcHMgdGhlIHVuaXQgZnJvbSBhIG51bWJlci5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChXaXRoIFVuaXQpfSAkdmFsdWVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgJGRpbWVuc2lvbjogc3RyaXAtdW5pdHMoMTBlbSk7XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAkZGltZW5zaW9uOiAxMDtcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlciAoVW5pdGxlc3MpfVxuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdHMoJHZhbHVlKSB7XG4gIEByZXR1cm4gKCR2YWx1ZSAvICgkdmFsdWUgKiAwICsgMSkpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWl4ZXMgYSBjb2xvciB3aXRoIHdoaXRlLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoUGVyY2VudGFnZSl9ICRwZXJjZW50XG4vLy8gICBUaGUgYW1vdW50IG9mIHdoaXRlIHRvIGJlIG1peGVkIGluLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6IHRpbnQoIzZlY2FhNiwgNDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2E4ZGZjOTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gdGludCgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCNmZmYsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiLy8gUmV0dXJuIHZlbmRvci1wcmVmaXhlZCBwcm9wZXJ0eSBuYW1lcyBpZiBhcHByb3ByaWF0ZVxuLy8gRXhhbXBsZTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygodHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZCksIG1veikgLT4gLW1vei10cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcHMsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRuZXctcHJvcHM6ICgpO1xuXG4gIEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG4gICAgJG5ldy1wcm9wczogYXBwZW5kKCRuZXctcHJvcHMsIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvciksIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJG5ldy1wcm9wcztcbn1cblxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvcjogZmFsc2UpIHtcbiAgLy8gcHV0IG90aGVyIHByb3BlcnRpZXMgdGhhdCBuZWVkIHRvIGJlIHByZWZpeGVkIGhlcmUgYXN3ZWxsXG4gIEBpZiAkdmVuZG9yIGFuZCAkcHJvcCA9PSB0cmFuc2Zvcm0ge1xuICAgIEByZXR1cm4gdW5xdW90ZSgnLScrJHZlbmRvcisnLScrJHByb3ApO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuICRwcm9wO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDb252ZXJ0cyBzaG9ydGhhbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2hvcnRoYW5kXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiB1bnBhY2soMWVtIDJlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogMWVtIDJlbSAxZW0gMmVtO1xuLy8vICAgfVxuXG5AZnVuY3Rpb24gdW5wYWNrKCRzaG9ydGhhbmQpIHtcbiAgQGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAxIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMiB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDMge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKSBudGgoJHNob3J0aGFuZCwgMykgbnRoKCRzaG9ydGhhbmQsIDIpO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuICRzaG9ydGhhbmQ7XG4gIH1cbn1cbiIsIi8vIFNjYWxpbmcgVmFyaWFibGVzXG4kZ29sZGVuOiAgICAgICAgICAgMS42MTg7XG4kbWlub3Itc2Vjb25kOiAgICAgMS4wNjc7XG4kbWFqb3Itc2Vjb25kOiAgICAgMS4xMjU7XG4kbWlub3ItdGhpcmQ6ICAgICAgMS4yO1xuJG1ham9yLXRoaXJkOiAgICAgIDEuMjU7XG4kcGVyZmVjdC1mb3VydGg6ICAgMS4zMzM7XG4kYXVnbWVudGVkLWZvdXJ0aDogMS40MTQ7XG4kcGVyZmVjdC1maWZ0aDogICAgMS41O1xuJG1pbm9yLXNpeHRoOiAgICAgIDEuNjtcbiRtYWpvci1zaXh0aDogICAgICAxLjY2NztcbiRtaW5vci1zZXZlbnRoOiAgICAxLjc3ODtcbiRtYWpvci1zZXZlbnRoOiAgICAxLjg3NTtcbiRvY3RhdmU6ICAgICAgICAgICAyO1xuJG1ham9yLXRlbnRoOiAgICAgIDIuNTtcbiRtYWpvci1lbGV2ZW50aDogICAyLjY2NztcbiRtYWpvci10d2VsZnRoOiAgICAzO1xuJGRvdWJsZS1vY3RhdmU6ICAgIDQ7XG5cbiRtb2R1bGFyLXNjYWxlLXJhdGlvOiAkcGVyZmVjdC1mb3VydGggIWRlZmF1bHQ7XG4kbW9kdWxhci1zY2FsZS1iYXNlOiBlbSgkZW0tYmFzZSkgIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZTogJG1vZHVsYXItc2NhbGUtYmFzZSwgJHJhdGlvOiAkbW9kdWxhci1zY2FsZS1yYXRpbykge1xuICAkdjE6IG50aCgkdmFsdWUsIDEpO1xuICAkdjI6IG50aCgkdmFsdWUsIGxlbmd0aCgkdmFsdWUpKTtcbiAgJHZhbHVlOiAkdjE7XG5cbiAgLy8gc2NhbGUgJHYyIHRvIGp1c3QgYWJvdmUgJHYxXG4gIEB3aGlsZSAkdjIgPiAkdjEge1xuICAgICR2MjogKCR2MiAvICRyYXRpbyk7IC8vIHdpbGwgYmUgb2ZmLWJ5LTFcbiAgfVxuICBAd2hpbGUgJHYyIDwgJHYxIHtcbiAgICAkdjI6ICgkdjIgKiAkcmF0aW8pOyAvLyB3aWxsIGZpeCBvZmYtYnktMVxuICB9XG5cbiAgLy8gY2hlY2sgQUZURVIgc2NhbGluZyAkdjIgdG8gcHJldmVudCBkb3VibGUtY291bnRpbmcgY29ybmVyLWNhc2VcbiAgJGRvdWJsZS1zdHJhbmRlZDogJHYyID4gJHYxO1xuXG4gIEBpZiAkaW5jcmVtZW50ID4gMCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkaW5jcmVtZW50IHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxICogJHJhdGlvKSA+ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgKiAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAqICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkaW5jcmVtZW50IDwgMCB7XG4gICAgLy8gYWRqdXN0ICR2MiB0byBqdXN0IGJlbG93ICR2MVxuICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIHtcbiAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tICRpbmNyZW1lbnQgdGhyb3VnaCAtMSB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAvICRyYXRpbykgPCAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgLyAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3Igc3RyLXRvLW51bSBmbi5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfY29udmVydC11bml0cygkbnVtYmVyLCAkdW5pdCkge1xuICAkc3RyaW5nczogXCJweFwiLCBcImNtXCIsIFwibW1cIiwgXCIlXCIsIFwiY2hcIiwgXCJwaWNhXCIsIFwiaW5cIiwgXCJlbVwiLCBcInJlbVwiLCBcInB0XCIsIFwicGNcIiwgXCJleFwiLCBcInZ3XCIsIFwidmhcIiwgXCJ2bWluXCIsIFwidm1heFwiLCBcImRlZ1wiLCBcInJhZFwiLCBcImdyYWRcIiwgXCJ0dXJuXCI7XG4gICR1bml0czogICAxcHgsIDFjbSwgMW1tLCAxJSwgMWNoLCAxcGljYSwgMWluLCAxZW0sIDFyZW0sIDFwdCwgMXBjLCAxZXgsIDF2dywgMXZoLCAxdm1pbiwgMXZtYXgsIDFkZWcsIDFyYWQsIDFncmFkLCAxdHVybjtcbiAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJHVuaXQpO1xuXG4gIEBpZiBub3QgJGluZGV4IHtcbiAgICBAd2FybiBcIlVua25vd24gdW5pdCBgI3skdW5pdH1gLlwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkbnVtYmVyKSAhPSBcIm51bWJlclwiIHtcbiAgICBAd2FybiBcImAjeyRudW1iZXJ9IGlzIG5vdCBhIG51bWJlcmBcIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQHJldHVybiAkbnVtYmVyICogbnRoKCR1bml0cywgJGluZGV4KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpcmVjdGlvbmFsLXByb3BlcnR5IG1peGlucyBhcmUgc2hvcnRoYW5kcyBmb3Igd3JpdGluZyBwcm9wZXJ0aWVzIGxpa2UgdGhlIGZvbGxvd2luZ1xuLy8vXG4vLy8gQGlnbm9yZSBZb3UgY2FuIGFsc28gdXNlIGBmYWxzZWAgaW5zdGVhZCBvZiBgbnVsbGAuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGRpcmVjdGlvbmFsIHZhbHVlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkb3R0ZWQgbnVsbCk7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgMTBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuLy8vICAgICBtYXJnaW4tbGVmdDogMDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH1cblxuQGZ1bmN0aW9uIGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscykge1xuICAkb3V0cHV0OiBudWxsO1xuXG4gICRhOiBudGgoJHZhbHMsIDEpO1xuICAkYjogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIDIpKTtcbiAgJGM6IGlmKGxlbmd0aCgkdmFscykgPCAzLCAkYSwgbnRoKCR2YWxzLCAzKSk7XG4gICRkOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgaWYobGVuZ3RoKCR2YWxzKSA8IDQsIDIsIDQpKSk7XG5cbiAgQGlmICRhID09IDAgeyAkYTogMDsgfVxuICBAaWYgJGIgPT0gMCB7ICRiOiAwOyB9XG4gIEBpZiAkYyA9PSAwIHsgJGM6IDA7IH1cbiAgQGlmICRkID09IDAgeyAkZDogMDsgfVxuXG4gIEBpZiAkYSA9PSAkYiBhbmQgJGEgPT0gJGMgYW5kICRhID09ICRkIHsgJG91dHB1dDogJGE7ICAgICAgICAgIH1cbiAgQGVsc2UgaWYgJGEgPT0gJGMgYW5kICRiID09ICRkICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYjsgICAgICAgfVxuICBAZWxzZSBpZiAkYiA9PSAkZCAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjOyAgICB9XG4gIEBlbHNlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGMgJGQ7IH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cbi8vLyBPdXRwdXQgZGlyZWN0aW9uYWwgcHJvcGVydGllcywgZm9yIGluc3RhbmNlIGBtYXJnaW5gLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByZVxuLy8vICAgUHJlZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc3VmXG4vLy8gICBTdWZmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiB2YWx1ZXNcbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29sbGFwc2UtZGlyZWN0aW9uYWxzXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuXG5AbWl4aW4gZGlyZWN0aW9uYWwtcHJvcGVydHkoJHByZSwgJHN1ZiwgJHZhbHMpIHtcbiAgLy8gUHJvcGVydHkgTmFtZXNcbiAgJHRvcDogICAgJHByZSArIFwiLXRvcFwiICAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGJvdHRvbTogJHByZSArIFwiLWJvdHRvbVwiICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGxlZnQ6ICAgJHByZSArIFwiLWxlZnRcIiAgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJHJpZ2h0OiAgJHByZSArIFwiLXJpZ2h0XCIgICsgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcbiAgJGFsbDogICAgJHByZSArICAgICAgICAgICAgIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG5cbiAgJHZhbHM6IGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscyk7XG5cbiAgQGlmIGNvbnRhaW5zLWZhbHN5KCR2YWxzKSB7XG4gICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyR0b3B9OiBudGgoJHZhbHMsIDEpOyB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAxIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAyKTsgfVxuICAgIH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDIge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDEpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gMyB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSA0IHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgNCkgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDQpOyB9XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAjeyRhbGx9OiAkdmFscztcbiAgfVxufVxuIiwiLy8gVXNlZCBmb3IgY3JlYXRpbmcgdGhlIHNvdXJjZSBzdHJpbmcgZm9yIGZvbnRzIHVzaW5nIEBmb250LWZhY2Vcbi8vIFJlZmVyZW5jZTogaHR0cDovL2dvby5nbC9SdTFiS1BcblxuQGZ1bmN0aW9uIGZvbnQtdXJsLXByZWZpeGVyKCRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgIEByZXR1cm4gZm9udC11cmw7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gdXJsO1xuICB9XG59XG5cbkBmdW5jdGlvbiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgJGZvbnQtZmFtaWx5LFxuICAkZmlsZS1wYXRoLFxuICAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHMsXG4gICRmb250LXVybCkge1xuXG4gICRzcmM6ICgpO1xuXG4gICRmb3JtYXRzLW1hcDogKFxuICAgIGVvdDogICBcIiN7JGZpbGUtcGF0aH0uZW90PyNpZWZpeFwiIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLFxuICAgIHdvZmYyOiBcIiN7JGZpbGUtcGF0aH0ud29mZjJcIiBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICB3b2ZmOiAgXCIjeyRmaWxlLXBhdGh9LndvZmZcIiBmb3JtYXQoXCJ3b2ZmXCIpLFxuICAgIHR0ZjogICBcIiN7JGZpbGUtcGF0aH0udHRmXCIgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXG4gICAgc3ZnOiAgIFwiI3skZmlsZS1wYXRofS5zdmcjI3skZm9udC1mYW1pbHl9XCIgZm9ybWF0KFwic3ZnXCIpXG4gICk7XG5cbiAgQGVhY2ggJGtleSwgJHZhbHVlcyBpbiAkZm9ybWF0cy1tYXAge1xuICAgIEBpZiBjb250YWlucygkZmlsZS1mb3JtYXRzLCAka2V5KSB7XG4gICAgICAkZmlsZS1wYXRoOiBudGgoJHZhbHVlcywgMSk7XG4gICAgICAkZm9udC1mb3JtYXQ6IG50aCgkdmFsdWVzLCAyKTtcblxuICAgICAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIGZvbnQtdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCB1cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkc3JjO1xufVxuIiwiQGZ1bmN0aW9uIF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC10eXBlLCAkZ3JhZGllbnQtcG9zaXRpb25zKSB7XG4gIEBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IHJhZGlhbClcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEByZXR1cm4gJGdyYWRpZW50LXBvc2l0aW9ucztcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpIHtcbiAgJG9mZnNldDogbnVsbDtcbiAgJHVuaXQtc2hvcnQ6ICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDIsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdW5pdC1sb25nOiAgIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgQGlmICgkdW5pdC1sb25nID09IFwiZ3JhZFwiKSBvclxuICAgICAgKCR1bml0LWxvbmcgPT0gXCJ0dXJuXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1sb25nID09IFwiZ3JhZFwiLCAtMTAwZ3JhZCAqIDMsIC0wLjc1dHVybik7XG4gIH1cblxuICBAZWxzZSBpZiAoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIikgb3JcbiAgICAgICAgICAgKCR1bml0LXNob3J0ID09IFwicmFkXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1zaG9ydCA9PSBcImRlZ1wiLCAtOTAgKiAzLCAxLjZyYWQpO1xuICB9XG5cbiAgQGlmICRvZmZzZXQge1xuICAgICRudW06IF9zdHItdG8tbnVtKCRmaXJzdC12YWwpO1xuXG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICgkb2Zmc2V0IC0gJG51bSkgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRoYXMtbXVsdGlwbGUtdmFsczogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiIFwiKTtcbiAgJGhhcy1zaW5nbGUtcG9zaXRpb246IHVucXVvdGUoX3Bvc2l0aW9uLWZsaXBwZXIoJGZpcnN0LXZhbCkgKyBcIlwiKTtcbiAgJGhhcy1hbmdsZTogaXMtbnVtYmVyKHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAxKSk7XG5cbiAgQGlmICRoYXMtbXVsdGlwbGUtdmFscyB7XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1zaW5nbGUtcG9zaXRpb24gIT0gXCJcIiB7XG4gICAgJHBvczogdW5xdW90ZSgkaGFzLXNpbmdsZS1wb3NpdGlvbiArIFwiXCIpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1hbmdsZSB7XG4gICAgLy8gUm90YXRlIGRlZ3JlZSBmb3Igd2Via2l0XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xuICAkdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkc3BlYzogbnVsbDtcbiAgJGRlZ3JlZTogbnVsbDtcbiAgJHNpZGU6IG51bGw7XG4gICRjb3JuZXI6IG51bGw7XG4gICRsZW5ndGg6IGxlbmd0aCgkcG9zKTtcbiAgLy8gUGFyc2UgU2lkZSBhbmQgY29ybmVyIHBvc2l0aW9uc1xuICBAaWYgKCRsZW5ndGggPiAxKSB7XG4gICAgQGlmIG50aCgkcG9zLCAxKSA9PSBcInRvXCIgeyAvLyBOZXdlciBzeW50YXhcbiAgICAgICRzaWRlOiBudGgoJHBvcywgMik7XG5cbiAgICAgIEBpZiAkbGVuZ3RoID09IDIgeyAvLyBlZy4gdG8gdG9wXG4gICAgICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG4gICAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDMgeyAvLyBlZy4gdG8gdG9wIGxlZnRcbiAgICAgICAgJGNvcm5lcjogbnRoKCRwb3MsIDMpO1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSBpZiAkbGVuZ3RoID09IDIgeyAvLyBPbGRlciBzeW50YXggKFwidG9wIGxlZnRcIilcbiAgICAgICRzaWRlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMSkpO1xuICAgICAgJGNvcm5lcjogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICB9XG5cbiAgICBAaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCB0b3BcIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwidG9wIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgYm90dG9tXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImJvdHRvbSBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgJHNwZWM6IHRvICRzaWRlICRjb3JuZXI7XG4gIH1cbiAgQGVsc2UgaWYgJGxlbmd0aCA9PSAxIHtcbiAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgIEBpZiAkdHlwZSA9PSBzdHJpbmcge1xuICAgICAgJGRlZ3JlZTogJHBvcztcbiAgICAgICRzcGVjOiB0byBfcG9zaXRpb24tZmxpcHBlcigkcG9zKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgJGRlZ3JlZTogLTI3MCAtICRwb3M7IC8vcm90YXRlIHRoZSBncmFkaWVudCBvcHBvc2l0ZSBmcm9tIHNwZWNcbiAgICAgICRzcGVjOiAkcG9zO1xuICAgIH1cbiAgfVxuICAkZGVncmVlOiB1bnF1b3RlKCRkZWdyZWUgKyBcIixcIik7XG4gICRzcGVjOiAgIHVucXVvdGUoJHNwZWMgKyBcIixcIik7XG4gIEByZXR1cm4gJGRlZ3JlZSAkc3BlYztcbn1cblxuQGZ1bmN0aW9uIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpIHtcbiAgQHJldHVybiBpZigkcG9zID09IGxlZnQsIHJpZ2h0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSByaWdodCwgbGVmdCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gdG9wLCBib3R0b20sIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IGJvdHRvbSwgdG9wLCBudWxsKTtcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscykge1xuICAkdmFsLTE6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaGFzLW11bHRpcGxlLXZhbHMgLSAxKTtcbiAgJHZhbC0yOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGhhcy1tdWx0aXBsZS12YWxzICsgMSwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR2YWwtMzogbnVsbDtcbiAgJGhhcy12YWwtMzogc3RyLWluZGV4KCR2YWwtMiwgXCIgXCIpO1xuXG4gIEBpZiAkaGFzLXZhbC0zIHtcbiAgICAkdmFsLTM6IHN0ci1zbGljZSgkdmFsLTIsICRoYXMtdmFsLTMgKyAxLCBzdHItbGVuZ3RoKCR2YWwtMikpO1xuICAgICR2YWwtMjogc3RyLXNsaWNlKCR2YWwtMiwgMSwgJGhhcy12YWwtMyAtIDEpO1xuICB9XG5cbiAgJHBvczogX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0xKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTIpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMyk7XG4gICRwb3M6IHVucXVvdGUoJHBvcyArIFwiXCIpO1xuXG4gIC8vIFVzZSBvbGQgc3BlYyBmb3Igd2Via2l0XG4gIEBpZiAkdmFsLTEgPT0gXCJ0b1wiIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgLy8gQnJpbmcgdGhlIGNvZGUgdXAgdG8gc3BlY1xuICBAZWxzZSB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKSB7XG4gIEBlYWNoICR2YWx1ZSBpbiAkZzEsICRnMiB7XG4gICAgJGZpcnN0LXZhbDogbnRoKCR2YWx1ZSwgMSk7XG4gICAgJHBvcy10eXBlOiAgdHlwZS1vZigkZmlyc3QtdmFsKTtcbiAgICAkc3BlYy1hdC1pbmRleDogbnVsbDtcblxuICAgIC8vIERldGVybWluZSBpZiBzcGVjIHdhcyBwYXNzZWQgdG8gbWl4aW5cbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IGxpc3Qge1xuICAgICAgJHNwZWMtYXQtaW5kZXg6IGlmKGluZGV4KCR2YWx1ZSwgYXQpLCBpbmRleCgkdmFsdWUsIGF0KSwgZmFsc2UpO1xuICAgIH1cbiAgICBAaWYgJHNwZWMtYXQtaW5kZXgge1xuICAgICAgQGlmICRzcGVjLWF0LWluZGV4ID4gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggKCRzcGVjLWF0LWluZGV4IC0gMSkge1xuICAgICAgICAgICRzaGFwZS1zaXplOiAkc2hhcGUtc2l6ZSBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSBpZiAkc3BlYy1hdC1pbmRleCA9PSAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tICgkc3BlYy1hdC1pbmRleCArIDEpIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgICAgICRwb3M6ICRwb3MgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAkZzE6IG51bGw7XG4gICAgfVxuXG4gICAgLy8gSWYgbm90IHNwZWMgY2FsY3VsYXRlIGNvcnJlY3QgdmFsdWVzXG4gICAgQGVsc2Uge1xuICAgICAgQGlmICgkcG9zLXR5cGUgIT0gY29sb3IpIG9yICgkZmlyc3QtdmFsICE9IFwidHJhbnNwYXJlbnRcIikge1xuICAgICAgICBAaWYgKCRwb3MtdHlwZSA9PSBudW1iZXIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2VudGVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwidG9wXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwicmlnaHRcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJib3R0b21cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJsZWZ0XCIpIHtcblxuICAgICAgICAgICRwb3M6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkcG9zID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgQGVsc2UgaWZcbiAgICAgICAgICAgKCRmaXJzdC12YWwgPT0gXCJlbGxpcHNlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2lyY2xlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY2xvc2VzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1zaWRlXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY29udGFpblwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvdmVyXCIpIHtcblxuICAgICAgICAgICRzaGFwZS1zaXplOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHZhbHVlID09ICRnMSB7XG4gICAgICAgICAgICAkZzE6IG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVsc2UgaWYgJHZhbHVlID09ICRnMiB7XG4gICAgICAgICAgICAkZzI6IG51bGw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplO1xufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zKSB7XG4gICRzaGFwZS1zaXplOiBudGgoJGdyYWRpZW50LXBvcywgMSk7XG4gICRwb3M6ICAgICAgICBudGgoJGdyYWRpZW50LXBvcywgMik7XG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAkcHJlLXNwZWM6IHVucXVvdGUoaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCkpXG4gICAgICAgICAgICAgdW5xdW90ZShpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSxcIiwgbnVsbCkpO1xuICAkcG9zLXNwZWM6IGlmKCRwb3MsIFwiYXQgI3skcG9zfVwiLCBudWxsKTtcblxuICAkc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHBvcy1zcGVjfVwiO1xuXG4gIC8vIEFkZCBjb21tYVxuICBAaWYgKCRzcGVjICE9IFwiICBcIikge1xuICAgICRzcGVjOiBcIiN7JHNwZWN9LFwiO1xuICB9XG5cbiAgQHJldHVybiAkcHJlLXNwZWMgJHNwZWM7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGlzLXNwZWMtc3ludGF4OiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCJhdFwiKTtcblxuICBAaWYgJGlzLXNwZWMtc3ludGF4IGFuZCAkaXMtc3BlYy1zeW50YXggPiAxIHtcbiAgICAka2V5d29yZDogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRpcy1zcGVjLXN5bnRheCAtIDIpO1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgICAkcG9zOiBhcHBlbmQoJHBvcywgJGtleXdvcmQsIGNvbW1hKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGlzLXNwZWMtc3ludGF4ID09IDEge1xuICAgICRwb3M6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaXMtc3BlYy1zeW50YXggKyAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgc3RyLWluZGV4KCRpbWFnZSwgXCJjb3ZlclwiKSBvciBzdHItaW5kZXgoJGltYWdlLCBcImNvbnRhaW5cIikge1xuICAgIEB3YXJuIFwiUmFkaWFsLWdyYWRpZW50IG5lZWRzIHRvIGJlIHVwZGF0ZWQgdG8gY29uZm9ybSB0byBsYXRlc3Qgc3BlYy5cIjtcblxuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogbnVsbCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAcmV0dXJuICRncmFkaWVudHM7XG59XG4iLCIvLyBVc2VyIGZvciBsaW5lYXIgYW5kIHJhZGlhbCBncmFkaWVudHMgd2l0aGluIGJhY2tncm91bmQtaW1hZ2Ugb3IgYm9yZGVyLWltYWdlIHByb3BlcnRpZXNcblxuQGZ1bmN0aW9uIF9yZW5kZXItZ3JhZGllbnRzKCRncmFkaWVudC1wb3NpdGlvbnMsICRncmFkaWVudHMsICRncmFkaWVudC10eXBlLCAkdmVuZG9yOiBmYWxzZSkge1xuICAkcHJlLXNwZWM6IG51bGw7XG4gICRzcGVjOiBudWxsO1xuICAkdmVuZG9yLWdyYWRpZW50czogbnVsbDtcbiAgQGlmICRncmFkaWVudC10eXBlID09IGxpbmVhciB7XG4gICAgQGlmICRncmFkaWVudC1wb3NpdGlvbnMge1xuICAgICAgJHByZS1zcGVjOiBudGgoJGdyYWRpZW50LXBvc2l0aW9ucywgMSk7XG4gICAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsIHtcbiAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAkc3BlYzogICAgIG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gIEBpZiAkdmVuZG9yIHtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogLSN7JHZlbmRvcn0tI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skcHJlLXNwZWN9ICRncmFkaWVudHMpO1xuICB9XG4gIEBlbHNlIGlmICR2ZW5kb3IgPT0gZmFsc2Uge1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiBcIiN7JGdyYWRpZW50LXR5cGV9LWdyYWRpZW50KCN7JHNwZWN9ICN7JGdyYWRpZW50c30pXCI7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IHVucXVvdGUoJHZlbmRvci1ncmFkaWVudHMpO1xuICB9XG4gIEByZXR1cm4gJHZlbmRvci1ncmFkaWVudHM7XG59XG4iLCJAZnVuY3Rpb24gX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpIHtcbiAgJHNoYXBlLXNpemUtc3BlYzogbnVsbDtcbiAgQGVhY2ggJHZhbHVlIGluICRzaGFwZS1zaXplIHtcbiAgICBAaWYgKCR2YWx1ZSA9PSBcImNvdmVyXCIpIG9yICgkdmFsdWUgPT0gXCJjb250YWluXCIpIHtcbiAgICAgICR2YWx1ZTogbnVsbDtcbiAgICB9XG4gICAgJHNoYXBlLXNpemUtc3BlYzogXCIjeyRzaGFwZS1zaXplLXNwZWN9ICN7JHZhbHVlfVwiO1xuICB9XG4gIEByZXR1cm4gJHNoYXBlLXNpemUtc3BlYztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3IgbGluZWFyL3JhZGlhbC1ncmFkaWVudC1wYXJzZXJzLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9zdHItdG8tbnVtKCRzdHJpbmcpIHtcbiAgLy8gTWF0cmljZXNcbiAgJHN0cmluZ3M6IFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiO1xuICAkbnVtYmVyczogIDAgICAxICAgMiAgIDMgICA0ICAgNSAgIDYgICA3ICAgOCAgIDk7XG5cbiAgLy8gUmVzdWx0XG4gICRyZXN1bHQ6IDA7XG4gICRkaXZpZGVyOiAwO1xuICAkbWludXM6IGZhbHNlO1xuXG4gIC8vIExvb3BpbmcgdGhyb3VnaCBhbGwgY2hhcmFjdGVyc1xuICBAZm9yICRpIGZyb20gMSB0aHJvdWdoIHN0ci1sZW5ndGgoJHN0cmluZykge1xuICAgICRjaGFyYWN0ZXI6IHN0ci1zbGljZSgkc3RyaW5nLCAkaSwgJGkpO1xuICAgICRpbmRleDogaW5kZXgoJHN0cmluZ3MsICRjaGFyYWN0ZXIpO1xuXG4gICAgQGlmICRjaGFyYWN0ZXIgPT0gXCItXCIge1xuICAgICAgJG1pbnVzOiB0cnVlO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICRjaGFyYWN0ZXIgPT0gXCIuXCIge1xuICAgICAgJGRpdmlkZXI6IDE7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGlmIG5vdCAkaW5kZXgge1xuICAgICAgICAkcmVzdWx0OiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG4gICAgICAgIEByZXR1cm4gX2NvbnZlcnQtdW5pdHMoJHJlc3VsdCwgc3RyLXNsaWNlKCRzdHJpbmcsICRpKSk7XG4gICAgICB9XG5cbiAgICAgICRudW1iZXI6IG50aCgkbnVtYmVycywgJGluZGV4KTtcblxuICAgICAgQGlmICRkaXZpZGVyID09IDAge1xuICAgICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTA7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgLy8gTW92ZSB0aGUgZGVjaW1hbCBkb3QgdG8gdGhlIGxlZnRcbiAgICAgICAgJGRpdmlkZXI6ICRkaXZpZGVyICogMTA7XG4gICAgICAgICRudW1iZXI6ICRudW1iZXIgLyAkZGl2aWRlcjtcbiAgICAgIH1cblxuICAgICAgJHJlc3VsdDogJHJlc3VsdCArICRudW1iZXI7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gaWYoJG1pbnVzLCAkcmVzdWx0ICogLTEsICRyZXN1bHQpO1xufVxuIiwiLy8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1hbmltYXRpb25zLyN0aGUtYW5pbWF0aW9uLW5hbWUtcHJvcGVydHktXG4vLyBFYWNoIG9mIHRoZXNlIG1peGlucyBzdXBwb3J0IGNvbW1hIHNlcGFyYXRlZCBsaXN0cyBvZiB2YWx1ZXMsIHdoaWNoIGFsbG93cyBkaWZmZXJlbnQgdHJhbnNpdGlvbnMgZm9yIGluZGl2aWR1YWwgcHJvcGVydGllcyB0byBiZSBkZXNjcmliZWQgaW4gYSBzaW5nbGUgc3R5bGUgcnVsZS4gRWFjaCB2YWx1ZSBpbiB0aGUgbGlzdCBjb3JyZXNwb25kcyB0byB0aGUgdmFsdWUgYXQgdGhhdCBzYW1lIHBvc2l0aW9uIGluIHRoZSBvdGhlciBwcm9wZXJ0aWVzLlxuXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb25zLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbiwgJGFuaW1hdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tbmFtZSgkbmFtZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLW5hbWUsICRuYW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWR1cmF0aW9uLCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQoJHZhbHVlcy4uLikge1xuICAvLyBpbmZpbml0ZSB8IDxudW1iZXI+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICR2YWx1ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uKCRkaXJlY3Rpb25zLi4uKSB7XG4gIC8vIG5vcm1hbCB8IGFsdGVybmF0ZVxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGlyZWN0aW9uLCAkZGlyZWN0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1wbGF5LXN0YXRlKCRzdGF0ZXMuLi4pIHtcbiAgLy8gcnVubmluZyB8IHBhdXNlZFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlKCRtb2Rlcy4uLikge1xuICAvLyBub25lIHwgZm9yd2FyZHMgfCBiYWNrd2FyZHMgfCBib3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1maWxsLW1vZGUsICRtb2Rlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBhcHBlYXJhbmNlKCR2YWx1ZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhcHBlYXJhbmNlLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBiYWNrZmFjZS12aXNpYmlsaXR5KCR2aXNpYmlsaXR5KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZHMgdXNpbmcgc2hvcnRoYW5kXG4vLyBub3RhdGlvbi5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQoJGJhY2tncm91bmRzLi4uKSB7XG4gICR3ZWJraXQtYmFja2dyb3VuZHM6ICgpO1xuICAkc3BlYy1iYWNrZ3JvdW5kczogKCk7XG5cbiAgQGVhY2ggJGJhY2tncm91bmQgaW4gJGJhY2tncm91bmRzIHtcbiAgICAkd2Via2l0LWJhY2tncm91bmQ6ICgpO1xuICAgICRzcGVjLWJhY2tncm91bmQ6ICgpO1xuICAgICRiYWNrZ3JvdW5kLXR5cGU6IHR5cGUtb2YoJGJhY2tncm91bmQpO1xuXG4gICAgQGlmICRiYWNrZ3JvdW5kLXR5cGUgPT0gc3RyaW5nIG9yICRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCB7XG4gICAgICAkYmFja2dyb3VuZC1zdHI6IGlmKCRiYWNrZ3JvdW5kLXR5cGUgPT0gbGlzdCwgbnRoKCRiYWNrZ3JvdW5kLCAxKSwgJGJhY2tncm91bmQpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRiYWNrZ3JvdW5kLXN0ciwgMSwgNik7XG5cbiAgICAgIEBpZiAkdXJsLXN0ciA9PSBcInVybFwiIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgfVxuXG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kczogYXBwZW5kKCR3ZWJraXQtYmFja2dyb3VuZHMsICR3ZWJraXQtYmFja2dyb3VuZCwgY29tbWEpO1xuICAgICRzcGVjLWJhY2tncm91bmRzOiAgIGFwcGVuZCgkc3BlYy1iYWNrZ3JvdW5kcywgICAkc3BlYy1iYWNrZ3JvdW5kLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQ6ICR3ZWJraXQtYmFja2dyb3VuZHM7XG4gIGJhY2tncm91bmQ6ICRzcGVjLWJhY2tncm91bmRzO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gQmFja2dyb3VuZC1pbWFnZSBwcm9wZXJ0eSBmb3IgYWRkaW5nIG11bHRpcGxlIGJhY2tncm91bmQgaW1hZ2VzIHdpdGhcbi8vIGdyYWRpZW50cywgb3IgZm9yIHN0cmluZ2luZyBtdWx0aXBsZSBncmFkaWVudHMgdG9nZXRoZXIuXG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5cbkBtaXhpbiBiYWNrZ3JvdW5kLWltYWdlKCRpbWFnZXMuLi4pIHtcbiAgJHdlYmtpdC1pbWFnZXM6ICgpO1xuICAkc3BlYy1pbWFnZXM6ICgpO1xuXG4gIEBlYWNoICRpbWFnZSBpbiAkaW1hZ2VzIHtcbiAgICAkd2Via2l0LWltYWdlOiAoKTtcbiAgICAkc3BlYy1pbWFnZTogKCk7XG5cbiAgICBAaWYgKHR5cGUtb2YoJGltYWdlKSA9PSBzdHJpbmcpIHtcbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGltYWdlLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGltYWdlLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWltYWdlOiAkaW1hZ2U7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICRpbWFnZTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSk7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1pbWFnZTogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuICAgIH1cblxuICAgICR3ZWJraXQtaW1hZ2VzOiBhcHBlbmQoJHdlYmtpdC1pbWFnZXMsICR3ZWJraXQtaW1hZ2UsIGNvbW1hKTtcbiAgICAkc3BlYy1pbWFnZXM6ICAgYXBwZW5kKCRzcGVjLWltYWdlcywgICAkc3BlYy1pbWFnZSwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWltYWdlOiAkd2Via2l0LWltYWdlcztcbiAgYmFja2dyb3VuZC1pbWFnZTogJHNwZWMtaW1hZ2VzO1xufVxuIiwiQG1peGluIGJvcmRlci1pbWFnZSgkYm9yZGVycy4uLikge1xuICAkd2Via2l0LWJvcmRlcnM6ICgpO1xuICAkc3BlYy1ib3JkZXJzOiAoKTtcblxuICBAZWFjaCAkYm9yZGVyIGluICRib3JkZXJzIHtcbiAgICAkd2Via2l0LWJvcmRlcjogKCk7XG4gICAgJHNwZWMtYm9yZGVyOiAoKTtcbiAgICAkYm9yZGVyLXR5cGU6IHR5cGUtb2YoJGJvcmRlcik7XG5cbiAgICBAaWYgJGJvcmRlci10eXBlID09IHN0cmluZyBvciBsaXN0IHtcbiAgICAgICRib3JkZXItc3RyOiBpZigkYm9yZGVyLXR5cGUgPT0gbGlzdCwgbnRoKCRib3JkZXIsIDEpLCAkYm9yZGVyKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYm9yZGVyLXN0ciwgMSwgMyk7XG4gICAgICAkZ3JhZGllbnQtdHlwZTogc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRib3JkZXJ9XCIpO1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgICRib3JkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgJHdlYmtpdC1ib3JkZXI6ICRib3JkZXI7XG4gICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJvcmRlcnM6IGFwcGVuZCgkd2Via2l0LWJvcmRlcnMsICR3ZWJraXQtYm9yZGVyLCBjb21tYSk7XG4gICAgJHNwZWMtYm9yZGVyczogICBhcHBlbmQoJHNwZWMtYm9yZGVycywgICAkc3BlYy1ib3JkZXIsICAgY29tbWEpO1xuICB9XG5cbiAgLXdlYmtpdC1ib3JkZXItaW1hZ2U6ICR3ZWJraXQtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItaW1hZ2U6ICRzcGVjLWJvcmRlcnM7XG4gICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbn1cblxuLy9FeGFtcGxlczpcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZSh1cmwoXCJpbWFnZS5wbmdcIikpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSAyMCBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgc3RyZXRjaCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UobGluZWFyLWdyYWRpZW50KDQ1ZGVnLCBvcmFuZ2UsIHllbGxvdykgMjAgMzAgNDAgNTAgc3RyZXRjaCByb3VuZCk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UocmFkaWFsLWdyYWRpZW50KHRvcCwgY292ZXIsIG9yYW5nZSwgeWVsbG93LCBvcmFuZ2UpKTtcbiIsIkBtaXhpbiBjYWxjKCRwcm9wZXJ0eSwgJHZhbHVlKSB7XG4gICN7JHByb3BlcnR5fTogLXdlYmtpdC1jYWxjKCN7JHZhbHVlfSk7XG4gICN7JHByb3BlcnR5fTogY2FsYygjeyR2YWx1ZX0pO1xufVxuIiwiQG1peGluIGNvbHVtbnMoJGFyZzogYXV0bykge1xuICAvLyA8Y29sdW1uLWNvdW50PiB8fCA8Y29sdW1uLXdpZHRoPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW5zLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWNvdW50KCRpbnQ6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBpbnRlZ2VyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1jb3VudCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1nYXAoJGxlbmd0aDogbm9ybWFsKSB7XG4gIC8vIG5vcm1hbCB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWdhcCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1maWxsKCRhcmc6IGF1dG8pIHtcbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWZpbGwsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZSgkYXJnKSB7XG4gIC8vIDxib3JkZXItd2lkdGg+IHx8IDxib3JkZXItc3R5bGU+IHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtY29sb3IsICRjb2xvciwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXN0eWxlKCRzdHlsZTogbm9uZSkge1xuICAvLyBub25lIHwgaGlkZGVuIHwgZGFzaGVkIHwgZG90dGVkIHwgZG91YmxlIHwgZ3Jvb3ZlIHwgaW5zZXQgfCBpbnNldCB8IG91dHNldCB8IHJpZGdlIHwgc29saWRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLXdpZHRoICgkd2lkdGg6IG5vbmUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUtd2lkdGgsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1zcGFuKCRhcmc6IG5vbmUpIHtcbiAgLy8gbm9uZSB8fCBhbGxcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXNwYW4sICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4td2lkdGgoJGxlbmd0aDogYXV0bykge1xuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4td2lkdGgsICRsZW5ndGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gZmlsdGVyKCRmdW5jdGlvbjogbm9uZSkge1xuICAvLyA8ZmlsdGVyLWZ1bmN0aW9uPiBbPGZpbHRlci1mdW5jdGlvbl0qIHwgbm9uZVxuICBAaW5jbHVkZSBwcmVmaXhlcihmaWx0ZXIsICRmdW5jdGlvbiwgd2Via2l0IHNwZWMpO1xufVxuIiwiLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG5cbi8vIEN1c3RvbSBzaG9ydGhhbmQgbm90YXRpb24gZm9yIGZsZXhib3hcbkBtaXhpbiBib3goJG9yaWVudDogaW5saW5lLWF4aXMsICRwYWNrOiBzdGFydCwgJGFsaWduOiBzdHJldGNoKSB7XG4gIEBpbmNsdWRlIGRpc3BsYXktYm94O1xuICBAaW5jbHVkZSBib3gtb3JpZW50KCRvcmllbnQpO1xuICBAaW5jbHVkZSBib3gtcGFjaygkcGFjayk7XG4gIEBpbmNsdWRlIGJveC1hbGlnbigkYWxpZ24pO1xufVxuXG5AbWl4aW4gZGlzcGxheS1ib3gge1xuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4vLyBob3Jpem9udGFsfHZlcnRpY2FsfGlubGluZS1heGlzfGJsb2NrLWF4aXN8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkb3JpZW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LXBhY2soJHBhY2s6IHN0YXJ0KSB7XG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4vLyBub3JtYWx8cmV2ZXJzZXxpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1saW5lcygkbGluZXM6IHNpbmdsZSkge1xuLy8gc2luZ2xlfG11bHRpcGxlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGxpbmVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYm94LW9yZGluYWwtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDApIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXg6ICR2YWx1ZTsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4LWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuLy8gVW5pZmllZCBhdHRyaWJ1dGVzIGZvciAyMDA5LCAyMDExLCBhbmQgMjAxMiBmbGF2b3Vycy5cblxuLy8gMjAwOSAtIGRpc3BsYXkgKGJveCB8IGlubGluZS1ib3gpXG4vLyAyMDExIC0gZGlzcGxheSAoZmxleGJveCB8IGlubGluZS1mbGV4Ym94KVxuLy8gMjAxMiAtIGRpc3BsYXkgKGZsZXggfCBpbmxpbmUtZmxleClcbkBtaXhpbiBkaXNwbGF5KCR2YWx1ZSkge1xuLy8gZmxleCB8IGlubGluZS1mbGV4XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4XCIge1xuICAgIC8vIDIwMDlcbiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWJveDtcbiAgICBkaXNwbGF5OiBib3g7XG5cbiAgICAvLyAyMDEyXG4gICAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsgLy8gMjAxMSAoSUUgMTApXG4gICAgZGlzcGxheTogZmxleDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJpbmxpbmUtZmxleFwiIHtcbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtYm94O1xuICAgIGRpc3BsYXk6IGlubGluZS1ib3g7XG5cbiAgICBkaXNwbGF5OiAtd2Via2l0LWlubGluZS1mbGV4O1xuICAgIGRpc3BsYXk6IC1tb3otaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1zLWlubGluZS1mbGV4Ym94O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICB9IEBlbHNlIHtcbiAgICBkaXNwbGF5OiAkdmFsdWU7XG4gIH1cbn1cblxuLy8gMjAwOSAtIGJveC1mbGV4IChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXggKGRlY2ltYWwgfCB3aWR0aCBkZWNpbWFsKVxuLy8gMjAxMiAtIGZsZXggKGludGVnZXIgaW50ZWdlciB3aWR0aClcbkBtaXhpbiBmbGV4KCR2YWx1ZSkge1xuXG4gIC8vIEdyYWIgZmxleC1ncm93IGZvciBvbGRlciBicm93c2Vycy5cbiAgJGZsZXgtZ3JvdzogbnRoKCR2YWx1ZSwgMSk7XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJGZsZXgtZ3Jvdywgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMCksIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yaWVudCAoIGhvcml6b250YWwgfCB2ZXJ0aWNhbCB8IGlubGluZS1heGlzIHwgYmxvY2stYXhpcylcbi8vICAgICAgLSBib3gtZGlyZWN0aW9uIChub3JtYWwgfCByZXZlcnNlKVxuLy8gMjAxMSAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtZGlyZWN0aW9uIChyb3cgfCByb3ctcmV2ZXJzZSB8IGNvbHVtbiB8IGNvbHVtbi1yZXZlcnNlKVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCR2YWx1ZTogcm93KSB7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJHZhbHVlLTIwMDk6ICR2YWx1ZTtcbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgJGRpcmVjdGlvbjogbm9ybWFsO1xuXG4gIEBpZiAkdmFsdWUgPT0gcm93IHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJyb3ctcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogaG9yaXpvbnRhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBjb2x1bW4ge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJjb2x1bW4tcmV2ZXJzZVwiIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJHZhbHVlLTIwMDksIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1kaXJlY3Rpb24sICRkaXJlY3Rpb24sIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWRpcmVjdGlvbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1kaXJlY3Rpb246ICR2YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1saW5lcyAoc2luZ2xlIHwgbXVsdGlwbGUpXG4vLyAyMDExIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuLy8gMjAxMiAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LXdyYXAoJHZhbHVlOiBub3dyYXApIHtcbiAgLy8gQWx0IHZhbHVlc1xuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gbm93cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBzaW5nbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IHdyYXAge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcIndyYXAtcmV2ZXJzZVwiIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfVxuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1saW5lcywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC13cmFwLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTEgLSBUT0RPOiBwYXJzZSB2YWx1ZXMgaW50byBmbGV4LWRpcmVjdGlvbi9mbGV4LXdyYXBcbi8vIDIwMTIgLSBmbGV4LWZsb3cgKGZsZXgtZGlyZWN0aW9uIHx8IGZsZXgtd3JhcClcbkBtaXhpbiBmbGV4LWZsb3coJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZmxvdywgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gYm94LW9yZGluYWwtZ3JvdXAgKGludGVnZXIpXG4vLyAyMDExIC0gZmxleC1vcmRlciAoaW50ZWdlcilcbi8vIDIwMTIgLSBvcmRlciAoaW50ZWdlcilcbkBtaXhpbiBvcmRlcigkaW50OiAwKSB7XG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihvcmRlciwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWdyb3csICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtc2hyaW5rLCAkbnVtYmVyLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1uZWdhdGl2ZTogJG51bWJlcjtcbn1cblxuLy8gMjAxMiAtIGZsZXgtYmFzaXMgKG51bWJlcilcbkBtaXhpbiBmbGV4LWJhc2lzKCR3aWR0aDogYXV0bykge1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XG59XG5cbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMiAtIGp1c3RpZnktY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZClcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG5cbiAgLy8gQWx0IHZhbHVlcy5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkYWx0LXZhbHVlOiBqdXN0aWZ5O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWFyb3VuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGp1c3RpZnktY29udGVudCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LXBhY2s6ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMSAtIGZsZXgtYWxpZ24gKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWl0ZW1zIChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24taXRlbXMoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuXG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWFsaWduLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24taXRlbXMsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1hbGlnbjogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtaXRlbS1hbGlnbiAoYXV0byB8IHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLXNlbGYgKGF1dG8gfCBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG5AbWl4aW4gYWxpZ24tc2VsZigkdmFsdWU6IGF1dG8pIHtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWUtMjAxMTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtbGluZS1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgfCBkaXN0cmlidXRlIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJHZhbHVlLTIwMTE6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBkaXN0cmlidXRlO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWxpbmUtcGFjazogJHZhbHVlLTIwMTE7XG59XG4iLCJAbWl4aW4gZm9udC1mYWNlKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICR3ZWlnaHQ6IG5vcm1hbCxcbiAgJHN0eWxlOiBub3JtYWwsXG4gICRhc3NldC1waXBlbGluZTogJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzOiBlb3Qgd29mZjIgd29mZiB0dGYgc3ZnKSB7XG5cbiAgJGZvbnQtdXJsLXByZWZpeDogZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKTtcblxuICBAZm9udC1mYWNlIHtcbiAgICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5O1xuICAgIGZvbnQtc3R5bGU6ICRzdHlsZTtcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcblxuICAgIHNyYzogZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICAgICAkZm9udC1mYW1pbHksXG4gICAgICAkZmlsZS1wYXRoLFxuICAgICAgJGFzc2V0LXBpcGVsaW5lLFxuICAgICAgJGZpbGUtZm9ybWF0cyxcbiAgICAgICRmb250LXVybC1wcmVmaXhcbiAgICApO1xuICB9XG59XG4iLCJAbWl4aW4gZm9udC1mZWF0dXJlLXNldHRpbmdzKCRzZXR0aW5ncy4uLikge1xuICBAaWYgbGVuZ3RoKCRzZXR0aW5ncykgPT0gMCB7ICRzZXR0aW5nczogbm9uZTsgfVxuICBAaW5jbHVkZSBwcmVmaXhlcihmb250LWZlYXR1cmUtc2V0dGluZ3MsICRzZXR0aW5ncywgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIi8vIEhpRFBJIG1peGluLiBEZWZhdWx0IHZhbHVlIHNldCB0byAxLjMgdG8gdGFyZ2V0IEdvb2dsZSBOZXh1cyA3IChodHRwOi8vYmphbmdvLmNvbS9hcnRpY2xlcy9taW4tZGV2aWNlLXBpeGVsLXJhdGlvLylcbkBtaXhpbiBoaWRwaSgkcmF0aW86IDEuMykge1xuICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLS1tb3otZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKC1vLW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86ICN7JHJhdGlvfS8xKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogcm91bmQoJHJhdGlvICogOTZkcGkpKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogJHJhdGlvICogMWRwcHgpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiQG1peGluIGh5cGhlbnMoJGh5cGhlbmF0aW9uOiBub25lKSB7XG4gIC8vIG5vbmUgfCBtYW51YWwgfCBhdXRvXG4gIEBpbmNsdWRlIHByZWZpeGVyKGh5cGhlbnMsICRoeXBoZW5hdGlvbiwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBtaXhpbiBpbWFnZS1yZW5kZXJpbmcgKCRtb2RlOmF1dG8pIHtcblxuICBAaWYgKCRtb2RlID09IGNyaXNwLWVkZ2VzKSB7XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogbmVhcmVzdC1uZWlnaGJvcjsgLy8gSUU4K1xuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XG4gIH1cbn1cbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWUgIWdsb2JhbDtcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci1tb3ppbGxhOiB0cnVlICFnbG9iYWw7XG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0ICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0ICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmEgICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyAgICAgICFnbG9iYWw7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRnMSwgJGcyOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkcG9zLXNwZWM6IG51bGw7XG4gICRwb3MtZGVncmVlOiBudWxsO1xuXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XG4gICAgJGcxMDogJGc5OyAkZzk6ICRnODsgJGc4OiAkZzc7ICRnNzogJGc2OyAkZzY6ICRnNTtcbiAgICAkZzU6ICRnNDsgJGc0OiAkZzM7ICRnMzogJGcyOyAkZzI6ICRnMTsgJGcxOiAkcG9zO1xuICAgICRwb3M6IG51bGw7XG4gIH1cblxuICBAaWYgJHBvcyB7XG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGcxLCAxKTtcblxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDxsZW5ndGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLCAkZGVwdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBwZXJzcGVjdGl2ZS1vcmlnaW4oJHZhbHVlOiA1MCUgNTAlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHBlcnNwZWN0aXZlLW9yaWdpbiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHBsYWNlaG9sZGVyIHtcbiAgJHBsYWNlaG9sZGVyczogXCI6LXdlYmtpdC1pbnB1dFwiIFwiOi1tb3pcIiBcIi1tb3pcIiBcIi1tcy1pbnB1dFwiO1xuICBAZWFjaCAkcGxhY2Vob2xkZXIgaW4gJHBsYWNlaG9sZGVycyB7XG4gICAgJjojeyRwbGFjZWhvbGRlcn0tcGxhY2Vob2xkZXIge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCIvLyBSZXF1aXJlcyBTYXNzIDMuMStcbkBtaXhpbiByYWRpYWwtZ3JhZGllbnQoJGcxLCAkZzIsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHBvczogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJHNoYXBlLXNpemU6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuXG4gICRkYXRhOiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKTtcbiAgJGcxOiAgbnRoKCRkYXRhLCAxKTtcbiAgJGcyOiAgbnRoKCRkYXRhLCAyKTtcbiAgJHBvczogbnRoKCRkYXRhLCAzKTtcbiAgJHNoYXBlLXNpemU6IG50aCgkZGF0YSwgNCk7XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU3RyaXAgZGVwcmVjYXRlZCBjb3Zlci9jb250YWluIGZvciBzcGVjXG4gICRzaGFwZS1zaXplLXNwZWM6IF9zaGFwZS1zaXplLXN0cmlwcGVyKCRzaGFwZS1zaXplKTtcblxuICAvLyBTZXQgJGcxIGFzIHRoZSBkZWZhdWx0IGZhbGxiYWNrIGNvbG9yXG4gICRmaXJzdC1jb2xvcjogbnRoKCRmdWxsLCAxKTtcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGZpcnN0LWNvbG9yLCAxKTtcblxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIC8vIEFkZCBDb21tYXMgYW5kIHNwYWNlc1xuICAkc2hhcGUtc2l6ZTogaWYoJHNoYXBlLXNpemUsIFwiI3skc2hhcGUtc2l6ZX0sIFwiLCBudWxsKTtcbiAgJHBvczogICAgICAgIGlmKCRwb3MsIFwiI3skcG9zfSwgXCIsIG51bGwpO1xuICAkcG9zLXNwZWM6ICAgaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBpZigoJHNoYXBlLXNpemUtc3BlYyAhPSBcIiBcIikgYW5kICgkcG9zID09IG51bGwpLCBcIiN7JHNoYXBlLXNpemUtc3BlY30sIFwiLCBcIiN7JHNoYXBlLXNpemUtc3BlY30gXCIpO1xuXG4gIGJhY2tncm91bmQtY29sb3I6ICAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KHVucXVvdGUoI3skcG9zfSN7JHNoYXBlLXNpemV9I3skZnVsbH0pKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdW5xdW90ZShcInJhZGlhbC1ncmFkaWVudCgjeyRzaGFwZS1zaXplLXNwZWN9I3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xyXG5cclxuLy8vIE91dHB1dHMgdGhlIHNwZWMgYW5kIHByZWZpeGVkIHZlcnNpb25zIG9mIHRoZSBgOjpzZWxlY3Rpb25gIHBzZXVkby1lbGVtZW50LlxyXG4vLy9cclxuLy8vIEBwYXJhbSB7Qm9vbH0gJGN1cnJlbnQtc2VsZWN0b3IgW2ZhbHNlXVxyXG4vLy8gICBJZiBzZXQgdG8gYHRydWVgLCBpdCB0YWtlcyB0aGUgY3VycmVudCBlbGVtZW50IGludG8gY29uc2lkZXJhdGlvbi5cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2VcclxuLy8vICAgLmVsZW1lbnQge1xyXG4vLy8gICAgIEBpbmNsdWRlIHNlbGVjdGlvbih0cnVlKSB7XHJcbi8vLyAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICAgIH1cclxuLy8vICAgfVxyXG4vLy9cclxuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcclxuLy8vICAgLmVsZW1lbnQ6Oi1tb3otc2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gICAuZWxlbWVudDo6c2VsZWN0aW9uIHtcclxuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZiYjUyO1xyXG4vLy8gICB9XHJcblxyXG5AbWl4aW4gc2VsZWN0aW9uKCRjdXJyZW50LXNlbGVjdG9yOiBmYWxzZSkge1xyXG4gIEBpZiAkY3VycmVudC1zZWxlY3RvciB7XHJcbiAgICAmOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgICY6OnNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG4gIH0gQGVsc2Uge1xyXG4gICAgOjotbW96LXNlbGVjdGlvbiB7XHJcbiAgICAgIEBjb250ZW50O1xyXG4gICAgfVxyXG5cclxuICAgIDo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIkBtaXhpbiB0ZXh0LWRlY29yYXRpb24oJHZhbHVlKSB7XG4vLyA8dGV4dC1kZWNvcmF0aW9uLWxpbmU+IHx8IDx0ZXh0LWRlY29yYXRpb24tc3R5bGU+IHx8IDx0ZXh0LWRlY29yYXRpb24tY29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbiwgJHZhbHVlLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWxpbmUoJGxpbmU6IG5vbmUpIHtcbi8vIG5vbmUgfHwgdW5kZXJsaW5lIHx8IG92ZXJsaW5lIHx8IGxpbmUtdGhyb3VnaFxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tbGluZSwgJGxpbmUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tc3R5bGUoJHN0eWxlOiBzb2xpZCkge1xuLy8gc29saWQgfHwgZG91YmxlIHx8IGRvdHRlZCB8fCBkYXNoZWQgfHwgd2F2eVxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tc3R5bGUsICRzdHlsZSwgbW96IHdlYmtpdCk7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tY29sb3IoJGNvbG9yOiBjdXJyZW50Q29sb3IpIHtcbi8vIGN1cnJlbnRDb2xvciB8fCA8Y29sb3I+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1jb2xvciwgJGNvbG9yLCBtb3opO1xufVxuIiwiQG1peGluIHRyYW5zZm9ybSgkcHJvcGVydHk6IG5vbmUpIHtcbiAgLy8gbm9uZSB8IDx0cmFuc2Zvcm0tZnVuY3Rpb24+XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybSwgJHByb3BlcnR5LCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tb3JpZ2luKCRheGVzOiA1MCUpIHtcbiAgLy8geC1heGlzIC0gbGVmdCB8IGNlbnRlciB8IHJpZ2h0ICB8IGxlbmd0aCB8ICVcbiAgLy8geS1heGlzIC0gdG9wICB8IGNlbnRlciB8IGJvdHRvbSB8IGxlbmd0aCB8ICVcbiAgLy8gei1heGlzIC0gICAgICAgICAgICAgICAgICAgICAgICAgIGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tb3JpZ2luLCAkYXhlcywgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLXN0eWxlKCRzdHlsZTogZmxhdCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0tc3R5bGUsICRzdHlsZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiLy8gU2hvcnRoYW5kIG1peGluLiBTdXBwb3J0cyBtdWx0aXBsZSBwYXJlbnRoZXNlcy1kZWxpbWluYXRlZCB2YWx1ZXMgZm9yIGVhY2ggdmFyaWFibGUuXG4vLyBFeGFtcGxlOiBAaW5jbHVkZSB0cmFuc2l0aW9uIChhbGwgMnMgZWFzZS1pbi1vdXQpO1xuLy8gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbiAob3BhY2l0eSAxcyBlYXNlLWluIDJzLCB3aWR0aCAycyBlYXNlLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5ICh0cmFuc2Zvcm0sIG9wYWNpdHkpO1xuXG5AbWl4aW4gdHJhbnNpdGlvbigkcHJvcGVydGllcy4uLikge1xuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XG4gICRuZWVkcy1wcmVmaXhlczogZmFsc2U7XG4gICR3ZWJraXQ6ICgpO1xuICAkbW96OiAoKTtcbiAgJHNwZWM6ICgpO1xuXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxuICBAZWFjaCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XG4gICAgQGlmIG50aCgkbGlzdCwgMSkgPT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XG4gICAgICAkbGlzdDE6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAgICAgJGxpc3QyOiAtbW96LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MzogKCk7XG5cbiAgICAgIEBlYWNoICR2YXIgaW4gJGxpc3Qge1xuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcblxuICAgICAgICBAaWYgJHZhciAhPSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcbiAgICAgICAgICAkbGlzdDI6IGpvaW4oJGxpc3QyLCAkdmFyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QxKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0Myk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdCwgY29tbWEpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0LCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkd2Via2l0O1xuICAgICAgIC1tb3otdHJhbnNpdGlvbjogJG1vejtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xuICB9IEBlbHNlIHtcbiAgICBAaWYgbGVuZ3RoKCRwcm9wZXJ0aWVzKSA+PSAxIHtcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHByb3BlcnRpZXM6IGFsbCAwLjE1cyBlYXNlLW91dCAwcztcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSgkcHJvcGVydGllcy4uLikge1xuICAtd2Via2l0LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwid2Via2l0XCIpO1xuICAgICAtbW96LXRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIFwibW96XCIpO1xuICAgICAgICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BlcnRpZXMsIGZhbHNlKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKCRtb3Rpb25zLi4uKSB7XG4gIC8vIGVhc2UgfCBsaW5lYXIgfCBlYXNlLWluIHwgZWFzZS1vdXQgfCBlYXNlLWluLW91dCB8IGN1YmljLWJlemllcigpXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uLCAkbW90aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zaXRpb24tZGVsYXkoJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiB1c2VyLXNlbGVjdCgkdmFsdWU6IG5vbmUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodXNlci1zZWxlY3QsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1jb2xvcmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWNvbG9yKCNhNjBiNTUgIzc2Y2Q5YyBudWxsICNlOGFlMWEpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItbGVmdC1jb2xvcjogI2U4YWUxYTtcbi8vLyAgICAgYm9yZGVyLXJpZ2h0LWNvbG9yOiAjNzZjZDljO1xuLy8vICAgICBib3JkZXItdG9wLWNvbG9yOiAjYTYwYjU1O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLWNvbG9yYFxuXG5AbWl4aW4gYm9yZGVyLWNvbG9yKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgY29sb3IsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1yYWRpdXNgIG9uIGJvdGggY29ybmVycyBvbiB0aGUgc2lkZSBvZiBhIGJveC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmFkaWlcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDVweCk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygzcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xuLy8vICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1yYWRpdXNgXG5cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXN0eWxlYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZGFzaGVkIG51bGwgc29saWQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXN0eWxlYFxuXG5AbWl4aW4gYm9yZGVyLXN0eWxlKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KGJvcmRlciwgc3R5bGUsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci13aWR0aGAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXdpZHRoKDFlbSBudWxsIDIwcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXdpZHRoOiAyMHB4O1xuLy8vICAgICBib3JkZXItdG9wLXdpZHRoOiAxZW07XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItd2lkdGhgXG5cbkBtaXhpbiBib3JkZXItd2lkdGgoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCB3aWR0aCwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIGJ1dHRvbnMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLWJ1dHRvbnN9YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgI3skYWxsLWJ1dHRvbnN9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtZm9jdXN9LFxuLy8vICAgI3skYWxsLWJ1dHRvbnMtaG92ZXJ9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLWJ1dHRvbnMtYWN0aXZlfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBidXR0b24sXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmZvY3VzLFxuLy8vICAgYnV0dG9uOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06aG92ZXIge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTphY3RpdmUge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUgYXNzaWduLWlucHV0c1xuLy8vXG4vLy8gQHR5cGUgTGlzdFxuLy8vXG4vLy8gQHRvZG8gUmVtb3ZlIGRvdWJsZSBhc3NpZ25lZCB2YXJpYWJsZXMgKExpbmVzIDU54oCTNjIpIGluIHY1LjAuMFxuXG4kYnV0dG9ucy1saXN0OiAnYnV0dG9uJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiYnV0dG9uXCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicmVzZXRcIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJzdWJtaXRcIl0nO1xuXG4kYWxsLWJ1dHRvbnM6ICAgICAgICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QpO1xuJGFsbC1idXR0b25zLWFjdGl2ZTogYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBhY3RpdmUpO1xuJGFsbC1idXR0b25zLWZvY3VzOiAgYXNzaWduLWlucHV0cygkYnV0dG9ucy1saXN0LCBmb2N1cyk7XG4kYWxsLWJ1dHRvbnMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGhvdmVyKTtcblxuJGFsbC1idXR0b24taW5wdXRzOiAgICAgICAgJGFsbC1idXR0b25zO1xuJGFsbC1idXR0b24taW5wdXRzLWFjdGl2ZTogJGFsbC1idXR0b25zLWFjdGl2ZTtcbiRhbGwtYnV0dG9uLWlucHV0cy1mb2N1czogICRhbGwtYnV0dG9ucy1mb2N1cztcbiRhbGwtYnV0dG9uLWlucHV0cy1ob3ZlcjogICRhbGwtYnV0dG9ucy1ob3ZlcjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGluY2x1ZGUgYSBjbGVhcmZpeCBmb3IgY29udGFpbmluZyBmbG9hdHMuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vY3NzbW9qby5jb20vbGF0ZXN0X25ld19jbGVhcmZpeF9zb19mYXIvXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgICAgY29udGVudDogXCJcIjtcbi8vLyAgICAgZGlzcGxheTogdGFibGU7XG4vLy8gICB9XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUcnVuY2F0ZXMgdGV4dCBhbmQgYWRkcyBhbiBlbGxpcHNpcyB0byByZXByZXNlbnQgb3ZlcmZsb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHdpZHRoIFsxMDAlXVxuLy8vICAgTWF4LXdpZHRoIGZvciB0aGUgc3RyaW5nIHRvIHJlc3BlY3QgYmVmb3JlIGJlaW5nIHRydW5jYXRlZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGVsbGlwc2lzO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4vLy8gICAgIG1heC13aWR0aDogMTAwJTtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICAgIHdvcmQtd3JhcDogbm9ybWFsO1xuLy8vICAgfVxuXG5AbWl4aW4gZWxsaXBzaXMoJHdpZHRoOiAxMDAlKSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICB3b3JkLXdyYXA6IG5vcm1hbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlb3JnaWEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGdlb3JnaWE6IFwiR2VvcmdpYVwiLCBcIkNhbWJyaWFcIiwgXCJUaW1lcyBOZXcgUm9tYW5cIiwgXCJUaW1lc1wiLCBzZXJpZjtcblxuLy8vIEhlbHZldGljYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kaGVsdmV0aWNhOiBcIkhlbHZldGljYSBOZXVlXCIsIFwiSGVsdmV0aWNhXCIsIFwiUm9ib3RvXCIsIFwiQXJpYWxcIiwgc2Fucy1zZXJpZjtcblxuLy8vIEx1Y2lkYSBHcmFuZGUgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJGx1Y2lkYS1ncmFuZGU6IFwiTHVjaWRhIEdyYW5kZVwiLCBcIlRhaG9tYVwiLCBcIlZlcmRhbmFcIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTW9ub3NwYWNlIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRtb25vc3BhY2U6IFwiQml0c3RyZWFtIFZlcmEgU2FucyBNb25vXCIsIFwiQ29uc29sYXNcIiwgXCJDb3VyaWVyXCIsIG1vbm9zcGFjZTtcblxuLy8vIFZlcmRhbmEgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHZlcmRhbmE6IFwiVmVyZGFuYVwiLCBcIkdlbmV2YVwiLCBzYW5zLXNlcmlmO1xuIiwiLy8vIEhpZGVzIHRoZSB0ZXh0IGluIGFuIGVsZW1lbnQsIGNvbW1vbmx5IHVzZWQgdG8gc2hvdyBhbiBpbWFnZS4gU29tZSBlbGVtZW50cyB3aWxsIG5lZWQgYmxvY2stbGV2ZWwgc3R5bGVzIGFwcGxpZWQuXG4vLy9cbi8vLyBAbGluayBodHRwOi8vemVsZG1hbi5jb20vMjAxMi8wMy8wMS9yZXBsYWNpbmctdGhlLTk5OTlweC1oYWNrLW5ldy1pbWFnZS1yZXBsYWNlbWVudFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGhpZGUtdGV4dDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbi8vLyAgICAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4vLy8gICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4vLy8gICB9XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgaGVpZ2h0IGFyZ3VtZW50IGluIHY1LjAuMFxuXG5AbWl4aW4gaGlkZS10ZXh0KCRoZWlnaHQ6IG51bGwpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1pbmRlbnQ6IDEwMSU7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgQGlmICRoZWlnaHQge1xuICAgIEB3YXJuIFwiVGhlIGBoaWRlLXRleHRgIG1peGluIGhhcyBjaGFuZ2VkIGFuZCBubyBsb25nZXIgcmVxdWlyZXMgYSBoZWlnaHQuIFRoZSBoZWlnaHQgYXJndW1lbnQgd2lsbCBubyBsb25nZXIgYmUgYWNjZXB0ZWQgaW4gdjUuMC4wXCI7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYG1hcmdpbmAgb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMTBweCAzZW0gMjB2aCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDNlbTtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IDIwdmg7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYG1hcmdpbmBcblxuQG1peGluIG1hcmdpbigkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIGZhbHNlLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBwYWRkaW5nYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwYWRkaW5nKDEydmggbnVsbCAxMHB4IDUlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgcGFkZGluZy1ib3R0b206IDEwcHg7XG4vLy8gICAgIHBhZGRpbmctbGVmdDogNSU7XG4vLy8gICAgIHBhZGRpbmctdG9wOiAxMnZoO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgcGFkZGluZ2BcblxuQG1peGluIHBhZGRpbmcoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkocGFkZGluZywgZmFsc2UsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciBzZXR0aW5nIGFuIGVsZW1lbnTigJlzIHBvc2l0aW9uLiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge1Bvc2l0aW9ufSAkcG9zaXRpb24gW3JlbGF0aXZlXVxuLy8vICAgQSBDU1MgcG9zaXRpb24gdmFsdWVcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGNvb3JkaW5hdGVzIFtudWxsIG51bGwgbnVsbCBudWxsXVxuLy8vICAgTGlzdCBvZiB2YWx1ZXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSA0LXZhbHVlIHN5bnRheCBmb3IgdGhlIGVkZ2VzIG9mIGEgYm94XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBsZWZ0OiAxMGVtO1xuLy8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLy8gICAgIHRvcDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSB1bnBhY2tcblxuQG1peGluIHBvc2l0aW9uKCRwb3NpdGlvbjogcmVsYXRpdmUsICRjb29yZGluYXRlczogbnVsbCBudWxsIG51bGwgbnVsbCkge1xuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xuICAgICRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAkY29vcmRpbmF0ZXM6IHVucGFjaygkY29vcmRpbmF0ZXMpO1xuXG4gICRvZmZzZXRzOiAoXG4gICAgdG9wOiAgICBudGgoJGNvb3JkaW5hdGVzLCAxKSxcbiAgICByaWdodDogIG50aCgkY29vcmRpbmF0ZXMsIDIpLFxuICAgIGJvdHRvbTogbnRoKCRjb29yZGluYXRlcywgMyksXG4gICAgbGVmdDogICBudGgoJGNvb3JkaW5hdGVzLCA0KVxuICApO1xuXG4gIHBvc2l0aW9uOiAkcG9zaXRpb247XG5cbiAgQGVhY2ggJG9mZnNldCwgJHZhbHVlIGluICRvZmZzZXRzIHtcbiAgICBAaWYgaXMtbGVuZ3RoKCR2YWx1ZSkge1xuICAgICAgI3skb2Zmc2V0fTogJHZhbHVlO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBtaXhpbiBmb3IgZ2VuZXJhdGluZyB2ZW5kb3IgcHJlZml4ZXMgb24gbm9uLXN0YW5kYXJkaXplZCBwcm9wZXJ0aWVzLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcm9wZXJ0eVxuLy8vICAgUHJvcGVydHkgdG8gcHJlZml4XG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZVxuLy8vICAgVmFsdWUgdG8gdXNlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRwcmVmaXhlc1xuLy8vICAgUHJlZml4ZXMgdG8gZGVmaW5lXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcHJlZml4ZXIoYm9yZGVyLXJhZGl1cywgMTBweCwgd2Via2l0IG1zIHNwZWMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4vLy8gICAgIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itd2Via2l0XG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1tb3ppbGxhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1taWNyb3NvZnRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW9wZXJhXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci1zcGVjXG5cbkBtaXhpbiBwcmVmaXhlcigkcHJvcGVydHksICR2YWx1ZSwgJHByZWZpeGVzKSB7XG4gIEBlYWNoICRwcmVmaXggaW4gJHByZWZpeGVzIHtcbiAgICBAaWYgJHByZWZpeCA9PSB3ZWJraXQge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgICAgIC13ZWJraXQtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1veiB7XG4gICAgICBAaWYgJHByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgICAgIC1tb3otI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG1zIHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1taWNyb3NvZnQge1xuICAgICAgICAtbXMtI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IG8ge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW9wZXJhIHtcbiAgICAgICAgLW8tI3skcHJvcGVydHl9OiAkdmFsdWU7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAkcHJlZml4ID09IHNwZWMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLXNwZWMge1xuICAgICAgICAjeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlICB7XG4gICAgICBAd2FybiBcIlVucmVjb2duaXplZCBwcmVmaXg6ICN7JHByZWZpeH1cIjtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKSB7XG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1taWNyb3NvZnQ6IGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICBmYWxzZSAhZ2xvYmFsO1xufVxuIiwiQG1peGluIHJldGluYS1pbWFnZSgkZmlsZW5hbWUsICRiYWNrZ3JvdW5kLXNpemUsICRleHRlbnNpb246IHBuZywgJHJldGluYS1maWxlbmFtZTogbnVsbCwgJHJldGluYS1zdWZmaXg6IF8yeCwgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgIHVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9XG5cbiAgQGluY2x1ZGUgaGlkcGkge1xuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1zaXplOiAkYmFja2dyb3VuZC1zaXplO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTZXRzIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBvZiB0aGUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNpemVcbi8vLyAgIEEgbGlzdCBvZiBhdCBtb3N0IDIgc2l6ZSB2YWx1ZXMuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdmFsdWUgaW4gYCRzaXplYCBpdCBpcyB1c2VkIGZvciBib3RoIHdpZHRoIGFuZCBoZWlnaHQuIEFsbCB1bml0cyBhcmUgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZShhdXRvIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogMmVtO1xuLy8vICAgICBoZWlnaHQ6IDJlbTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IGF1dG87XG4vLy8gICAgIGhlaWdodDogMTBlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlZmFjdG9yIGluIDUuMC4wIHRvIHVzZSBhIGNvbW1hLXNlcGFyYXRlZCBhcmd1bWVudFxuXG5AbWl4aW4gc2l6ZSgkdmFsdWUpIHtcbiAgJHdpZHRoOiBudGgoJHZhbHVlLCAxKTtcbiAgJGhlaWdodDogJHdpZHRoO1xuXG4gIEBpZiBsZW5ndGgoJHZhbHVlKSA+IDEge1xuICAgICRoZWlnaHQ6IG50aCgkdmFsdWUsIDIpO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJGhlaWdodCkge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skaGVpZ2h0fWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCRoZWlnaHRgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJHdpZHRoKSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skd2lkdGh9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJHdpZHRoYCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIHRleHQtYmFzZWQgaW5wdXRzLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC10ZXh0LWlucHV0c31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHN9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWZvY3VzfSxcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1ob3Zlcn0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl0sXG4vLy8gICB0ZXh0YXJlYSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpmb2N1cyxcbi8vLyAgIHRleHRhcmVhOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmhvdmVyLFxuLy8vICAgdGV4dGFyZWE6aG92ZXIge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmFjdGl2ZSxcbi8vLyAgIHRleHRhcmVhOmFjdGl2ZSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR0ZXh0LWlucHV0cy1saXN0OiAnaW5wdXRbdHlwZT1cImNvbG9yXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZW1haWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInNlYXJjaFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGV4dFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInVybFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ3ZWVrXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXQ6bm90KFt0eXBlXSknLFxuICAgICAgICAgICAgICAgICAgICd0ZXh0YXJlYSc7XG5cbiRhbGwtdGV4dC1pbnB1dHM6ICAgICAgICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0KTtcbiRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBhY3RpdmUpO1xuJGFsbC10ZXh0LWlucHV0cy1mb2N1czogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGZvY3VzKTtcbiRhbGwtdGV4dC1pbnB1dHMtaG92ZXI6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBob3Zlcik7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDU1MgY3ViaWMtYmV6aWVyIHRpbWluZyBmdW5jdGlvbnMuIFRpbWluZyBmdW5jdGlvbnMgY291cnRlc3kgb2YganF1ZXJ5LmVhc2llIChnaXRodWIuY29tL2phdWtpYS9lYXNpZSlcbi8vL1xuLy8vIFRpbWluZyBmdW5jdGlvbnMgYXJlIHRoZSBzYW1lIGFzIGRlbW9lZCBoZXJlOiBodHRwOi8vanF1ZXJ5dWkuY29tL3Jlc291cmNlcy9kZW1vcy9lZmZlY3QvZWFzaW5nLmh0bWxcbi8vL1xuLy8vIEB0eXBlIGN1YmljLWJlemllclxuXG4kZWFzZS1pbi1xdWFkOiAgICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDg1LCAwLjY4MCwgMC41MzApO1xuJGVhc2UtaW4tY3ViaWM6ICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA1NSwgMC42NzUsIDAuMTkwKTtcbiRlYXNlLWluLXF1YXJ0OiAgICAgY3ViaWMtYmV6aWVyKDAuODk1LCAgMC4wMzAsIDAuNjg1LCAwLjIyMCk7XG4kZWFzZS1pbi1xdWludDogICAgIGN1YmljLWJlemllcigwLjc1NSwgIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xuJGVhc2UtaW4tc2luZTogICAgICBjdWJpYy1iZXppZXIoMC40NzAsICAwLjAwMCwgMC43NDUsIDAuNzE1KTtcbiRlYXNlLWluLWV4cG86ICAgICAgY3ViaWMtYmV6aWVyKDAuOTUwLCAgMC4wNTAsIDAuNzk1LCAwLjAzNSk7XG4kZWFzZS1pbi1jaXJjOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xuJGVhc2UtaW4tYmFjazogICAgICBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcblxuJGVhc2Utb3V0LXF1YWQ6ICAgICBjdWJpYy1iZXppZXIoMC4yNTAsICAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcbiRlYXNlLW91dC1jdWJpYzogICAgY3ViaWMtYmV6aWVyKDAuMjE1LCAgMC42MTAsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVhcnQ6ICAgIGN1YmljLWJlemllcigwLjE2NSwgIDAuODQwLCAwLjQ0MCwgMS4wMDApO1xuJGVhc2Utb3V0LXF1aW50OiAgICBjdWJpYy1iZXppZXIoMC4yMzAsICAxLjAwMCwgMC4zMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1zaW5lOiAgICAgY3ViaWMtYmV6aWVyKDAuMzkwLCAgMC41NzUsIDAuNTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtZXhwbzogICAgIGN1YmljLWJlemllcigwLjE5MCwgIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xuJGVhc2Utb3V0LWNpcmM6ICAgICBjdWJpYy1iZXppZXIoMC4wNzUsICAwLjgyMCwgMC4xNjUsIDEuMDAwKTtcbiRlYXNlLW91dC1iYWNrOiAgICAgY3ViaWMtYmV6aWVyKDAuMTc1LCAgMC44ODUsIDAuMzIwLCAxLjI3NSk7XG5cbiRlYXNlLWluLW91dC1xdWFkOiAgY3ViaWMtYmV6aWVyKDAuNDU1LCAgMC4wMzAsIDAuNTE1LCAwLjk1NSk7XG4kZWFzZS1pbi1vdXQtY3ViaWM6IGN1YmljLWJlemllcigwLjY0NSwgIDAuMDQ1LCAwLjM1NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1YXJ0OiBjdWJpYy1iZXppZXIoMC43NzAsICAwLjAwMCwgMC4xNzUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWludDogY3ViaWMtYmV6aWVyKDAuODYwLCAgMC4wMDAsIDAuMDcwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtc2luZTogIGN1YmljLWJlemllcigwLjQ0NSwgIDAuMDUwLCAwLjU1MCwgMC45NTApO1xuJGVhc2UtaW4tb3V0LWV4cG86ICBjdWJpYy1iZXppZXIoMS4wMDAsICAwLjAwMCwgMC4wMDAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1jaXJjOiAgY3ViaWMtYmV6aWVyKDAuNzg1LCAgMC4xMzUsIDAuMTUwLCAwLjg2MCk7XG4kZWFzZS1pbi1vdXQtYmFjazogIGN1YmljLWJlemllcigwLjY4MCwgLTAuNTUwLCAwLjI2NSwgMS41NTApO1xuIiwiQG1peGluIHRyaWFuZ2xlKCRzaXplLCAkY29sb3IsICRkaXJlY3Rpb24pIHtcbiAgJHdpZHRoOiBudGgoJHNpemUsIDEpO1xuICAkaGVpZ2h0OiBudGgoJHNpemUsIGxlbmd0aCgkc2l6ZSkpO1xuICAkZm9yZWdyb3VuZC1jb2xvcjogbnRoKCRjb2xvciwgMSk7XG4gICRiYWNrZ3JvdW5kLWNvbG9yOiBpZihsZW5ndGgoJGNvbG9yKSA9PSAyLCBudGgoJGNvbG9yLCAyKSwgdHJhbnNwYXJlbnQpO1xuICBoZWlnaHQ6IDA7XG4gIHdpZHRoOiAwO1xuXG4gIEBpZiAoJGRpcmVjdGlvbiA9PSB1cCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bikgb3IgKCRkaXJlY3Rpb24gPT0gcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICAkd2lkdGg6ICR3aWR0aCAvIDI7XG4gICAgJGhlaWdodDogaWYobGVuZ3RoKCRzaXplKSA+IDEsICRoZWlnaHQsICRoZWlnaHQvMik7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSByaWdodCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93biB7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBsZWZ0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gdXAtcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IHVwLWxlZnQpIHtcbiAgICBib3JkZXItdG9wOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAtcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHVwLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGRvd24tcmlnaHQpIG9yICgkZGlyZWN0aW9uID09IGRvd24tbGVmdCkge1xuICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQge1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXVwKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtZG93bikge1xuICAgIGJvcmRlci1jb2xvcjogJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LXJpZ2h0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtbGVmdCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhbiBlYXN5IHdheSB0byBjaGFuZ2UgdGhlIGB3b3JkLXdyYXBgIHByb3BlcnR5LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR3cmFwIFticmVhay13b3JkXVxuLy8vICAgVmFsdWUgZm9yIHRoZSBgd29yZC1icmVha2AgcHJvcGVydHkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgQGluY2x1ZGUgd29yZC13cmFwKGJyZWFrLXdvcmQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuLy8vICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4vLy8gICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbi8vLyAgIH1cblxuQG1peGluIHdvcmQtd3JhcCgkd3JhcDogYnJlYWstd29yZCkge1xuICBvdmVyZmxvdy13cmFwOiAkd3JhcDtcbiAgd29yZC13cmFwOiAkd3JhcDtcblxuICBAaWYgJHdyYXAgPT0gYnJlYWstd29yZCB7XG4gICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuICB9IEBlbHNlIHtcbiAgICB3b3JkLWJyZWFrOiAkd3JhcDtcbiAgfVxufVxuIiwiLy8gVGhlIGZvbGxvd2luZyBmZWF0dXJlcyBoYXZlIGJlZW4gZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IE1BSk9SIHZlcnNpb24gcmVsZWFzZVxuXG5AbWl4aW4gaW5saW5lLWJsb2NrIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIEB3YXJuIFwiVGhlIGlubGluZS1ibG9jayBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBtaXhpbiBidXR0b24gKCRzdHlsZTogc2ltcGxlLCAkYmFzZS1jb2xvcjogIzQyOTRmMCwgJHRleHQtc2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBzdHJpbmcgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gbnVtYmVyIHtcbiAgICAkcGFkZGluZzogJHRleHQtc2l6ZTtcbiAgICAkdGV4dC1zaXplOiAkYmFzZS1jb2xvcjtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBjb2xvciB7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IGNvbG9yIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAkc3R5bGU7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gaW5oZXJpdCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHN0eWxlKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkYmFzZS1jb2xvcjtcbiAgICAkdGV4dC1zaXplOiAkc3R5bGU7XG4gICAgJGJhc2UtY29sb3I6ICM0Mjk0ZjA7XG4gICAgJHN0eWxlOiBzaW1wbGU7XG5cbiAgICBAaWYgJHBhZGRpbmcgPT0gIzQyOTRmMCB7XG4gICAgICAkcGFkZGluZzogN3B4IDE4cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnV0dG9uc3R5bGUoJHN0eWxlLCAkYmFzZS1jb2xvciwgJHRleHQtc2l6ZSwgJHBhZGRpbmcpO1xuICB9XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjU7XG4gIH1cblxuICBAd2FybiBcIlRoZSBidXR0b24gbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG4vLyBTZWxlY3RvciBTdHlsZSBCdXR0b25cbkBtaXhpbiBidXR0b25zdHlsZSgkdHlwZSwgJGItY29sb3IsICR0LXNpemUsICRwYWQpIHtcbiAgLy8gR3JheXNjYWxlIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHNoaW55IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gcGlsbCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gZmxhdCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICAvLyBDb2xvcmVkIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHNoaW55IHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gcGlsbCB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gZmxhdCB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG59XG5cbi8vIFNpbXBsZSBCdXR0b25cbkBtaXhpbiBzaW1wbGUoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTE0JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtOCUsICAkbGlnaHRuZXNzOiAgMTUlKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xMSUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDE1JSwgJGxpZ2h0bmVzczogLTE4JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA4JSwgJGxpZ2h0bmVzczogLTE0JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogOSUsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA3JSwgJGxpZ2h0bmVzczogLTE3JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmUsIGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFNoaW55IEJ1dHRvblxuQG1peGluIHNoaW55KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExNywgJGdyZWVuOiAtMTExLCAkYmx1ZTogLTgxKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEyNiwgJGdyZWVuOiAtMTI3LCAkYmx1ZTogLTEyMik7XG4gICRmb3VydGgtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC03OSwgICRncmVlbjogLTcwLCAgJGJsdWU6IC00Nik7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6ICAzNywgICRncmVlbjogIDI5LCAgJGJsdWU6ICAxMik7XG4gICRzZWNvbmQtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC01NiwgICRncmVlbjogLTUwLCAgJGJsdWU6IC0zMyk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xNDAsICRncmVlbjogLTE0MSwgJGJsdWU6IC0xMTQpO1xuICAkdGhpcmQtc3RvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICAkZ3JlZW46IC03NSwgICRibHVlOiAtNDgpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGZvdXJ0aC1zdG9wOiAgIGdyYXlzY2FsZSgkZm91cnRoLXN0b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHNlY29uZC1zdG9wOiAgIGdyYXlzY2FsZSgkc2Vjb25kLXN0b3ApO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgICAkdGhpcmQtc3RvcDogICAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRiYXNlLWNvbG9yIDAlLCAkc2Vjb25kLXN0b3AgNTAlLCAkdGhpcmQtc3RvcCA1MCUsICRmb3VydGgtc3RvcCAxMDAlKTtcblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEzLCAkZ3JlZW46IC0xNSwgJGJsdWU6IC0xOCk7XG4gICAgJHNlY29uZC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC02NiwgJGdyZWVuOiAtNjIsICRibHVlOiAtNTEpO1xuICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtOTMsICRncmVlbjogLTg1LCAkYmx1ZTogLTY2KTtcbiAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAkZ3JlZW46IC04MCwgJGJsdWU6IC02Myk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCRmaXJzdC1zdG9wLWhvdmVyKTtcbiAgICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRzZWNvbmQtc3RvcC1ob3Zlcik7XG4gICAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkdGhpcmQtc3RvcC1ob3Zlcik7XG4gICAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkZm91cnRoLXN0b3AtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRmaXJzdC1zdG9wLWhvdmVyICAwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2Vjb25kLXN0b3AtaG92ZXIgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyIDEwMCUpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTExLCAkZ3JlZW46IC0xMTYsICRibHVlOiAtMTIyKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDIwcHggMCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBQaWxsIEJ1dHRvblxuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC0xMSUsICRsaWdodG5lc3M6IC0yNiUpO1xuICAkYm9yZGVyLXNpZGVzOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yMSUsICRsaWdodG5lc3M6IC0yMSUpO1xuICAkYm9yZGVyLXRvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0zMCUsICRsaWdodG5lc3M6IC0xNSUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xJSwgICRsaWdodG5lc3M6ICA3JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDE0JSwgJGxpZ2h0bmVzczogLTEwJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTE5JSwgJGxpZ2h0bmVzczogLTE1JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGJvcmRlci1zaWRlczogIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAkYm9yZGVyLXRvcDogICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpZ2h0bmVzczogLTQuNSUpO1xuICAgICRib3JkZXItYm90dG9tOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDEzLjUlLCAkbGlnaHRuZXNzOiAtMzIlKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yJSwgICAgJGxpZ2h0bmVzczogLTI3JSk7XG4gICAgJGJvcmRlci10b3A6ICAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMTclLCAgICRsaWdodG5lc3M6IC0yMSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAkc2F0dXJhdGlvbjogLTElLCAgICAkbGlnaHRuZXNzOiAgMyUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTQlLCAgICAkbGlnaHRuZXNzOiAtMTUuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTUlLCAgICAkbGlnaHRuZXNzOiAtMjIlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAgICRib3JkZXItc2lkZXM6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgICAkYm9yZGVyLXRvcDogICAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWhvdmVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA0LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNiwgICRzYXR1cmF0aW9uOiAtMi41JSwgJGxpZ2h0bmVzczogLTMwJSk7XG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA5LCAgJHNhdHVyYXRpb246ICAyJSwgICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA1LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGdyYXlzY2FsZSgkYWN0aXZlLWNvbG9yKTtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWNvbG9yO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbS1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCAzcHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBGbGF0IEJ1dHRvblxuQG1peGluIGZsYXQoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCl7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDQlLCAkbGlnaHRuZXNzOiA1JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItYWN0aXZlOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1hY3RpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi8vIEZsZXhpYmxlIGdyaWRcbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xuXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3JpZCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbi8vIEZsZXhpYmxlIGd1dHRlclxuQGZ1bmN0aW9uIGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zLCAkZ3V0dGVyOiAkZmctZ3V0dGVyKSB7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJGd1dHRlciAvICRjb250YWluZXItd2lkdGgpO1xuXG4gIEB3YXJuIFwiVGhlIGZsZXgtZ3V0dGVyIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XG5cbiAgQHdhcm4gXCJUaGUgZ3JpZC13aWR0aCBmdW5jdGlvbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbkBmdW5jdGlvbiBnb2xkZW4tcmF0aW8oJHZhbHVlLCAkaW5jcmVtZW50KSB7XG4gIEByZXR1cm4gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWUsICRyYXRpbzogJGdvbGRlbik7XG5cbiAgQHdhcm4gXCJUaGUgZ29sZGVuLXJhdGlvIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFBsZWFzZSB1c2UgdGhlIG1vZHVsYXItc2NhbGUgZnVuY3Rpb24sIGluc3RlYWQuXCI7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRib3gpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXNpemluZywgJGJveCwgd2Via2l0IG1veiBzcGVjKTtcblxuICBAd2FybiBcIlRoZSBib3gtc2l6aW5nIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2UuIFRoaXMgcHJvcGVydHkgY2FuIG5vdyBiZSB1c2VkIHVuLXByZWZpeGVkLlwiO1xufVxuIiwiLy8gRnVuY3Rpb25zXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3ByaXZhdGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbmV3LWJyZWFrcG9pbnRcIjtcblxuLy8gU2V0dGluZ3NcbkBpbXBvcnQgXCJzZXR0aW5ncy9ncmlkXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvdmlzdWFsLWdyaWRcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9kaXNhYmxlLXdhcm5pbmdzXCI7XG4iLCIvLyBOb3QgZnVuY3Rpb24gZm9yIExpYnNhc3MgY29tcGF0aWJpbGl0eVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MvbGlic2Fzcy9pc3N1ZXMvMzY4XG5AZnVuY3Rpb24gaXMtbm90KCR2YWx1ZSkge1xuICBAcmV0dXJuIGlmKCR2YWx1ZSwgZmFsc2UsIHRydWUpO1xufVxuXG4vLyBDaGVja3MgaWYgYSBudW1iZXIgaXMgZXZlblxuQGZ1bmN0aW9uIGlzLWV2ZW4oJGludCkge1xuICBAcmV0dXJuICRpbnQgJSAyID09IDA7XG59XG5cbi8vIENoZWNrcyBpZiBhbiBlbGVtZW50IGJlbG9uZ3MgdG8gYSBsaXN0IG9yIG5vdFxuQGZ1bmN0aW9uIGJlbG9uZ3MtdG8oJHRlc3RlZC1pdGVtLCAkbGlzdCkge1xuICBAcmV0dXJuIGlzLW5vdChub3QtYmVsb25ncy10bygkdGVzdGVkLWl0ZW0sICRsaXN0KSk7XG59XG5cbkBmdW5jdGlvbiBub3QtYmVsb25ncy10bygkdGVzdGVkLWl0ZW0sICRsaXN0KSB7XG4gIEByZXR1cm4gaXMtbm90KGluZGV4KCRsaXN0LCAkdGVzdGVkLWl0ZW0pKTtcbn1cblxuLy8gQ29udGFpbnMgZGlzcGxheSB2YWx1ZVxuQGZ1bmN0aW9uIGNvbnRhaW5zLWRpc3BsYXktdmFsdWUoJHF1ZXJ5KSB7XG4gIEByZXR1cm4gYmVsb25ncy10byh0YWJsZSwgJHF1ZXJ5KVxuICAgICAgIG9yIGJlbG9uZ3MtdG8oYmxvY2ssICRxdWVyeSlcbiAgICAgICBvciBiZWxvbmdzLXRvKGlubGluZS1ibG9jaywgJHF1ZXJ5KVxuICAgICAgIG9yIGJlbG9uZ3MtdG8oaW5saW5lLCAkcXVlcnkpO1xufVxuXG4vLyBQYXJzZXMgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHNwYW4tY29sdW1ucygpXG5AZnVuY3Rpb24gY29udGFpbmVyLXNwYW4oJHNwYW46ICRzcGFuKSB7XG4gIEBpZiBsZW5ndGgoJHNwYW4pID09IDMge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzcGFuLCAzKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNwYW4pID09IDIge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzcGFuLCAyKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfVxuXG4gIEByZXR1cm4gJGdyaWQtY29sdW1ucztcbn1cblxuQGZ1bmN0aW9uIGNvbnRhaW5lci1zaGlmdCgkc2hpZnQ6ICRzaGlmdCkge1xuICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWRlZmF1bHQgIWdsb2JhbDtcblxuICBAaWYgbGVuZ3RoKCRzaGlmdCkgPT0gMyB7XG4gICAgJGNvbnRhaW5lci1jb2x1bW5zOiBudGgoJHNoaWZ0LCAzKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNoaWZ0KSA9PSAyIHtcbiAgICAkY29udGFpbmVyLWNvbHVtbnM6IG50aCgkc2hpZnQsIDIpO1xuICAgIEByZXR1cm4gJGNvbnRhaW5lci1jb2x1bW5zO1xuICB9XG5cbiAgQHJldHVybiAkcGFyZW50LWNvbHVtbnM7XG59XG5cbi8vIEdlbmVyYXRlcyBhIHN0cmlwZWQgYmFja2dyb3VuZFxuQGZ1bmN0aW9uIGdyYWRpZW50LXN0b3BzKCRncmlkLWNvbHVtbnMsICRjb2xvcjogJHZpc3VhbC1ncmlkLWNvbG9yKSB7XG4gICR0cmFuc3BhcmVudDogdHJhbnNwYXJlbnQ7XG5cbiAgJGNvbHVtbi13aWR0aDogZmxleC1ncmlkKDEsICRncmlkLWNvbHVtbnMpO1xuICAkZ3V0dGVyLXdpZHRoOiBmbGV4LWd1dHRlcigkZ3JpZC1jb2x1bW5zKTtcbiAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4td2lkdGg7XG5cbiAgJHZhbHVlczogKCR0cmFuc3BhcmVudCAwLCAkY29sb3IgMCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdG8gJGdyaWQtY29sdW1ucyoyIHtcbiAgICBAaWYgaXMtZXZlbigkaSkge1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICR0cmFuc3BhcmVudCAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICRjb2xvciAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4tb2Zmc2V0ICsgJGNvbHVtbi13aWR0aDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkY29sb3IgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkdHJhbnNwYXJlbnQgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICRjb2x1bW4tb2Zmc2V0OiAkY29sdW1uLW9mZnNldCArICRndXR0ZXItd2lkdGg7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWVzO1xufVxuXG4vLyBMYXlvdXQgZGlyZWN0aW9uXG5AZnVuY3Rpb24gZ2V0LWRpcmVjdGlvbigkbGF5b3V0LCAkZGVmYXVsdCkge1xuICAkZGlyZWN0aW9uOiBudWxsO1xuXG4gIEBpZiB0by11cHBlci1jYXNlKCRsYXlvdXQpID09IFwiTFRSXCIgb3IgdG8tdXBwZXItY2FzZSgkbGF5b3V0KSA9PSBcIlJUTFwiIHtcbiAgICAkZGlyZWN0aW9uOiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGxheW91dCk7XG4gIH0gQGVsc2Uge1xuICAgICRkaXJlY3Rpb246IGRpcmVjdGlvbi1mcm9tLWxheW91dCgkZGVmYXVsdCk7XG4gIH1cblxuICBAcmV0dXJuICRkaXJlY3Rpb247XG59XG5cbkBmdW5jdGlvbiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGxheW91dCkge1xuICAkZGlyZWN0aW9uOiBudWxsO1xuXG4gIEBpZiB0by11cHBlci1jYXNlKCRsYXlvdXQpID09IFwiTFRSXCIge1xuICAgICRkaXJlY3Rpb246IHJpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICAkZGlyZWN0aW9uOiBsZWZ0O1xuICB9XG5cbiAgQHJldHVybiAkZGlyZWN0aW9uO1xufVxuXG5AZnVuY3Rpb24gZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKSB7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGxlZnQ7XG5cbiAgQGlmICRkaXJlY3Rpb24gPT0gXCJsZWZ0XCIge1xuICAgICRvcHBvc2l0ZS1kaXJlY3Rpb246IHJpZ2h0O1xuICB9XG5cbiAgQHJldHVybiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUmV0dXJucyBhIG1lZGlhIGNvbnRleHQgKG1lZGlhIHF1ZXJ5IC8gZ3JpZCBjb250ZXh0KSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSB2YXJpYWJsZSBhbmQgcGFzc2VkIHRvIGBtZWRpYSgpYCBhcyBhIHNpbmdsZS1rZXl3b3JkIGFyZ3VtZW50LiBNZWRpYSBjb250ZXh0cyBkZWZpbmVkIHVzaW5nIGBuZXctYnJlYWtwb2ludGAgYXJlIHVzZWQgYnkgdGhlIHZpc3VhbCBncmlkLCBhcyBsb25nIGFzIHRoZXkgYXJlIGRlZmluZWQgYmVmb3JlIGltcG9ydGluZyBOZWF0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcXVlcnlcbi8vLyAgIEEgbGlzdCBvZiBtZWRpYSBxdWVyeSBmZWF0dXJlcyBhbmQgdmFsdWVzLiBFYWNoIGAkZmVhdHVyZWAgc2hvdWxkIGhhdmUgYSBjb3JyZXNwb25kaW5nIGAkdmFsdWVgLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGAkdmFsdWVgIGluIGAkcXVlcnlgLCBgJGRlZmF1bHQtZmVhdHVyZWAgaXMgZ29pbmcgdG8gYmUgdXNlZC5cbi8vL1xuLy8vICAgVGhlIG51bWJlciBvZiB0b3RhbCBjb2x1bW5zIGluIHRoZSBncmlkIGNhbiBiZSBzZXQgYnkgcGFzc2luZyBgJGNvbHVtbnNgIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QgKG92ZXJyaWRlcyBgJHRvdGFsLWNvbHVtbnNgKS4gRm9yIGEgbGlzdCBvZiB2YWxpZCB2YWx1ZXMgZm9yIGAkZmVhdHVyZWAsIGNsaWNrIFtoZXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWExKS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICR0b3RhbC1jb2x1bW5zIFskZ3JpZC1jb2x1bW5zXVxuLy8vICAgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgaW4gdGhlIG5ldyBncmlkIGNvbnRleHQuIENhbiBiZSBzZXQgYXMgYSBzaG9ydGhhbmQgaW4gdGhlIGZpcnN0IHBhcmFtZXRlci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgJG1vYmlsZTogbmV3LWJyZWFrcG9pbnQobWF4LXdpZHRoIDQ4MHB4IDQpO1xuLy8vXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpIHtcbi8vLyAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4vLy8gICAgIC5lbGVtZW50IHtcbi8vLyAgICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgICBtYXJnaW4tcmlnaHQ6IDcuNDIyOTclO1xuLy8vICAgICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgICB9XG4vLy8gICAgIC5lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICAgfVxuLy8vICAgfVxuXG5AZnVuY3Rpb24gbmV3LWJyZWFrcG9pbnQoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICAkcXVlcnk6ICRkZWZhdWx0LWZlYXR1cmUgbnRoKCRxdWVyeSwgMSkgJHRvdGFsLWNvbHVtbnM7XG4gIH0gQGVsc2UgaWYgaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkge1xuICAgICRxdWVyeTogYXBwZW5kKCRxdWVyeSwgJHRvdGFsLWNvbHVtbnMpO1xuICB9XG5cbiAgQGlmIGlzLW5vdChiZWxvbmdzLXRvKCRxdWVyeSwgJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzKSkge1xuICAgICR2aXN1YWwtZ3JpZC1icmVha3BvaW50czogYXBwZW5kKCR2aXN1YWwtZ3JpZC1icmVha3BvaW50cywgJHF1ZXJ5LCBjb21tYSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHF1ZXJ5O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU2V0cyB0aGUgcmVsYXRpdmUgd2lkdGggb2YgYSBzaW5nbGUgZ3JpZCBjb2x1bW4uIFRoZSB1bml0IHVzZWQgc2hvdWxkIGJlIHRoZSBzYW1lIG9uZSB1c2VkIHRvIGRlZmluZSBgJGd1dHRlcmAuIFRvIGxlYXJuIG1vcmUgYWJvdXQgYG1vZHVsYXItc2NhbGUoKWAgc2VlIFtCb3VyYm9uIGRvY3NdKGh0dHA6Ly9ib3VyYm9uLmlvL2RvY3MvI21vZHVsYXItc2NhbGUpLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuXG4kY29sdW1uOiBtb2R1bGFyLXNjYWxlKDMsIDFlbSwgJGdvbGRlbikgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSByZWxhdGl2ZSB3aWR0aCBvZiBhIHNpbmdsZSBncmlkIGd1dHRlci4gVGhlIHVuaXQgdXNlZCBzaG91bGQgYmUgdGhlIHNhbWUgb25lIHVzZWQgdG8gZGVmaW5lIGAkY29sdW1uYC4gVG8gbGVhcm4gbW9yZSBhYm91dCBgbW9kdWxhci1zY2FsZSgpYCBzZWUgW0JvdXJib24gZG9jc10oaHR0cDovL2JvdXJib24uaW8vZG9jcy8jbW9kdWxhci1zY2FsZSkuIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdClcblxuJGd1dHRlcjogbW9kdWxhci1zY2FsZSgxLCAxZW0sICRnb2xkZW4pICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgdG90YWwgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQuIEl0cyB2YWx1ZSBjYW4gYmUgb3ZlcnJpZGRlbiBpbnNpZGUgYSBtZWRpYSBxdWVyeSB1c2luZyB0aGUgYG1lZGlhKClgIG1peGluLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKFVuaXRsZXNzKVxuXG4kZ3JpZC1jb2x1bW5zOiAxMiAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIG1heC13aWR0aCBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCB0aGF0IGluY2x1ZGVzIGBvdXRlci1jb250YWluZXIoKWAuIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdClcbi8vL1xuJG1heC13aWR0aDogMTIwMHB4ICFkZWZhdWx0O1xuXG4vLy8gV2hlbiBzZXQgdG8gdHJ1ZSwgaXQgc2V0cyB0aGUgYm94LXNpemluZyBwcm9wZXJ0eSBvZiBhbGwgZWxlbWVudHMgdG8gYGJvcmRlci1ib3hgLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgaHRtbCB7XG4vLy8gICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IH1cbi8vL1xuLy8vICAgKiwgKjo6YWZ0ZXIsICo6OmJlZm9yZSB7XG4vLy8gICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4vLy8gICB9XG5cbiRib3JkZXItYm94LXNpemluZzogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIGRlZmF1bHQgW21lZGlhIGZlYXR1cmVdKGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtbWVkaWFxdWVyaWVzLyNtZWRpYSkgdGhhdCBgbWVkaWEoKWAgYW5kIGBuZXctYnJlYWtwb2ludCgpYCByZXZlcnQgdG8gd2hlbiBvbmx5IGEgYnJlYWtwb2ludCB2YWx1ZSBpcyBwYXNzZWQuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBTdHJpbmdcblxuJGRlZmF1bHQtZmVhdHVyZTogbWluLXdpZHRoOyAvLyBEZWZhdWx0IEBtZWRpYSBmZWF0dXJlIGZvciB0aGUgYnJlYWtwb2ludCgpIG1peGluXG5cbi8vL1NldHMgdGhlIGRlZmF1bHQgbGF5b3V0IGRpcmVjdGlvbiBvZiB0aGUgZ3JpZC4gQ2FuIGJlIGBMVFJgIG9yIGBSVExgLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy9AdHlwZSBTdHJpbmdcblxuJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbjogTFRSICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlzcGxheXMgdGhlIHZpc3VhbCBncmlkIHdoZW4gc2V0IHRvIHRydWUuIFRoZSBvdmVybGFpZCBncmlkIG1heSBiZSBmZXcgcGl4ZWxzIG9mZiBkZXBlbmRpbmcgb24gdGhlIGJyb3dzZXIncyByZW5kZXJpbmcgZW5naW5lIGFuZCBwaXhlbCByb3VuZGluZyBhbGdvcml0aG0uIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJHZpc3VhbC1ncmlkOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHZpc3VhbCBncmlkIGNvbG9yLiBTZXQgd2l0aCBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIENvbG9yXG5cbiR2aXN1YWwtZ3JpZC1jb2xvcjogI2VlZSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIGB6LWluZGV4YCBwcm9wZXJ0eSBvZiB0aGUgdmlzdWFsIGdyaWQuIENhbiBiZSBgYmFja2AgKGJlaGluZCBjb250ZW50KSBvciBgZnJvbnRgIChpbiBmcm9udCBvZiBjb250ZW50KS4gU2V0IHdpdGggYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBTdHJpbmdcblxuJHZpc3VhbC1ncmlkLWluZGV4OiBiYWNrICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgb3BhY2l0eSBwcm9wZXJ0eSBvZiB0aGUgdmlzdWFsIGdyaWQuIFNldCB3aXRoIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyICh1bml0bGVzcylcblxuJHZpc3VhbC1ncmlkLW9wYWNpdHk6IDAuNCAhZGVmYXVsdDtcblxuJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzOiAoKSAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpc2FibGUgYWxsIGRlcHJlY2F0aW9uIHdhcm5pbmdzLiBEZWZhdWx0cyB0byBgZmFsc2VgLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kZGlzYWJsZS13YXJuaW5nczogZmFsc2UgIWRlZmF1bHQ7XG5cbkBtaXhpbiAtbmVhdC13YXJuKCRtZXNzYWdlKSB7XG4gIEBpZiAkZGlzYWJsZS13YXJuaW5ncyA9PSBmYWxzZSB7XG4gICAgQHdhcm4gXCIjeyRtZXNzYWdlfVwiO1xuICB9XG59XG4iLCIvLyBDb2xvcnM6IFNwZWNpZmljXHJcbiRjb2xvci1ncmV5LWRhcms6ICMyNzI3Mjc7XHJcbiRjb2xvci1ncmV5OiAjOTk5O1xyXG4kY29sb3ItZ3JleS1taWQ6ICNkZGQ7XHJcbiRjb2xvci1ncmV5LWxpZ2h0OiAjZjJmMmYyO1xyXG4kY29sb3Itd2hpdGU6ICNmZmY7XHJcbiRjb2xvci1ibGFjazogIzAwMDtcclxuJGNvbG9yLXRlYWw6ICM1ODkwZTM7XHJcbiRjb2xvci10ZWFsLWRhcms6ICM1ODkwZTM7XHJcbiRjb2xvci1vcmFuZ2U6ICNkYzUzMjM7XHJcblxyXG4vLyBDb2xvcnM6IFNlbWFudGljXHJcbiRjb2xvci10ZXh0OiAkY29sb3ItZ3JleS1kYXJrO1xyXG4kY29sb3ItdGV4dC1pbnZlcnQ6ICRjb2xvci13aGl0ZTtcclxuXHJcbi8vIFZpZXdwb3J0IFdpZHRoczogRXJnb25vbWljXHJcbiR3aWR0aC13cmlzdC1tYXg6IDEwMCU7XHJcbiR3aWR0aC1wYWxtOiA5NSU7XHJcbiR3aWR0aC1wYWxtLW1xOiBlbSgzMDApO1xyXG4kd2lkdGgtcGFsbS1tYXg6IGVtKDUwMCk7XHJcbiR3aWR0aC1sYXA6IDk1JTtcclxuJHdpZHRoLWxhcC1tcTogZW0oNzUwKTtcclxuJHdpZHRoLWxhcC1tYXg6IDk1JTtcclxuJHdpZHRoLWRlc2s6IDk1JTtcclxuJHdpZHRoLWRlc2stbXE6IGVtKDEwMDApO1xyXG4kd2lkdGgtZGVzay1tYXg6IGVtKDc1MCk7XHJcbiR3aWR0aC13YWxsOiA5NSU7XHJcbiR3aWR0aC13YWxsLW1xOiBlbSgxMjAwKTtcclxuJHdpZHRoLXdhbGwtbWF4OiBlbSgxNTAwKTtcclxuXHJcbi8vIFJlZ2lvbiBTaXplc1xyXG4kaGVpZ2h0LWhlYWRlci1wYWxtOiBlbSg1MCk7XHJcbiRoZWlnaHQtaGVhZGVyLWRlc2s6IGVtKDYwKTtcclxuXHJcbi8vIEJyZWFrcG9pbnRzIGZvciBOZWF0J3MgbWVkaWEoKSBtaXhpblxyXG4kbXEtd3Jpc3QtZG93bjogbmV3LWJyZWFrcG9pbnQobWF4LXdpZHRoICR3aWR0aC1wYWxtLW1xIDEpO1xyXG4kbXEtcGFsbTogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICR3aWR0aC1wYWxtLW1xIDQpO1xyXG4kbXEtcGFsbS1vbmx5OiBuZXctYnJlYWtwb2ludChtaW4td2lkdGggJHdpZHRoLXBhbG0tbXEgbWF4LXdpZHRoICR3aWR0aC1sYXAtbXEgNCk7XHJcbiRtcS1wYWxtLWRvd246IG5ldy1icmVha3BvaW50KG1heC13aWR0aCAoJHdpZHRoLWxhcC1tcSAtIGVtKDEpKSA0KTtcclxuJG1xLWxhcDogbmV3LWJyZWFrcG9pbnQobWluLXdpZHRoICR3aWR0aC1sYXAtbXEgMjQpO1xyXG4kbXEtbGFwLW9ubHk6IG5ldy1icmVha3BvaW50KG1pbi13aWR0aCAkd2lkdGgtbGFwLW1xIG1heC13aWR0aCAkd2lkdGgtZGVzay1tcSAyNCk7XHJcbiRtcS1sYXAtZG93bjogbmV3LWJyZWFrcG9pbnQobWF4LXdpZHRoICgkd2lkdGgtZGVzay1tcSAtIGVtKDEpKSAyNCk7XHJcbiRtcS1kZXNrOiBuZXctYnJlYWtwb2ludChtaW4td2lkdGggJHdpZHRoLWRlc2stbXEgMjQpO1xyXG4kbXEtZGVzay1vbmx5OiBuZXctYnJlYWtwb2ludChtaW4td2lkdGggJHdpZHRoLWRlc2stbXEgbWF4LXdpZHRoICR3aWR0aC13YWxsLW1xIDI0KTtcclxuJG1xLWRlc2stZG93bjogbmV3LWJyZWFrcG9pbnQobWF4LXdpZHRoICgkd2lkdGgtd2FsbC1tcSAtIGVtKDEpKSAyNCk7XHJcbiRtcS13YWxsOiBuZXctYnJlYWtwb2ludChtaW4td2lkdGggJHdpZHRoLXdhbGwtbXEgMTIpO1xyXG4iLCJAaW5jbHVkZSBrZXlmcmFtZXMob3NjaWxhdGUpIHtcbiAgMCUge1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci1vcmFuZ2U7XG4gIH1cbiAgNTAlIHtcbiAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCRjb2xvci1vcmFuZ2UsIDE1JSk7XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLW9yYW5nZTtcbiAgfVxufVxuIiwiLy8gTmVhdCAxLjcuNFxuLy8gaHR0cDovL25lYXQuYm91cmJvbi5pb1xuLy8gQ29weXJpZ2h0IDIwMTItMjAxNSB0aG91Z2h0Ym90LCBpbmMuXG4vLyBNSVQgTGljZW5zZVxuXG4vLyBIZWxwZXJzXG5AaW1wb3J0IFwibmVhdC1oZWxwZXJzXCI7XG5cbi8vIEdyaWRcbkBpbXBvcnQgXCJncmlkL3ByaXZhdGVcIjtcbkBpbXBvcnQgXCJncmlkL2JveC1zaXppbmdcIjtcbkBpbXBvcnQgXCJncmlkL29tZWdhXCI7XG5AaW1wb3J0IFwiZ3JpZC9vdXRlci1jb250YWluZXJcIjtcbkBpbXBvcnQgXCJncmlkL3NwYW4tY29sdW1uc1wiO1xuQGltcG9ydCBcImdyaWQvcm93XCI7XG5AaW1wb3J0IFwiZ3JpZC9zaGlmdFwiO1xuQGltcG9ydCBcImdyaWQvcGFkXCI7XG5AaW1wb3J0IFwiZ3JpZC9maWxsLXBhcmVudFwiO1xuQGltcG9ydCBcImdyaWQvbWVkaWFcIjtcbkBpbXBvcnQgXCJncmlkL3RvLWRlcHJlY2F0ZVwiO1xuQGltcG9ydCBcImdyaWQvdmlzdWFsLWdyaWRcIjtcbkBpbXBvcnQgXCJncmlkL2Rpc3BsYXktY29udGV4dFwiO1xuQGltcG9ydCBcImdyaWQvZGlyZWN0aW9uLWNvbnRleHRcIjtcbiIsIiRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZGVmYXVsdDtcbiRmZy1jb2x1bW46ICRjb2x1bW47XG4kZmctZ3V0dGVyOiAkZ3V0dGVyO1xuJGZnLW1heC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiBmYWxzZSAhZGVmYXVsdDtcbiRsYXlvdXQtZGlyZWN0aW9uOiBMVFIgIWRlZmF1bHQ7XG5cbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gICR3aWR0aDogJGNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCR3aWR0aCAvICRjb250YWluZXItd2lkdGgpO1xufVxuXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XG4gIEByZXR1cm4gJG4gKiAkZ3ctY29sdW1uICsgKCRuIC0gMSkgKiAkZ3ctZ3V0dGVyO1xufVxuXG5AZnVuY3Rpb24gZ2V0LXBhcmVudC1jb2x1bW5zKCRjb2x1bW5zKSB7XG4gIEBpZiAkY29sdW1ucyAhPSAkZ3JpZC1jb2x1bW5zIHtcbiAgICAkcGFyZW50LWNvbHVtbnM6ICRjb2x1bW5zICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiAkcGFyZW50LWNvbHVtbnM7XG59XG5cbkBmdW5jdGlvbiBpcy1kaXNwbGF5LXRhYmxlKCRjb250YWluZXItaXMtZGlzcGxheS10YWJsZSwgJGRpc3BsYXkpIHtcbiAgQHJldHVybiAkY29udGFpbmVyLWlzLWRpc3BsYXktdGFibGUgPT0gdHJ1ZSBvciAkZGlzcGxheSA9PSB0YWJsZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQGlmICRib3JkZXItYm94LXNpemluZyA9PSB0cnVlIHtcbiAgaHRtbCB7IC8vIGh0dHA6Ly9iaXQubHkvMXFrMnRWUlxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAqIHtcbiAgICAmLFxuICAgICY6OmFmdGVyLFxuICAgICY6OmJlZm9yZSB7XG4gICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUmVtb3ZlcyB0aGUgZWxlbWVudCdzIGd1dHRlciBtYXJnaW4sIHJlZ2FyZGxlc3Mgb2YgaXRzIHBvc2l0aW9uIGluIHRoZSBncmlkIGhpZXJhcmNoeSBvciBkaXNwbGF5IHByb3BlcnR5LiBJdCBjYW4gdGFyZ2V0IGEgc3BlY2lmaWMgZWxlbWVudCwgb3IgZXZlcnkgYG50aC1jaGlsZGAgb2NjdXJyZW5jZS4gV29ya3Mgb25seSB3aXRoIGBibG9ja2AgbGF5b3V0cy5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHF1ZXJ5IFtibG9ja11cbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzLiBTdXBwb3J0ZWQgYXJndW1lbnRzIGFyZSBgbnRoLWNoaWxkYCBzZWxlY3RvcnMgKHRhcmdldHMgYSBzcGVjaWZpYyBwc2V1ZG8gZWxlbWVudCkgYW5kIGBhdXRvYCAodGFyZ2V0cyBgbGFzdC1jaGlsZGApLlxuLy8vXG4vLy8gICBXaGVuIHBhc3NlZCBhbiBgbnRoLWNoaWxkYCBhcmd1bWVudCBvZiB0eXBlIGAqbmAgd2l0aCBgYmxvY2tgIGRpc3BsYXksIHRoZSBvbWVnYSBtaXhpbiBhdXRvbWF0aWNhbGx5IGFkZHMgYSBjbGVhciB0byB0aGUgYCpuKzFgIHRoIGVsZW1lbnQuIE5vdGUgdGhhdCBjb21wb3NpdGUgYXJndW1lbnRzIHN1Y2ggYXMgYDJuKzFgIGRvIG5vdCBzdXBwb3J0IHRoaXMgZmVhdHVyZS5cbi8vL1xuLy8vICAgKipEZXByZWNhdGlvbiB3YXJuaW5nKio6IFRoZSBvbWVnYSBtaXhpbiB3aWxsIG5vIGxvbmdlciB0YWtlIGEgYCRkaXJlY3Rpb25gIGFyZ3VtZW50LiBUbyBjaGFuZ2UgdGhlIGxheW91dCBkaXJlY3Rpb24sIHVzZSBgcm93KCRkaXJlY3Rpb24pYCBvciBzZXQgYCRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb25gIGluc3RlYWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgb21lZ2E7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5udGgtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG9tZWdhKDRuKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAubnRoLWVsZW1lbnQ6bnRoLWNoaWxkKDRuKSB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLm50aC1lbGVtZW50Om50aC1jaGlsZCg0bisxKSB7XG4vLy8gICAgIGNsZWFyOiBsZWZ0O1xuLy8vICAgfVxuXG5AbWl4aW4gb21lZ2EoJHF1ZXJ5OiBibG9jaywgJGRpcmVjdGlvbjogZGVmYXVsdCkge1xuICAkdGFibGU6IGJlbG9uZ3MtdG8odGFibGUsICRxdWVyeSk7XG4gICRhdXRvOiBiZWxvbmdzLXRvKGF1dG8sICRxdWVyeSk7XG5cbiAgQGlmICRkaXJlY3Rpb24gIT0gZGVmYXVsdCB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSBvbWVnYSBtaXhpbiB3aWxsIG5vIGxvbmdlciB0YWtlIGEgJGRpcmVjdGlvbiBhcmd1bWVudC4gVG8gY2hhbmdlIHRoZSBsYXlvdXQgZGlyZWN0aW9uLCB1c2UgdGhlIGRpcmVjdGlvbigpey4uLn0gbWl4aW4uXCIpO1xuICB9IEBlbHNlIHtcbiAgICAkZGlyZWN0aW9uOiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQtZGlyZWN0aW9uLCAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKTtcbiAgfVxuXG4gIEBpZiAkdGFibGUge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgb21lZ2EgbWl4aW4gbm8gbG9uZ2VyIHJlbW92ZXMgcGFkZGluZyBpbiB0YWJsZSBsYXlvdXRzLlwiKTtcbiAgfVxuXG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICBAaWYgJGF1dG8ge1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgY29udGFpbnMtZGlzcGxheS12YWx1ZSgkcXVlcnkpIGFuZCAkdGFibGUgPT0gZmFsc2Uge1xuICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgbnRoLWNoaWxkKCRxdWVyeSwgJGRpcmVjdGlvbik7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDIge1xuICAgIEBpZiAkYXV0byB7XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIG50aC1jaGlsZChudGgoJHF1ZXJ5LCAxKSwgJGRpcmVjdGlvbik7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVG9vIG1hbnkgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgb21lZ2EoKSBtaXhpbi5cIik7XG4gIH1cbn1cblxuQG1peGluIG50aC1jaGlsZCgkcXVlcnksICRkaXJlY3Rpb24pIHtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKTtcblxuICAmOm50aC1jaGlsZCgjeyRxdWVyeX0pIHtcbiAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gbnVtYmVyIGFuZCB1bml0KCRxdWVyeSkgPT0gXCJuXCIge1xuICAgICY6bnRoLWNoaWxkKCN7JHF1ZXJ5fSsxKSB7XG4gICAgICBjbGVhcjogJG9wcG9zaXRlLWRpcmVjdGlvbjtcbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1ha2VzIGFuIGVsZW1lbnQgYSBvdXRlciBjb250YWluZXIgYnkgY2VudGVyaW5nIGl0IGluIHRoZSB2aWV3cG9ydCwgY2xlYXJpbmcgaXRzIGZsb2F0cywgYW5kIHNldHRpbmcgaXRzIGBtYXgtd2lkdGhgLlxuLy8vIEFsdGhvdWdoIG9wdGlvbmFsLCB1c2luZyBgb3V0ZXItY29udGFpbmVyYCBpcyByZWNvbW1lbmRlZC4gVGhlIG1peGluIGNhbiBiZSBjYWxsZWQgb24gbW9yZSB0aGFuIG9uZSBlbGVtZW50IHBlciBwYWdlLCBhcyBsb25nIGFzIHRoZXkgYXJlIG5vdCBuZXN0ZWQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciBbdW5pdF19ICRsb2NhbC1tYXgtd2lkdGggWyRtYXgtd2lkdGhdXG4vLy8gICBNYXggd2lkdGggdG8gYmUgYXBwbGllZCB0byB0aGUgZWxlbWVudC4gQ2FuIGJlIGEgcGVyY2VudGFnZSBvciBhIG1lYXN1cmUuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDEwMCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICAqem9vbTogMTtcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xuLy8vICAgICBtYXJnaW4tbGVmdDogYXV0bztcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudDpiZWZvcmUsIC5lbGVtZW50OmFmdGVyIHtcbi8vLyAgICAgY29udGVudDogXCIgXCI7XG4vLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudDphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgfVxuXG5AbWl4aW4gb3V0ZXItY29udGFpbmVyKCRsb2NhbC1tYXgtd2lkdGg6ICRtYXgtd2lkdGgpIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1heC13aWR0aDogJGxvY2FsLW1heC13aWR0aDtcbiAgbWFyZ2luOiB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbiBlbGVtZW50IHNob3VsZCBzcGFuLiBJZiB0aGUgc2VsZWN0b3IgaXMgbmVzdGVkIHRoZSBudW1iZXIgb2YgY29sdW1ucyBvZiBpdHMgcGFyZW50IGVsZW1lbnQgc2hvdWxkIGJlIHBhc3NlZCBhcyBhbiBhcmd1bWVudCBhcyB3ZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc3BhblxuLy8vICAgQSBsaXN0IGNvbnRhaW5pbmcgYCRjb2x1bW5zYCwgdGhlIHVuaXRsZXNzIG51bWJlciBvZiBjb2x1bW5zIHRoZSBlbGVtZW50IHNwYW5zIChyZXF1aXJlZCksIGFuZCBgJGNvbnRhaW5lci1jb2x1bW5zYCwgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRoZSBwYXJlbnQgZWxlbWVudCBzcGFucyAob3B0aW9uYWwpLlxuLy8vXG4vLy8gICBJZiBvbmx5IG9uZSB2YWx1ZSBpcyBwYXNzZWQsIGl0IGlzIGFzc3VtZWQgdGhhdCBpdCdzIGAkY29sdW1uc2AgYW5kIHRoYXQgdGhhdCBgJGNvbnRhaW5lci1jb2x1bW5zYCBpcyBlcXVhbCB0byBgJGdyaWQtY29sdW1uc2AsIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC5cbi8vL1xuLy8vICAgVGhlIHZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIHdpdGggYW55IHN0cmluZyBzdWNoIGFzIGBvZmAsIGAvYCwgZXRjLlxuLy8vXG4vLy8gICBgJGNvbHVtbnNgIGFsc28gYWNjZXB0cyBkZWNpbWFscyBmb3Igd2hlbiBpdCdzIG5lY2Vzc2FyeSB0byBicmVhayBvdXQgb2YgdGhlIHN0YW5kYXJkIGdyaWQuIEUuZy4gUGFzc2luZyBgMi40YCBpbiBhIHN0YW5kYXJkIDEyIGNvbHVtbiBncmlkIHdpbGwgZGl2aWRlIHRoZSByb3cgaW50byA1IGNvbHVtbnMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW2Jsb2NrXVxuLy8vICAgU2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudC4gQnkgZGVmYXVsdCBpdCBzZXRzIHRoZSBkaXNwbGF5IHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IHRvIGBibG9ja2AuXG4vLy9cbi8vLyAgIElmIHBhc3NlZCBgYmxvY2stY29sbGFwc2VgLCBpdCBhbHNvIHJlbW92ZXMgdGhlIG1hcmdpbiBndXR0ZXIgYnkgYWRkaW5nIGl0IHRvIHRoZSBlbGVtZW50IHdpZHRoLlxuLy8vXG4vLy8gICBJZiBwYXNzZWQgYHRhYmxlYCwgaXQgc2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSB0byBgdGFibGUtY2VsbGAgYW5kIGNhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIHRoZSBlbGVtZW50IHdpdGhvdXQgdGFraW5nIGd1dHRlcnMgaW50byBjb25zaWRlcmF0aW9uLiBUaGUgcmVzdWx0IGRvZXMgbm90IGFsaWduIHdpdGggdGhlIGJsb2NrLWJhc2VkIGdyaWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vXG4vLy8gICAgLm5lc3RlZC1lbGVtZW50IHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyIG9mIDYpO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4vLy8gICAgIHdpZHRoOiA0OC44MjExNyU7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50IC5uZXN0ZWQtZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbi8vLyAgICAgd2lkdGg6IDMwLjExMzg5JTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQgLm5lc3RlZC1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG5cbkBtaXhpbiBzcGFuLWNvbHVtbnMoJHNwYW46ICRjb2x1bW5zIG9mICRjb250YWluZXItY29sdW1ucywgJGRpc3BsYXk6IGJsb2NrKSB7XG4gICRjb2x1bW5zOiBudGgoJHNwYW4sIDEpO1xuICAkY29udGFpbmVyLWNvbHVtbnM6IGNvbnRhaW5lci1zcGFuKCRzcGFuKTtcblxuICAkcGFyZW50LWNvbHVtbnM6IGdldC1wYXJlbnQtY29sdW1ucygkY29udGFpbmVyLWNvbHVtbnMpICFnbG9iYWw7XG5cbiAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgJGRpc3BsYXktdGFibGU6IGlzLWRpc3BsYXktdGFibGUoJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlLCAkZGlzcGxheSk7XG5cbiAgQGlmICRkaXNwbGF5LXRhYmxlICB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyAvICRjb250YWluZXItY29sdW1ucyk7XG4gIH0gQGVsc2Uge1xuICAgIGZsb2F0OiAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259O1xuXG4gICAgQGlmICRkaXNwbGF5ICE9IG5vLWRpc3BsYXkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRkaXNwbGF5ID09IGNvbGxhcHNlIHtcbiAgICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgJ2NvbGxhcHNlJyBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQuIFVzZSAnYmxvY2stY29sbGFwc2UnIGluc3RlYWQuXCIpO1xuICAgIH1cblxuICAgIEBpZiAkZGlzcGxheSA9PSBjb2xsYXBzZSBvciAkZGlzcGxheSA9PSBibG9jay1jb2xsYXBzZSB7XG4gICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpICsgZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zKTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKTtcbiAgICAgIH1cblxuICAgIH0gQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1ucyk7XG4gICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERlc2lnbmF0ZXMgdGhlIGVsZW1lbnQgYXMgYSByb3cgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZCBsYXlvdXQuIEl0IGNsZWFycyB0aGUgZmxvYXRzIG9uIHRoZSBlbGVtZW50IGFuZCBzZXRzIGl0cyBkaXNwbGF5IHByb3BlcnR5LiBSb3dzIGNhbid0IGJlIG5lc3RlZCwgYnV0IHRoZXJlIGNhbiBiZSBtb3JlIHRoYW4gb25lIHJvdyBlbGVtZW504oCUd2l0aCBkaWZmZXJlbnQgZGlzcGxheSBwcm9wZXJ0aWVz4oCUcGVyIGxheW91dC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSBbZGVmYXVsdF1cbi8vLyAgU2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCBhbmQgdGhlIGRpc3BsYXkgY29udGV4dCB0aGF0IHdpbGwgYmUgdXNlZCBieSBpdHMgY2hpbGRyZW4uIENhbiBiZSBgYmxvY2tgIG9yIGB0YWJsZWAuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpcmVjdGlvbiBbJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbl1cbi8vLyAgU2V0cyB0aGUgbGF5b3V0IGRpcmVjdGlvbi4gQ2FuIGJlIGBMVFJgIChsZWZ0LXRvLXJpZ2h0KSBvciBgUlRMYCAocmlnaHQtdG8tbGVmdCkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgLmVsZW1lbnQge1xuLy8vICAgIEBpbmNsdWRlIHJvdygpO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gIC5lbGVtZW50IHtcbi8vLyAgICAqem9vbTogMTtcbi8vLyAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgfVxuLy8vXG4vLy8gLmVsZW1lbnQ6YmVmb3JlLCAuZWxlbWVudDphZnRlciB7XG4vLy8gICBjb250ZW50OiBcIiBcIjtcbi8vLyAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vIH1cbi8vL1xuLy8vIC5lbGVtZW50OmFmdGVyIHtcbi8vLyAgIGNsZWFyOiBib3RoO1xuLy8vIH1cblxuQG1peGluIHJvdygkZGlzcGxheTogZGVmYXVsdCwgJGRpcmVjdGlvbjogJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbikge1xuICBAaWYgJGRpcmVjdGlvbiAhPSAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlICRkaXJlY3Rpb24gYXJndW1lbnQgd2lsbCBiZSBkZXByZWNhdGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBpbiBmYXZvciBvZiB0aGUgZGlyZWN0aW9uKCl7Li4ufSBtaXhpbi5cIik7XG4gIH1cblxuICAkbGF5b3V0LWRpcmVjdGlvbjogJGRpcmVjdGlvbiAhZ2xvYmFsO1xuXG4gIEBpZiAkZGlzcGxheSAhPSBkZWZhdWx0IHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlICRkaXNwbGF5IGFyZ3VtZW50IHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgaW4gZmF2b3Igb2YgdGhlIGRpc3BsYXkoKXsuLi59IG1peGluLlwiKTtcbiAgfVxuXG4gIEBpZiAkZGlzcGxheSA9PSB0YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgQGluY2x1ZGUgZmlsbC1wYXJlbnQ7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6IHRydWUgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiBmYWxzZSAhZ2xvYmFsO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUcmFuc2xhdGVzIGFuIGVsZW1lbnQgaG9yaXpvbnRhbGx5IGJ5IGEgbnVtYmVyIG9mIGNvbHVtbnMuIFBvc2l0aXZlIGFyZ3VtZW50cyBzaGlmdCB0aGUgZWxlbWVudCB0byB0aGUgYWN0aXZlIGxheW91dCBkaXJlY3Rpb24sIHdoaWxlIG5lZ2F0aXZlIG9uZXMgc2hpZnQgaXQgdG8gdGhlIG9wcG9zaXRlIGRpcmVjdGlvbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICRuLWNvbHVtbnMgWzFdXG4vLy8gICBOdW1iZXIgb2YgY29sdW1ucyBieSB3aGljaCB0aGUgZWxlbWVudCBzaGlmdHMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2hpZnQoLTMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIG91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tbGVmdDogLTI1LjU4OTQxJTtcbi8vLyAgIH1cblxuQG1peGluIHNoaWZ0KCRuLWNvbHVtbnM6IDEpIHtcbiAgQGluY2x1ZGUgc2hpZnQtaW4tY29udGV4dCgkbi1jb2x1bW5zKTtcbn1cblxuLy8vIFRyYW5zbGF0ZXMgYW4gZWxlbWVudCBob3Jpem9udGFsbHkgYnkgYSBudW1iZXIgb2YgY29sdW1ucywgaW4gYSBzcGVjaWZpYyBuZXN0aW5nIGNvbnRleHQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaGlmdFxuLy8vICAgQSBsaXN0IGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIHNoaWZ0IChgJGNvbHVtbnNgKSBhbmQgdGhlIG51bWJlciBvZiBjb2x1bW5zIG9mIHRoZSBwYXJlbnQgZWxlbWVudCAoYCRjb250YWluZXItY29sdW1uc2ApLlxuLy8vXG4vLy8gICBUaGUgdHdvIHZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIHdpdGggYW55IHN0cmluZyBzdWNoIGFzIGBvZmAsIGAvYCwgZXRjLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNoaWZ0KC0zIG9mIDYpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIG91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tbGVmdDogLTUyLjQxNDU4JTtcbi8vLyAgIH1cblxuQG1peGluIHNoaWZ0LWluLWNvbnRleHQoJHNoaWZ0OiAkY29sdW1ucyBvZiAkY29udGFpbmVyLWNvbHVtbnMpIHtcbiAgJG4tY29sdW1uczogbnRoKCRzaGlmdCwgMSk7XG4gICRwYXJlbnQtY29sdW1uczogY29udGFpbmVyLXNoaWZ0KCRzaGlmdCkgIWdsb2JhbDtcblxuICAkZGlyZWN0aW9uOiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQtZGlyZWN0aW9uLCAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKTtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKTtcblxuICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJG4tY29sdW1ucyAqIGZsZXgtZ3JpZCgxLCAkcGFyZW50LWNvbHVtbnMpICsgJG4tY29sdW1ucyAqIGZsZXgtZ3V0dGVyKCRwYXJlbnQtY29sdW1ucyk7XG5cbiAgLy8gUmVzZXQgbmVzdGluZyBjb250ZXh0XG4gICRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQWRkcyBwYWRkaW5nIHRvIHRoZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcGFkZGluZyBbZmxleC1ndXR0ZXIoKV1cbi8vLyAgIEEgbGlzdCBvZiBwYWRkaW5nIHZhbHVlKHMpIHRvIHVzZS4gUGFzc2luZyBgZGVmYXVsdGAgaW4gdGhlIGxpc3Qgd2lsbCByZXN1bHQgaW4gdXNpbmcgdGhlIGd1dHRlciB3aWR0aCBhcyBhIHBhZGRpbmcgdmFsdWUuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcGFkKDMwcHggLTIwcHggMTBweCBkZWZhdWx0KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgcGFkZGluZzogMzBweCAtMjBweCAxMHB4IDIuMzU3NjUlO1xuLy8vICAgfVxuXG5AbWl4aW4gcGFkKCRwYWRkaW5nOiBmbGV4LWd1dHRlcigpKSB7XG4gICRwYWRkaW5nLWxpc3Q6IG51bGw7XG4gIEBlYWNoICR2YWx1ZSBpbiAkcGFkZGluZyB7XG4gICAgJHZhbHVlOiBpZigkdmFsdWUgPT0gJ2RlZmF1bHQnLCBmbGV4LWd1dHRlcigpLCAkdmFsdWUpO1xuICAgICRwYWRkaW5nLWxpc3Q6IGpvaW4oJHBhZGRpbmctbGlzdCwgJHZhbHVlKTtcbiAgfVxuICBwYWRkaW5nOiAkcGFkZGluZy1saXN0O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRm9yY2VzIHRoZSBlbGVtZW50IHRvIGZpbGwgaXRzIHBhcmVudCBjb250YWluZXIuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZmlsbC1wYXJlbnQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuLy8vICAgfVxuXG5AbWl4aW4gZmlsbC1wYXJlbnQoKSB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpZiAkYm9yZGVyLWJveC1zaXppbmcgPT0gZmFsc2Uge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE91dHB1dHMgYSBtZWRpYS1xdWVyeSBibG9jayB3aXRoIGFuIG9wdGlvbmFsIGdyaWQgY29udGV4dCAodGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIHVzZWQgaW4gdGhlIGdyaWQpLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcXVlcnlcbi8vLyAgIEEgbGlzdCBvZiBtZWRpYSBxdWVyeSBmZWF0dXJlcyBhbmQgdmFsdWVzLCB3aGVyZSBlYWNoIGAkZmVhdHVyZWAgc2hvdWxkIGhhdmUgYSBjb3JyZXNwb25kaW5nIGAkdmFsdWVgLlxuLy8vICAgRm9yIGEgbGlzdCBvZiB2YWxpZCB2YWx1ZXMgZm9yIGAkZmVhdHVyZWAsIGNsaWNrIFtoZXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWExKS5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSBgJHZhbHVlYCBpbiBgJHF1ZXJ5YCwgYCRkZWZhdWx0LWZlYXR1cmVgIGlzIGdvaW5nIHRvIGJlIHVzZWQuXG4vLy9cbi8vLyAgIFRoZSBudW1iZXIgb2YgdG90YWwgY29sdW1ucyBpbiB0aGUgZ3JpZCBjYW4gYmUgc2V0IGJ5IHBhc3NpbmcgYCRjb2x1bW5zYCBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0IChvdmVycmlkZXMgYCR0b3RhbC1jb2x1bW5zYCkuXG4vLy9cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICR0b3RhbC1jb2x1bW5zIFskZ3JpZC1jb2x1bW5zXVxuLy8vICAgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgaW4gdGhlIG5ldyBncmlkIGNvbnRleHQuIENhbiBiZSBzZXQgYXMgYSBzaG9ydGhhbmQgaW4gdGhlIGZpcnN0IHBhcmFtZXRlci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLnJlc3BvbnNpdmUtZWxlbWVudCB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSg3NjlweCkge1xuLy8vICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyAgLm5ldy1jb250ZXh0LWVsZW1lbnQge1xuLy8vICAgIEBpbmNsdWRlIG1lZGlhKG1pbi13aWR0aCAzMjBweCBtYXgtd2lkdGggNDgwcHgsIDYpIHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpIHtcbi8vLyAgICAucmVzcG9uc2l2ZS1lbGVtZW50IHtcbi8vLyAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuLy8vICAgICAgd2lkdGg6IDQ4LjgyMTE3JTtcbi8vLyAgICB9XG4vLy9cbi8vLyAgICAucmVzcG9uc2l2ZS1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbi8vLyAgICAubmV3LWNvbnRleHQtZWxlbWVudCB7XG4vLy8gICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbi8vLyAgICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgIH1cbi8vL1xuLy8vICAgIC5uZXctY29udGV4dC1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgIH1cbi8vLyAgfVxuXG5AbWl4aW4gbWVkaWEoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoJGRlZmF1bHQtZmVhdHVyZTogbnRoKCRxdWVyeSwgMSkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zICFnbG9iYWw7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJGxvb3AtdG86IGxlbmd0aCgkcXVlcnkpO1xuICAgICRtZWRpYS1xdWVyeTogXCJzY3JlZW4gYW5kIFwiO1xuICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucyAhZ2xvYmFsO1xuXG4gICAgQGlmIGlzLW5vdChpcy1ldmVuKGxlbmd0aCgkcXVlcnkpKSkge1xuICAgICAgJGdyaWQtY29sdW1uczogbnRoKCRxdWVyeSwgJGxvb3AtdG8pICFnbG9iYWw7XG4gICAgICAkbG9vcC10bzogJGxvb3AtdG8gLSAxO1xuICAgIH1cblxuICAgICRpOiAxO1xuICAgIEB3aGlsZSAkaSA8PSAkbG9vcC10byB7XG4gICAgICAkbWVkaWEtcXVlcnk6ICRtZWRpYS1xdWVyeSArIFwiKFwiICsgbnRoKCRxdWVyeSwgJGkpICsgXCI6IFwiICsgbnRoKCRxdWVyeSwgJGkgKyAxKSArIFwiKSBcIjtcblxuICAgICAgQGlmICgkaSArIDEpICE9ICRsb29wLXRvIHtcbiAgICAgICAgJG1lZGlhLXF1ZXJ5OiAkbWVkaWEtcXVlcnkgKyBcImFuZCBcIjtcbiAgICAgIH1cblxuICAgICAgJGk6ICRpICsgMjtcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbWVkaWEtcXVlcnl9IHtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zICFnbG9iYWw7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbkBtaXhpbiBicmVha3BvaW50KCRxdWVyeTokZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgYnJlYWtwb2ludCgpIG1peGluIHdhcyByZW5hbWVkIHRvIG1lZGlhKCkgaW4gTmVhdCAxLjAuIFBsZWFzZSB1cGRhdGUgeW91ciBwcm9qZWN0IHdpdGggdGhlIG5ldyBzeW50YXggYmVmb3JlIHRoZSBuZXh0IHZlcnNpb24gYnVtcC5cIik7XG5cbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kICgkZGVmYXVsdC1mZWF0dXJlOiBudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnM7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMiB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnM7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMyB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogbnRoKCRxdWVyeSwgMyk7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gNCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkgYW5kIChudGgoJHF1ZXJ5LCAzKTogbnRoKCRxdWVyeSwgNCkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDUge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIGFuZCAobnRoKCRxdWVyeSwgMyk6IG50aCgkcXVlcnksIDQpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiBudGgoJHF1ZXJ5LCA1KTtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIGJyZWFrcG9pbnQoKS4gUmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLlwiKTtcbiAgfVxufVxuXG5AbWl4aW4gbnRoLW9tZWdhKCRudGgsICRkaXNwbGF5OiBibG9jaywgJGRpcmVjdGlvbjogZGVmYXVsdCkge1xuICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIG50aC1vbWVnYSgpIG1peGluIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2Ugb21lZ2EoKSBpbnN0ZWFkLlwiKTtcbiAgQGluY2x1ZGUgb21lZ2EoJG50aCAkZGlzcGxheSwgJGRpcmVjdGlvbik7XG59XG5cbi8vLyBSZXNldHMgdGhlIGFjdGl2ZSBkaXNwbGF5IHByb3BlcnR5IHRvIGBibG9ja2AuIFBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBjaGFuZ2luZyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBpbiBhIHNpbmdsZSByb3cuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcm93KHRhYmxlKTtcbi8vLyAgICAgLy8gQ29udGV4dCBjaGFuZ2VkIHRvIHRhYmxlIGRpc3BsYXlcbi8vLyAgIH1cbi8vL1xuLy8vICAgQGluY2x1ZGUgcmVzZXQtZGlzcGxheTtcbi8vLyAgIC8vIENvbnRleHQgaXMgcmVzZXQgdG8gYmxvY2sgZGlzcGxheVxuXG5AbWl4aW4gcmVzZXQtZGlzcGxheSB7XG4gICRjb250YWluZXItZGlzcGxheS10YWJsZTogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlJlc2V0dGluZyAkZGlzcGxheSB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIHZlcnNpb25zIGluIGZhdm9yIG9mIHRoZSBkaXNwbGF5KCl7Li4ufSBtaXhpbi5cIik7XG59XG5cbi8vLyBSZXNldHMgdGhlIGFjdGl2ZSBsYXlvdXQgZGlyZWN0aW9uIHRvIHRoZSBkZWZhdWx0IHZhbHVlIHNldCBpbiBgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbmAuIFBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBjaGFuZ2luZyB0aGUgbGF5b3V0IGRpcmVjdGlvbiBpbiBhIHNpbmdsZSByb3cuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcm93KCRkaXJlY3Rpb246IFJUTCk7XG4vLy8gICAgIC8vIENvbnRleHQgY2hhbmdlZCB0byByaWdodC10by1sZWZ0XG4vLy8gICB9XG4vLy9cbi8vLyAgIEBpbmNsdWRlIHJlc2V0LWxheW91dC1kaXJlY3Rpb247XG4vLy8gICAvLyBDb250ZXh0IGlzIHJlc2V0IHRvIGxlZnQtdG8tcmlnaHRcblxuQG1peGluIHJlc2V0LWxheW91dC1kaXJlY3Rpb24ge1xuICAkbGF5b3V0LWRpcmVjdGlvbjogJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbiAhZ2xvYmFsO1xuICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiUmVzZXR0aW5nICRkaXJlY3Rpb24gd2lsbCBiZSBkZXByZWNhdGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBpbiBmYXZvciBvZiB0aGUgZGlyZWN0aW9uKCl7Li4ufSBtaXhpbi5cIik7XG59XG5cbi8vLyBSZXNldHMgYm90aCB0aGUgYWN0aXZlIGxheW91dCBkaXJlY3Rpb24gYW5kIHRoZSBhY3RpdmUgZGlzcGxheSBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSByb3codGFibGUsIFJUTCk7XG4vLy8gICAgIC8vIENvbnRleHQgY2hhbmdlZCB0byB0YWJsZSB0YWJsZSBhbmQgcmlnaHQtdG8tbGVmdFxuLy8vICAgfVxuLy8vXG4vLy8gICBAaW5jbHVkZSByZXNldC1hbGw7XG4vLy8gICAvLyBDb250ZXh0IGlzIHJlc2V0IHRvIGJsb2NrIGRpc3BsYXkgYW5kIGxlZnQtdG8tcmlnaHRcblxuQG1peGluIHJlc2V0LWFsbCB7XG4gIEBpbmNsdWRlIHJlc2V0LWRpc3BsYXk7XG4gIEBpbmNsdWRlIHJlc2V0LWxheW91dC1kaXJlY3Rpb247XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbkBtaXhpbiBncmlkLWNvbHVtbi1ncmFkaWVudCgkdmFsdWVzLi4uKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KHRvIGxlZnQsICN7JHZhbHVlc30pXCIpO1xufVxuXG5AaWYgJHZpc3VhbC1ncmlkID09IHRydWUgb3IgJHZpc3VhbC1ncmlkID09IHllcyB7XG4gIGJvZHk6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ncmFkaWVudChncmFkaWVudC1zdG9wcygkZ3JpZC1jb2x1bW5zKSk7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICAgIG9wYWNpdHk6ICR2aXN1YWwtZ3JpZC1vcGFjaXR5O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpZiAkdmlzdWFsLWdyaWQtaW5kZXggPT0gYmFjayB7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkdmlzdWFsLWdyaWQtaW5kZXggPT0gZnJvbnQge1xuICAgICAgei1pbmRleDogOTk5OTtcbiAgICB9XG5cbiAgICBAZWFjaCAkYnJlYWtwb2ludCBpbiAkdmlzdWFsLWdyaWQtYnJlYWtwb2ludHMge1xuICAgICAgQGlmICRicmVha3BvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ncmFkaWVudChncmFkaWVudC1zdG9wcygkZ3JpZC1jb2x1bW5zKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoYW5nZXMgdGhlIGRpc3BsYXkgcHJvcGVydHkgdXNlZCBieSBvdGhlciBtaXhpbnMgY2FsbGVkIGluIHRoZSBjb2RlIGJsb2NrIGFyZ3VtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtibG9ja11cbi8vLyAgIERpc3BsYXkgdmFsdWUgdG8gYmUgdXNlZCB3aXRoaW4gdGhlIGJsb2NrLiBDYW4gYmUgYHRhYmxlYCBvciBgYmxvY2tgLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgQGluY2x1ZGUgZGlzcGxheS1jb250ZXh0KHRhYmxlKSB7XG4vLy8gICAgLmRpc3BsYXktdGFibGUge1xuLy8vICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3Ncbi8vLyAgIC5kaXNwbGF5LXRhYmxlIHtcbi8vLyAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4vLy8gICAgICAuLi5cbi8vLyAgIH1cblxuQG1peGluIGRpc3BsYXktY29udGV4dCgkZGlzcGxheTogYmxvY2spIHtcbiAgJHNjb3BlLWRpc3BsYXk6ICRjb250YWluZXItZGlzcGxheS10YWJsZTtcbiAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiAkZGlzcGxheSA9PSB0YWJsZSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gICRjb250YWluZXItZGlzcGxheS10YWJsZTogJHNjb3BlLWRpc3BsYXkgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoYW5nZXMgdGhlIGRpcmVjdGlvbiBwcm9wZXJ0eSB1c2VkIGJ5IG90aGVyIG1peGlucyBjYWxsZWQgaW4gdGhlIGNvZGUgYmxvY2sgYXJndW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpcmVjdGlvbiBbbGVmdC10by1yaWdodF1cbi8vLyAgIExheW91dCBkaXJlY3Rpb24gdG8gYmUgdXNlZCB3aXRoaW4gdGhlIGJsb2NrLiBDYW4gYmUgYGxlZnQtdG8tcmlnaHRgIG9yIGByaWdodC10by1sZWZ0YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgQGluY2x1ZGUgZGlyZWN0aW9uLWNvbnRleHQocmlnaHQtdG8tbGVmdCkge1xuLy8vICAgIC5yaWdodC10by1sZWZ0LWJsb2NrIHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLnJpZ2h0LXRvLWxlZnQtYmxvY2sge1xuLy8vICAgICBmbG9hdDogcmlnaHQ7XG4vLy8gICAgICAuLi5cbi8vLyAgIH1cblxuQG1peGluIGRpcmVjdGlvbi1jb250ZXh0KCRkaXJlY3Rpb246IGxlZnQtdG8tcmlnaHQpIHtcbiAgJHNjb3BlLWRpcmVjdGlvbjogJGxheW91dC1kaXJlY3Rpb247XG5cbiAgQGlmIHRvLWxvd2VyLWNhc2UoJGRpcmVjdGlvbikgPT0gXCJsZWZ0LXRvLXJpZ2h0XCIge1xuICAgICRsYXlvdXQtZGlyZWN0aW9uOiBMVFIgIWdsb2JhbDtcbiAgfSBAZWxzZSBpZiB0by1sb3dlci1jYXNlKCRkaXJlY3Rpb24pID09IFwicmlnaHQtdG8tbGVmdFwiIHtcbiAgICAkbGF5b3V0LWRpcmVjdGlvbjogUlRMICFnbG9iYWw7XG4gIH1cblxuICBAY29udGVudDtcblxuICAkbGF5b3V0LWRpcmVjdGlvbjogJHNjb3BlLWRpcmVjdGlvbiAhZ2xvYmFsO1xufVxuIiwiLy8gSGVscGVyc1xuQGltcG9ydCBcImhlbHBlcnMvbWl4aW5zXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yZXNldHNcIjtcblxuLy8gUmVzZXRcbkBpbXBvcnQgXCJyZXNldC9ibG9ja1wiO1xuQGltcG9ydCBcInJlc2V0L2Zvcm1zXCI7XG5AaW1wb3J0IFwicmVzZXQvaGVhZGluZ3NcIjtcbkBpbXBvcnQgXCJyZXNldC9pbmxpbmVcIjtcbkBpbXBvcnQgXCJyZXNldC9pbnB1dHNcIjtcbkBpbXBvcnQgXCJyZXNldC9saXN0c1wiO1xuQGltcG9ydCBcInJlc2V0L21lZGlhXCI7XG5AaW1wb3J0IFwicmVzZXQvc2l0ZVwiO1xuQGltcG9ydCBcInJlc2V0L3RhYmxlc1wiO1xuIiwiLy8gTWl4aW5zXG5AaW1wb3J0IFwibWl4aW5zL2JhY2tncm91bmRcIjtcbkBpbXBvcnQgXCJtaXhpbnMvY2xlYXJcIjtcbkBpbXBvcnQgXCJtaXhpbnMvY29udGFpbmVyXCI7XG5AaW1wb3J0IFwibWl4aW5zL2ZvbnQtZmFjZVwiO1xuQGltcG9ydCBcIm1peGlucy9oaWRlLXRleHRcIjtcbkBpbXBvcnQgXCJtaXhpbnMvaWNvblwiO1xuQGltcG9ydCBcIm1peGlucy9sYXllclwiO1xuQGltcG9ydCBcIm1peGlucy9tYXgtc2l6ZVwiO1xuIiwiLyoqXG4gKiB4LWJhY2tncm91bmRcbiAqXG4gKiBTZXRzIGEgc29saWQgb3Igc2VtaS10cmFuc3BhcmVudCBiYWNrZ3JvdW5kIGNvbG9yLiAgQWNjZXB0cyBhbiBvcHRpb25hbCBcbiAqIG9wYWNpdHkgKGFscGhhKSB2YWx1ZS4gIFByb3ZpZGVzIGEgc29saWQgY29sb3IgZmFsbGJhY2suXG4gKi9cbkBtaXhpbiB4LWJhY2tncm91bmQoJGNvbG9yLCAkYWxwaGE6IDEpIHtcbiAgYmFja2dyb3VuZDogJGNvbG9yO1xuICBiYWNrZ3JvdW5kOiByZ2JhKCRjb2xvciwgJGFscGhhKTtcbn1cbiIsIi8qKlxuICogeC1jbGVhclxuICpcbiAqIE11bHRpLXVzZSBjbGVhciBtaXhpbiBmb3IgdmFyaW91cyBjb250ZXh0cy4gIEFjY2VwdHMgYW4gb3B0aW9uYWwgY29udGV4dC5cbiAqIERlZmF1bHQgdXNhZ2UgaW1wbGVtZW50cyBhIEJvdXJib24gbWljcm8tY2xlYXJmaXguXG4gKi9cbkBtaXhpbiB4LWNsZWFyKCRlbGVtZW50OiBzZWxmKSB7XG5cbiAgQGlmICRlbGVtZW50ID09IHNlbGYge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuICB9XG59XG4iLCIvKipcbiAqIHgtY29udGFpbmVyXG4gKi9cbkBtaXhpbiB4LWNvbnRhaW5lcigkd2lkdGgpIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7IFxuICBAaW5jbHVkZSBtYXJnaW4obnVsbCBhdXRvIG51bGwgYXV0byk7XG4gIG1heC13aWR0aDogOTAlO1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XG4gICAgbWF4LXdpZHRoOiAkd2lkdGg7XG4gIH1cbn1cbiIsIi8qKlxuICpcbiAqIHgtZm9udC1mYWNlXG4gKlxuICogSW1wbGVtZW50cyBzdGFuZGFyZGl6ZWQgc2l0ZSBjb3B5LiBBY2NlcHRzIGFyZ3VtZW50cyBmb3JcbiAqIHZhcmlhbnRzIChpbnZlcnNpb25zLCBldGMuKS5cbiAqXG4gKi9cbkBtaXhpbiB4LWZvbnQtZmFjZSgkZm9udC1mYW1pbHksICRmaWxlLXBhdGgsICRxdWVyeS1zdHJpbmcsICR3ZWlnaHQ6IG5vcm1hbCwgJHN0eWxlOiBub3JtYWwpIHtcbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseTtcbiAgICBmb250LXdlaWdodDogJHdlaWdodDtcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XG5cbiAgICBAaWYgJHF1ZXJ5LXN0cmluZyA9PSAnJyB7XG4gICAgICBzcmM6IHVybCgnI3skZmlsZS1wYXRofS5lb3QnKTtcbiAgICAgIHNyYzogdXJsKCcjeyRmaWxlLXBhdGh9LmVvdD8jaWVmaXgnKSAgICAgICAgICAgICAgIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgIHVybCgnI3skZmlsZS1wYXRofS53b2ZmJykgICAgICAgICAgICAgICAgICAgICBmb3JtYXQoJ3dvZmYnKSxcbiAgICAgIHVybCgnI3skZmlsZS1wYXRofS50dGYnKSAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICB1cmwoJyN7JGZpbGUtcGF0aH0uc3ZnIyN7JGZvbnQtZmFtaWx5fScpICAgICAgZm9ybWF0KCdzdmcnKTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgc3JjOiB1cmwoJyN7JGZpbGUtcGF0aH0uZW90PyN7JHF1ZXJ5LXN0cmluZ30nKTtcbiAgICAgIHNyYzogdXJsKCcjeyRmaWxlLXBhdGh9LmVvdD8jeyRxdWVyeS1zdHJpbmd9I2llZml4JykgICAgICAgICAgICBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gICAgICB1cmwoJyN7JGZpbGUtcGF0aH0ud29mZj8jeyRxdWVyeS1zdHJpbmd9JykgICAgICAgICAgICAgICAgIGZvcm1hdCgnd29mZicpLFxuICAgICAgdXJsKCcjeyRmaWxlLXBhdGh9LnR0Zj8jeyRxdWVyeS1zdHJpbmd9JykgICAgICAgICAgICAgICAgICBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICB1cmwoJyN7JGZpbGUtcGF0aH0uc3ZnPyN7JHF1ZXJ5LXN0cmluZ30jI3skZm9udC1mYW1pbHl9JykgIGZvcm1hdCgnc3ZnJyk7XG4gICAgfVxuICB9XG59XG4iLCIvKipcbiAqIHgtaGlkZS10ZXh0XG4gKlxuICogSGlkZXMgdGV4dCBvZiBhcHBsaWVkIGVsZW1lbnQuICBBY2NlcHRzIG5vIGFyZ3VtZW50cy4gQmFzZWRcbiAqIG9mZiBvZiBhIHByZXZpb3VzIHZlcnNpb24gb2YgdGhlIEg1QlAgaW1hZ2UgcmVwbGFjZW1lbnQgXG4gKiBtZXRob2QuICBJJ3ZlIGZvdW5kIGl0IHRvIGJlIGZhciBtb3JlIHJlbGlhYmxlIHRoYW4gdGhlIGNsaXBcbiAqIG1ldGhvZC5cbiAqXG4gKi9cbkBtaXhpbiB4LWhpZGUtdGV4dCB7XG4gIGZvbnQ6IDAvMCBhO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuIiwiLyoqXG4gKiB4LWljb25cbiAqXG4gKiBJbXBsZW1lbnRzIGEgd2ViZm9udCBnbHlwaCAgTmVlZHMgdG8gYmUgdXNlZCB3aXRoaW5cbiAqIGEgcHNldWRvIGVsZW1lbnQgKGUuZy4gJjpiZWZvcmUsICY6YWZ0ZXIpLiAgQWNjZXB0cyBhIHJlcXVpcmVkLCBuYW1lZFxuICogaWNvbiwgYW4gb3B0aW9uYWwgc2l6ZSwgYW5kIGFuIG9wdGlvbmFsIGNvbG9yLiAgXG4gKi9cbkBtaXhpbiB4LWljb24oJGljb24sICRzaXplOiAxNiwgJGNvbG9yOiAkY29sb3ItdGV4dCkge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGNvbnRlbnQ6ICRpY29uO1xuICBmb250LWZhbWlseTogJ2dseXBocyc7XG4gIGZvbnQtc2l6ZTogJHNpemU7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGNvbG9yOiAkY29sb3I7XG4gIHNwZWFrOiBub25lO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cbiIsIi8qKlxuICogeC1sYXllclxuICpcbiAqIFNldHMgYSB6LWluZGV4IHZhbHVlIGJhc2VkIG9uIHNlbWFudGljIG5hbWluZyBhcyBvcHBvc2VkIHRvIGV4cGxpY2l0IGludGVnZXJcbiAqIHZhbHVlcy4gIEFjY2VwdHMgYSByZXF1aXJlZCwgbmFtZWQgbGF5ZXIuICBIaWVyYXJjaHkgY2FuIGJlIG1vZGlmaWVkIGJ5XG4gKiBhZGRpbmcgZGlyZWN0bHkgdG8gdGhlICRsYXllcnMgbWFwIHN0YWNrLlxuICovXG5AbWl4aW4geC1sYXllcigkbGF5ZXIpIHtcbiAgJGxheWVyczogKFxuICAgIHRvcDogMTAwLFxuICAgIG1pZGRsZTogNTAsXG4gICAgYm90dG9tOiAxMCxcbiAgICB1bmRlcm5lYXRoOiAtMVxuICApO1xuXG4gIHotaW5kZXg6IG1hcC1nZXQoJGxheWVycywgJGxheWVyKTtcbn1cbiIsIi8qKlxuICogeC1tYXgtc2l6ZVxuICpcbiAqL1xuQG1peGluIHgtbWF4LXNpemUoJHNpemUpIHtcbiAgJGhlaWdodDogbnRoKCRzaXplLCAxKTtcbiAgJHdpZHRoOiAkaGVpZ2h0O1xuXG4gIEBpZiBsZW5ndGgoJHNpemUpID4gMSB7XG4gICAgJGhlaWdodDogbnRoKCRzaXplLCAyKTtcbiAgfVxuXG4gIEBpZiAkaGVpZ2h0ID09IGF1dG8gb3IgKHR5cGUtb2YoJGhlaWdodCkgPT0gbnVtYmVyIGFuZCBub3QgdW5pdGxlc3MoJGhlaWdodCkpIHtcbiAgICBtYXgtaGVpZ2h0OiAkaGVpZ2h0O1xuICB9XG5cbiAgQGlmICR3aWR0aCA9PSBhdXRvIG9yICh0eXBlLW9mKCR3aWR0aCkgPT0gbnVtYmVyIGFuZCBub3QgdW5pdGxlc3MoJHdpZHRoKSkge1xuICAgIG1heC13aWR0aDogJHdpZHRoO1xuICB9XG59XG4iLCIlcmVzZXQtYmFja2dyb3VuZCB7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG59XG5cbiVyZXNldC1ibG9jayB7XG4gIGRpc3BsYXk6YmxvY2s7XG59XG5cbiVyZXNldC1mb250LXN0eWxlIHtcbiAgZm9udC1zdHlsZTpub3JtYWw7XG59XG5cbiVyZXNldC1tYXJnaW4ge1xuICBtYXJnaW46IDA7XG59XG5cbiVyZXNldC1wYWRkaW5nIHtcbiAgcGFkZGluZzogMDtcbn1cblxuJXJlc2V0LWJvcmRlciB7XG4gIGJvcmRlcjogMDtcbn1cblxuJXJlc2V0LWxpc3Qge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG4lcmVzZXQtcXVvdGVzIHtcbiAgcXVvdGVzOiBub25lO1xufVxuXG4lcmVzZXQtY29udGVudCB7XG4gIGNvbnRlbnQ6ICcnO1xuICBjb250ZW50OiBub25lO1xufVxuXG4lcmVzZXQtdGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxuJXJlc2V0LWZvbnQtZmFtaWx5IHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG59XG5cbiVyZXNldC1mb250LXNpemUge1xuICBmb250LXNpemU6IGluaGVyaXQ7XG59XG5cbiVyZXNldC1idXR0b24ge1xuICBAZXh0ZW5kICVyZXNldC1iYWNrZ3JvdW5kO1xuICBAZXh0ZW5kICVyZXNldC1tYXJnaW47XG4gIEBleHRlbmQgJXJlc2V0LXBhZGRpbmc7XG4gIEBleHRlbmQgJXJlc2V0LWJvcmRlcjtcbiAgQGV4dGVuZCAlcmVzZXQtZm9udC1zaXplO1xuICBAZXh0ZW5kICVyZXNldC1mb250LWZhbWlseTtcbiAgb3V0bGluZTogbm9uZTtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHJnYmEoMCwwLDAsMCk7XG59XG5cbiVyZXNldC1pbnB1dCB7XG4gIEBleHRlbmQgJXJlc2V0LW1hcmdpbjtcbiAgQGV4dGVuZCAlcmVzZXQtcGFkZGluZztcbiAgQGV4dGVuZCAlcmVzZXQtYm9yZGVyO1xuICBAZXh0ZW5kICVyZXNldC1mb250LXNpemU7XG4gIEBleHRlbmQgJXJlc2V0LWZvbnQtZmFtaWx5O1xuXG4gICY6Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbn1cbiIsImFkZHJlc3Mge1xuICBAZXh0ZW5kICVyZXNldC1mb250LXN0eWxlO1xufVxuXG5hcnRpY2xlIHtcbiAgQGV4dGVuZCAlcmVzZXQtYmxvY2s7XG59XG5cbmFzaWRlIHtcbiAgQGV4dGVuZCAlcmVzZXQtYmxvY2s7XG59XG5cbmJsb2NrcXVvdGUge1xuICBAZXh0ZW5kICVyZXNldC1tYXJnaW47XG59XG5cbmRldGFpbHMge1xuICBAZXh0ZW5kICVyZXNldC1ibG9jaztcbn1cblxuZGlhbG9nIHtcbiAgQGV4dGVuZCAlcmVzZXQtbWFyZ2luO1xuICBAZXh0ZW5kICVyZXNldC1wYWRkaW5nO1xuICBAZXh0ZW5kICVyZXNldC1ib3JkZXI7XG5cbiAgc3VtbWFyeSB7XG4gIH1cbn1cblxuZGl2IHtcbn1cblxuZGwge1xuICBAZXh0ZW5kICVyZXNldC1tYXJnaW47XG5cbiAgZHQge1xuICB9XG5cbiAgZGQge1xuICAgIEBleHRlbmQgJXJlc2V0LW1hcmdpbjtcbiAgfVxufVxuXG5mb290ZXIge1xuICBAZXh0ZW5kICVyZXNldC1ibG9jaztcbn1cblxuaGVhZGVyIHtcbiAgQGV4dGVuZCAlcmVzZXQtYmxvY2s7XG59XG5cbm1lbnUge1xuICBAZXh0ZW5kICVyZXNldC1ibG9jaztcbiAgQGV4dGVuZCAlcmVzZXQtbWFyZ2luO1xuICBAZXh0ZW5kICVyZXNldC1wYWRkaW5nO1xufVxuXG5uYXYge1xuICBAZXh0ZW5kICVyZXNldC1ibG9jaztcbn1cblxucCB7XG4gIEBleHRlbmQgJXJlc2V0LW1hcmdpbjtcbn1cblxucHJlIHtcbiAgQGV4dGVuZCAlcmVzZXQtbWFyZ2luO1xufVxuXG5zZWN0aW9uIHtcbiAgQGV4dGVuZCAlcmVzZXQtYmxvY2s7XG59XG5cbiIsImZvcm0ge1xuXG4gIGZpZWxkc2V0IHtcbiAgICBAZXh0ZW5kICVyZXNldC1tYXJnaW47XG4gICAgQGV4dGVuZCAlcmVzZXQtcGFkZGluZztcbiAgICBAZXh0ZW5kICVyZXNldC1ib3JkZXI7XG5cbiAgICBsZWdlbmQge1xuICAgICAgQGV4dGVuZCAlcmVzZXQtcGFkZGluZztcbiAgICB9XG4gIH1cblxuICBrZXlnZW4ge1xuICB9XG59XG4iLCJoMSB7XG4gIEBleHRlbmQgJXJlc2V0LW1hcmdpbjtcbn1cblxuaDIge1xuICBAZXh0ZW5kICVyZXNldC1tYXJnaW47XG59XG5cbmgzIHtcbiAgQGV4dGVuZCAlcmVzZXQtbWFyZ2luO1xufVxuXG5oNCB7XG4gIEBleHRlbmQgJXJlc2V0LW1hcmdpbjtcbn1cblxuaDUge1xuICBAZXh0ZW5kICVyZXNldC1tYXJnaW47XG59XG5cbmg2IHtcbiAgQGV4dGVuZCAlcmVzZXQtbWFyZ2luO1xufVxuIiwiYSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuICAmOmFjdGl2ZSB7XG4gICAgb3V0bGluZTogMDtcbiAgfVxufVxuXG5hYmJyIHtcbn1cblxuYiB7XG59XG5cbmJkaSB7XG59XG5cbmJkbyB7XG59XG5cbmNpdGUge1xuICBAZXh0ZW5kICVyZXNldC1mb250LXN0eWxlO1xufVxuXG5jb2RlIHtcbn1cblxuZGVsIHtcbn1cblxuZGZuIHtcbiAgQGV4dGVuZCAlcmVzZXQtZm9udC1zdHlsZTtcbn1cblxuZW0ge1xuICBAZXh0ZW5kICVyZXNldC1mb250LXN0eWxlO1xufVxuXG5pIHtcbiAgQGV4dGVuZCAlcmVzZXQtZm9udC1zdHlsZTtcbn1cblxuaW5zIHtcbn1cblxua2JkIHtcbn1cblxubWFyayB7XG59XG5cbm1ldGVyIHtcbn1cblxub3V0cHV0IHtcbn1cblxucHJvZ3Jlc3Mge1xufVxuXG5xIHtcbiAgQGV4dGVuZCAlcmVzZXQtcXVvdGVzO1xufVxuXG5ydWJ5IHtcblxuICBycCB7XG4gIH1cblxuICBydCB7XG4gIH1cbn1cblxucyB7XG59XG5cbnNhbXAge1xufVxuXG5zbWFsbCB7XG59XG5cbnNwYW4ge1xufVxuXG5zdHJvbmcge1xufVxuXG5zdWIge1xufVxuXG5zdXAge1xufVxuXG50aW1lIHtcbn1cblxudSB7XG59XG5cbnZhciB7XG4gIEBleHRlbmQgJXJlc2V0LWZvbnQtc3R5bGU7XG59XG4iLCJidXR0b24ge1xuICBAZXh0ZW5kICVyZXNldC1idXR0b247XG59XG5cbmNvbW1hbmQge1xufVxuXG5pbnB1dCB7XG5cbiAgJlt0eXBlPXRleHRdLFxuICAmW3R5cGU9ZW1haWxdLFxuICAmW3R5cGU9cGFzc3dvcmRde1xuICAgIEBleHRlbmQgJXJlc2V0LWlucHV0O1xuICB9XG5cbiAgJlt0eXBlPXN1Ym1pdF0ge1xuICAgIEBleHRlbmQgJXJlc2V0LWJ1dHRvbjtcbiAgfVxufVxuXG5sYWJlbCB7XG59XG5cbnNlbGVjdCB7XG4gIEBleHRlbmQgJXJlc2V0LW1hcmdpbjtcblxuICBvcHRncm91cCB7XG5cbiAgICBvcHRpb24ge1xuICAgIH1cbiAgfVxufVxuXG50ZXh0YXJlYSB7XG4gIEBleHRlbmQgJXJlc2V0LWlucHV0O1xufVxuIiwidWwge1xuICBAZXh0ZW5kICVyZXNldC1saXN0O1xuICBAZXh0ZW5kICVyZXNldC1tYXJnaW47XG4gIEBleHRlbmQgJXJlc2V0LXBhZGRpbmc7XG5cbiAgbGkge1xuICAgIEBleHRlbmQgJXJlc2V0LWxpc3Q7XG4gIH1cbn1cblxub2wge1xuICBAZXh0ZW5kICVyZXNldC1saXN0O1xuICBAZXh0ZW5kICVyZXNldC1tYXJnaW47XG4gIEBleHRlbmQgJXJlc2V0LXBhZGRpbmc7XG5cbiAgbGkge1xuICAgIEBleHRlbmQgJXJlc2V0LWxpc3Q7XG4gIH1cbn1cblxuIiwiYXJlYSB7XG59XG5cbmF1ZGlvIHtcbiAgQGV4dGVuZCAlcmVzZXQtYmxvY2s7XG59XG5cbmNhbnZhcyB7XG4gIEBleHRlbmQgJXJlc2V0LWJsb2NrO1xufVxuXG5lbWJlZCB7XG4gIEBleHRlbmQgJXJlc2V0LWJsb2NrO1xufVxuXG5maWd1cmUge1xuICBAZXh0ZW5kICVyZXNldC1ibG9jaztcbiAgQGV4dGVuZCAlcmVzZXQtbWFyZ2luO1xuXG4gIGZpZ2NhcHRpb24ge1xuICAgIEBleHRlbmQgJXJlc2V0LWJsb2NrO1xuICB9XG59XG5cbmhyIHtcbiAgQGV4dGVuZCAlcmVzZXQtbWFyZ2luO1xufVxuXG5pZnJhbWUge1xuICBAZXh0ZW5kICVyZXNldC1ibG9jaztcbiAgQGV4dGVuZCAlcmVzZXQtYm9yZGVyO1xufVxuXG5pbWcge1xufVxuXG5tYXAge1xuICBcbiAgYXJlYSB7XG4gIH1cbn1cblxub2JqZWN0IHtcbiAgQGV4dGVuZCAlcmVzZXQtYmxvY2s7XG59XG5cbnZpZGVvIHtcbiAgQGV4dGVuZCAlcmVzZXQtYmxvY2s7XG59XG4iLCIvKlxuKlxuKiAgR2xvYmFsIEJvcmRlci1Cb3ggT3ZlcnJpZGVcbipcbiogIFVubmVjZXNzYXJ5IGlmIEJvdXJib24vTmVhdCBhbHJlYWR5IGJlaW5nIGxvYWRlZC5cbipcbiogICoge1xuKiAgICBAaW5jbHVkZSBib3gtc2l6aW5nKGJvcmRlci1ib3gpO1xuKiAgfVxuKlxuKi9cbmh0bWwge1xufVxuXG5ib2R5IHtcbiAgQGV4dGVuZCAlcmVzZXQtbWFyZ2luO1xuICB3aWR0aDoxMDAlO1xufVxuIiwidGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbiAgY2FwdGlvbiB7XG4gIH1cbiAgY29sZ3JvdXAge1xuICAgIGNvbCB7XG4gICAgfVxuICB9XG4gIHRoZWFkIHtcbiAgICB0aCB7XG4gICAgICBAZXh0ZW5kICVyZXNldC1wYWRkaW5nO1xuICAgIH1cbiAgfVxuICB0Ym9keSB7XG4gICAgdGQge1xuICAgICAgQGV4dGVuZCAlcmVzZXQtcGFkZGluZztcbiAgICB9XG4gIH1cbiAgdGZvb3Qge1xuICAgIHRkIHtcbiAgICAgIEBleHRlbmQgJXJlc2V0LXBhZGRpbmc7XG4gICAgfVxuICB9XG59XG4iLCIvKiBTbGlkZXIgKi9cblxuLnNsaWNrLXNsaWRlciB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIC13ZWJraXQtdG91Y2gtY2FsbG91dDogbm9uZTtcbiAgICAtd2Via2l0LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1raHRtbC11c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbW96LXVzZXItc2VsZWN0OiBub25lO1xuICAgIC1tcy11c2VyLXNlbGVjdDogbm9uZTtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICAtbXMtdG91Y2gtYWN0aW9uOiBwYW4teTtcbiAgICB0b3VjaC1hY3Rpb246IHBhbi15O1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4uc2xpY2stbGlzdCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG5cbiAgICAmLmRyYWdnaW5nIHtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBjdXJzb3I6IGhhbmQ7XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlciAuc2xpY2stdHJhY2ssXG4uc2xpY2stc2xpZGVyIC5zbGljay1saXN0IHtcbiAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIDAsIDApO1xuICAgIC1vLXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMCwgMCwgMCk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAwLCAwKTtcbn1cblxuLnNsaWNrLXRyYWNrIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMDtcbiAgICB0b3A6IDA7XG4gICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAmOmJlZm9yZSxcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cblxuICAgIC5zbGljay1sb2FkaW5nICYge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxufVxuLnNsaWNrLXNsaWRlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMXB4O1xuICAgIFtkaXI9XCJydGxcIl0gJiB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgICYuc2xpY2stbG9hZGluZyBpbWcge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAmLmRyYWdnaW5nIGltZyB7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIH1cblxuICAgIC5zbGljay1pbml0aWFsaXplZCAmIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgLnNsaWNrLWxvYWRpbmcgJiB7XG4gICAgICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG5cbiAgICAuc2xpY2stdmVydGljYWwgJiB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgIH1cbn1cbi5zbGljay1hcnJvdy5zbGljay1oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG4iLCJAaW5jbHVkZSB4LWZvbnQtZmFjZSgnZ2x5cGhzJywgJy93cC1jb250ZW50L3RoZW1lcy9zdG9ja3JvdmVyL2ZvbnRzL2dseXBocy9mb250cy9nbHlwaHMnLCAnJyk7XG5cbkBpbXBvcnQgJy4uLy4uL2ZvbnRzL2dseXBocy92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vLi4vZm9udHMvZ2x5cGhzL3N0eWxlLnNjc3MnO1xuIiwiJGljb21vb24tZm9udC1wYXRoOiBcImZvbnRzXCIgIWRlZmF1bHQ7XG5cbiRnbHlwaC0tZmlsbTogXCJcXGYwMDhcIjtcbiRnbHlwaC0tZm9sZGVyOiBcIlxcZjA3YlwiO1xuJGdseXBoLS1mb2xkZXItLW9wZW46IFwiXFxmMDdjXCI7XG4kZ2x5cGgtLXBob25lOiBcIlxcZjA5NVwiO1xuJGdseXBoLS10d2l0dGVyOiBcIlxcZjA5OVwiO1xuJGdseXBoLS1mYWNlYm9vazogXCJcXGYwOWFcIjtcbiRnbHlwaC0tZ29vZ2xlLXBsdXM6IFwiXFxmMGQ1XCI7XG4kZ2x5cGgtLWNhcmV0LS1kb3duOiBcIlxcZjBkN1wiO1xuJGdseXBoLS1jYXJldC0tdXA6IFwiXFxmMGQ4XCI7XG4kZ2x5cGgtLWNhcmV0LS1sZWZ0OiBcIlxcZjBkOVwiO1xuJGdseXBoLS1jYXJldC0tcmlnaHQ6IFwiXFxmMGRhXCI7XG4kZ2x5cGgtLW1haWw6IFwiXFxmMGUwXCI7XG4kZ2x5cGgtLWVtYWlsOiBcIlxcZjBlMFwiO1xuJGdseXBoLS1idWxsZXQ6IFwiXFxmMTExXCI7XG4kZ2x5cGgtLXF1ZXN0aW9uOiBcIlxcZjEyOFwiO1xuJGdseXBoLS1pbmZvOiBcIlxcZjEyOVwiO1xuJGdseXBoLS1jYWxlbmRhcjogXCJcXGYxMzNcIjtcbiRnbHlwaC0td2FybmluZzogXCJcXGUwMDJcIjtcbiRnbHlwaC0tbmV3OiBcIlxcZTA1ZVwiO1xuJGdseXBoLS1jbG9zZTogXCJcXGUxNGNcIjtcbiRnbHlwaC0tY3VycmVuY3k6IFwiXFxlMjI3XCI7XG4kZ2x5cGgtLXF1b3RlOiBcIlxcZTI0NFwiO1xuJGdseXBoLS1lZGl0OiBcIlxcZTI1NFwiO1xuJGdseXBoLS1hcnJvdy0tZG93bjogXCJcXGUzMTNcIjtcbiRnbHlwaC0tYXJyb3ctLWxlZnQ6IFwiXFxlMzE0XCI7XG4kZ2x5cGgtLWFycm93LS1yaWdodDogXCJcXGUzMTVcIjtcbiRnbHlwaC0tYXJyb3ctLXVwOiBcIlxcZTMxNlwiO1xuJGdseXBoLS1jaGVjazogXCJcXGU1Y2FcIjtcbiRnbHlwaC0tbWVudTogXCJcXGU1ZDJcIjtcbiRnbHlwaC0tY2hlY2tib3gtLWZpbGxlZDogXCJcXGU4MzRcIjtcbiRnbHlwaC0tY2hlY2tib3g6IFwiXFxlODM1XCI7XG4kZ2x5cGgtLXJhZGlvOiBcIlxcZTgzNlwiO1xuJGdseXBoLS1yYWRpby0tZmlsbGVkOiBcIlxcZTgzN1wiO1xuJGdseXBoLS1kb2N1bWVudDogXCJcXGU4NzNcIjtcbiRnbHlwaC0taG9tZTogXCJcXGU4OGFcIjtcbiRnbHlwaC0tbG9jazogXCJcXGU4OTdcIjtcbiRnbHlwaC0tY3JlZGl0LWNhcmQ6IFwiXFxlOGExXCI7XG4kZ2x5cGgtLWxvY2F0aW9uOiBcIlxcZThiNFwiO1xuJGdseXBoLS1jbG9jazogXCJcXGU4YjVcIjtcbiRnbHlwaC0tc2VhcmNoOiBcIlxcZThiNlwiO1xuJGdseXBoLS1saW5lLWNoYXJ0OiBcIlxcZTkyMlwiO1xuJGdseXBoLS1wbGF5OiBcIlxcZTkwMFwiO1xuXG4iLCJAaW1wb3J0IFwidmFyaWFibGVzXCI7XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnZ2x5cGhzJztcbiAgICBzcmM6ICAgIHVybCgnI3skaWNvbW9vbi1mb250LXBhdGh9L2dseXBocy5lb3Q/NDgzNDhrJyk7XG4gICAgc3JjOiAgICB1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS9nbHlwaHMuZW90PzQ4MzQ4ayNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgICAgICAgdXJsKCcjeyRpY29tb29uLWZvbnQtcGF0aH0vZ2x5cGhzLnR0Zj80ODM0OGsnKSBmb3JtYXQoJ3RydWV0eXBlJyksXG4gICAgICAgIHVybCgnI3skaWNvbW9vbi1mb250LXBhdGh9L2dseXBocy53b2ZmPzQ4MzQ4aycpIGZvcm1hdCgnd29mZicpLFxuICAgICAgICB1cmwoJyN7JGljb21vb24tZm9udC1wYXRofS9nbHlwaHMuc3ZnPzQ4MzQ4ayNnbHlwaHMnKSBmb3JtYXQoJ3N2ZycpO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4uZ2x5cGgge1xuICAgIC8qIHVzZSAhaW1wb3J0YW50IHRvIHByZXZlbnQgaXNzdWVzIHdpdGggYnJvd3NlciBleHRlbnNpb25zIHRoYXQgY2hhbmdlIGZvbnRzICovXG4gICAgZm9udC1mYW1pbHk6ICdnbHlwaHMnICFpbXBvcnRhbnQ7XG4gICAgc3BlYWs6IG5vbmU7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICAvKiBCZXR0ZXIgRm9udCBSZW5kZXJpbmcgPT09PT09PT09PT0gKi9cbiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4uZ2x5cGgtLWZpbG0ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1maWxtO1xuICAgIH1cbn1cbi5nbHlwaC0tZm9sZGVyIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tZm9sZGVyO1xuICAgIH1cbn1cbi5nbHlwaC0tZm9sZGVyLS1vcGVuIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tZm9sZGVyLS1vcGVuO1xuICAgIH1cbn1cbi5nbHlwaC0tcGhvbmUge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1waG9uZTtcbiAgICB9XG59XG4uZ2x5cGgtLXR3aXR0ZXIge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS10d2l0dGVyO1xuICAgIH1cbn1cbi5nbHlwaC0tZmFjZWJvb2sge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1mYWNlYm9vaztcbiAgICB9XG59XG4uZ2x5cGgtLWdvb2dsZS1wbHVzIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tZ29vZ2xlLXBsdXM7XG4gICAgfVxufVxuLmdseXBoLS1jYXJldC0tZG93biB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWNhcmV0LS1kb3duO1xuICAgIH1cbn1cbi5nbHlwaC0tY2FyZXQtLXVwIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tY2FyZXQtLXVwO1xuICAgIH1cbn1cbi5nbHlwaC0tY2FyZXQtLWxlZnQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1jYXJldC0tbGVmdDtcbiAgICB9XG59XG4uZ2x5cGgtLWNhcmV0LS1yaWdodCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWNhcmV0LS1yaWdodDtcbiAgICB9XG59XG4uZ2x5cGgtLW1haWwge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1tYWlsO1xuICAgIH1cbn1cbi5nbHlwaC0tZW1haWwge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1lbWFpbDtcbiAgICB9XG59XG4uZ2x5cGgtLWJ1bGxldCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWJ1bGxldDtcbiAgICB9XG59XG4uZ2x5cGgtLXF1ZXN0aW9uIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tcXVlc3Rpb247XG4gICAgfVxufVxuLmdseXBoLS1pbmZvIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0taW5mbztcbiAgICB9XG59XG4uZ2x5cGgtLWNhbGVuZGFyIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tY2FsZW5kYXI7XG4gICAgfVxufVxuLmdseXBoLS13YXJuaW5nIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0td2FybmluZztcbiAgICB9XG59XG4uZ2x5cGgtLW5ldyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLW5ldztcbiAgICB9XG59XG4uZ2x5cGgtLWNsb3NlIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tY2xvc2U7XG4gICAgfVxufVxuLmdseXBoLS1jdXJyZW5jeSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWN1cnJlbmN5O1xuICAgIH1cbn1cbi5nbHlwaC0tcXVvdGUge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1xdW90ZTtcbiAgICB9XG59XG4uZ2x5cGgtLWVkaXQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1lZGl0O1xuICAgIH1cbn1cbi5nbHlwaC0tYXJyb3ctLWRvd24ge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1hcnJvdy0tZG93bjtcbiAgICB9XG59XG4uZ2x5cGgtLWFycm93LS1sZWZ0IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tYXJyb3ctLWxlZnQ7XG4gICAgfVxufVxuLmdseXBoLS1hcnJvdy0tcmlnaHQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1hcnJvdy0tcmlnaHQ7XG4gICAgfVxufVxuLmdseXBoLS1hcnJvdy0tdXAge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1hcnJvdy0tdXA7XG4gICAgfVxufVxuLmdseXBoLS1jaGVjayB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWNoZWNrO1xuICAgIH1cbn1cbi5nbHlwaC0tbWVudSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLW1lbnU7XG4gICAgfVxufVxuLmdseXBoLS1jaGVja2JveC0tZmlsbGVkIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tY2hlY2tib3gtLWZpbGxlZDtcbiAgICB9XG59XG4uZ2x5cGgtLWNoZWNrYm94IHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tY2hlY2tib3g7XG4gICAgfVxufVxuLmdseXBoLS1yYWRpbyB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLXJhZGlvO1xuICAgIH1cbn1cbi5nbHlwaC0tcmFkaW8tLWZpbGxlZCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLXJhZGlvLS1maWxsZWQ7XG4gICAgfVxufVxuLmdseXBoLS1kb2N1bWVudCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWRvY3VtZW50O1xuICAgIH1cbn1cbi5nbHlwaC0taG9tZSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWhvbWU7XG4gICAgfVxufVxuLmdseXBoLS1sb2NrIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tbG9jaztcbiAgICB9XG59XG4uZ2x5cGgtLWNyZWRpdC1jYXJkIHtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbnRlbnQ6ICRnbHlwaC0tY3JlZGl0LWNhcmQ7XG4gICAgfVxufVxuLmdseXBoLS1sb2NhdGlvbiB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLWxvY2F0aW9uO1xuICAgIH1cbn1cbi5nbHlwaC0tY2xvY2sge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1jbG9jaztcbiAgICB9XG59XG4uZ2x5cGgtLXNlYXJjaCB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLXNlYXJjaDtcbiAgICB9XG59XG4uZ2x5cGgtLWxpbmUtY2hhcnQge1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogJGdseXBoLS1saW5lLWNoYXJ0O1xuICAgIH1cbn1cbi5nbHlwaC0tcGxheSB7XG4gICAgJjpiZWZvcmUge1xuICAgICAgICBjb250ZW50OiAkZ2x5cGgtLXBsYXk7XG4gICAgfVxufVxuXG4iLCJAbWl4aW4gbWVudSgkdmFyaWFudDogZGVmYXVsdCkge1xyXG5cclxuICBAaWYgKCR2YXJpYW50ID09ICdpbnRlcm5hbCcpIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbig1LjY1ZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCRjb2xvci1ncmV5LWxpZ2h0LCAzJSk7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMS43NWVtIDEuNzVlbSAxLjc1ZW0gMS43NWVtKTtcclxuXHJcbiAgICAgIC5tZW51X19saXN0IHtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLm1lbnVfX2hlYWRpbmcge1xyXG4gICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICAgICAgZm9udC1zaXplOiBlbSgxOCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5tZW51X19pdGVtIHtcclxuXHJcbiAgICAgICAgJi5tZW51X19pdGVtLS1hY3RpdmUge1xyXG5cclxuICAgICAgICAgIC5tZW51X19saW5rIHtcclxuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5tZW51X19saW5rIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZyguNWVtIG51bGwgLjVlbSBudWxsKTtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXRlYWwtZGFyaztcclxuICAgICAgICBmb250LXNpemU6IGVtKDE1KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHgtcnRlIHtcclxuXHJcbiAgYSB7XHJcbiAgICBjb2xvcjogJGNvbG9yLXRlYWw7XHJcbiAgfVxyXG5cclxuICBoMSB7XHJcbiAgICBAaW5jbHVkZSB4LWhlYWRpbmcoMSk7XHJcbiAgfVxyXG5cclxuICBoMiB7XHJcbiAgICBAaW5jbHVkZSB4LWhlYWRpbmcoMik7XHJcblxyXG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigyZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaDMge1xyXG4gICAgQGluY2x1ZGUgeC1oZWFkaW5nKDMpO1xyXG5cclxuICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGg0IHtcclxuICAgIEBpbmNsdWRlIHgtaGVhZGluZyg0KTtcclxuICB9XHJcblxyXG4gIGg1IHtcclxuICAgIEBpbmNsdWRlIHgtaGVhZGluZyg1KTtcclxuICB9XHJcblxyXG4gIGVtIHtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICB9XHJcblxyXG5vbCB7XHJcblxyXG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgfVxyXG4gIFxyXG59XHJcbm9sIGxpIHtcclxuICAgIEBpbmNsdWRlIHgtY29weTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjg7XHJcbiAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCBudWxsIDEuMGVtIDEuNWVtKTtcclxuICAgIGxpc3Qtc3R5bGU6IGRlY2ltYWw7XHJcbiAgfVxyXG5cclxudWwgbGkgb2wgbGkgb2wgbGksIHVsIGxpIG9sIGxpIHtcclxuICAgIEBpbmNsdWRlIHgtY29weTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjg7XHJcbiAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCBudWxsIDEuMGVtIDEuNWVtKTtcclxuICAgIGxpc3Qtc3R5bGU6IGRlY2ltYWw7XHJcblxyXG4gICAgJjpiZWZvcmUge1xyXG4gICAgICAgY29udGVudDpub25lO1xyXG4gICAgfVxyXG4gIH0gXHJcblxyXG5cclxuICB1bCB7XHJcblxyXG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgfVxyXG4gIFxyXG59XHJcbiBcclxudWwgbGksIG9sIHVsIGxpIHtcclxuICAgIEBpbmNsdWRlIHgtY29weTtcclxuICAgIGxpbmUtaGVpZ2h0OiAxLjg7XHJcbiAgICBAaW5jbHVkZSBtYXJnaW4oLjVlbSBudWxsIG51bGwgLjVlbSk7XHJcbiAgICBsaXN0LXN0eWxlOiBkaXNjO1xyXG5cclxuICB9XHJcblxyXG51bCBsaSB1bCBsaSB7XHJcbiAgICBAaW5jbHVkZSB4LWNvcHk7XHJcbiAgICBsaW5lLWhlaWdodDogMS44O1xyXG4gICAgQGluY2x1ZGUgbWFyZ2luKC4zZW0gbnVsbCBudWxsIDJlbSk7XHJcbiAgICBsaXN0LXN0eWxlOiBzcXVhcmU7XHJcbiAgICBwYWRkaW5nOiBub25lO1xyXG5cclxuICAgICY6YmVmb3JlIHtcclxuICAgICAgY29udGVudDpub25lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcblxyXG4gIHRhYmxlIHtcclxuICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgQGluY2x1ZGUgc2l6ZSg4NSUgYXV0byk7XHJcblxyXG4gICAgJi5sdHIge1xyXG5cclxuICAgICAgdGQge1xyXG5cclxuICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcblxyXG4gICAgICAgIHRkIHtcclxuXHJcbiAgICAgICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgc2l6ZSgyNSUgYXV0byk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdHIge1xyXG4vLyAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBkYXJrZW4oJGNvbG9yLWdyZXktbGlnaHQsIDEwJSk7XHJcblxyXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcclxuXHJcbiAgICAgICAgdGQge1xyXG5cclxuICAgICAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMCBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGQge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgQGluY2x1ZGUgeC1jb3B5O1xyXG5cclxuICAgICAgJjpudGgtY2hpbGQob2RkKSB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6bnRoLWNoaWxkKGV2ZW4pIHtcclxuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgbnVsbCAxZW0gbnVsbCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xyXG5cclxuICAgICAgdGQge1xyXG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcclxuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKDFlbSBudWxsIDFlbSBudWxsKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGwge1xyXG4gICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgIGR0IHtcclxuICAgICAgQGluY2x1ZGUgeC1jb3B5O1xyXG4gICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuXHJcbiAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgZGQge1xyXG4gICAgICBAaW5jbHVkZSB4LWNvcHk7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkICRjb2xvci1ncmV5LWxpZ2h0O1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgbnVsbCAxZW0gbnVsbCk7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xyXG4gICAgICBcclxuICAgICAgZHQge1xyXG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcclxuICAgICAgICBjbGVhcjogbGVmdDtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkICRjb2xvci1ncmV5LWxpZ2h0O1xyXG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCBudWxsIDFlbSBudWxsKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgZGQge1xyXG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxOCk7XHJcbiAgICAgICAgQGluY2x1ZGUgb21lZ2E7XHJcblxyXG4gICAgICAgICY6bm90KDpudGgtY2hpbGQoMikpIHtcclxuICAgICAgICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcCB7XHJcbiAgICBAaW5jbHVkZSB4LWNvcHk7XHJcblxyXG4gICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaW1nIHtcclxuICAgIG1heC13aWR0aDogMTAwJTtcclxuICAgIGhlaWdodDogYXV0bztcclxuICAgIC8qKiBAaW5jbHVkZSBwYWRkaW5nKDJweCAycHggMnB4IDJweCk7KiovXHJcbiAgICAvKiogYm9yZGVyOiAxcHggc29saWQgbGlnaHRlbigkY29sb3ItZ3JleSwgMTAlKTsqKi9cclxuXHJcbiAgICAmLmZsb2F0IHtcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigxLjVlbSAxZW0gMWVtIG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc21hbGwge1xyXG4gICAgZm9udC1zaXplOiBlbSgxNCk7XHJcbiAgfVxyXG5cclxuICAucmVzcG9uc2l2ZS1pZnJhbWUge1xyXG4gICAgQGluY2x1ZGUgc2l6ZSgxMDAlIDApO1xyXG4gICAgQGluY2x1ZGUgcGFkZGluZyg1Ni41JSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XHJcbiAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgMWVtIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgaWZyYW1lIHtcclxuICAgIEBpbmNsdWRlIHNpemUoMTAwJSAxMDAlKTtcclxuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAwKTtcclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiB4LWNvcHkoJHZhcmlhbnQ6ICdkZWZhdWx0Jykge1xyXG4gIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgZm9udC1zaXplOiAxNnB4O1xyXG4gIGxpbmUtaGVpZ2h0OjEuODtcclxuICBjb2xvcjogJGNvbG9yLWdyZXktZGFyaztcclxuXHJcbiAgc3Ryb25nIHtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgfVxyXG5cclxuICBhIHtcclxuICAgIGNvbG9yOiAkY29sb3ItdGVhbDtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgY29sb3I6IGRhcmtlbigkY29sb3ItdGVhbCwgMTAlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZigkdmFyaWFudD09XCJpbnZlcnRlZFwiKSB7XHJcbiAgICBjb2xvcjogJGNvbG9yLXRleHQtaW52ZXJ0O1xyXG4gIH1cclxufVxyXG5cclxuQG1peGluIHgtaGVhZGluZygkbGV2ZWwsICR2YXJpYW50OiAnZGVmYXVsdCcpIHtcclxuXHJcbiAgQGlmKCRsZXZlbD09MSkge1xyXG4gICAgZm9udC1zaXplOiBlbSgyNCk7XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcclxuICAgIGNvbG9yOiAkY29sb3ItZ3JleS1kYXJrO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcclxuICAgICAgZm9udC1zaXplOiBlbSg0MCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaWYoJGxldmVsPT0yKSB7XHJcbiAgICBmb250LXNpemU6IGVtKDI0KTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBsaW5lLWhlaWdodDogMS4yO1xyXG4gICAgY29sb3I6ICRjb2xvci1ncmV5LWRhcms7XHJcbiAgfVxyXG5cclxuICBAaWYoJGxldmVsPT0zKSB7XHJcbiAgICBmb250LXNpemU6IGVtKDIwKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgfVxyXG5cclxuICBAaWYoJGxldmVsPT00KSB7XHJcbiAgICBmb250LXNpemU6IGVtKDIwKTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgfVxyXG5cclxuICBAaWYoJGxldmVsPT01KSB7XHJcbiAgICBmb250LXNpemU6IGVtKDE2KTtcclxuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICBjb2xvcjogJGNvbG9yLXRleHQ7XHJcbiAgfVxyXG5cclxuICBAaWYoJGxldmVsPT1wYWdlKSB7XHJcbiAgICBAaW5jbHVkZSB4LWhlYWRpbmcoMSk7XHJcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yLWdyZXk7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgbnVsbCAuNWVtIG51bGwpO1xyXG4gICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgbnVsbCAuNWVtIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgQGlmKCR2YXJpYW50PT1cImludmVydGVkXCIpIHtcclxuICAgIGNvbG9yOiAkY29sb3ItdGV4dC1pbnZlcnQ7XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4geC1idXR0b24oJGljb246IG5vbmUsICRjZW50ZXJlZDogZmFsc2UsICR2YXJpYW50OiBkZWZhdWx0LCAkc2l6ZTogZGVmYXVsdCkge1xyXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcclxuICBAaW5jbHVkZSB4LWJhY2tncm91bmQoJGNvbG9yLXRlYWwsIDEpO1xyXG4gIGNvbG9yOiAkY29sb3ItdGV4dC1pbnZlcnQ7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbiAgZm9udC1zaXplOiAxNHB4O1xyXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgQGluY2x1ZGUgcGFkZGluZyguNWVtIDFlbSAuNWVtIDFlbSk7XHJcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMTUwbXMgJGVhc2UtaW4tb3V0LXF1YWQpO1xyXG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XHJcblxyXG4gICY6aG92ZXIge1xyXG4gICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKGxpZ2h0ZW4oJGNvbG9yLXRlYWwsIDUlKSwgMSk7XHJcbiAgfVxyXG5cclxuICBAaWYgKCAkaWNvbiAhPSAnbm9uZScgKSB7XHJcblxyXG4gICAgJjphZnRlciB7XHJcbiAgICAgIEBpbmNsdWRlIHgtaWNvbigkaWNvbiwgMThweCwgJGNvbG9yLXRleHQtaW52ZXJ0KTtcclxuICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIDNweCBudWxsIG51bGwgNHB4KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAoICRjZW50ZXJlZCA9PSB0cnVlICkge1xyXG4gICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIDUwJSk7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XHJcbiAgfVxyXG5cclxuICBAaWYgKCAkY2VudGVyZWQgPT0gZmFsc2UgKSB7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgMCk7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgwJSkpO1xyXG4gIH1cclxuXHJcbiAgQGlmICggJHZhcmlhbnQgPT0gJ2ludmVydGVkJyApIHtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLXRleHQtaW52ZXJ0O1xyXG5cclxuICAgICY6aG92ZXIge1xyXG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3ItdGV4dC1pbnZlcnQ7XHJcbiAgICAgIGNvbG9yOiAkY29sb3ItdGVhbC1kYXJrO1xyXG5cclxuICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci10ZWFsLWRhcms7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiAoICR2YXJpYW50ID09ICdkYXJrJyApIHtcclxuICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCgkY29sb3ItdGVhbC1kYXJrLCAxKTtcclxuXHJcbiAgICAmOmhvdmVyIHtcclxuICAgICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKGxpZ2h0ZW4oJGNvbG9yLXRlYWwtZGFyaywgNSUpLCAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpZiggJHNpemUgPT0gJ2xhcmdlJyApIHtcclxuICAgIGZvbnQtc2l6ZTogMjBweDtcclxuXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIDBweCBudWxsIG51bGwgbnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG5AbWl4aW4gdGlsZSgkdmFyaWFudDogZGVmYXVsdCkge1xyXG4gIEBpbmNsdWRlIHNpemUoMjIwcHggMjIwcHgpO1xyXG4gIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCA1MCUpO1xyXG4gIEBpbmNsdWRlIG1hcmdpbihudWxsIG51bGwgbnVsbCAtMTEwcHgpO1xyXG4gIEBpbmNsdWRlIHgtYmFja2dyb3VuZCgkY29sb3Itd2hpdGUsIC4wNSk7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAuNSk7XHJcblxyXG4gIC50aWxlX19pbWFnZSB7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgMTVweCBudWxsIG51bGwgNTAlKTtcclxuICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIG51bGwgbnVsbCAtNzVweCk7XHJcbiAgICBAaW5jbHVkZSBzaXplKDE1MHB4IDE1MHB4KTtcclxuICB9XHJcblxyXG4gIC50aWxlX19jb250ZW50IHtcclxuICAgIGNvbG9yOiAkY29sb3ItdGV4dC1pbnZlcnQ7XHJcbiAgICBAaW5jbHVkZSBzaXplKDEwMCUgYXV0byk7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgbnVsbCBudWxsIDFlbSAwKTtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB9XHJcblxyXG4gIC50aWxlX19oZWFkaW5nIHtcclxuICAgIGZvbnQtc2l6ZTogZW0oMjApO1xyXG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICB9XHJcblxyXG4gIC50aWxlX19jb3B5IHtcclxuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcclxuICB9XHJcblxyXG4gIC50aWxlX19jdGEge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIDAgMCAwKTtcclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XHJcblxyXG4gICAgLnRpbGVfX2N0YSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGlmICgkdmFyaWFudCA9PSAnaW52ZXJ0ZWQnKSB7XHJcbiAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItZ3JleS1kYXJrO1xyXG5cclxuICAgIC50aWxlX19oZWFkaW5nIHtcclxuICAgICAgY29sb3I6ICRjb2xvci1ncmV5LWRhcms7XHJcbiAgICB9XHJcblxyXG4gICAgLnRpbGVfX2NvcHkge1xyXG4gICAgICBjb2xvcjogJGNvbG9yLWdyZXktZGFyaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuXHJcbkBtaXhpbiBjb2xsZWN0aW9uKCR2YXJpYW50OiBzbGljaykge1xyXG4gIEBpbmNsdWRlIHBhZGRpbmcoMi41ZW0gbnVsbCAyLjVlbSBudWxsKTtcclxuXHJcbiAgLnNsaWNrLXNsaWRlLCAuc2xpY2stc2xpZGUgYSB7XHJcbiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICAuc2xpY2stYXJyb3cge1xyXG4gICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xyXG4gICAgZm9udC1zaXplOiAwO1xyXG4gICAgei1pbmRleDogMTtcclxuXHJcbiAgICAmOmJlZm9yZSB7XHJcbiAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDE1MG1zICRlYXNlLWluLW91dC1xdWFkKTtcclxuICAgIH1cclxuXHJcbiAgICAmLnNsaWNrLXByZXZ7XHJcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgbnVsbCBudWxsIC01cHgpO1xyXG4gICAgICBcclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLWFycm93LS1sZWZ0LCA1MHB4LCAkY29sb3ItdGVhbCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG5cclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXRlYWw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgJi5zbGljay1uZXh0IHtcclxuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSAtNXB4IG51bGwgbnVsbCk7XHJcbiAgICAgIFxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tYXJyb3ctLXJpZ2h0LCA1MHB4LCAkY29sb3ItdGVhbCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICY6aG92ZXIge1xyXG5cclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXRlYWw7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG4gICAgQGluY2x1ZGUgcGFkZGluZyg1ZW0gbnVsbCA1ZW0gbnVsbCk7XHJcblxyXG4gICAgLmNvbGxlY3Rpb25fX2lubmVyIHtcclxuICAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDEwMDBweCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi5hcHBsaWNhdGlvbiB7XG4gIGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgc2Fucy1zZXJpZjtcbiAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCRjb2xvci10ZWFsLCAxKTtcbiAgXG59XG4iLCIubWFpbiB7XG4gIEBpbmNsdWRlIHgtYmFja2dyb3VuZCgkY29sb3Itd2hpdGUsIDEpO1xufVxuIiwiLmhlYWRlciB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcbiAgei1pbmRleDogMTA7XG4gIEBpbmNsdWRlIHNpemUoMTAwJSAkaGVpZ2h0LWhlYWRlci1wYWxtKTtcbiAgZGlzcGxheTogdGFibGU7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4vKiAgYm9yZGVyLWJvdHRvbTogMnB4IHNvbGlkIHJnYmEoMzUsMzUsMzUsMSk7Ki9cbiAgXG4gICAgLmhlYWRlcl9faW5uZXIge1xuXHRcdGEgLmxpdmVkZW1vIHsgXG5cdFx0cGFkZGluZzogM3B4IDE1cHggMnB4IDE1cHg7IFxuXHRcdGJhY2tncm91bmQtY29sb3I6ICM1ODkwZTM7IFxuXHRcdGNvbG9yOiAjZmZmOyBcblx0XHRoZWlnaHQ6IDI4cHg7XG5cdFx0ZmxvYXQ6cmlnaHQ7XG5cdFx0dGV4dC1hbGlnbjpjZW50ZXI7IFxuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7IFxuXHRcdG1hcmdpbi10b3A6IDE4cHg7XG5cdFx0bWFyZ2luLXJpZ2h0OiAxMHB4O1xuXHRcdGZvbnQtc2l6ZTogMTZweDtcblx0XHR9XG5cdH1cblxuICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwLWRvd24pIHtcblxuICAgIC5oZWFkZXJfX2lubmVyIHtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAyLjUlIG51bGwgMi41JSk7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuOyAgXG5cdCAgXG5cdCAgYSAubGl2ZWRlbW8ge1xuXHRcdCAgbWFyZ2luLXRvcDogMTJweDtcblx0XHQgIHBhZGRpbmctdG9wOiAzcHg7XG5cdCAgfVxuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7IFxuICAgIEBpbmNsdWRlIHNpemUoMTAwJSAkaGVpZ2h0LWhlYWRlci1kZXNrKTtcblxuICAgIC5oZWFkZXJfX2lubmVyIHtcbiAgICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcihlbSgxMDAwKSk7XG4gICAgfVxuICB9XG4gIFxuICBcdEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDM1OXB4KSB7XG5cdC5oZWFkZXJfX2lubmVyIHtcblx0YSAubGl2ZWRlbW8ge1xuXHRcdCAgZm9udC1zaXplOiAxMnB4O1xuXHRcdCAgcGFkZGluZy10b3A6IDJweDtcblx0XHQgIGhlaWdodDogMjBweDtcblx0ICB9XG5cdFx0XG5cdH1cblx0fVxufVxuIiwiLmxvZ28ge1xuICBmbG9hdDogbGVmdDtcblxuICAubG9nb19fbGluayB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIEBpbmNsdWRlIHNpemUoYXV0byAkaGVpZ2h0LWhlYWRlci1wYWxtKTtcbiAgfVxuXG4gIC5sb2dvX19oZWFkaW5nIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmxvZ29fX2ltYWdlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgQGluY2x1ZGUgcGFkZGluZyggZW0oIDEwICkgbnVsbCBlbSggMTAgKSAwICk7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xuXG4gICAgLmxvZ29fX2xpbmsge1xuICAgICAgQGluY2x1ZGUgc2l6ZShhdXRvICRoZWlnaHQtaGVhZGVyLWRlc2spO1xuICAgIH1cblxuICAgIC5sb2dvX19pbWFnZSB7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKCAuNzVlbSBudWxsIC43NWVtIDAgKTtcbiAgICB9XG4gIH1cbn1cbiIsIi50b2dnbGUge1xyXG5cclxuICAmLnRvZ2dsZS0tbmF2aWdhdGlvbiB7XHJcbiAgICBmbG9hdDogcmlnaHQ7XHJcblxyXG4gICAgLnRvZ2dsZV9faW5uZXIge1xyXG4gICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xyXG4gICAgICBAaW5jbHVkZSBzaXplKGF1dG8gJGhlaWdodC1oZWFkZXItcGFsbSk7XHJcbiAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XHJcbiAgICB9XHJcblxyXG4gICAgLnRvZ2dsZV9fYnV0dG9uIHtcclxuICAgICAgZm9udC1zaXplOiAwO1xyXG5cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLW1lbnUsIDQwcHgsIHJnYmEoMzUsMzUsMzUsMSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYudG9nZ2xlLS1zZWFyY2gge1xyXG4gICAgZGlzcGxheTogbm9uZTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG4gICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCgkY29sb3Itd2hpdGUpO1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgbnVsbCBudWxsIDFlbSk7XHJcblxyXG4gICAgICAudG9nZ2xlX19pbm5lciB7XHJcbiAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcclxuICAgICAgICBAaW5jbHVkZSBzaXplKGF1dG8gJGhlaWdodC1oZWFkZXItZGVzayk7XHJcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnRvZ2dsZV9fYnV0dG9uIHtcclxuICAgICAgICBmb250LXNpemU6IDA7XHJcblxyXG4gICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLXNlYXJjaCwgMzJweCwgJGNvbG9yLWJsYWNrKTtcclxuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDI1MG1zICRlYXNlLWluLW91dC1xdWFkKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLmFzaWRlIHtcclxuICBAaW5jbHVkZSB4LWJhY2tncm91bmQobGlnaHRlbigkY29sb3ItZ3JleS1kYXJrLCAxMCUpLCAxKTtcclxuICB6LWluZGV4OiA1O1xyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwLWRvd24pIHtcclxuICAgIEBpbmNsdWRlIHNpemUoZW0oMjgwKSAxMDAlKTtcclxuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCAwIG51bGwgMCAwKTtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmcoJGhlaWdodC1oZWFkZXItcGFsbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlM2QoLTEwMCUsIDAsIDApKTtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24odHJhbnNmb3JtLCA1MDBtcywgJGVhc2UtaW4tb3V0LXF1YWQpO1xyXG4gICAgb3ZlcmZsb3cteTogYXV0bztcclxuXHJcbiAgICAuYXNpZGVfX2lubmVyIHtcclxuICAgICAgbWF4LWhlaWdodDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XHJcbiAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoJGNvbG9yLXdoaXRlLCAxKTtcclxuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCA1MCUpO1xyXG4gICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgZW0oLTI3NSkgbnVsbCBudWxsKTtcclxuICAgIEBpbmNsdWRlIHNpemUoYXV0byAkaGVpZ2h0LWhlYWRlci1kZXNrKTtcclxuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSggdHJhbnNsYXRlWCggLTUwJSApICk7XHJcbiAgICB6LWluZGV4OiAxMDtcclxuICB9XHJcbiAgXHJcbi8vLyAgQG1lZGlhKG1heC13aWR0aDogNTAwcHgpIHtcclxuLy8vXHRtYXJnaW46IG51bGwgZW0oLTI3NSkgbnVsbCBudWxsO1xyXG4vLy8gICAgbWF4LXdpZHRoOiA5NSU7XHJcbi8vLyAgfVxyXG59IFxyXG4iLCIubmF2aWdhdGlvbiB7XHJcblxyXG4gIC5uYXZpZ2F0aW9uX19pdGVtIHtcclxuICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcclxuICB9XHJcbiAgXHJcbiAgLm5hdmlnYXRpb25fX2xpbmsge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgQGluY2x1ZGUgc2l6ZSgxMDAlIGF1dG8pO1xyXG4gICAgQGluY2x1ZGUgcGFkZGluZyguNWVtIDFlbSAuNWVtIDFlbSk7XHJcbiAgICBjb2xvcjogJGNvbG9yLXRleHQtaW52ZXJ0O1xyXG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYmFja2dyb3VuZC1jb2xvciAyNTBtcyAkZWFzZS1pbi1vdXQtcXVhZCk7XHJcbiAgfVxyXG5cclxuICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwLWRvd24pIHtcclxuICAgIEBpbmNsdWRlIG1hcmdpbig0ZW0gbnVsbCBudWxsIG51bGwpO1xyXG5cclxuICAgIC5uYXZpZ2F0aW9uX19pdGVtIHtcclxuXHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIDAgMCk7XHJcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSgwcHggMTAwJSk7XHJcbiAgICAgICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCRjb2xvci1ncmV5LWRhcmssIDEpO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDI1MG1zICRlYXNlLWluLW91dC1xdWFkKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5uYXZpZ2F0aW9uX19pdGVtLS1hY3RpdmUge1xyXG5cclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICBjb250ZW50OiAnJztcclxuICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgMCAwKTtcclxuICAgICAgICAgIEBpbmNsdWRlIHNpemUoNHB4IDEwMCUpO1xyXG4gICAgICAgICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCNjY2MsIDEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLm5hdmlnYXRpb25fX2xpbmsge1xyXG4gICAgICAgICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCRjb2xvci1ncmV5LWRhcmssIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCNmZmYpO1xyXG4gICAgQGluY2x1ZGUgc2l6ZShhdXRvICRoZWlnaHQtaGVhZGVyLWRlc2spO1xyXG4gICAgbGluZS1oZWlnaHQ6ICRoZWlnaHQtaGVhZGVyLWRlc2s7XHJcblxyXG4gICAgLm5hdmlnYXRpb25fX2l0ZW0ge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcblxyXG4gICAgICAmOmhvdmVye1xyXG5cclxuICAgICAgICAubmF2aWdhdGlvbl9fdGV4dCB7XHJcblxyXG4gICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBzaXplKDEwMCUgNHB4KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICYgPiAuc3VibmF2aWdhdGlvbiB7XHJcblxyXG4gICAgICAgICAgLnN1Ym5hdmlnYXRpb25fX2lubmVyIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5IDI1MG1zICRlYXNlLWluLW91dC1xdWFkKTtcclxuICAgICAgICAgICAgd2lkdGg6IGVtKDMyMCk7XHJcbiAgICAgICAgICAgIGhlaWdodDogYXV0bztcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IGF1dG87XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLm5hdmlnYXRpb25fX2l0ZW0tLWFjdGl2ZSB7XHJcblxyXG4gICAgICAgIC5uYXZpZ2F0aW9uX190ZXh0IHtcclxuXHJcbiAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHNpemUoMTAwJSA0cHgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5uYXZpZ2F0aW9uX19saW5rIHtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZygwIDFlbSAwIDFlbSk7XHJcbiAgICAgIGNvbG9yOiByZ2JhKDM1LDM1LDM1LDEpO1xyXG4gICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5uYXZpZ2F0aW9uX190ZXh0IHtcclxuICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xyXG5cclxuICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCBpbml0aWFsIDAgLS4yNWVtIDApO1xyXG4gICAgICAgIEBpbmNsdWRlIHNpemUoMCA0cHgpO1xyXG4gICAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCgjNUU5NERGLCAxKTtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAyNTBtcyAkZWFzZS1pbi1vdXQtcXVhZCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLnN1Ym5hdmlnYXRpb24ge1xuXG4gIC5zdWJuYXZpZ2F0aW9uX190b2dnbGUge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAuNHJlbSAxcmVtIG51bGwgbnVsbCk7XG4gICAgZm9udC1zaXplOiAwO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMjUwbXMgJGVhc2UtaW4tb3V0LXF1YWQpO1xuICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tYXJyb3ctLWRvd24sIDI0cHgsICRjb2xvci13aGl0ZSk7XG4gICAgfVxuICB9XG5cbiAgLnN1Ym5hdmlnYXRpb25fX2xpbmsge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBAaW5jbHVkZSBzaXplKDEwMCUgYXV0byk7XG4gICAgQGluY2x1ZGUgcGFkZGluZyguNWVtIDAgLjVlbSAxZW0pO1xuICAgIGNvbG9yOiAkY29sb3ItdGV4dC1pbnZlcnQ7XG4gICAgZm9udC1zaXplOiBlbSgxNCk7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgfVxuXG4gICYuc3VibmF2aWdhdGlvbi0tYWN0aXZlIHtcblxuICAgIC5zdWJuYXZpZ2F0aW9uX190b2dnbGUge1xuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIGNvbG9yOiAjY2NjO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDE4MGRlZykpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zdWJuYXZpZ2F0aW9uX19pbm5lciB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKG1heC1oZWlnaHQgNTAwbXMgJGVhc2UtaW4tb3V0LXF1YWQpO1xuICAgICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1xLWxhcC1kb3duKSB7XG5cbiAgICAuc3VibmF2aWdhdGlvbl9faW5uZXIge1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihtYXgtaGVpZ2h0IDI1MG1zICRlYXNlLWluLW91dC1xdWFkKTtcbiAgICAgIG1heC1oZWlnaHQ6IDA7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xuXG4gICAgLnN1Ym5hdmlnYXRpb25fX3RvZ2dsZSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIC5zdWJuYXZpZ2F0aW9uX19pbm5lciB7XG4gICAgICBoZWlnaHQ6IDA7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgb3ZlcmZsb3c6aGlkZGVuO1xuICAgIH1cblxuICAgIC5zdWJuYXZpZ2F0aW9uX19saXN0IHtcbiAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZChsaWdodGVuKCRjb2xvci1ncmV5LWRhcmssIDEwJSksIDEpO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICB9XG5cbiAgICAuc3VibmF2aWdhdGlvbl9faXRlbSB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XG4gICAgICBcbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCAwIDApO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSgwcHggMTAwJSk7XG4gICAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCgjY2NjLCAxKTtcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMTAwbXMgJGVhc2UtaW4tb3V0LXF1YWQpO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgQGluY2x1ZGUgc2l6ZSg0cHggMTAwJSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5mb3JtIHtcclxuXHJcbiAgJi5mb3JtLS1zZWFyY2gge1xyXG4gICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsICgkaGVpZ2h0LWhlYWRlci1wYWxtICsgLjVlbSkgMCBudWxsIDApO1xyXG4gICAgQGluY2x1ZGUgcGFkZGluZygxZW0gMWVtIG51bGwgMWVtKTtcclxuXHJcbiAgICAuZm9ybV9fZmllbGQge1xyXG5cclxuICAgICAgJi5mb3JtX19maWVsZC0tc2VhcmNoIHtcclxuXHJcbiAgICAgICAgLmZvcm1fX2lucHV0IHtcclxuICAgICAgICAgIEBpbmNsdWRlIHNpemUoMTAwJSAyZW0pO1xyXG4gICAgICAgICAgQGluY2x1ZGUgcGFkZGluZygwIDJlbSAwIC41ZW0pO1xyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZyguMWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgICAgICAgZm9udC1zaXplOiBlbSgxNCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmZvcm1fX2ZpZWxkLS1zdWJtaXQge1xyXG5cclxuICAgICAgICAuZm9ybV9fc3VibWl0IHtcclxuICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAxcmVtIDFyZW0gMXJlbSBudWxsKTtcclxuICAgICAgICAgIEBpbmNsdWRlIHNpemUoMnJlbSAycmVtKTtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMDtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgJjpiZWZvcmUge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1zZWFyY2gsIDI0cHgsICRjb2xvci10ZWFsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNDAwJSkpO1xyXG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgJGhlaWdodC1oZWFkZXItZGVzayAwIG51bGwgMTBweCk7XHJcbiAgICAgIEBpbmNsdWRlIHNpemUoMTAwJSAzZW0pO1xyXG4gICAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoJGNvbG9yLXRlYWwsIDEpO1xyXG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCA0MDBtcyAkZWFzZS1pbi1vdXQtcXVpbnQpO1xyXG4gICAgICB6LWluZGV4OiAtMTtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZyguNWVtIC41ZW0gLjVlbSAuNWVtKTtcclxuXHJcbiAgICAgIC5mb3JtX19maWVsZCB7XHJcblxyXG4gICAgICAgICYuZm9ybV9fZmllbGQtLXN1Ym1pdCB7XHJcblxyXG4gICAgICAgICAgLmZvcm1fX3N1Ym1pdCB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAuNXJlbSAuNXJlbSAuNXJlbSBudWxsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuZm9ybS0tc2lnbi1pbiB7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XHJcbiAgICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoZW0oNTAwKSk7XHJcblxyXG4gICAgLmZvcm1fX2lubmVyIHtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMWVtIG51bGwgMWVtKTtcclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9faGVhZGluZyB7XHJcbiAgICAgIEBpbmNsdWRlIHgtaGVhZGluZygxLCAnaW52ZXJ0ZWQnKTtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKC41ZW0gbnVsbCAuNWVtIG51bGwpO1xyXG4gICAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoJGNvbG9yLXRlYWwtZGFyaywgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm1fX2Zvcm0ge1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKDFlbSAxZW0gMWVtIDFlbSk7XHJcbiAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCgkY29sb3ItZ3JleS1saWdodCwgMSk7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm1fX2ZpZWxkIHtcclxuICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMS41ZW0gbnVsbCBudWxsIG51bGwpO1xyXG5cclxuICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuZm9ybV9fZmllbGQtLWZvcmdvdC1wYXNzd29yZCB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKC4yNWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgICBmb250LXNpemU6IGVtKDEyKTtcclxuXHJcbiAgICAgICAgLmZvcm1fX2xpbmsge1xyXG4gICAgICAgICAgY29sb3I6ICRjb2xvci10ZWFsLWRhcms7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmZvcm1fX2ZpZWxkLS1zaWduLWluIHtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oLjVlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9faW5wdXQge1xyXG4gICAgICAmW3R5cGU9dGV4dF0sXHJcbiAgICAgICZbdHlwZT1lbWFpbF0sXHJcbiAgICAgICZbdHlwZT1wYXNzd29yZF0ge1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBzaXplKDEwMCUgYXV0byk7XHJcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZygxZW0gLjVlbSAxZW0gLjVlbSk7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMTQpO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsLCAyNTBtcywgJGVhc2UtaW4tcXVpbnQpO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkY29sb3ItZ3JleS1saWdodDtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xyXG4gICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihjb2xvciwgMjUwbXMsICRlYXNlLWluLW91dC1xdWFkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIH4gLmZvcm1fX2xhYmVsIHtcclxuICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAtMS41ZW0gMCBudWxsIG51bGwpO1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXRlYWwtZGFyaztcclxuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSwgMjUwbXMsICRlYXNlLWluLW91dC1xdWFkKTtcclxuICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkY29sb3ItdGVhbC1kYXJrO1xyXG5cclxuICAgICAgICAgIH4gLmZvcm1fX2xhYmVsIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjp2YWxpZCB7XHJcblxyXG4gICAgICAgICAgfiAuZm9ybV9fbGFiZWwge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJlt0eXBlPXJhZGlvXSxcclxuICAgICAgJlt0eXBlPWNoZWNrYm94XSB7XHJcblxyXG4gICAgICAgIH4gLmZvcm1fX2xhYmVsIHtcclxuICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKCByZWxhdGl2ZSwgMXB4IG51bGwgbnVsbCBudWxsICk7XHJcbiAgICAgICAgICBmb250LXNpemU6IGVtKDE0KTtcclxuICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9fc3VibWl0IHtcclxuICAgICAgQGluY2x1ZGUgeC1idXR0b24oJGdseXBoLS1hcnJvdy0tcmlnaHQsIGZhbHNlLCAnZGFyaycpO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuZm9ybS0tcmVnaXN0ZXIge1xyXG4gICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xyXG4gICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKGVtKDc1MCkpO1xyXG4gICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIG51bGwgNWVtIG51bGwgKTtcclxuXHJcbiAgICAuZm9ybV9faW5uZXIge1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAxZW0gbnVsbCAxZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtX19oZWFkaW5nIHtcclxuICAgICAgQGluY2x1ZGUgeC1oZWFkaW5nKDEsICdpbnZlcnRlZCcpO1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoLjVlbSBudWxsIC41ZW0gbnVsbCk7XHJcbiAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCgkY29sb3ItdGVhbC1kYXJrLCAxKTtcclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9fY29weSB7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMWVtIDFlbSAwIDFlbSk7XHJcbiAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCgkY29sb3ItZ3JleS1saWdodCwgMSk7XHJcblxyXG4gICAgICBwIHtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtX19mb3JtIHtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZygxZW0gMWVtIDFlbSAxZW0pO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtX19maWVsZCB7XHJcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcblxyXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5mb3JtX19maWVsZC0tZm9yZ290LXBhc3N3b3JkIHtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oLjI1ZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMTIpO1xyXG5cclxuICAgICAgICAuZm9ybV9fbGluayB7XHJcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXRlYWwtZGFyaztcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuZm9ybV9fZmllbGQtLXNpZ24taW4ge1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbiguNWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgJi5mb3JtX19maWVsZC0tb3RoZXIge1xyXG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9fZmllbGRzZXQge1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMmVtIG51bGwgbnVsbCBudWxsKTtcclxuXHJcbiAgICAgICY6Zmlyc3QtY2hpbGQge1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm1fX2xlZ2VuZCB7XHJcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm1fX2lucHV0IHtcclxuICAgICAgJlt0eXBlPXRleHRdLFxyXG4gICAgICAmW3R5cGU9ZW1haWxdLFxyXG4gICAgICAmW3R5cGU9cGFzc3dvcmRdIHtcclxuXHJcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSgxMDAlIGF1dG8pO1xyXG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMWVtIC41ZW0gMWVtIC41ZW0pO1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbiguNWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQ7XHJcbiAgICAgICAgZm9udC1zaXplOiBlbSgxNCk7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsIDI1MG1zLCAkZWFzZS1pbi1xdWludCk7XHJcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRjb2xvci1ncmV5LWxpZ2h0O1xyXG5cclxuICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XHJcbiAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGNvbG9yLCAyNTBtcywgJGVhc2UtaW4tb3V0LXF1YWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgfiAuZm9ybV9fbGFiZWwge1xyXG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIC0xZW0gMCBudWxsIG51bGwpO1xyXG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXRlYWwtZGFyaztcclxuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSwgMjUwbXMsICRlYXNlLWluLW91dC1xdWFkKTtcclxuICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkY29sb3ItdGVhbC1kYXJrO1xyXG5cclxuICAgICAgICAgIH4gLmZvcm1fX2xhYmVsIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XHJcbiAgICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgJjp2YWxpZCB7XHJcblxyXG4gICAgICAgICAgfiAuZm9ybV9fbGFiZWwge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgJlt0eXBlPXJhZGlvXSxcclxuICAgICAgJlt0eXBlPWNoZWNrYm94XSB7XHJcblxyXG4gICAgICAgIH4gLmZvcm1fX2xhYmVsIHtcclxuICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKCByZWxhdGl2ZSwgMXB4IG51bGwgbnVsbCBudWxsICk7XHJcbiAgICAgICAgICBmb250LXNpemU6IGVtKDE0KTtcclxuICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuZm9ybV9faW5wdXQtLXNlbGVjdCB7XHJcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG4gICAgICAgIEBpbmNsdWRlIHNpemUoMTAwJSBhdXRvKTtcclxuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKDFlbSAuNWVtIDFlbSAuNWVtKTtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oLjVlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMTQpO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsLCAyNTBtcywgJGVhc2UtaW4tcXVpbnQpO1xyXG4gICAgICAgIGJvcmRlcjogbm9uZTtcclxuICAgICAgICBib3JkZXItYm90dG9tOiAzcHggc29saWQgJGNvbG9yLWdyZXktbGlnaHQ7XHJcbiAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMDtcclxuICAgICAgfVxyXG5cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9fc3VibWl0IHtcclxuICAgICAgQGluY2x1ZGUgeC1idXR0b24oJGdseXBoLS1hcnJvdy0tcmlnaHQsIGZhbHNlLCAnZGFyaycpO1xyXG4gICAgICB3aWR0aDogMTAwJTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG5cclxuICAgICAgLmZvcm1fX2lubmVyIHtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAwIG51bGwgMCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuZm9ybS0tcHJvZHVjdCB7XHJcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nKCAyLjVlbSBudWxsIDRlbSBudWxsICk7XHJcbiAgICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoZW0oNzUwKSk7XHJcblxyXG4gICAgLmZvcm1fX2lubmVyIHtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMWVtIG51bGwgMWVtKTtcclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9fY29weSB7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMWVtIDFlbSAwIDFlbSk7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHJcbiAgICAgIHAge1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogZW0oIDIwICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9fZm9ybSB7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMWVtIDFlbSAxZW0gMWVtKTtcclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9fZmllbGQge1xyXG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xyXG5cclxuICAgICAgJjpmaXJzdC1jaGlsZCB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuZm9ybV9fZmllbGQtLWZvcmdvdC1wYXNzd29yZCB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKC4yNWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgICBmb250LXNpemU6IGVtKDEyKTtcclxuXHJcbiAgICAgICAgLmZvcm1fX2xpbmsge1xyXG4gICAgICAgICAgY29sb3I6ICRjb2xvci10ZWFsLWRhcms7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAmLmZvcm1fX2ZpZWxkLS1zaWduLWluIHtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oLjVlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgICYuZm9ybV9fZmllbGQtLW90aGVyIHtcclxuICAgICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm1fX2ZpZWxkc2V0IHtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKDJlbSBudWxsIG51bGwgbnVsbCk7XHJcblxyXG4gICAgICAmOmZpcnN0LWNoaWxkIHtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtX19sZWdlbmQge1xyXG4gICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtX19pbnB1dCB7XHJcbiAgICAgICZbdHlwZT10ZXh0XSxcclxuICAgICAgJlt0eXBlPWVtYWlsXSxcclxuICAgICAgJlt0eXBlPXBhc3N3b3JkXSB7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHNpemUoMTAwJSBhdXRvKTtcclxuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKDFlbSAuNWVtIDFlbSAuNWVtKTtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oLjVlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgICAgY29sb3I6ICRjb2xvci10ZXh0O1xyXG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMTQpO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsLCAyNTBtcywgJGVhc2UtaW4tcXVpbnQpO1xyXG4gICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkY29sb3ItZ3JleS1saWdodDtcclxuICAgICAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoICRjb2xvci1ncmV5LWxpZ2h0LCAxICk7XHJcblxyXG4gICAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcclxuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IsIDI1MG1zLCAkZWFzZS1pbi1vdXQtcXVhZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB+IC5mb3JtX19sYWJlbCB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgLTFlbSAwIG51bGwgbnVsbCk7XHJcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGVhbDtcclxuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSwgMjUwbXMsICRlYXNlLWluLW91dC1xdWFkKTtcclxuICAgICAgICAgIHRleHQtYWxpZ246IHJpZ2h0O1xyXG4gICAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcclxuICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkY29sb3ItdGVhbDtcclxuICAgICAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCggJGNvbG9yLWdyZXktbGlnaHQsIDAgKTtcclxuXHJcbiAgICAgICAgICB+IC5mb3JtX19sYWJlbCB7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xyXG4gICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6dmFsaWQge1xyXG5cclxuICAgICAgICAgIH4gLmZvcm1fX2xhYmVsIHtcclxuICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9fc3VibWl0IHtcclxuICAgICAgQGluY2x1ZGUgeC1idXR0b24oJGdseXBoLS1hcnJvdy0tcmlnaHQsIGZhbHNlKTtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm1fX2J1dHRvbiB7XHJcbiAgICAgIEBpbmNsdWRlIHgtYnV0dG9uKCRnbHlwaC0tYXJyb3ctLXJpZ2h0LCBmYWxzZSk7XHJcbiAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcclxuXHJcbiAgICAgIC5mb3JtX19mb3JtIHtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCA0ZW0gbnVsbCA0ZW0pO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuZm9ybV9fc3VibWl0IHtcclxuICAgICAgICBAaW5jbHVkZSBzaXplKCA0OCUgYXV0byApO1xyXG4gICAgICAgIGZsb2F0OiBsZWZ0O1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuZm9ybV9fYnV0dG9uIHtcclxuICAgICAgICBAaW5jbHVkZSBzaXplKCA0OCUgYXV0byApO1xyXG4gICAgICAgIGZsb2F0OiByaWdodDtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XHJcblxyXG4gICAgICAuZm9ybV9faW5uZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgbnVsbCAwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5mb3JtLS1zcGx1bmsge1xyXG5cclxuICAgIC5mb3JtX19pbnB1dCB7XHJcbiAgICAgICZbdHlwZT10ZXh0XSxcclxuICAgICAgJlt0eXBlPWVtYWlsXSxcclxuICAgICAgJlt0eXBlPXBhc3N3b3JkXSB7XHJcblxyXG4gICAgICAgIH4gLmZvcm1fX2xhYmVsIHtcclxuICAgICAgICAgIGNvbG9yOiAkY29sb3ItYmxhY2s7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkY29sb3ItYmxhY2s7XHJcbiAgICAgICAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoICRjb2xvci1ncmV5LWxpZ2h0LCAwICk7XHJcblxyXG4gICAgICAgICAgfiAuZm9ybV9fbGFiZWwge1xyXG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcclxuICAgICAgICAgICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAmOnZhbGlkIHtcclxuXHJcbiAgICAgICAgICB+IC5mb3JtX19sYWJlbCB7XHJcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmZvcm1fX3N1Ym1pdCB7XHJcbiAgICAgIEBpbmNsdWRlIHgtYnV0dG9uKCRnbHlwaC0tYXJyb3ctLXJpZ2h0LCBmYWxzZSk7XHJcbiAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCggIzAwMCwgMSApO1xyXG4gICAgICB3aWR0aDogNDglO1xyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtX19idXR0b24ge1xyXG4gICAgICBAaW5jbHVkZSB4LWJ1dHRvbigkZ2x5cGgtLWFycm93LS1yaWdodCwgZmFsc2UpO1xyXG4gICAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoICMwMDAsIDEgKTtcclxuICAgICAgd2lkdGg6IDQ4JTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuZm9ybS0tc3BsaXQge1xyXG5cclxuICAgIC5mb3JtX19mb3JtIHtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZygwIDAgMCAwKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwLWRvd24pIHsgXHJcblxyXG4gICAgICAucHJvZ3Jlc3Mge1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbigtMi41ZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuICAgICAgbWF4LXdpZHRoOiBub25lOyBcclxuXHJcbiAgICAgIC5mb3JtX19mb3JtIHtcclxuICAgICAgICBwYWRkaW5nOiAwO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuZm9ybV9fZmllbGRzZXQge1xyXG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMWVtIDFlbSAxZW0gMWVtKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLmZvcm1fX3JlZ2lvbiB7XHJcblxyXG4gICAgICAgICY6bnRoLWNoaWxkKDEpIHtcclxuICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMik7XHJcblxyXG4gICAgICAgICAgLmZvcm1fX2ZpZWxkc2V0IHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgcGFkZGluZygwIDAgMCAwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bnRoLWNoaWxkKDIpIHtcclxuICAgICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoNWVtIG51bGwgNWVtIG51bGwpO1xyXG4gICAgICAgICAgQGluY2x1ZGUgc2hpZnQoMSk7XHJcbiAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTEpO1xyXG4gICAgICAgICAgQGluY2x1ZGUgb21lZ2E7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuZm9ybV9fZmllbGQge1xyXG5cclxuICAgICAgICAmLmZvcm1fX2ZpZWxkLS1zdWJtaXQge1xyXG4gICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDAgbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIDFlbSBudWxsIDFlbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcblxyXG4gICAgICAuZm9ybV9fc3VibWl0IHtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oLjVlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuZm9ybS0tbmV3c2xldHRlciB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMi41ZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICBiYWNrZ3JvdW5kOiBsaWdodGVuKCRjb2xvci1ncmV5LWxpZ2h0LCAzJSk7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMS43NWVtIDEuNzVlbSAxLjc1ZW0gMS43NWVtKTtcclxuXHJcbiAgICAgIC5mb3JtX19oZWFkaW5nIHtcclxuICAgICAgICBmb250LXdlaWdodDogNzAwO1xyXG4gICAgICAgIGZvbnQtc2l6ZTogZW0oMTgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuZm9ybV9fY29weSB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKCAxZW0gbnVsbCBudWxsIG51bGwgKTtcclxuICAgICAgICBmb250LXNpemU6IGVtKCAxNCApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuZm9ybV9fZm9ybSB7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5mb3JtX19maWVsZCB7XHJcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oIHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5mb3JtX19pbnB1dCB7XHJcbiAgICAgICAgJlt0eXBlPXRleHRdLFxyXG4gICAgICAgICZbdHlwZT1lbWFpbF0sXHJcbiAgICAgICAgJlt0eXBlPXBhc3N3b3JkXSB7XHJcblxyXG4gICAgICAgICAgQGluY2x1ZGUgc2l6ZSgxMDAlIGF1dG8pO1xyXG4gICAgICAgICAgQGluY2x1ZGUgcGFkZGluZygxZW0gLjVlbSAxZW0gLjVlbSk7XHJcbiAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4oLjVlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgICAgICBjb2xvcjogJGNvbG9yLXRleHQ7XHJcbiAgICAgICAgICBmb250LXNpemU6IGVtKDE0KTtcclxuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsLCAyNTBtcywgJGVhc2UtaW4tcXVpbnQpO1xyXG4gICAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRjb2xvci1ncmV5LWxpZ2h0O1xyXG4gICAgICAgICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCAkY29sb3Itd2hpdGUsIDEgKTtcclxuXHJcbiAgICAgICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IsIDI1MG1zLCAkZWFzZS1pbi1vdXQtcXVhZCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgfiAuZm9ybV9fbGFiZWwge1xyXG4gICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgLTFlbSAwIG51bGwgbnVsbCk7XHJcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICAgICAgICBjb2xvcjogJGNvbG9yLXRlYWw7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSwgMjUwbXMsICRlYXNlLWluLW91dC1xdWFkKTtcclxuICAgICAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XHJcbiAgICAgICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XHJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDtcclxuICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAmOmZvY3VzIHtcclxuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRjb2xvci10ZWFsO1xyXG5cclxuICAgICAgICAgICAgfiAuZm9ybV9fbGFiZWwge1xyXG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHBsYWNlaG9sZGVyIHtcclxuICAgICAgICAgICAgICBjb2xvcjogI2ZmZmZmZjtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICY6dmFsaWQge1xyXG5cclxuICAgICAgICAgICAgfiAuZm9ybV9fbGFiZWwge1xyXG4gICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5mb3JtX19zdWJtaXQge1xyXG4gICAgICAgIGZvbnQtc2l6ZTogZW0oIDE0ICk7XHJcbiAgICAgICAgQGluY2x1ZGUgeC1idXR0b24obm9uZSwgZmFsc2UpO1xyXG4gICAgICAgIHdpZHRoOiAxMDAlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgJi5mb3JtLS1zaW5nbGUtbGluZSB7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgbnVsbCAxMGVtIG51bGwpO1xyXG5cclxuICAgIC5mb3JtX19pbm5lciB7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgQGluY2x1ZGUgeC1jb250YWluZXIoMTAwMHB4KTtcclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9fZm9ybSB7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMGVtIDBlbSAwZW0gMGVtKTtcclxuICAgIH1cclxuXHJcbiAgICAuZm9ybV9fZmllbGQge1xyXG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigxLjVlbSBudWxsIG51bGwgbnVsbCk7XHJcblxyXG4gICAgICAmLmZvcm1fX2ZpZWxkLS1zaW5nbGUtbGluZSB7XHJcblx0ICAgICAgYm9yZGVyOiAxcHggc29saWQ7XHJcblx0XHQgIGhlaWdodDogMzBweDtcclxuXHRcdCAgd2lkdGg6IDgwJTtcclxuXHRcdCAgcGFkZGluZy1yaWdodDogMTAwcHg7XHJcblx0IH1cclxuXHJcbiAgICAgICYuZm9ybV9fZmllbGQtLXNpbmdsZS1saW5lLWJ1dHRvbiB7XHJcblx0ICAgICAgYm9yZGVyOiAxcHggc29saWQ7XHJcblx0XHQgIGhlaWdodDogMzBweDtcclxuXHRcdCAgd2lkdGg6IDEwMHB4O1xyXG5cdFx0ICBwYWRkaW5nLWxlZnQ6IC0xMDBweDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIubWVudSB7XG5cbiAgJi5tZW51LS1sb25naXR1ZGUge1xuXG4gICAgLm1lbnVfX2xpc3Qge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyggMWVtIG51bGwgMWVtIG51bGwgKTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubWVudV9faXRlbSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG5cbiAgICAubWVudV9fbGluayB7XG4gICAgICBjb2xvcjogJGNvbG9yLXRlYWw7XG4gICAgICBmb250LXNpemU6IGVtKDIwKTtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyggLjVlbSBudWxsIC41ZW0gbnVsbCApO1xuXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tYXJyb3ctLXJpZ2h0LCAyOHB4LCAkY29sb3ItdGVhbCk7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCA0cHggbnVsbCBudWxsIDJweCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoICRtcS1kZXNrICkge1xuXG4gICAgICAubWVudV9faXRlbSB7XG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbiggbnVsbCAxLjVlbSBudWxsIDEuNWVtICk7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLm1lbnUtLWhlYWRlciB7XG5cbiAgICAubWVudV9faXRlbSB7XG5cbiAgICAgICY6bnRoLWNoaWxkKDEpIHtcblxuICAgICAgICAubWVudV9fbGluayB7XG4gICAgICAgICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCRjb2xvci1vcmFuZ2UpO1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1vcmFuZ2U7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQoMikge1xuXG4gICAgICAgIC5tZW51X19saW5rIHtcbiAgICAgICAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoJGNvbG9yLWJsYWNrKTtcbiAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItYmxhY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWVudV9fbGluayB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIEBpbmNsdWRlIG1hcmdpbiguNWVtIDFlbSAuNWVtIDFlbSk7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKC41ZW0gMWVtIC41ZW0gMWVtKTtcbiAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1pbnZlcnQ7XG4gICAgICBmb250LXdlaWdodDogNDAwO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMTAwbXMgJGVhc2UtaW4tb3V0LXF1YWQpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXAtZG93bikge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCRjb2xvci1ncmV5LWRhcmspO1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIG51bGwgbnVsbCAxZW0pO1xuXG4gICAgICAubWVudV9faW5uZXIge1xuICAgICAgICBAaW5jbHVkZSBzaXplKGF1dG8gJGhlaWdodC1oZWFkZXItZGVzayk7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gICAgICB9XG5cbiAgICAgIC5tZW51X19pdGVtIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMCAuNWVtIDAgLjVlbSk7XG5cbiAgICAgICAgJjpob3ZlciB7XG5cbiAgICAgICAgICAmOm50aC1jaGlsZCgxKSB7XG5cbiAgICAgICAgICAgIC5tZW51X19saW5rIHtcbiAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgbGlnaHRlbigkY29sb3Itb3JhbmdlLCAyMCUpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgICY6bnRoLWNoaWxkKDIpIHtcblxuICAgICAgICAgICAgLm1lbnVfX2xpbmsge1xuICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBsaWdodGVuKCRjb2xvci1ibGFjaywgMjAlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLm1lbnVfX2xpbmsge1xuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oMCAwIDAgMCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5tZW51LS1mb290ZXIge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcbiAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcblxuICAgIC5tZW51X19saXN0IHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubWVudV9faXRlbSB7XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xuXG4gICAgICAgIC5tZW51X19saW5rIHtcbiAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAubWVudV9fbGluayB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBjb2xvcjogJGNvbG9yLXRleHQtaW52ZXJ0O1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcblxuICAgICAgLm1lbnVfX2l0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGNvbnRlbnQ6ICd8JztcbiAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgLjVlbSBudWxsIC41ZW0pO1xuICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGV4dC1pbnZlcnQ7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG5cbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYubWVudS0tc29jaWFsIHtcblxuICAgIC5tZW51X19saXN0IHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAubWVudV9faXRlbSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICYubWVudV9faXRlbS0tZmFjZWJvb2sge1xuXG4gICAgICAgIC5tZW51X19saW5rIHtcblxuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLWZhY2Vib29rLCAyNHB4LCAkY29sb3ItdGV4dC1pbnZlcnQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLm1lbnVfX2l0ZW0tLXR3aXR0ZXIge1xuXG4gICAgICAgIC5tZW51X19saW5rIHtcblxuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLXR3aXR0ZXIsIDI0cHgsICRjb2xvci10ZXh0LWludmVydCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubWVudV9faXRlbS0tZ29vZ2xlcGx1cyB7XG5cbiAgICAgICAgLm1lbnVfX2xpbmsge1xuXG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tZ29vZ2xlLXBsdXMsIDI0cHgsICRjb2xvci10ZXh0LWludmVydCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubWVudV9faXRlbS0tZW1haWwge1xuXG4gICAgICAgIC5tZW51X19saW5rIHtcblxuICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLW1haWwsIDI0cHgsICRjb2xvci10ZXh0LWludmVydCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLm1lbnVfX2xpbmsge1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAwO1xuXG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCAuMjVlbSBudWxsIC4yNWVtKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLm1lbnUtLWFib3V0LXVzIHtcbiAgICBAaW5jbHVkZSBtZW51KGludGVybmFsKTtcbiAgfVxuXG4gICYubWVudS0taGVscCB7XG4gICAgQGluY2x1ZGUgbWVudShpbnRlcm5hbCk7XG5cbiAgICAubWVudV9faXRlbSB7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tZm9sZGVyLCAxOHB4LCAkY29sb3ItdGVhbC1kYXJrKTtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIDJweCBudWxsIG51bGwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgICYubWVudV9faXRlbS0tdG9nZ2xlZCB7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLWZvbGRlci0tb3BlbiwgMThweCwgJGNvbG9yLXRlYWwtZGFyayk7XG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIDJweCBudWxsIG51bGwgbnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICAuc3VibWVudSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gXG59XG5cblxuICBcbi5yZXNvdXJjZXMge1xuXHRtYXJnaW46IDE1NXB4IDAgMCAxNXB4O1xuXHRwYWRkaW5nOiAyMHB4IDVweCAyMHB4IDE1cHg7XG5cdGJhY2tncm91bmQtY29sb3I6ICNmYWZhZmE7XG5cdGZvbnQtZmFtaWx5OiAnT3Blbi1TYW5zJywgc2Fucy1zZXJpZjtcblxuXHR0YWJsZSB7XG5cdFx0dGFibGUtbGF5b3V0OiBmaXhlZDtcblx0XHRcblx0XHR0ciB0ZCB7IHBhZGRpbmc6IDEwcHg7IH1cblx0fVxuXHRcblx0aDMgeyBjb2xvcjogYmxhY2s7IFxuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7XG5cdFx0YSB7IGNvbG9yOiBibGFjazsgfVxuXHR9XG5cdFxuXHR1bCBsaSB7XG5cdFx0cGFkZGluZy10b3A6IDE1cHg7XG5cdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdGNvbG9yOiAjNTg5MGUzO1xuXHRcdFx0YSB7IGNvbG9yOiAjNTg5MGUzOyB9XG5cdFx0XG5cdFx0dWwgbGkge1xuXHRcdFx0cGFkZGluZy1sZWZ0OiAxNXB4O1xuXHRcdFx0cGFkZGluZy10b3A6IDVweDtcblx0XHRcdGZvbnQtc2l6ZTogMTRweDtcblx0XHR9XG5cdH1cblx0XG5cdEBtZWRpYSAobWF4LXdpZHRoOiAxMDAwcHgpIHtcblx0XHRtYXJnaW46IDAgMCAwIDIwcHg7XG5cdFx0XG5cdFx0dGFibGUgdHIgdGQgeyBkaXNwbGF5OiBibG9jazsgcGFkZGluZzogNXB4O31cblx0XHR0YWJsZSB0ciB0aCB7IGRpc3BsYXk6IG5vbmU7IH1cblx0fVxuICB9XG5cbiIsIi5zdWJtZW51IHtcblxuICAmLnN1Ym1lbnUtLWhlbHAge1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAuc3VibWVudV9faXRlbSB7XG5cbiAgICAgICYuc3VibWVudV9faXRlbS0tYWN0aXZlIHtcblxuICAgICAgICAuc3VibWVudV9fbGluayB7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnN1Ym1lbnVfX2l0ZW0tLXRvZ2dsZWQsICYuc3VibWVudV9faXRlbS0tYWN0aXZlIHtcblxuICAgICAgICAuc3Vic3VibWVudSB7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc3VibWVudV9fbGluayB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKC41ZW0gbnVsbCAuNWVtIG51bGwpO1xuICAgICAgY29sb3I6ICRjb2xvci10ZWFsLWRhcms7XG4gICAgICBmb250LXNpemU6IGVtKDE0KTtcbiAgICB9XG4gIH1cbn1cbiIsIi5zdWJzdWJtZW51IHtcclxuXHJcbiAgJi5zdWJzdWJtZW51LS1oZWxwIHtcclxuICAgIGRpc3BsYXk6IG5vbmU7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgbnVsbCBudWxsIC41ZW0pO1xyXG5cclxuICAgIC5zdWJzdWJtZW51X19pdGVtIHtcclxuXHJcbiAgICAgICYuc3Vic3VibWVudV9faXRlbS0tYWN0aXZlIHtcclxuXHJcbiAgICAgICAgLnN1YnN1Ym1lbnVfX2xpbmsge1xyXG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc3Vic3VibWVudV9fbGluayB7XHJcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZyguNWVtIG51bGwgLjVlbSBudWxsKTtcclxuICAgICAgY29sb3I6ICRjb2xvci10ZWFsLWRhcms7XHJcbiAgICAgIGZvbnQtc2l6ZTogZW0oMTMpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5zdWJzdWJtZW51LS1hY3RpdmUge1xyXG4gICAgZGlzcGxheTogYmxvY2s7XHJcbiAgfVxyXG59XHJcbiIsIi5jYXJvdXNlbCB7XG4gIEBpbmNsdWRlIHBhZGRpbmcoMi41ZW0gbnVsbCAyLjVlbSBudWxsKTtcbiAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCAjMDAwLCAxICk7XG5cbiAgLmNhcm91c2VsX19pbm5lciB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xuICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcig4MCUpO1xuICB9XG5cbiAgLmNhcm91c2VsX19idXR0b24ge1xuICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcbiAgICBmb250LXNpemU6IDA7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAxNTBtcyAkZWFzZS1pbi1vdXQtcXVhZCk7XG4gICAgfVxuXG4gICAgJi5jYXJvdXNlbF9fYnV0dG9uLS1wcmV2aW91c3tcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgbnVsbCBudWxsIC00MHB4KTtcbiAgICAgIFxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1hcnJvdy0tbGVmdCwgNTBweCwgJGNvbG9yLWdyZXkpO1xuICAgICAgfVxuXG4gICAgICAmOmhvdmVyIHtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgY29sb3I6ICRjb2xvci10ZWFsO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5jYXJvdXNlbF9fYnV0dG9uLS1uZXh0IHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgLTQwcHggbnVsbCBudWxsKTtcbiAgICAgIFxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1hcnJvdy0tcmlnaHQsIDUwcHgsICRjb2xvci1ncmV5KTtcbiAgICAgIH1cblxuICAgICAgJjpob3ZlciB7XG5cbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgIGNvbG9yOiAkY29sb3ItdGVhbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5zbGljay1zbGlkZSB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gIC5zbGljay1kb3RzIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgICAgICYuc2xpY2stYWN0aXZlLFxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIFxuICAgICAgICBidXR0b24ge1xuXG4gICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yLXRlYWw7XG4gICAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci10ZWFsO1xuICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMTUwbXMgJGVhc2UtaW4tb3V0LXF1YWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGJ1dHRvbiB7XG4gICAgICBmb250LXNpemU6IDA7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgMnB4IG51bGwgMnB4KTtcblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBjb250ZW50OiAnJztcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItZ3JleTtcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSgxMHB4IDEwcHgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jYXJvdXNlbF9fY3RhIHtcbiAgICBAaW5jbHVkZSB4LWJ1dHRvbigkZ2x5cGgtLWFycm93LS1kb3duLCB0cnVlKTsgXG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XG5cbiAgICAuY2Fyb3VzZWxfX2J1dHRvbiB7XG5cbiAgICAgICYuY2Fyb3VzZWxfX2J1dHRvbi0tcHJldmlvdXMge1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBmb250LXNpemU6IDcwcHg7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5jYXJvdXNlbF9fYnV0dG9uLS1uZXh0IHtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgZm9udC1zaXplOiA3MHB4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcblxuICAgIC5jYXJvdXNlbF9fYnV0dG9uIHtcblxuICAgICAgJi5jYXJvdXNlbF9fYnV0dG9uLS1wcmV2aW91cyB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCBudWxsIG51bGwgbnVsbCAtODBweCk7XG4gICAgICB9XG5cbiAgICAgICYuY2Fyb3VzZWxfX2J1dHRvbi0tbmV4dCB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCBudWxsIC04MHB4IG51bGwgbnVsbCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIuc2xpZGUge1xuXG4gIC5zbGlkZV9faW5uZXIge1xuICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcig1MDBweCk7XG4gIH1cblxuICAuc2xpZGVfX2hlYWRpbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgZm9udC1zaXplOiBlbSgyNCk7XG4gICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICBjb2xvcjogJGNvbG9yLWdyZXktZGFyaztcbiAgfVxuXG4gIC5zbGlkZV9fY29weSB7XG4gICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIDFlbSBudWxsKTtcbiAgICBAaW5jbHVkZSB4LWNvcHk7XG4gICAgY29sb3I6ICRjb2xvci10ZXh0LWludmVydDtcbiAgfVxuXG4gIC5zbGlkZV9fY3RhIHtcblxuICAgIEBpbmNsdWRlIHgtYnV0dG9uKCRnbHlwaC0tYXJyb3ctLXJpZ2h0LCB0cnVlKTtcbiAgfVxuXG4gIC5zbGlkZV9fZmlndXJlIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuc2xpZGVfX2xpbmsge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgfVxuXG4gIC5zbGlkZV9faW1hZ2Uge1xuICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICB9XG5cbiAgLnNsaWRlX19jb250ZW50IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBpbWcge1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIH1cblxuICAgIGgyIHtcbiAgICAgIGZvbnQtc2l6ZTogZW0oIDI4ICk7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgICB9XG5cbiAgICBlbSB7XG4gICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICBAaW5jbHVkZSBtYXJnaW4oIC41ZW0gbnVsbCAuNWVtIG51bGwgKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XG5cbiAgICAuc2xpZGVfX2NvbnRlbnQge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICBpbWcge1xuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oIG51bGwgYXV0byBudWxsIGF1dG8gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2xpZGVfX2hlYWRpbmcge1xuICAgICAgZm9udC1zaXplOiBlbSgzMik7XG4gICAgfVxuXG4gICAgLnNsaWRlX19jdGEge1xuICAgICAgQGluY2x1ZGUgeC1idXR0b24oJGdseXBoLS1hcnJvdy0tcmlnaHQsIGZhbHNlKTtcbiAgICB9XG5cbiAgICAuc2xpZGVfX2ltYWdlIHtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigyZW0gbnVsbCBudWxsIG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XG5cbiAgICAuc2xpZGVfX2lubmVyIHtcbiAgICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigxMDAwcHgpO1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xuICAgICAgQGluY2x1ZGUgc2l6ZSgxMDAlIDMwMHB4KTtcbiAgICB9XG5cbiAgICAuc2xpZGVfX2NvbnRlbnQge1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgMCBudWxsIG51bGwpO1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIDFlbSBudWxsIG51bGwpO1xuICAgICAgQGluY2x1ZGUgc2l6ZSg2MCUgYXV0byk7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbiggbnVsbCAwIG51bGwgMCApO1xuICAgICAgfVxuXG4gICAgICBoMSB7XG4gICAgICAgIGZvbnQtc2l6ZTogZW0oIDM2ICk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICB9XG5cbiAgICAgIGgyIHtcbiAgICAgICAgZm9udC1zaXplOiBlbSggMzYgKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuc2xpZGVfX2ZpZ3VyZSB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIG51bGwgbnVsbCAwKTtcbiAgICAgIEBpbmNsdWRlIHNpemUoNDAlIGF1dG8pO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xuICAgIH1cbiAgfVxuXG4gICYuc2xpZGUtLW5vLWltYWdlIHtcbiAgICBcbiAgICBAaW5jbHVkZSBtZWRpYSggJG1xLWRlc2sgKSB7XG5cbiAgICAgIC5zbGlkZV9fZmlndXJlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cblxuICAgICAgLnNsaWRlX19jb250ZW50IHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbiggYWJzb2x1dGUsIDUwJSAwIG51bGwgMCApO1xuICAgICAgICBAaW5jbHVkZSBzaXplKCAxMDAlIGF1dG8gKTtcblxuICAgICAgICBpbWcge1xuICAgICAgICAgIEBpbmNsdWRlIG1hcmdpbiggbnVsbCBhdXRvIG51bGwgYXV0byApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5ob21lIHtcblxuICBAaW5jbHVkZSBtZWRpYSggJG1xLWRlc2sgKSB7XG5cbiAgICAuc2xpZGUge1xuXG4gICAgICAuc2xpZGVfX2lubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSgxMDAlIDQwMHB4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5jb2xsZWN0aW9uIHtcclxuXHJcbiAgJi5jb2xsZWN0aW9uLS1wbGFucyB7XHJcbiAgICBAaW5jbHVkZSBjb2xsZWN0aW9uKHNsaWNrKTtcclxuICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCgkY29sb3ItZ3JleS1saWdodCwgMSk7XHJcblxyXG4gICAgLmNvbGxlY3Rpb25fX2N0YSB7XHJcbiAgICAgIEBpbmNsdWRlIHgtYnV0dG9uKG5vbmUsIHRydWUsIGludmVydGVkKTtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKDIuNWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgZGlzcGxheTogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgbnVsbCAwIG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5jb2xsZWN0aW9uLS1wbGFuLWRlc2NyaXB0aW9ucyB7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nKDIuNWVtIG51bGwgMi41ZW0gbnVsbCk7XHJcbiAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoJGNvbG9yLWdyZXktbGlnaHQsIDEpO1xyXG5cclxuICAgIC5jb2xsZWN0aW9uX19pbm5lciB7XHJcbiAgICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigxMDAwcHgpO1xyXG4gICAgfVxyXG5cclxuICAgIC5jb2xsZWN0aW9uX19jdGEge1xyXG4gICAgICBkaXNwbGF5OiBub25lO1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCBudWxsIDVlbSBudWxsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuY29sbGVjdGlvbi0tdGVzdGltb25pYWxzIHtcclxuICAgIEBpbmNsdWRlIHBhZGRpbmcoLjVlbSBudWxsIC41ZW0gbnVsbCk7XHJcblxyXG4gICAgLmNvbGxlY3Rpb25fX2l0ZW0ge1xyXG4gICAgICBoZWlnaHQ6IDM1MHB4O1xyXG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xyXG5cclxuICAgICAgLmNvbGxlY3Rpb25fX2l0ZW0ge1xyXG4gICAgICAgIEBpbmNsdWRlIHNpemUoYXV0byAyNTBweCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKC41ZW0gbnVsbCAuNWVtIG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5jb2xsZWN0aW9uLS1yZWNlbnQtbmV3cyB7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nKDIuNWVtIG51bGwgNWVtIG51bGwpO1xyXG5cclxuICAgIC5jb2xsZWN0aW9uX19oZWFkaW5nIHtcclxuICAgICAgQGluY2x1ZGUgeC1oZWFkaW5nKHBhZ2UpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuY29sbGVjdGlvbl9faW5uZXIge1xyXG4gICAgICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoODAlKTtcclxuICAgIH1cclxuXHJcbiAgICAuY29sbGVjdGlvbl9faXRlbSB7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigyLjVlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuICAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDEwMDBweCk7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMCBudWxsIG51bGwgbnVsbCk7XHJcblxyXG4gICAgICAuY29sbGVjdGlvbl9faGVhZGluZyB7XHJcbiAgICAgICAgZm9udC1zaXplOiBlbSgzMik7XHJcblx0XHRwYWRkaW5nLXRvcDogMDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5jb2xsZWN0aW9uLS1mb2N1cy1hcmVhcyB7XHJcbiAgICBAaW5jbHVkZSBwYWRkaW5nKDIuNWVtIG51bGwgMi41ZW0gbnVsbCk7XHJcblxyXG4gICAgLmNvbGxlY3Rpb25fX2l0ZW0ge1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMi41ZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcclxuICAgIH1cclxuXHJcbiAgICAuY29sbGVjdGlvbl9faW5uZXIge1xyXG4gICAgICBAaW5jbHVkZSB4LWNvbnRhaW5lcigxMDAwcHgpO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuY29sbGVjdGlvbl9faGVhZGluZyB7XHJcbiAgICAgIEBpbmNsdWRlIHgtaGVhZGluZyhwYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICAmOmFmdGVyIHtcclxuICAgICAgY29udGVudDogJyc7XHJcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xyXG4gICAgICBAaW5jbHVkZSBzaXplKDkwJSAxcHgpO1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCBhdXRvIG51bGwgYXV0byk7XHJcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBkYXNoZWQgJGNvbG9yLWdyZXktbGlnaHQ7XHJcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCAyLjVlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIG1heC13aWR0aDogMTAwMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcclxuICAgICAgXHJcbiAgICAgIC5jb2xsZWN0aW9uX19pdGVtIHtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oNGVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoNWVtIG51bGwgNWVtIG51bGwpO1xyXG5cclxuICAgICAgJjphZnRlciB7XHJcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIDVlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuY29sbGVjdGlvbi0tc3BsdW5rIHtcclxuXHJcbiAgICAuY29sbGVjdGlvbl9faXRlbSB7XHJcbiAgICAgIFxyXG4gICAgICAmOmxhc3QtY2hpbGQge1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbiggNGVtIG51bGwgbnVsbCBudWxsICk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiLmZvb3RlciB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcbiAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCRjb2xvci10ZWFsLCAxKTtcbiAgXG5cbiAgLmZvb3Rlcl9faW5uZXIge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoM2VtIG51bGwgNGVtIG51bGwpO1xuICB9XG59XG4iLCIubW9kYWwge1xuICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIHotaW5kZXg6IDUwO1xuICBvcGFjaXR5OiAwO1xuICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgMCAwIDAgMCk7XG4gIEBpbmNsdWRlIHNpemUoMTAwJSAxMDAlKTtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihvcGFjaXR5LCAyNTBtcyAkZWFzZS1pbi1vdXQtcXVhZCk7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCgkY29sb3ItdGVhbCwgLjk1KTtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihmaXhlZCwgMCAwIDAgMCk7XG4gICAgQGluY2x1ZGUgc2l6ZSgxMDAlIDEwMCUpO1xuICB9XG5cbiAgLm1vZGFsX19pbm5lciB7XG4gICAgQGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIDUwJSBudWxsIG51bGwgNTAlKTtcbiAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCkpO1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcbiAgfVxuXG4gIC5tb2RhbF9fY2xvc2Uge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCAtMnB4IDdweCBudWxsIG51bGwpO1xuICAgIGZvbnQtc2l6ZTogMDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLWNsb3NlLCA1MHB4LCAkY29sb3ItdGV4dC1pbnZlcnQpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcblxuICAgIC5tb2RhbF9fY2xvc2Uge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oZml4ZWQsIDBweCAyMHB4IG51bGwgbnVsbCk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcblxuICAgIHotaW5kZXg6IDU7XG5cbiAgICAubW9kYWxfX2Nsb3NlIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGZpeGVkLCA1MCUgbnVsbCBudWxsIDUwJSk7XG4gICAgICBAaW5jbHVkZSBtYXJnaW4oLTI1MHB4IG51bGwgbnVsbCAyMzBweCk7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tY2xvc2UsIDYwcHgsICRjb2xvci10ZXh0LWludmVydCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5tb2RhbC0tZW1iZWQge1xuXG4gICAgLm1vZGFsX19pbm5lciB7XG4gICAgQGluY2x1ZGUgc2l6ZSgxMDAlIDApO1xuICAgIHBhZGRpbmctdG9wOiA1NiU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgICAgaWZyYW1lIHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIDApO1xuICAgICAgICBAaW5jbHVkZSBzaXplKDEwMCUgMTAwJSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xuICAgICAgXG4gICAgICAubW9kYWxfX2lubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSg3NTBweCBhdXRvKTtcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZyg0MjBweCBudWxsIG51bGwgbnVsbCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcblxuICAgICAgLm1vZGFsX19jbG9zZSB7XG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbigtMjY1cHggbnVsbCBudWxsIDM3MHB4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi50aWxlIHtcblxuICAmLnRpbGUtLWZlYXR1cmVzIHtcbiAgICBAaW5jbHVkZSB0aWxlKGRlZmF1bHQpO1xuICB9XG4gIFxuICAmLnRpbGUtLXBsYW5zIHtcbiAgICBAaW5jbHVkZSB0aWxlKGludmVydGVkKTtcbiAgICBib3JkZXI6IG5vbmU7XG5cbiAgICAudGlsZV9fY3RhICB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgMCk7XG4gICAgICBAaW5jbHVkZSBzaXplKDkwJSBudWxsKTtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIGF1dG8gbnVsbCBhdXRvKTtcbiAgICAgIG1heC13aWR0aDogNTAwcHg7XG5cbiAgICAgIC50aWxlX19pbWFnZSB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCAwKTtcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgYXV0byBudWxsIC00NXB4KTtcbiAgICAgIH1cblxuICAgICAgLnRpbGVfX2NvbnRlbnQge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLnNwb3Qge1xyXG4gIFxyXG4gICYuc3BvdC0tZmVhdHVyZSB7XHJcblxyXG4gICAgLnNwb3RfX2lubmVyIHtcclxuICAgICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDgwJSk7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoIDJlbSBudWxsIDJlbSBudWxsICk7XHJcbiAgICB9XHJcblxyXG4gICAgLnNwb3RfX2ZpZ3VyZSB7XHJcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIH1cclxuXHJcbiAgICAuc3BvdF9faW1hZ2Uge1xyXG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgICAgIG1heC13aWR0aDogZW0oIDEwMCApO1xyXG4gICAgICBoZWlnaHQ6IGF1dG87XHJcbiAgICB9XHJcblxyXG4gICAgLnNwb3RfX2hlYWRpbmcge1xyXG4gICAgICBmb250LXNpemU6IGVtKDIwKTtcclxuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcclxuICAgIH1cclxuXHJcbiAgICAuc3BvdF9fY29udGVudCB7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbiggMWVtIG51bGwgbnVsbCBudWxsICk7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5zcG90X19jb3B5IHtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIEBpbmNsdWRlIHgtY29weTtcclxuICAgICAgZm9udC1zaXplOiBlbSgxNyk7XHJcblxyXG4gICAgICBwIHtcclxuXHJcbiAgICAgICAgJjpub3QoOmZpcnN0LWNoaWxkKSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4oIDFlbSBudWxsIG51bGwgbnVsbCApO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgdWwge1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBsaSB7XHJcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCBudWxsIG51bGwgMWVtKTtcclxuICAgICAgICBcclxuICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgLjZlbSBudWxsIG51bGwgMCk7XHJcbiAgICAgICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1idWxsZXQsIDhweCwgJGNvbG9yLXRleHQtaW52ZXJ0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xyXG4gICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKC4yNWVtIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc3BvdF9fY3RhIHtcclxuICAgICAgQGluY2x1ZGUgeC1idXR0b24oJGdseXBoLS1hcnJvdy0tcmlnaHQsIGZhbHNlKTtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKDJlbSBudWxsIG51bGwgbnVsbCk7XHJcblx0ICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XHJcblxyXG4gICAgICAuc3BvdF9faW5uZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigxMDAwcHgpO1xyXG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgICBAaW5jbHVkZSBzaXplKDEwMCUgMzMwcHgpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuc3BvdF9fY29udGVudCB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIG51bGwgbnVsbCAwKTtcclxuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgMWVtIG51bGwgbnVsbCk7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKCAwIG51bGwgbnVsbCBudWxsICk7XHJcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSg3MCUgYXV0byk7XHJcbiAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTUwJSkpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICAuc3BvdF9faGVhZGluZyB7XHJcbiAgICAgICAgZm9udC1zaXplOiBlbSgyOCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zcG90X19maWd1cmUge1xyXG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgMCBudWxsIG51bGwpO1xyXG4gICAgICAgIEBpbmNsdWRlIHNpemUoMzAlIGF1dG8pO1xyXG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC01MCUpKTtcclxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnNwb3RfX2ltYWdlIHtcclxuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuc3BvdC0tdGhpbiB7XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuXHJcbiAgICAgIC5zcG90X19pbm5lciB7XHJcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSggMTAwJSAzMDBweCApO1xyXG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoIDAgbnVsbCAwIG51bGwgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnNwb3RfX2ltYWdlIHtcclxuICAgICAgICBtYXgtd2lkdGg6IGVtKCAxNTAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5zcG90LS10aGlubmVyIHtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG5cclxuICAgICAuc3BvdF9faW5uZXIge1xyXG4gICAgICAgIEBpbmNsdWRlIHNpemUoIDEwMCUgMTAwcHggKTtcclxuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKCAwIG51bGwgMCBudWxsICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGgzIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4gKCBudWxsIDAgbnVsbCAxMCUgKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnNwb3RfX2NvcHkge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgfVxyXG5cclxuICAgICAuc3BvdF9jb250ZW50IHtcclxuICAgICAgICB3aWR0aDogMTAwJTtcclxuICAgICB9XHJcblxyXG4gICAgIC5zcG90X19jdGEge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICBAaW5jbHVkZSBtYXJnaW4gKCBudWxsIDAgbnVsbCAzJSk7XHJcbiAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcclxuXHRcdGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcblx0XHRmb250LXNpemU6Ljg1ZW07XHJcbiAgICAgfVxyXG5cclxuICAgICAgLnNwb3RfX2ltYWdlIHtcclxuICAgICAgICBtYXgtd2lkdGg6IGVtKCA1MCApO1xyXG4gICAgICB9XHJcblxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5zcG90LS10aGlubmVyLS10cnRsIHtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG5cclxuICAgICAgLnNwb3RfX2NvbnRlbnQge1xyXG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgMCBudWxsIGluaXRpYWwpO1xyXG4gICAgICAgIEBpbmNsdWRlIHNpemUoMTAwJSBhdXRvKTtcclxuICAgICAgfVxyXG5cclxuICAgICAgLnNwb3RfX2ZpZ3VyZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSBpbml0aWFsIG51bGwgMCk7XHJcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSg1JSBhdXRvKTtcclxuICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcclxuICAgICAgfVxyXG5cdCAgXHJcblx0ICAuc3BvdF9faGVhZGluZyB7XHJcblx0ICAgIGZvbnQtc2l6ZTogMS41ZW07XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9ICBcclxuICBcclxuICAmLnNwb3QtLXRydGwge1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XHJcblxyXG4gICAgICAuc3BvdF9fY29udGVudCB7XHJcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSAwIG51bGwgaW5pdGlhbCk7XHJcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSg4NSUgYXV0byk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zcG90X19maWd1cmUge1xyXG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgaW5pdGlhbCBudWxsIDApO1xyXG4gICAgICAgIEBpbmNsdWRlIHNpemUoMTUlIGF1dG8pO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuc3BvdC0tc3BsdW5rIHtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xyXG5cclxuICAgICAgLnNwb3RfX2ltYWdlIHtcclxuICAgICAgICBtYXgtd2lkdGg6IGVtKCAxNTAgKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5zcG90LS1ydGwge1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XHJcblxyXG4gICAgICAuc3BvdF9fY29udGVudCB7XHJcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSAwIG51bGwgaW5pdGlhbCk7XHJcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSg3NSUgYXV0byk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zcG90X19maWd1cmUge1xyXG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgaW5pdGlhbCBudWxsIDApO1xyXG4gICAgICAgIEBpbmNsdWRlIHNpemUoMjUlIGF1dG8pO1xyXG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuc3BvdC0tZnVsbCB7XHJcbiAgICBcclxuICAgIC5zcG90X19jb250ZW50IHtcclxuICAgICAgQGluY2x1ZGUgc2l6ZSggMTAwJSBhdXRvICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnNwb3QtLWdyZXkge1xyXG4gICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCAjYjZiNmI2LCAxICk7XHJcbiAgfVxyXG5cclxuICAmLnNwb3QtLWdyZXktZGFyayB7XHJcbiAgICBAaW5jbHVkZSB4LWJhY2tncm91bmQoICNiNmI2YjYsIDEgKTtcclxuXHJcbiAgICAuc3BvdF9fY3RhIHtcclxuICAgICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCAjMDAwLCAxICk7XHJcblx0ICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG5cclxuICAgICAgJjpob3ZlciAge1xyXG4gICAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCggIzMzMywgMSApO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnNwb3QtLWdyZXktbGlnaHQge1xyXG4gICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCAjZjBmNGZjLCAxICk7XHJcbiAgfVxyXG5cclxuICAmLnNwb3QtLWJsdWUtbGlnaHQge1xyXG4gICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCAjZDFlMGY1LCAxICk7XHJcbiAgfVxyXG5cclxuICAmLnNwb3QtLWZvY3VzLWFyZWFzIHtcclxuXHJcbiAgICAuc3BvdF9fZmlndXJlIHtcclxuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICAuc3BvdF9faW1hZ2Uge1xyXG4gICAgICBAaW5jbHVkZSBzaXplKDE1MHB4IGF1dG8pO1xyXG4gICAgfVxyXG5cclxuICAgIC5zcG90X19jYXB0aW9uIHtcclxuICAgICAgQGluY2x1ZGUgeC1oZWFkaW5nKDUpO1xyXG4gICAgfVxyXG5cclxuICAgIC5zcG90X19jb250ZW50IHtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICB9XHJcblxyXG4gICAgLnNwb3RfX2NvcHkge1xyXG4gICAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsIG51bGwpO1xyXG4gICAgICBAaW5jbHVkZSB4LXJ0ZTtcclxuICAgIH1cclxuXHJcbiAgICAuc3BvdF9faGVhZGluZyB7XHJcbiAgICAgIEBpbmNsdWRlIHgtaGVhZGluZygyKTtcclxuICAgIH1cclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcbiAgICAgIFxyXG4gICAgICAuc3BvdF9fZmlndXJlIHtcclxuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XHJcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKGVtKDUwKSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC5zcG90X19jb250ZW50IHtcclxuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnNwb3QtLWNvbXBhcmUge1xyXG4gICAgQGluY2x1ZGUgcGFkZGluZygyLjVlbSBudWxsIG51bGwgbnVsbCk7XHJcblxyXG4gICAgLnNwb3RfX2lubmVyIHtcclxuICAgICAgQGluY2x1ZGUgeC1jb250YWluZXIoMTAwMHB4KTtcclxuICAgIH1cclxuXHJcbiAgICAuc3BvdF9fY29udGVudCB7XHJcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgbnVsbCAyLjVlbSBudWxsKTtcclxuICAgIH1cclxuXHJcbiAgICAuc3BvdF9faGVhZGluZyB7XHJcbiAgICAgIEBpbmNsdWRlIHgtaGVhZGluZyhwYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICAuc3BvdF9fY3RhIHtcclxuICAgICAgQGluY2x1ZGUgeC1idXR0b247XHJcblx0ICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIG51bGwgNy41ZW0gbnVsbCk7XHJcblxyXG4gICAgICAuc3BvdF9fY3RhIHtcclxuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbiAoYWJzb2x1dGUsIG51bGwgMCBudWxsIGF1dG8pO1xyXG4gICAgICAgIEBpbmNsdWRlIHNpemUoMjAlIGF1dG8pO1xyXG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbigwIG51bGwgbnVsbCBudWxsKTtcclxuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcblx0XHRib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcclxuICAgICAgQGluY2x1ZGUgcGFkZGluZyg1ZW0gbnVsbCA1ZW0gbnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnNwb3QtLXJlY2VudC1uZXdzIHtcclxuXHJcbiAgICAuc3BvdF9fY29udGVudCB7XHJcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCBudWxsIG51bGwgLjVlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgLnNwb3RfX2hlYWRpbmcge1xyXG4gICAgICBAaW5jbHVkZSB4LWhlYWRpbmcoMik7XHJcbiAgICB9XHJcblxyXG4gICAgLnNwb3RfX2NvcHkge1xyXG4gICAgICBAaW5jbHVkZSB4LWNvcHk7XHJcbiAgICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xyXG4gICAgfVxyXG5cclxuICAgIC5zcG90X19jdGEge1xyXG4gICAgICBAaW5jbHVkZSB4LWJ1dHRvbigkZ2x5cGgtLWFycm93LS1yaWdodCk7XHJcblx0ICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgfVxyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgbnVsbCBudWxsIDQuNWVtKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuc3BvdC0tcmVjZW50LW5ld3Mge1xyXG4gICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcclxuXHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1kb2N1bWVudCwgNjVweCwgJGNvbG9yLXRlYWwpO1xyXG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAtMS4yZW0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnNwb3QtLXdlZWtseS1tYXJrZXQtYnJpZWYge1xyXG4gICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xyXG5cclxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcclxuXHJcbiAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1saW5lLWNoYXJ0LCA2NXB4LCAkY29sb3ItdGVhbCk7XHJcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIC0xLjJlbSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuc3BvdC0tcHJvZHVjdC1uZXdzIHtcclxuICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tY2FsZW5kYXIsIDY1cHgsICRjb2xvci10ZWFsKTtcclxuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgLTEuMmVtKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5zcG90LS1wcm9kdWN0LWZlYXR1cmVzIHtcclxuICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tbmV3LCA2NXB4LCAkY29sb3ItdGVhbCk7XHJcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIC0xLjJlbSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gICYuc3BvdC0tdmlkZW9zIHtcclxuICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcclxuXHJcbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XHJcblxyXG4gICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tcGxheSwgNjVweCwgJGNvbG9yLXRlYWwpO1xyXG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCAtMS4yZW0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLnNwb3QtLXBsYW4tZGVzY3JpcHRpb25zIHtcclxuXHJcbiAgICAuc3BvdF9faW5uZXIge1xyXG4gICAgICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoNTAwcHgpO1xyXG4gICAgICBAaW5jbHVkZSBzaXplKDkwJSBhdXRvKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLnNwb3RfX2hlYWRpbmcge1xyXG4gICAgICBAaW5jbHVkZSB4LWhlYWRpbmcoMik7XHJcbiAgICB9XHJcblxyXG4gICAgLnNwb3RfX2NvcHkge1xyXG4gICAgICBAaW5jbHVkZSB4LXJ0ZTtcclxuICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XHJcbiAgICB9XHJcblxyXG4gICAgLnNwb3RfX2N0YSB7XHJcbiAgICAgIEBpbmNsdWRlIHgtYnV0dG9uKCRnbHlwaC0tZWRpdCwgZmFsc2UsIGRlZmF1bHQsIGxhcmdlKTtcclxuXHQgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIi50ZXN0aW1vbmlhbCB7XG4gIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgbnVsbCBudWxsIG51bGwpO1xuICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNTAlKSk7XG5cbiAgLnRlc3RpbW9uaWFsX19pbm5lciB7XG4gICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDgwJSk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB9XG5cbiAgLnRlc3RpbW9uaWFsX19xdW90ZSB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLXF1b3RlLCA3NXB4LCAkY29sb3ItZ3JleSk7XG4gICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0ocm90YXRlKDE4MGRlZykpO1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIC0uNWVtIG51bGwgbnVsbCAtLjI1ZW0pO1xuICAgICAgb3BhY2l0eTogLjI7XG4gICAgfVxuXG4gICAgJjphZnRlciB7XG4gICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1xdW90ZSwgNzVweCwgJGNvbG9yLWdyZXkpO1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIC0uNWVtIC0uMjVlbSBudWxsIG51bGwpO1xuICAgICAgb3BhY2l0eTogLjI7XG4gICAgfVxuICB9XG5cbiAgLnRlc3RpbW9uaWFsX19tZXRhIHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcbiAgfVxuXG4gIC50ZXN0aW1vbmlhbF9fYXV0aG9yIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgZm9udC1zaXplOiBlbSgxMik7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlxcMjAxNFwiO1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIC4yNWVtIG51bGwgbnVsbCk7XG4gICAgfVxuICB9XG5cbiAgLnRlc3RpbW9uaWFsX19pbWFnZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1heC13aWR0aDogMjAwcHg7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIEBpbmNsdWRlIG1hcmdpbigyZW0gbnVsbCBudWxsIG51bGwpO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xuICAgIEBpbmNsdWRlIHNpemUoMTAwJSBhdXRvKTtcblxuICAgIC50ZXN0aW1vbmlhbF9faW5uZXIge1xuICAgICAgQGluY2x1ZGUgc2l6ZSg3NTBweCBhdXRvKTtcbiAgICB9XG5cbiAgICAudGVzdGltb25pYWxfX3F1b3RlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB9XG4gIH1cbn1cbiIsIi5jb21wb25lbnRzIHtcblxuICBkaXNwbGF5OiBub25lO1xufVxuIiwiLnRhYmxlIHtcblxuICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIG51bGwgMi41ZW0gbnVsbCk7XG4gIH1cblxuICAmLnRhYmxlLS1hY3RpdmUge1xuXG4gICAgLnRhYmxlX19oZWFkaW5nIHtcblxuICAgICAgJjphZnRlciB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybShyb3RhdGUoMTgwZGVnKSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLnRhYmxlX190YWJsZSB7XG4gICAgICBtYXgtaGVpZ2h0OiAyNTAwcHg7XG4gICAgfVxuICB9XG5cbiAgLnRhYmxlX19pbm5lciB7XG4gICAgQGluY2x1ZGUgeC1jb250YWluZXIoMTAwMHB4KTtcbiAgfVxuXG4gIC50YWJsZV9faGVhZGluZyB7XG4gICAgQGluY2x1ZGUgeC1oZWFkaW5nKDIpO1xuICAgIGNvbG9yOiAkY29sb3ItdGVhbDtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgLy9AaW5jbHVkZSB4LWljb24oJGdseXBoLS1hcnJvdy0tdXAsIDI0cHgsICRjb2xvci10ZWFsKVxuICAgICAgLy9AaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgNHB4IG51bGwgbnVsbCBudWxsKTtcbiAgICAgIC8vQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMTUwbXMgJGVhc2UtaW4tb3V0LXF1YWQpO1xuICAgIH1cbiAgfVxuXG4gIC50YWJsZV9fdGFibGUge1xuICAgIC8vZGlzcGxheTogYmxvY2s7XG4gICAgLy9tYXgtaGVpZ2h0OiAwO1xuICAgIC8vb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAvL0BpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDE1MG1zICRlYXNlLWluLW91dC1xdWFkKTtcbiAgfVxuXG4gIC50YWJsZV9fcm93IHtcblxuICAgICY6bm90KDpsYXN0LWNoaWxkKSB7XG4gICAgfVxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgIH1cbiAgICBib3JkZXItYm90dG9tOiAxcHggZGFzaGVkIGRhcmtlbigkY29sb3ItZ3JleS1saWdodCwgMTAlKTtcbiAgfVxuXG4gIC50YWJsZV9fY2VsbCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgQGluY2x1ZGUgcGFkZGluZyguNWVtIG51bGwgLjVlbSBudWxsKTtcbiAgICBAaW5jbHVkZSB4LXJ0ZTtcblxuICAgIC5nbHlwaCB7XG4gICAgICBmb250LXNpemU6IGVtKDMyKTtcblxuICAgICAgJi5nbHlwaC0tY2hlY2sge1xuICAgICAgICBjb2xvcjogJGNvbG9yLXRlYWw7XG4gICAgICB9XG5cbiAgICAgICYuZ2x5cGgtLWNsb3NlIHtcbiAgICAgICAgY29sb3I6ICRjb2xvci1ncmV5O1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgIEBpbmNsdWRlIHNpemUoMTAwJSBhdXRvKTtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMS41ZW0gbnVsbCAxZW0gbnVsbCk7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC1zaXplOiBlbSgxNCk7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgZm9udC1zaXplOiBlbSgxNCk7XG4gICAgICBib3JkZXItbGVmdDogMXB4IGRhc2hlZCBkYXJrZW4oJGNvbG9yLWdyZXktbGlnaHQsIDEwJSk7XG4gICAgICAgIEBpbmNsdWRlIHgtYmFja2dyb3VuZCgkY29sb3Itb3JhbmdlLCAuMDIpO1xuICAgIH1cbiAgfVxuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIG51bGwgMi41ZW0gbnVsbCk7XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkbXEtcGFsbS1kb3duKSB7XG5cbiAgICAudGFibGVfX2NlbGwge1xuXG4gICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIEBpbmNsdWRlIHNpemUoNTAlIGF1dG8pO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggZGFzaGVkIGRhcmtlbigkY29sb3ItZ3JleS1saWdodCwgMTAlKTtcblxuICAgICAgICBzcGFuIHtcbiAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIG51bGwgbnVsbCA1MCUpO1xuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC02MCUpKTtcbiAgICAgICAgICBAaW5jbHVkZSBzaXplKDUwJSBhdXRvKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC5nbHlwaCB7XG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDUwJSBudWxsIG51bGwgNTAlKTtcbiAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgtNjAlKSk7XG4gICAgICAgIH1cblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIC01cHgpO1xuICAgICAgICAgIGNvbnRlbnQ6IHVybCgnL3dwLWNvbnRlbnQvdGhlbWVzL3N0b2Nrcm92ZXIvbWVkaWEvaW1hZ2VzL2ljb24tYmFzaWMtLWdyYXlzY2FsZS5zdmcnKTtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICAgIGNvbnRlbnQ6ICdCYXNpYyc7XG4gICAgICAgICAgQGluY2x1ZGUgc2l6ZSgxMDBweCBhdXRvKTtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDEwcHggbnVsbCBudWxsIC01cHgpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKDMpIHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSg1MCUgYXV0byk7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBkYXNoZWQgZGFya2VuKCRjb2xvci1ncmV5LWxpZ2h0LCAxMCUpO1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCA1MCUgbnVsbCBudWxsIDUwJSk7XG4gICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVkoLTYwJSkpO1xuICAgICAgICAgIEBpbmNsdWRlIHNpemUoNTAlIGF1dG8pO1xuICAgICAgICB9XG5cbiAgICAgICAgLmdseXBoIHtcbiAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgNTAlIG51bGwgbnVsbCA1MCUpO1xuICAgICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVZKC02MCUpKTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgLTVweCk7XG4gICAgICAgICAgY29udGVudDogdXJsKCcvd3AtY29udGVudC90aGVtZXMvc3RvY2tyb3Zlci9tZWRpYS9pbWFnZXMvaWNvbi1wcmVtaXVtLS1ncmF5c2NhbGUuc3ZnJyk7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG5cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICBjb250ZW50OiAnUHJlbWl1bSc7XG4gICAgICAgICAgQGluY2x1ZGUgc2l6ZSgxMDBweCBhdXRvKTtcbiAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDEwcHggbnVsbCBudWxsIC01cHgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xuXG4gICAgJjpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIG51bGwgNy41ZW0gbnVsbCk7XG4gICAgfVxuXG4gICAgLnRhYmxlX19yb3cge1xuXG4gICAgICAmOm50aC1jaGlsZCgxKSB7XG5cbiAgICAgICAgLnRhYmxlX19jZWxsIHtcbiAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihyZWxhdGl2ZSwgbnVsbCBudWxsIG51bGwgbnVsbCk7XG5cbiAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG5cbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgLTEwMHB4IG51bGwgbnVsbCA1MCUpO1xuICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHVybCgnL3dwLWNvbnRlbnQvdGhlbWVzL3N0b2Nrcm92ZXIvbWVkaWEvaW1hZ2VzL2ljb24tYmFzaWMtLWdyYXlzY2FsZS5zdmcnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIC0yNXB4IG51bGwgbnVsbCA1MCUpO1xuICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHNpemUoMTAwcHggYXV0byk7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6ICdCYXNpYyc7XG4gICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpudGgtY2hpbGQoMykge1xuXG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIC0xMDBweCBudWxsIG51bGwgNTAlKTtcbiAgICAgICAgICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkpO1xuICAgICAgICAgICAgICBjb250ZW50OiB1cmwoJy93cC1jb250ZW50L3RoZW1lcy9zdG9ja3JvdmVyL21lZGlhL2ltYWdlcy9pY29uLXByZW1pdW0tLWdyYXlzY2FsZS5zdmcnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIC0yNXB4IG51bGwgbnVsbCA1MCUpO1xuICAgICAgICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHNpemUoMTAwcHggYXV0byk7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6ICdQcmVtaXVtJztcbiAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAudGFibGVfX2NlbGwge1xuICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcblxuICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICBAaW5jbHVkZSBzaXplKDYwJSBhdXRvKTtcbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICBAaW5jbHVkZSBzaXplKDIwJSBhdXRvKTtcblxuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpudGgtY2hpbGQoMykge1xuICAgICAgICBAaW5jbHVkZSBzaXplKDIwJSBhdXRvKTtcbiAgICAgICAgQGluY2x1ZGUgeC1iYWNrZ3JvdW5kKCRjb2xvci1vcmFuZ2UsIC4wMik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcblxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKG51bGwgbnVsbCA1ZW0gbnVsbCk7XG4gICAgfVxuICB9XG59XG4iLCIuY29udGVudCB7XG4gIEBpbmNsdWRlIHBhZGRpbmcoMi41ZW0gbnVsbCAyLjVlbSBudWxsKTtcblxuICAuY29udGVudF9faW5uZXIge1xuICAgIEBpbmNsdWRlIHgtY29udGFpbmVyKDEwMDBweCk7XG4gIH1cblxuICAuY29udGVudF9faGVhZGluZyB7XG4gICAgQGluY2x1ZGUgeC1oZWFkaW5nKHBhZ2UpO1xuICB9XG5cbiAgLmNvbnRlbnRfX2NvcHkge1xuICAgIEBpbmNsdWRlIHgtcnRlO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKDVlbSBudWxsIDVlbSBudWxsKTtcbiAgfVxuXG4gICYuY29udGVudC0tdGFncyxcbiAgJi5jb250ZW50LS1hdXRob3Ige1xuXG4gICAgLmNvbnRlbnRfX2lubmVyIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcbiAgICB9XG5cbiAgICAuY29udGVudF9fY3RhIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAuNjVlbSAwIG51bGwgbnVsbCk7XG4gICAgICBjb2xvcjogJGNvbG9yLXRlYWw7XG4gICAgICBmb250LXNpemU6IGVtKDE0KTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwKSB7XG5cbiAgICAgIC5jb250ZW50X19jdGEge1xuICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMmVtIDAgbnVsbCBudWxsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5wcm9ncmVzcyB7XG5cbiAgLnByb2dyZXNzX19saXN0IHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAucHJvZ3Jlc3NfX2l0ZW0ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JleS1taWQ7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBAaW5jbHVkZSBzaXplKDUwcHggNTBweCk7XG4gICAgY29sb3I6ICRjb2xvci13aGl0ZTtcbiAgICBsaW5lLWhlaWdodDogNTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gLjVlbSAxZW0gLjVlbSk7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDo1MCU7XG4gICAgICBsZWZ0OiAxMDAlO1xuICAgICAgaGVpZ2h0OjFweDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLWdyZXktbWlkO1xuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCB7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmLnByb2dyZXNzX19pdGVtLS1jb21wbGV0ZWQge1xuICAgICAgYmFja2dyb3VuZDogJGNvbG9yLXRlYWwtZGFyaztcblxuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItZ3JleS1taWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5wcm9ncmVzc19faXRlbS0tYWN0aXZlIHtcbiAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbihvc2NpbGF0ZSAxLjVzIGluZmluaXRlKTtcbiAgICB9XG5cbiAgICAmLnByb2dyZXNzX19pdGVtLS1jaGVjayB7XG4gICAgICBcbiAgICAgIHNwYW4ge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tY2hlY2ssIDMwcHgsICRjb2xvci13aGl0ZSk7ICBcbiAgICAgICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgbnVsbCBudWxsIG51bGwgMCk7XG4gICAgICAgICAgQGluY2x1ZGUgc2l6ZSgxMDAlIG51bGwpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJG1xLWRlc2spIHtcblxuICAgIC5wcm9ncmVzc19faXRlbSB7XG4gICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAxZW0gbnVsbCAxZW0pO1xuICAgIH1cbiAgfVxufVxuIiwiLmxheW91dCB7XG5cbiAgJi5sYXlvdXQtLWhvbWUge1xuICAgIEBpbmNsdWRlIHBhZGRpbmcobnVsbCBudWxsIDVlbSBudWxsKTtcbiAgfVxuXG4gICYubGF5b3V0LS1zaWRlYmFyIHtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XG4gICAgICBAaW5jbHVkZSBwYWRkaW5nKCBudWxsIG51bGwgNWVtIG51bGwgKTtcblxuICAgICAgLmxheW91dF9faW5uZXIge1xuICAgICAgICBAaW5jbHVkZSB4LWNvbnRhaW5lcigxMDAwcHgpO1xuICAgICAgfVxuXG4gICAgICAubGF5b3V0X19yZWdpb24ge1xuXG4gICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4gICAgICAgIH1cblxuICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgQGluY2x1ZGUgc2hpZnQoMSk7XG4gICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDE3KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYubGF5b3V0LS1iYXNpYyB7XG5cbiAgICAubGF5b3V0X19yZWdpb24ge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIG51bGwgNWVtIG51bGwpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXAtZG93bikge1xuXG4gICAgICAubGF5b3V0X19pbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcbiAgICAgIH1cblxuICAgICAgLnByb2dyZXNzIHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIDUwJSk7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKC01MCUpKTtcbiAgICAgICAgQGluY2x1ZGUgc2l6ZSgxMDAlIG51bGwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICYubGF5b3V0LS1yZWdpc3RlciB7XG4gICAgYmFja2dyb3VuZDogI0Y3RjlGQTtcblxuICAgIC5jb250ZW50X19jdGEge1xuICAgICAgQGluY2x1ZGUgeC1idXR0b24obm9uZSwgZmFsc2UsIGRhcmspO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXAtZG93bikge1xuXG4gICAgICAubGF5b3V0X19pbm5lciB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZygyLjVlbSBudWxsIG51bGwgbnVsbCk7XG4gICAgICB9XG5cbiAgICAgIC5wcm9ncmVzcyB7XG4gICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCA1MCUpO1xuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWCgtNTAlKSk7XG4gICAgICAgIEBpbmNsdWRlIHNpemUoMTAwJSBudWxsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIG51bGwgMTBlbSBudWxsKTtcblxuICAgICAgLmxheW91dF9faW5uZXIge1xuICAgICAgICBAaW5jbHVkZSB4LWNvbnRhaW5lcigxMDAwcHgpO1xuICAgICAgfVxuXG4gICAgICAubGF5b3V0X19yZWdpb24ge1xuXG4gICAgICAgICY6bnRoLWNoaWxkKDEpIHtcbiAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIpO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpudGgtY2hpbGQoMikge1xuICAgICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoNWVtIG51bGwgNWVtIG51bGwpO1xuICAgICAgICAgIEBpbmNsdWRlIHNoaWZ0KDEpO1xuICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMSk7XG5cbiAgICAgICAgICAuY29udGVudCB7XG4gICAgICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKDJlbSBudWxsIG51bGwgbnVsbCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5jb250ZW50IHtcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZyg2ZW0gbnVsbCAwIG51bGwpO1xuXG4gICAgICAgIC5jb250ZW50X19oZWFkaW5nIHtcbiAgICAgICAgICBAaW5jbHVkZSBtYXJnaW4oIG51bGwgbnVsbCAuNzVlbSBudWxsICk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLmxheW91dC0tc3BsaXQge1xuXG4gICAgLmNvbnRlbnQge1xuICAgICAgQGluY2x1ZGUgcGFkZGluZyhudWxsIG51bGwgMCBudWxsKTtcblxuICAgICAgLmNvbnRlbnRfX2lubmVyIHtcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCBudWxsIDApO1xuXG4gICAgICB9XG5cbiAgICAgICYrIC5mb3JtX19maWVsZHNldCB7XG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbigwIG51bGwgbnVsbCBudWxsKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xuXG4gICAgICAuY29udGVudCB7XG4gICAgICAgIEBpbmNsdWRlIHBhZGRpbmcoNmVtIG51bGwgMCBudWxsKTtcblxuICAgICAgICAuY29udGVudF9faGVhZGluZyB7XG4gICAgICAgICAgQGluY2x1ZGUgbWFyZ2luKCBudWxsIG51bGwgLjc1ZW0gbnVsbCApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC5sYXlvdXRfX3JlZ2lvbiB7XG5cbiAgICAgICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyNCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi5kZWZpbml0aW9ucyB7XG5cbiAgLmRlZmluaXRpb25zX19pbm5lciB7XG4gICAgQGluY2x1ZGUgeC1jb250YWluZXIoMTAwMHB4KTtcbiAgfVxuXG4gIC5kZWZpbml0aW9uc19faGVhZGluZyB7XG4gICAgQGluY2x1ZGUgeC1oZWFkaW5nKDIpO1xuICAgIEBpbmNsdWRlIG1hcmdpbigyZW0gbnVsbCBudWxsIG51bGwpO1xuICB9XG4gIFxuICAuZGVmaW5pdGlvbnNfX2xpc3Qge1xuICAgIEBpbmNsdWRlIG1hcmdpbigxZW0gbnVsbCBudWxsIG51bGwpO1xuICB9XG5cbiAgLmRlZmluaXRpb25zX190ZXJtIHtcbiAgICBAaW5jbHVkZSB4LWNvcHk7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcblxuICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKDFlbSBudWxsIG51bGwgbnVsbCk7XG4gICAgfVxuICB9XG4gIFxuICAuZGVmaW5pdGlvbnNfX2RlZmluaXRpb24ge1xuICAgIEBpbmNsdWRlIHgtY29weTtcbiAgfVxufVxuXG4iLCIuY29tbWVudHMtdGl0bGUge1xuICBAaW5jbHVkZSBtYXJnaW4oMnJlbSBudWxsIG51bGwgbnVsbCk7XG59XG5cbi5jb21tZW50LWxpc3Qge1xuXG4gIC5jb21tZW50LWF1dGhvciB7XG4gICAgXG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgLmNvbW1lbnQtbWV0YWRhdGEge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgfVxuXG4gIC5jb21tZW50IHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgbnVsbCBudWxsKTtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKDFlbSBudWxsIG51bGwgbnVsbCk7XG5cbiAgICAmOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGJvcmRlci10b3A6IDFweCBkYXNoZWQgJGNvbG9yLWdyZXktbGlnaHQ7XG4gICAgfVxuXG4gICAgJi5kZXB0aC0yIHtcbiAgICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIG51bGwgbnVsbCAxZW0pO1xuICAgIH1cbiAgfVxuXG4gIC5jb21tZW50LWF3YWl0aW5nLW1vZGVyYXRpb24ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuY29tbWVudC1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBtYXJnaW4oMWVtIG51bGwgMWVtIG51bGwpO1xuICB9XG5cbiAgLnJlcGx5IHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cbn1cblxuLmNvbW1lbnQtcmVzcG9uZCB7XG4gIEBpbmNsdWRlIG1hcmdpbigyZW0gbnVsbCBudWxsIG51bGwpO1xuICBAaW5jbHVkZSBwYWRkaW5nKDJlbSBudWxsIG51bGwgbnVsbCk7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkY29sb3ItZ3JleS1saWdodDtcbn1cblxuLmNvbW1lbnQtZm9ybSB7XG5cbiAgLmNvbW1lbnQtZm9ybS11cmwge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAuY29tbWVudC1ub3RlcyB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIGxhYmVsIHtcbiAgICBjb2xvcjogJGNvbG9yLXRleHQ7XG4gICAgZm9udC1zaXplOiBlbSgxMik7XG4gIH1cblxuICB0ZXh0YXJlYSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWdyZXktbGlnaHQ7XG4gICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRjb2xvci1ncmV5LWxpZ2h0O1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoMWVtIC41ZW0gMWVtIC41ZW0pO1xuICAgIGNvbG9yOiAkY29sb3ItdGV4dDtcbiAgICBmb250LXNpemU6IGVtKDE0KTtcbiAgICBAaW5jbHVkZSBtYXJnaW4oLjVlbSBudWxsIG51bGwgbnVsbCk7XG4gICAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwsIDI1MG1zLCAkZWFzZS1pbi1xdWludCk7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkY29sb3ItdGVhbC1kYXJrO1xuICAgIH1cbiAgfVxuICBpbnB1dCB7XG4gICAgJlt0eXBlPXRleHRdLFxuICAgICZbdHlwZT1lbWFpbF0sXG4gICAgJlt0eXBlPXBhc3N3b3JkXSB7XG5cbiAgICAgIEBpbmNsdWRlIHNpemUoMTAwJSBhdXRvKTtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMWVtIC41ZW0gMWVtIC41ZW0pO1xuICAgICAgQGluY2x1ZGUgbWFyZ2luKC41ZW0gbnVsbCBudWxsIG51bGwpO1xuICAgICAgY29sb3I6ICRjb2xvci10ZXh0O1xuICAgICAgZm9udC1zaXplOiBlbSgxNCk7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCwgMjUwbXMsICRlYXNlLWluLXF1aW50KTtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1ncmV5LWxpZ2h0O1xuICAgICAgYm9yZGVyLWJvdHRvbTogM3B4IHNvbGlkICRjb2xvci1ncmV5LWxpZ2h0O1xuXG4gICAgICBAaW5jbHVkZSBwbGFjZWhvbGRlciB7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24oY29sb3IsIDI1MG1zLCAkZWFzZS1pbi1vdXQtcXVhZCk7XG4gICAgICB9XG5cbiAgICAgIH4gLmZvcm1fX2xhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIC0xZW0gMCBudWxsIG51bGwpO1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgY29sb3I6ICRjb2xvci10ZWFsLWRhcms7XG4gICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24ob3BhY2l0eSwgMjUwbXMsICRlYXNlLWluLW91dC1xdWFkKTtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1ib3R0b206IDNweCBzb2xpZCAkY29sb3ItdGVhbC1kYXJrO1xuXG4gICAgICAgIH4gLmZvcm1fX2xhYmVsIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xuICAgICAgICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICY6dmFsaWQge1xuXG4gICAgICAgIH4gLmZvcm1fX2xhYmVsIHtcbiAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zdWJtaXQge1xuICAgICAgQGluY2x1ZGUgeC1idXR0b24oJGdseXBoLS1hcnJvdy0tcmlnaHQsIGZhbHNlLCAnZGFyaycpO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG59XG4iLCIuYXBwbGljYXRpb24ge1xyXG5cclxuICAmLmFjdGl2ZS0tbmF2aWdhdGlvbiB7XHJcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xyXG5cclxuICAgIC5hc2lkZSB7XHJcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGUzZCgwJSwgMCwgMCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC50b2dnbGUge1xyXG5cclxuICAgICAgJi50b2dnbGUtLW5hdmlnYXRpb24ge1xyXG5cclxuICAgICAgICAudG9nZ2xlX19idXR0b24ge1xyXG5cclxuICAgICAgICAgICY6YmVmb3JlIHtcclxuICAgICAgICAgICAgQGluY2x1ZGUgeC1pY29uKCRnbHlwaC0tY2xvc2UsIDQwcHgsIHJnYmEoMzUsMzUsMzUsMSkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgJi5hY3RpdmUtLXNlYXJjaCB7XHJcblxyXG4gICAgLnRvZ2dsZSB7XHJcblxyXG4gICAgICAmLnRvZ2dsZS0tc2VhcmNoIHtcclxuXHJcbiAgICAgICAgLnRvZ2dsZV9fYnV0dG9uIHtcclxuXHJcbiAgICAgICAgICAmOmJlZm9yZSB7XHJcbiAgICAgICAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLXNlYXJjaCwgMzJweCwgJGNvbG9yLXRlYWwpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mb3JtIHtcclxuXHJcbiAgICAgICYuZm9ybS0tc2VhcmNoIHtcclxuICAgICAgICBAaW5jbHVkZSB0cmFuc2Zvcm0odHJhbnNsYXRlWSgwJSkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAmLmFjdGl2ZS0tbW9kYWwge1xyXG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcclxuXHJcbiAgICAubW9kYWwge1xyXG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xyXG4gICAgICBvcGFjaXR5OiAxO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIucGFnZS1pZC0xNzEyIHtcblxuICBAaW5jbHVkZSBtZWRpYSgkbXEtbGFwLWRvd24pIHtcblxuICAgIC5sYXlvdXRfX2lubmVyIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCBudWxsIG51bGwgbnVsbCBudWxsKTtcbiAgICAgIEBpbmNsdWRlIHBhZGRpbmcoMi41ZW0gbnVsbCBudWxsIG51bGwpO1xuICAgIH1cblxuICAgIC5wcm9ncmVzcyB7XG4gICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgNTAlKTtcbiAgICAgIEBpbmNsdWRlIHRyYW5zZm9ybSh0cmFuc2xhdGVYKC01MCUpKTtcbiAgICAgIEBpbmNsdWRlIHNpemUoMTAwJSBudWxsKTtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkbXEtZGVzaykge1xuXG4gICAgLmNvbnRlbnQge1xuXG4gICAgICAuY29udGVudF9faGVhZGluZyB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMik7XG4gICAgICB9XG5cbiAgICAgIC5jb250ZW50X19jb3B5IHtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDI0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAucHJvZ3Jlc3Mge1xuICAgICAgQGluY2x1ZGUgc2hpZnQoMSk7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTEpO1xuICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgfVxuICB9XG59XG5cbi5uZXdzcGFwZXJyb3ZlciB7XG4gIG1hcmdpbi10b3A6IDEuNWVtO1xufVxuXG4uaW5kaWNlc3N1bW1hcnkge1xuICBAaW5jbHVkZSBtYXJnaW4oMS41ZW0gbnVsbCAyLjVlbSBudWxsKTtcbn1cblxuXG4uY29tbW9kaXRpZXNzdW1tYXJ5IHtcbiAgQGluY2x1ZGUgbWFyZ2luKDEuNWVtIG51bGwgMi41ZW0gbnVsbCk7XG59XG5cbkBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcblxuICAuaW5kaWNlc3N1bW1hcnkge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMik7XG4gIH1cblxuICAuY29tbW9kaXRpZXNzdW1tYXJ5IHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIpO1xuICAgIEBpbmNsdWRlIG9tZWdhO1xuICB9XG59XG5cbi5yZXNvdXJjZXMtcGFnZSBpbWcge1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiA1cHggMDtcbn1cblxuLnJlc291cmNlcy1wYWdlIHRoIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgcGFkZGluZzogM2VtIDAgLjJlbSAuMWVtO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgZ3JleTtcbn1cblxuLnJlc291cmNlcy1wYWdlIHRkIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5yZXNvdXJjZXMtcGFnZSAucmVzb3VyY2VfbmF2IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbGVmdDogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCUpO1xuXHRcbiAgICAgICAgYSB7XG4gICAgICAgICAgICBjb2xvcjogd2hpdGU7XG4gICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICB9XG5cbiAgICAubGlua3Mge1xuICAgICAgICBAaW5jbHVkZSB4LWJ1dHRvbigkZ2x5cGgtLWFycm93LS1yaWdodCwgZmFsc2UpO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxuXG4gICAgLmJhY2tsaW5rcyB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgIH1cblxuICAgIC5hcHBsaW5rcyB7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBtYXJnaW4tbGVmdDogMjUlO1xuICAgIH1cblxuICAgIC5iYWNrbGlua3MsIC5hcHBsaW5rcyB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLWFycm93LS1sZWZ0LCAxOHB4LCAkY29sb3ItdGV4dC1pbnZlcnQpO1xuICAgICAgICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIDNweCA0cHggbnVsbCBudWxsKTtcbiAgICAgICAgfVxuICAgICAgICAmOmFmdGVyIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG5cblxuXG4gICAgLmxpbmtzLCAuYmFja2xpbmtzLCAuYXBwbGlua3Mge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHdpZHRoOiA0NiU7XG4gICAgICAgIGZvbnQ6IDE0cHggQXJpYWw7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1ODkwRTM7XG4gICAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICBwYWRkaW5nOiAuNWVtIDFlbTtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG5cdFx0Ym9yZGVyLXJhZGl1czogMTBweDtcbiAgICB9XG5cbiAgICAubGlua3M6aG92ZXIsIC5iYWNrbGlua3M6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkU5RkU3O1xuICAgIH1cbn1cblxuLnJlc291cmNlcy1wYWdlIHRhYmxlIHsgXG5cdHRhYmxlLWxheW91dDogZml4ZWQ7IFxuXHR0Ym9keSB0ciB0ZCB7IHBhZGRpbmc6IDEwcHg7IH1cblx0XG5cdEBtZWRpYSAobWF4LXdpZHRoOiAxMDAwcHgpIHtcblx0XHR0ciB0ZCB7IGRpc3BsYXk6IGJsb2NrOyBwYWRkaW5nOiA1cHg7fVxuXHRcdHRyIHRoIHsgZGlzcGxheTogbm9uZTt9XG5cdH1cblx0fVxuXG4uY29udGVudC5jb250ZW50X19pbm5lci5jb250ZW50X19oZWFkaW5nLmNvbnRlbnRfX2NvcHkucmVzb3VyY2VzLXBhZ2Uge1xuXHRAbWVkaWEgKG1heC13aWR0aDogMTAwMHB4KSB7IG1heC13aWR0aDogMTAwMHB4OyB3aWR0aDogMTAwdnc7IH1cblx0QG1lZGlhIChtYXgtd2lkdGg6IDMyMHB4KSB7IG1heC13aWR0aDogMzIwcHg7IHdpZHRoOiAxMDB2dzt9XG5cdGJhY2tncm91bmQtY29sb3I6ICNmZmZmZmY7XG59XG5cbi5wYWdlLWlkLTE3MTIge1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1sYXAtZG93bikge1xuXG4gICAgLmxheW91dF9faW5uZXIge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24ocmVsYXRpdmUsIG51bGwgbnVsbCBudWxsIG51bGwpO1xuICAgICAgQGluY2x1ZGUgcGFkZGluZygyLjVlbSBudWxsIG51bGwgbnVsbCk7XG4gICAgfVxuXG4gICAgLnByb2dyZXNzIHtcbiAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIG51bGwgbnVsbCA1MCUpO1xuICAgICAgQGluY2x1ZGUgdHJhbnNmb3JtKHRyYW5zbGF0ZVgoLTUwJSkpO1xuICAgICAgQGluY2x1ZGUgc2l6ZSgxMDAlIG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XG5cbiAgICAuY29udGVudCB7XG5cbiAgICAgIC5jb250ZW50X19oZWFkaW5nIHtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyKTtcbiAgICAgIH1cblxuICAgICAgLmNvbnRlbnRfX2NvcHkge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMjQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5wcm9ncmVzcyB7XG4gICAgICBAaW5jbHVkZSBzaGlmdCgxKTtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMSk7XG4gICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICB9XG4gIH1cbn1cblxuLm5ld3NwYXBlcnJvdmVyIHtcbiAgbWFyZ2luLXRvcDogMS41ZW07XG59XG5cbi5pbmRpY2Vzc3VtbWFyeSB7XG4gIEBpbmNsdWRlIG1hcmdpbigxLjVlbSBudWxsIDIuNWVtIG51bGwpO1xufVxuXG5cbi5jb21tb2RpdGllc3N1bW1hcnkge1xuICBAaW5jbHVkZSBtYXJnaW4oMS41ZW0gbnVsbCAyLjVlbSBudWxsKTtcbn1cblxuQGluY2x1ZGUgbWVkaWEoJG1xLWxhcCkge1xuXG4gIC5pbmRpY2Vzc3VtbWFyeSB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyKTtcbiAgfVxuXG4gIC5jb21tb2RpdGllc3N1bW1hcnkge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMik7XG4gICAgQGluY2x1ZGUgb21lZ2E7XG4gIH1cbn1cblxuLnJlc291cmNlcy1wYWdlIGltZyB7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDVweCAwO1xufVxuXG4ucmVzb3VyY2VzLXBhZ2UgdGgge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICBwYWRkaW5nOiAzZW0gMCAuMmVtIC4xZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBncmV5O1xufVxuXG4ucmVzb3VyY2VzLXBhZ2UgdGQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgdmVydGljYWwtYWxpZ246IGJvdHRvbTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLnJlc291cmNlcy1wYWdlIC5yZXNvdXJjZV9uYXYge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgICAgfVxuXG4gICAgLmxpbmtzIHtcbiAgICAgICAgQGluY2x1ZGUgeC1idXR0b24oJGdseXBoLS1hcnJvdy0tcmlnaHQsIGZhbHNlKTtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIC5iYWNrbGlua3Mge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgICAuYXBwbGlua3Mge1xuICAgICAgICBmbG9hdDogbm9uZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDI1JTtcbiAgICB9XG5cbiAgICAuYmFja2xpbmtzLCAuYXBwbGlua3Mge1xuICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBAaW5jbHVkZSB4LWljb24oJGdseXBoLS1hcnJvdy0tbGVmdCwgMThweCwgJGNvbG9yLXRleHQtaW52ZXJ0KTtcbiAgICAgICAgICAgIEBpbmNsdWRlIHBvc2l0aW9uKHJlbGF0aXZlLCAzcHggNHB4IG51bGwgbnVsbCk7XG4gICAgICAgIH1cbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBjb250ZW50OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG5cblxuICAgIC5saW5rcywgLmJhY2tsaW5rcywgLmFwcGxpbmtzIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICB3aWR0aDogNDYlO1xuICAgICAgICBmb250OiAxNHB4IEFyaWFsO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTg5MEUzO1xuICAgICAgICBtYXJnaW4tdG9wOiAxZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgcGFkZGluZzogLjVlbSAxZW07XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuXG5cbiAgICB9XG5cbiAgICAubGlua3M6aG92ZXIsIC5iYWNrbGlua3M6aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNkU5RkU3O1xuICAgIH1cbn1cblxuXG5cblxuLnByaWNlX3RleHQge1xuXHR3aWR0aDogMTAwJTtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0bWFyZ2luLWxlZnQ6IDIwcHg7XG5cdFxuXHRAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cdFx0d2lkdGg6IDkwJTtcblx0XHRtYXJnaW46IGF1dG8gMTBweDtcblx0fVxufVx0XG5cbi5mb3JtLmZvcm0tLXByb2R1Y3QgLmZvcm1fX3N1Ym1pdC5wcmljaW5nIHtcblx0d2lkdGg6IDQ2JTtcblx0bWFyZ2luOiBhdXRvIDEwcHg7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHRcdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzQ5cHgpIHtcblx0XHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRcdHdpZHRoOiAyMDBweDtcblx0XHRcdFx0bWFyZ2luOiAyMHB4IGF1dG8gMTBweCBhdXRvO1xuXHRcdFx0XHRwYWRkaW5nOiAxZW0gMmVtO1xuXHRcdFx0fVx0XHRcbn1cbi5jb250ZW50IC5jb250ZW50X19pbm5lciAuY29udGVudF9fY29weSB0YWJsZS5wcmljaW5nVGFibGUgeyBcblx0XG5cdHdpZHRoOiA4MCU7XG5cdG1hcmdpbjogYXV0bztcblx0Ym9yZGVyOiAxcHggc29saWQgYmxhY2s7XG5cdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblx0XHR0aCwgdGQsIHRyIHtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdH1cblx0fVxuXHRcblx0XG5cdHRib2R5IHRyIHtcblx0XG5cdFx0XHRAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cdFx0XHRudGgtY2hpbGQoZXZlbikge2JhY2tncm91bmQtY29sb3I6ICNjY2M7fVxuXHRcdFx0bnRoLWNoaWxkKG9kZCkge2JhY2tncm91bmQtY29sb3I6I2ZmZjt9XG5cdFx0XHR9XHRcdFxuXHRcdFxuXHRcdHRkLnByaWNpbmdUYWJsZVRpdGxlLCB0ZC5wcmljaW5nVGFibGVUaXRsZVZpcnR1YWwge1xuXHRcdFx0Zm9udC1zaXplOiAxNnB4O1xuXHRcdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAzNnB4O1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2VlZTtcblx0XHRcdGhlaWdodDogNjBweDtcblx0XHRcdFxuXHRcdFx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2MDBweCkge1xuXHRcdFx0ZGlzcGxheTogYmxvY2s7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlO1xuXHRcdFx0cGFkZGluZzogMTBweCAzMHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuMjtcdFx0XG5cdFx0XHR9XHRcdFx0XG5cdFx0fVxuXHRcdFxuXHRcdHRkLnByaWNpbmdUYWJsZVRpdGxlIHtcblx0XHRcdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblx0XHRcdHBhZGRpbmc6IDEwcHggMzBweDtcblx0XHRcdGxpbmUtaGVpZ2h0OiAxLjI7XHRcdFxuXHRcdFx0fVx0XG5cdFx0fVxuXHRcdFxuXHRcdHRkLnByaWNpbmdUYWJsZVRpdGxlVmlydHVhbCB7XG5cdFx0XHRAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cdFx0XHRwYWRkaW5nOiAyMHB4O1xuXHRcdFx0bGluZS1oZWlnaHQ6IDEuMjtcdFx0XG5cdFx0XHR9XHRcdFx0XG5cdFx0fVx0XHRcblx0XG5cdFx0dGgge1xuXHRcdFx0d2lkdGg6IDMzJTtcblx0XHRcdGZvbnQtd2VpZ2h0OiBib2xkO1xuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjogI2RkZDtcblx0XHRcdGhlaWdodDogNDBweDtcblx0XHRcdEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNjAwcHgpIHtcblx0XHRcdGRpc3BsYXk6IG5vbmU7XG5cdFx0XHRib3JkZXI6IG5vbmU7XG5cdFx0XHRoZWlnaHQ6IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHRcblx0XHR0ZCB7XG5cdFx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0XHRcdGJvcmRlci10b3A6IDFweCBzb2xpZCBibGFjaztcblx0XHRcdGRpc3BsYXk6IHRhYmxlLWNlbGw7XG5cblx0XHRcdH1cblx0XHRcdFxuXG5cdFx0XG5cblx0XHRcblx0XHRAbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYwMHB4KSB7XG5cdFx0XHR0ZDpudGgtY2hpbGQoM24pIHttYXJnaW4tdG9wOiAwOyBtYXJnaW4tYm90dG9tOiAyMHB4O31cblx0XHRcdHRkIHsgZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNDAwOyBkaXNwbGF5OiBibG9jazsgcGFkZGluZzogNXB4IDA7IGJvcmRlcjogbm9uZTt9XG5cdFx0dGQ6bnRoLWNoaWxkKDJuKSB7IHBhZGRpbmctYm90dG9tOiAyMHB4O31cblx0XHRcdHRkOm50aC1jaGlsZCgxbik6YmVmb3JlIHsgY29udGVudDogXCJNYW5hZ2VkIERldmljZXM6IFwiO3RleHQtYWxpZ246bGVmdDtmb250LXdlaWdodDo2MDA7IGZvbnQtc2l6ZTogMTRweDt9XG5cdFx0XHR0ZDpudGgtY2hpbGQoMm4pOmJlZm9yZSB7IGNvbnRlbnQ6IFwiTGljZW5zZTogXCI7dGV4dC1hbGlnbjpsZWZ0O2ZvbnQtd2VpZ2h0OjYwMDsgZm9udC1zaXplOiAxNHB4OyB9XG5cdFx0XHR0ZDpudGgtY2hpbGQoM24pOmJlZm9yZSB7IGNvbnRlbnQ6IFwiRGlzY291bnQ6IFwiO3RleHQtYWxpZ246bGVmdDtmb250LXdlaWdodDo2MDA7IGZvbnQtc2l6ZTogMTRweDt9XG5cdFx0XHQucHJpY2luZ1RhYmxlVGl0bGU6YmVmb3JlIHtkaXNwbGF5OiBub25lO31cblx0XHRcdC5wcmljaW5nVGFibGVUaXRsZVZpcnR1YWw6YmVmb3JlIHtkaXNwbGF5OiBub25lO31cdFx0XHRcblx0XHRcdFxuXHRcdFx0fVxuXHR9XG59XG4ucHJpY2luZ1RhYmxlIGJ1dHRvbiB7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHRcdGJhY2tncm91bmQtY29sb3I6ICM1ODkwZTM7XG5cdFx0XHRib3JkZXItcmFkaXVzOiA1cHg7XG5cdFx0XHR3aWR0aDogMTAwcHg7XG5cdFx0XHRoZWlnaHQ6IDQwcHg7XG5cdFx0XHRtYXJnaW46IGF1dG87XG5cdFx0fVxuLnByaWNpbmdEb3dubG9hZCAge1xuXG5cdEBpbmNsdWRlIG1lZGlhKCRtcS1sYXApIHtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IFxuXHR9XG5cdEBpbmNsdWRlIG1lZGlhKCRtcS1kZXNrKSB7XG5cdCAgICBtYXJnaW4tbGVmdDogMzQlO1xuICAgIH1cbn1cblxuXG4uZm9vdGVyIC5mb290ZXJfX2lubmVyIC5zbV9faWNvbnMge1xuICAgIHVsIHtcblx0ICAgIGRpc3BsYXk6YmxvY2s7XG5cdFx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHRcdHBhZGRpbmctYm90dG9tOiAxMHB4O1xuXHRcdFxuXHRcdGxpIHtcblx0XHQgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRcdFx0cGFkZGluZzogMCA1cHg7XG5cdFx0XHRcblx0XHRcdGltZyB7XG5cdFx0XHQgICAgaGVpZ2h0OiAyMHB4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9IFxuXG4uaHMtZm9ybS1ib29sZWFuY2hlY2tib3ggbGkge1xuICAgIGNvbnRlbnQ6bm9uZTtcblx0fVxuXG4vKiBzdHlsZXMgZm9yIHZpZGVvIHBhZ2VzOiBib3JkZXIgZGl2IGFyb3VuZCB2aWRlbyAmIGRvd25sb2FkIGJ1dHRvbiAqL1x0XG4udmlkZW9fYm94IHtcblx0YmFja2dyb3VuZDogYmxhY2s7XG5cdGJvcmRlcjogMnB4IHNvbGlkIGJsYWNrO1xuXHRtYXJnaW4tdG9wOiAyMHB4O1xufVxuXHRcbi52aWRlb190cmlhbCB7XG5cdGZvbnQ6IEFyaWFsIDE0cHg7XG5cdGJhY2tncm91bmQtY29sb3I6ICM1ODkwRTM7XG5cdHBhZGRpbmc6IDFlbSAxLjVlbTtcblx0Ym9yZGVyLXJhZGl1czogMTVweDtcblx0d2lkdGg6NDAlO1xuXHRtYXJnaW46IDYwcHggYXV0byAwIGF1dG87XG59XG5cbi8qIHN0eWxlcyBmb3IgbWV0cmljcyBwYWdlICovXG5cbi5tZXRyaWNfdGFibGUgdGFibGUge1xuICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG5cdH1cblx0XG4ubWV0cmljX3RhYmxlIHRib2R5IHRyIHRoIHtcblx0cGFkZGluZzogMTVweCAwIDE1cHggMTVweDtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0YmFja2dyb3VuZDogI2YyZjJmMjtcblx0Ym9yZGVyOiAxcHggc29saWQgI2RjZGNkYztcblx0fVxuXHRcbi5tZXRyaWNfdGFibGUgdGJvZHkgdHIgdGguYXBwaGVhZGVyIHtcblx0cGFkZGluZzogMjBweDtcblx0bWFyZ2luLXRvcDogMjBweDtcblx0YmFja2dyb3VuZDogI2RjZGNkYztcblx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkY2RjZGM7XG5cdH1cbi5tZXRyaWNfdGFibGUgdGJvZHkgdHIgdGQge1xuXHRwYWRkaW5nOiAxMHB4O1xuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRib3JkZXI6IDFweCBzb2xpZCAjZGNkY2RjO1xuXHR9XG5cbi5yZXRfdG9fdG9wIHtcbmJhY2tncm91bmQ6ICM1ODkwRTM7XG5ib3JkZXItcmFkaXVzOiAxMHB4O1xucGFkZGluZzogLjVlbSAxZW07XG53aWR0aDogMzUlO1xuZmxvYXQ6cmlnaHQ7XG5tYXJnaW46IC41ZW0gMCAyZW0gMDtcbnRleHQtYWxpZ246Y2VudGVyO1xudmFsaWduOiBjZW50ZXI7XG5mb250OiAxNnB4IEFyaWFsO1xufVxuXG4uY29udGVudCAuY29udGVudF9fY29weSAucmV0X3RvX3RvcFx0YSB7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdFx0Zm9udC13ZWlnaHQ6IDQwMDtcblx0XHR0ZXh0LWRlY29yYXRpb24tY29sb3I6ICNmZmY7XG5cdH1cdFx0XHRcblx0XG5cdFxuLyogcGRmIG9uIG1ldHJpY3MgcGFnZSAqL1xuLmNvbnRlbnQgLmNvbnRlbnRfX2NvcHkgaW1nLnBkZkJsdWVSaWdodCB7XG4gICAgbWFyZ2luLXRvcDotNHB4O1xuXHRib3JkZXI6IG5vbmU7XG59XG5cbiBcbi8vYmFjazJ0b3AgYXJyb3cgZm9yIHNpbmdsZS1oZWxwIHBhZ2VzIFxuLy8gaHRtbCBpbiBzaW5nbGUtaGVscC5waHAsIGpzIGluIF9tZW51LWhlbHAuanNcblxuI2JhY2syVG9wIHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcblx0Zm9udC1mYW1pbHk6ICdPcGVuIFNhbnMnLCBzYW5zLXNlcmlmO1xuXHRmb250LXdlaWdodDogOTAwO1xuXHRmb250LXNpemU6IC45ZW07XG5cdGxpbmUtaGVpZ2h0OiAyNXB4O1xuXHRwYWRkaW5nOiA1cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzUwYjdlZDtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRib3JkZXItcmFkaXVzOjEwcHg7XG5cdHBvc2l0aW9uOiBmaXhlZDtcbi8vICAgIGJvdHRvbTogMzAwcHg7XG5cdHRvcDogMTIwcHg7XG4gICAgcmlnaHQ6IDUwcHg7XG5cblx0aG92ZXIge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTBiN2VkO1xuICAgICAgICBjb2xvcjogIzAwMDtcbiAgICB9XG5cblx0QG1lZGlhIHNjcmVlbiBhbmQobWF4LXdpZHRoOiAxNDAwcHgpICB7IFxuXHRyaWdodDogMyU7XHRcblx0Zm9udC1zaXplOiAuODVlbTtcblx0fVxuXG5cdFxuXHRAbWVkaWEgc2NyZWVuIGFuZChtYXgtd2lkdGg6IDEwMDBweCkgIHsgXG5cdHRvcDogMTBweDtcblx0cmlnaHQ6IDIlO1x0XG5cdGZvbnQtc2l6ZTogLjc1ZW07XG5cdH1cblx0XHRcblx0XG59IFxuIFxuLy8gY3NzIGZvciBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBwcmV2aW91cyBhbmQgbmV4dCBsaW5rcyBpbiByZXNvdXJjZXMtcGFnZSAtPiBoZWxwXG4ucHJldl9saW5rX3RleHQsIC5uZXh0X2xpbmtfdGV4dCwgLmxlZnRfYmxvZ190ZXh0LCAucmlnaHRfYmxvZ190ZXh0LCAubGVmdF9idXR0b24sIC5yaWdodF9idXR0b24sIC5sZWZ0X2J1dHRvbl93aWRlLCAucmlnaHRfYnV0dG9uX3dpZGUsIC5sZWZ0X2J1dHRvbl9uYXJyb3cge1xuXHRtYXJnaW46IDAgMCAxZW0gMDtcbi8vXHRtYXgtd2lkdGg6NDglO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjNTBiN2VkO1xuXHRib3JkZXI6IG5vbmU7XG5cdGNvbG9yOiAjZmZmZmZmO1xuXHRib3JkZXItcmFkaXVzOjEwcHg7XG5cdGZvbnQtd2VpZ2h0OiA5MDA7XG5cdGZvbnQtc2l6ZTogLjllbTtcblx0XG5cdFx0YSB7XG5cdFx0XHRjb2xvcjogI2ZmZmZmZjtcblx0XHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdFx0fVxuXHRcdFx0XG5cdFx0LnRvb2x0aXAge1xuXHRcdFx0ZGlzcGxheTogaW5saW5lO1xuXHRcdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdFx0fVxuXHRcdC50b29sdGlwOmhvdmVyOmFmdGVye1xuXHRcdFx0YmFja2dyb3VuZDojNTU1O1xuXHRcdFx0Ym9yZGVyLXJhZGl1czogNXB4O1xuXHRcdFx0Y29udGVudDphdHRyKHRpdGxlKTtcblx0XHRcdH1cblx0XHQudG9vbHRpcDpob3ZlcjpiZWZvcmUge1xuXHRcdFx0Ym9yZGVyOnNvbGlkO1xuXHRcdFx0Ym9yZGVyLWNvbG9yOiAjNTU1IHRyYW5zcGFyZW50O1xuXHRcdFx0Y29udGVudDpcIlwiO1xuXHRcdFx0fVxuXG5cdFx0XHRcblx0fVxuLnByZXZfbGlua190ZXh0IHtcblx0cGFkZGluZzogLjhlbSAyLjVlbSAuN2VtIDJlbTtcblx0ZmxvYXQ6IGxlZnQ7XG5cdG1heC13aWR0aDogNDglO1xuXG5cdFx0JjpiZWZvcmUge1xuXHRcdFx0ZGlzcGxheTppbmxpbmU7XG5cdFx0XHRAaW5jbHVkZSB4LWljb24oJGdseXBoLS1hcnJvdy0tbGVmdCwgMzBweCwgJGNvbG9yLXdoaXRlKTtcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDA7XG4gICAgICB9XG5cblxuXHRAbWVkaWEgc2NyZWVuIGFuZChtYXgtd2lkdGg6IDEwMDBweCkgIHsgXG5cdHBhZGRpbmc6IDE1cHggMTBweDtcblx0bWFyZ2luOiAxNXB4O1xuXHRmb250LXNpemU6IC44NWVtO1xuXHRtYXgtd2lkdGg6IDQ0JTtcdFxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0ZGlzcGxheTppbmxpbmU7XG5cdFx0XHRAaW5jbHVkZSB4LWljb24oJGdseXBoLS1hcnJvdy0tbGVmdCwgMzBweCwgJGNvbG9yLXdoaXRlKTtcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDA7XG4gICAgICB9XG5cdH1cdCAgXG5cdCAgXG5cdEBtZWRpYSBzY3JlZW4gYW5kKG1heC13aWR0aDogNDgwcHgpICB7IFxuXHRwYWRkaW5nOiAxMHB4IDVweDtcblx0bWFyZ2luOiAxMHB4O1xuXHRmb250LXNpemU6IC43NWVtO1xuXHRtYXgtd2lkdGg6IDQyJTtcdFxuXHRcdFx0JjpiZWZvcmUge1xuXHRcdFx0ZGlzcGxheTppbmxpbmU7XG5cdFx0XHRAaW5jbHVkZSB4LWljb24oJGdseXBoLS1hcnJvdy0tbGVmdCwgMTVweCwgJGNvbG9yLXdoaXRlKTtcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cbiAgICAgIH1cblx0fVx0ICBcdCAgXG59XG5cdFxuLm5leHRfbGlua190ZXh0IHtcblx0cGFkZGluZzogLjhlbSAyZW0gLjdlbSAyLjVlbTtcblx0ZmxvYXQ6IHJpZ2h0O1xuXHRcdCY6YWZ0ZXIge1xuXHRcdFx0ZGlzcGxheTppbmxpbmU7XG5cdFx0XHRAaW5jbHVkZSB4LWljb24oJGdseXBoLS1hcnJvdy0tcmlnaHQsIDMwcHgsICRjb2xvci13aGl0ZSk7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuICAgICB9XG5cdCBcblx0QG1lZGlhIHNjcmVlbiBhbmQobWF4LXdpZHRoOiAxMDAwcHgpICB7IFxuXHRwYWRkaW5nOiAxNXB4IDEwcHg7XG5cdG1hcmdpbjogMTVweDtcblx0Zm9udC1zaXplOiAuODVlbTtcblx0bWF4LXdpZHRoOiA0NCU7XHRcblx0XHRcdCY6YWZ0ZXIge1xuXHRcdFx0ZGlzcGxheTppbmxpbmU7XG5cdFx0XHRAaW5jbHVkZSB4LWljb24oJGdseXBoLS1hcnJvdy0tcmlnaHQsIDMwcHgsICRjb2xvci13aGl0ZSk7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XG5cdFx0XHRtYXJnaW46IDA7XG5cdFx0XHRwYWRkaW5nOiAwO1xuICAgICAgfVxuXHR9XHQgXG5cdCBcblx0QG1lZGlhIHNjcmVlbiBhbmQobWF4LXdpZHRoOiA0ODBweCkgIHsgXG5cdHBhZGRpbmc6IDEwcHggNXB4O1xuXHRtYXJnaW46IDEwcHg7XG5cdGZvbnQtc2l6ZTogLjc1ZW07XG5cdG1heC13aWR0aDogNDIlO1x0XG5cdFx0JjphZnRlciB7XG5cdFx0XHRkaXNwbGF5OmlubGluZTtcblx0XHRcdEBpbmNsdWRlIHgtaWNvbigkZ2x5cGgtLWFycm93LS1yaWdodCwgMTVweCwgJGNvbG9yLXdoaXRlKTtcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcblx0XHRcdG1hcmdpbjogMDtcblx0XHRcdHBhZGRpbmc6IDA7XG4gICAgIH1cdFxuXHR9XHQgIFx0IFxuXHQgXG5cdH1cblx0XG4ubGVmdF9idXR0b24ge1xuXHRwYWRkaW5nOiAuOGVtIDJlbSAuN2VtIDIuNWVtO1xuXHRhIHtcblx0XHRjb2xvcjogJGNvbG9yLXdoaXRlICFpbXBvcnRhbnQ7XG5cdFx0d2lkdGg6IDExZW0gIWltcG9ydGFudDtcblx0XHRmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50O1xuXHR9XG5cdGJhY2tncm91bmQ6ICM1ODkwRTMgIWltcG9ydGFudDtcblx0ZmxvYXQ6IGxlZnQ7XG5cdCBcblx0fVxuXHRcbi5yaWdodF9idXR0b24ge1xuXHRwYWRkaW5nOiAuOGVtIDJlbSAuN2VtIDIuNWVtO1xuXHRhIHtcblx0XHRjb2xvcjogJGNvbG9yLXdoaXRlICFpbXBvcnRhbnQ7XG5cdFx0d2lkdGg6IDdlbSAhaW1wb3J0YW50O1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7XG5cdH1cblx0YmFja2dyb3VuZDogIzU4OTBFMyAhaW1wb3J0YW50O1xuXHRmbG9hdDogcmlnaHQ7XG5cdCBcblx0fVxuXHRcbi5sZWZ0X2J1dHRvbl9uYXJyb3cge1xuXHRwYWRkaW5nOiAuOGVtIDJlbSAuN2VtIDIuNWVtO1xuXHRhIHtcblx0XHRjb2xvcjogJGNvbG9yLXdoaXRlICFpbXBvcnRhbnQ7XG5cdFx0d2lkdGg6IDExZW0gIWltcG9ydGFudDtcblx0XHRmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50O1xuXHR9XG5cdHdpZHRoOiAzMiUgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDogIzU4OTBFMyAhaW1wb3J0YW50O1xuXHRmbG9hdDogbGVmdDtcblx0IFxuXHR9XG5cdFxuLmxlZnRfYnV0dG9uX3dpZGUge1xuXHRwYWRkaW5nOiAuOGVtIDJlbSAuN2VtIDIuNWVtO1xuXHRhIHtcblx0XHRjb2xvcjogJGNvbG9yLXdoaXRlICFpbXBvcnRhbnQ7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQgIWltcG9ydGFudDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXJcblx0fVxuXHR3aWR0aDogOTAlICFpbXBvcnRhbnQ7XG5cdGJhY2tncm91bmQ6ICM1ODkwRTMgIWltcG9ydGFudDtcblx0ZmxvYXQ6IGxlZnQ7XG5cdCBcblx0fVxuXHRcbi5yaWdodF9idXR0b25fd2lkZSB7XG5cdHBhZGRpbmc6IC44ZW0gMmVtIC43ZW0gMi41ZW07XG5cdGEge1xuXHRcdGNvbG9yOiAkY29sb3Itd2hpdGUgIWltcG9ydGFudDtcblx0XHRmb250LXdlaWdodDogYm9sZCAhaW1wb3J0YW50O1xuXHRcdHRleHQtYWxpZ246IGNlbnRlclxuXHR9XG5cdHdpZHRoOiA5MCUgIWltcG9ydGFudDtcblx0YmFja2dyb3VuZDogIzU4OTBFMyAhaW1wb3J0YW50O1xuXHRmbG9hdDogcmlnaHQ7XG5cdCBcblx0fVxuXG4ubGVmdC1jZWxsIHtcblx0cGFkZGluZzogLjhlbSAyZW0gLjdlbSAyLjVlbTtcblx0d2lkdGg6IDU4JTtcblx0ZmxvYXQ6IGxlZnQ7XG5cdCBcblx0fVxuXHRcbi5yaWdodC1jZWxsIHtcblx0cGFkZGluZzogLjhlbSAyZW0gLjdlbSAyLjVlbTtcblx0d2lkdGg6IDI4JTtcblx0Ym9yZGVyOiBub25lO1xuXHRib3JkZXItcmFkaXVzOjEwcHg7XG5cdGJhY2tncm91bmQ6ICM1ODkwRTMgIWltcG9ydGFudDtcblx0YSB7XG5cdFx0Y29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQgIWltcG9ydGFudDtcblx0fVxuXHRmbG9hdDogcmlnaHQ7XG5cdCBcblx0fVxuXHRcbi5jZW50ZXItY2VsbCB7XG5cdHBhZGRpbmc6IC44ZW0gMmVtIC43ZW0gMi41ZW07XG5cdG1hcmdpbi10b3A6IDFlbTtcblx0bWFyZ2luLWxlZnQ6IDIzJTtcblx0d2lkdGg6IDU0JTtcblx0Ym9yZGVyOiBub25lO1xuXHRib3JkZXItcmFkaXVzOjEwcHg7XG5cdGJhY2tncm91bmQ6ICM1ODkwRTMgIWltcG9ydGFudDtcblx0YSB7XG5cdFx0YWxpZ24tdGV4dDogY2VudGVyO1xuXHRcdGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xuXHRcdGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7XG5cdH1cblx0IFxuXHR9XG5cdFxuLmNlbnRlci1jZWxsLXNtYWxsIHtcblx0cGFkZGluZzogLjhlbSAyZW0gLjdlbSAyLjVlbTtcblx0bWFyZ2luLXRvcDogMWVtO1xuXHRtYXJnaW4tbGVmdDogMjklO1xuXHR3aWR0aDogNDIlO1xuXHRib3JkZXI6IG5vbmU7XG5cdGJvcmRlci1yYWRpdXM6MTBweDtcblx0YmFja2dyb3VuZDogIzU4OTBFMyAhaW1wb3J0YW50O1xuXHRhIHtcblx0XHRhbGlnbi10ZXh0OiBjZW50ZXI7XG5cdFx0Y29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG5cdFx0Zm9udC13ZWlnaHQ6IGJvbGQgIWltcG9ydGFudDtcblx0fVxuXHQgXG5cdH1cblx0XG5mb3JtLnRlY2hfc3BlY3Mge1xuXHRwYWRkaW5nLXRvcDogMTBweDtcblxuXG5cdHNlbGVjdCB7XG5cdFx0cGFkZGluZzogMTBweCA1cHg7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogI0QxRTBGNTtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0XHRmb250LWZhbWlseTogJ09wZW4gU2FucycsIHNhbnMtc2VyaWZcblx0XHR9XG5cdFx0XG5cdG9wdGlvbjpub3QoOmNoZWNrZWQpIHsgZm9udC13ZWlnaHQ6IDYwMDsgbWFyZ2luOiAxMHB4OyBwYWRkaW5nOiAxMHB4OyB9XHRcblx0b3B0aW9uOmNoZWNrZWQgeyBmb250LXdlaWdodDogNjAwOyBtYXJnaW46IDEwcHg7IHBhZGRpbmc6IDEwcHg7IH1cdFx0XG59XG5cbiBcbi8vY3NzIGZvciBraWJhbmEgcGFnZXNcbi5pbnN0YWxsX2luc3RydWN0aW9ucyB7XG5cdG1heC13aWR0aDogOTAlO1xuXHRtYXJnaW4tdG9wOiA0MHB4O1xuXHQud2ViX3RleHQge1xuXHRcdG1hcmdpbjogMzBweCAzMHB4IDYwcHggNDBweDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1x0XHRcblx0XHRmb250LXNpemU6IDEycHg7XG5cdFx0bWF4LXdpZHRoOiA2MCU7XG5cdFx0LndlYl90ZXh0X2NvbnRlbnQge1xuXHRcdFx0cGFkZGluZzogMjBweCA0MHB4O1xuXHRcdH1cblx0fVxuXHRvbCBsaSBvbCB7IFxuXHRcdHBhZGRpbmctdG9wOiAyMHB4O1xuXG5cdFx0fVxufVxuXG4uY29udGVudCAuY29udGVudF9faW5uZXIgLmNvbnRlbnRfX2NvcHkgLmluc3RhbGxfaW5zdHJ1Y3Rpb25zIG9sIGxpIG9sIGxpIHtcdFxuXHRsaXN0LXN0eWxlLXR5cGU6IGxvd2VyLWFscGhhO1xuXHRtYXJnaW4tYm90dG9tOiA0MHB4O1xuXHRtYXJnaW4tbGVmdDogNDBweDtcblx0XG5cdC5jb2RlIHtcblx0XHRtYXJnaW4tbGVmdDogNjBweDtcblx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdGZvbnQtc2l6ZTogMTRweDtcblx0fVxuXHRcblx0fSBcblx0XG4vLyBob21lcGFnZSBjc3MgZm9yIG5ldyBiYW5uZXIgcGFnZVx0XG4vKnBvc2l0aW9uIG9uIGJhbm5lciBvbiBob21lcGFnZSovXG4uYmFubmVyX3BhZ2UgeyBtYXgtd2lkdGg6IDEwMDBweDsgbWFyZ2luOiBhdXRvOyBiYWNrZ3JvdW5kLWNvbG9yOiAjZDFlMGY1OyB9XG4uaG9tZXBhZ2VfX2hlcm8ge1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy93cC1jb250ZW50L3RoZW1lcy9zdG9ja3JvdmVyL21lZGlhL2ltYWdlcy9uZXctaGVyby13aWRlLmpwZycpO1xuICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgYXV0bztcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdCB0b3A7XG4gIGZvbnQtZmFtaWx5OiBBcmlhbCwgVmVyZGFuYSwgc2Fucy1zZXJpZjtcbiAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gIGNvbG9yOiAjZmZmOyAgXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMDAwO1xuICBtaW4taGVpZ2h0OiAyMDBweDtcbiAgbWF4LWhlaWdodDogNjAwcHg7ICAgIFxuICBoZWlnaHQ6IDQwdmg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgXG4gIGEgeyBjb2xvcjogI2VlZTsgfVxuICBcblx0QG1lZGlhIHNjcmVlbiBhbmQobWluLXdpZHRoOiAxMDAwcHgpICB7XHRcdFxuICAgaGVpZ2h0OiA2MFZIO1xuXG4gIC5ob21lcGFnZV9iYW5uZXJfdGl0bGUge1xuXHRmb250LXNpemU6IDkwcHg7XG5cdGNvbG9yOiAjNTg5MGUzO1xuXHRmb250LXdlaWdodDogNDAwO1xuXHRib3JkZXI6IG5vbmU7XG5cdGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuXHR3aWR0aDogNDAwcHg7XG5cdG1hcmdpbi10b3A6IDgwcHg7XG5cdGZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJywgR2VvcmdpYSwgUGFsYXRpbm8sIEJvb2ttYW4sICdOZXcgQ2VudHVyeSBTY2hvb2xib29rJywgc2VyaWY7XG5cdFxuXHRcblx0LmRlZ3JlZSB7IFxuXHRcdGNvbG9yOiAjZmZmOyBcblx0XHRmb250LXdlaWdodDogNTAwO1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0fVxuXHRcbiAgfVxuXHRpbWcgeyBtYXgtd2lkdGg6IDQwMHB4O1xuXHRcdCAgd2lkdGg6IDEwMCU7XG5cdH1cblxuICAuaG9tZXBhZ2VfYmFubmVyX3N1YnRpdGxlIHtcblx0Zm9udC1zaXplOiAyMnB4O1xuXHRjb2xvcjogIzAwMDtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0bWFyZ2luLXRvcDogMDtcblx0fVxuXHRcbiAgYSAuaG9tZXBhZ2VfYmFubmVyX2xpbmsge1xuXHQgIG1hcmdpbi10b3A6IDVweDtcblx0ICBjb2xvcjogIzU4OTBlMztcblx0ICBmb250LXdlaWdodDogNjAwO1xuXHQgIGZvbnQtc2l6ZTogMjhweDsgXG5cdCAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgfVx0XG4gIFxuICAgIFxuICBhIC5ob21lcGFnZV9mZWF0dXJlX3RleHQge1xuXHQgIGNvbG9yOiAjZmZmO1xuXHQgIGZvbnQtd2VpZ2h0OiA2MDA7XG5cdCAgZm9udC1zaXplOiAzNnB4O1xuXHQgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0ICBib3R0b206IDcwcHg7XG5cdCAgcmlnaHQ6IDYwcHg7XG4gIH1cbiAgXG59XHRcblx0QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAwMHB4KSBhbmQgKG1pbi13aWR0aDogNzAwcHgpIHtcblx0XHRcbiAgXG4gIC5ob21lcGFnZV9iYW5uZXJfdGl0bGUge1xuXHRmb250LXNpemU6IGNhbGMoIDgwcHggKyAuMXZ3ICk7XG5cdGNvbG9yOiAjNTg5MGUzOztcblx0Zm9udC13ZWlnaHQ6IDUwMDtcblx0Ym9yZGVyOiBub25lO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcblx0bWF4LXdpZHRoOiA0MDBweDtcblx0d2lkdGg6IDQwJTsgXG5cdG1hcmdpbi10b3A6IDEwdmg7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0Zm9udC1mYW1pbHk6ICdUaW1lcyBOZXcgUm9tYW4nLCBHZW9yZ2lhLCBQYWxhdGlubywgQm9va21hbiwgJ05ldyBDZW50dXJ5IFNjaG9vbGJvb2snLCBzZXJpZjtcblx0LmRlZ3JlZSB7IFxuXHRcdGNvbG9yOiAjZmZmOyBcblx0XHRmb250LXdlaWdodDogNTAwO1xuXHRcdG1hcmdpbi10b3A6IDA7XG5cdFx0fVx0XG5cdFxuICB9XG5cdGltZyB7IG1heC13aWR0aDogNDAwcHg7XG5cdFx0ICB3aWR0aDogMTAwJTtcblx0fVxuXG4gIC5ob21lcGFnZV9iYW5uZXJfc3VidGl0bGUge1xuXHRmb250LXNpemU6IGNhbGMoIDE0cHggKyAuN3Z3KTtcblx0Y29sb3I6ICMwMDA7XG5cdGZvbnQtd2VpZ2h0OiA2MDA7XG5cdG1hcmdpbi10b3A6IDA7XG5cdG1hcmdpbi1sZWZ0OiAyOHZ3O1xuXHR9XG5cdFxuICBhIC5ob21lcGFnZV9iYW5uZXJfbGluayB7XG5cdCAgbWFyZ2luLXRvcDogMXZoO1xuXHQgIG1hcmdpbi1yaWdodDogMnZ3O1xuXHQgIGNvbG9yOiAjNTg5MGUzO1xuXHQgIGZvbnQtd2VpZ2h0OiA2MDA7XG5cdCAgZm9udC1zaXplOiBjYWxjKCAxNHB4ICsgLjh2dyApOyBcblx0ICBsaW5lLWhlaWdodDogMS4yO1xuICB9XHRcbiAgXG4gIGEgLmhvbWVwYWdlX2ZlYXR1cmVfdGV4dCB7XG5cdCAgY29sb3I6ICNmZmY7XG5cdCAgZm9udC13ZWlnaHQ6IDcwMDtcblx0ICBmb250LXNpemU6IGNhbGMoIDIwcHggKyAxLjR2dyk7XG5cdCAgcG9zaXRpb246IGFic29sdXRlO1xuXHQgIGJvdHRvbTogNXZoO1xuXHQgIHJpZ2h0OiA2dnc7XG4gIH0gIFxuICBcbn1cblxuXHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkgIHtcblx0aGVpZ2h0OiAyMlZIO1xuICAuaG9tZXBhZ2VfYmFubmVyX3RpdGxlIHtcblx0Zm9udC1zaXplOiBjYWxjKCA0MnB4ICsgLjV2dyApO1xuXHRjb2xvcjogIzU4OTBlMzs7XG5cdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdGJvcmRlcjogbm9uZTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdG1heC13aWR0aDogNDAwcHg7XG5cdG1hcmdpbi10b3A6IDJ2aDtcblx0Zm9udC1mYW1pbHk6ICdUaW1lcyBOZXcgUm9tYW4nLCBHZW9yZ2lhLCBQYWxhdGlubywgQm9va21hbiwgJ05ldyBDZW50dXJ5IFNjaG9vbGJvb2snLCBzZXJpZjtcdFxuXHQuZGVncmVlIHsgXG5cdFx0Y29sb3I6ICNmZmY7IFxuXHRcdGZvbnQtd2VpZ2h0OiA1MDA7XG5cdFx0bWFyZ2luLXRvcDogMDtcblx0XHR9XHRcbiAgfVxuXHRpbWcgeyBtYXgtd2lkdGg6IDQwMHB4O1xuXHRcdCAgd2lkdGg6IDEwMCU7XG5cdH1cbiAgLmhvbWVwYWdlX2Jhbm5lcl9zdWJ0aXRsZSB7XG5cdGZvbnQtc2l6ZTogY2FsYyggMTRweCArIC43dncpO1xuXHRjb2xvcjogIzAwMDtcblx0Zm9udC13ZWlnaHQ6IDYwMDtcblx0bWFyZ2luLXRvcDogMDtcblx0fVx0XG4gIGEgLmhvbWVwYWdlX2Jhbm5lcl9saW5rIHtcblx0ICBtYXJnaW4tdG9wOiAwdmg7XG5cdCAgbWFyZ2luLXJpZ2h0OiAydnc7XG5cdCAgY29sb3I6ICM1ODkwZTM7XG5cdCAgZm9udC13ZWlnaHQ6IDYwMDtcblx0ICBmb250LXNpemU6IGNhbGMoIDEwcHggKyAxdncgKTsgXG5cdCAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgfVx0XG4gIGEgLmhvbWVwYWdlX2ZlYXR1cmVfdGV4dCB7XG5cdCAgY29sb3I6ICNmZmY7XG5cdCAgZm9udC13ZWlnaHQ6IDcwMDtcblx0ICBmb250LXNpemU6IGNhbGMoIDE2cHggKyAxLjJ2dyk7XG5cdCAgcG9zaXRpb246IGFic29sdXRlO1xuXHQgIGJvdHRvbTogM3ZoO1xuXHQgIHJpZ2h0OiA0dnc7XG4gIH0gIFxufVx0XG5cblx0QG1lZGlhIHNjcmVlbiBhbmQgKG1heC1oZWlnaHQ6IDQ1MHB4KSB7XG5cdGhlaWdodDogMzIwcHg7XG5cblx0ICBhIC5ob21lcGFnZV9mZWF0dXJlX3RleHQge1xuXHQgIGJvdHRvbTogOHZoO1xuICB9ICBcblx0XG59XG5cblxufVxuXG4vLyBob21lcGFnZSBidXR0b25zIGJlbG93IHBpY3R1cmVcbi5ob21lcGFnZV9idXR0b25zIHtcblx0YmFja2dyb3VuZC1jb2xvcjogIzkyYjZlZDtcblx0d2lkdGg6IDEwMCU7XG5cdGhlaWdodDogYXV0bztcbiAgICBwYWRkaW5nOiAxMHB4O1xuXG5cdFxuXHRcblx0LmhvbWVwYWdlX2J1dHRvbnNfbGlzdCB7XG5cdFx0Zm9udC1zaXplOiAwO1xuXHRcdGhlaWdodDogYXV0bztcblx0XHR3aWR0aDogMTAwJTtcblx0XHRkaXNwbGF5OiBmbGV4O1xuXHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0bWFyZ2luOiBhdXRvO1xuXG5cblx0XHRhIHsgXG5cdFx0XHR0ZXh0LWRlY29yYXRpb246IG5vbmU7IFxuXHRcdFx0Y29sb3I6ICNmZmY7XG5cdFx0fVx0XHRcdFxuXHRcdFxuXHRcdC50ZXh0X2J1dHRvbiB7IFxuXHRcdFx0Zm9udC1zaXplOiBjYWxjKCAxMnB4ICsgLjV2dyApIDtcblx0XHRcdHBhZGRpbmc6IDA7XG5cdFx0XHRoZWlnaHQ6IDMycHg7XG5cdFx0XHR0ZXh0LWFsaWduOiBsZWZ0O1x0XG5cdFx0XHRmbGV4LWdyb3c6IDE7XG5cdFx0XHRtYXJnaW46IGF1dG87XG5cdFx0XHR3aWR0aDogYXV0bztcblx0XHRcdFxuXHRcdFx0XG5cdFx0XHRAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3MDBweCkge1xuXHRcdFx0XHRmb250LXNpemU6IGNhbGMoIDEwcHggKyAuNXZ3ICk7XG5cdFx0XHRcdG1hcmdpbjogYXV0bztcblx0XHRcdFx0cGFkZGluZzogMDtcblx0XHRcdFx0aGVpZ2h0OiBhdXRvO1xuXHRcdFx0fVxuXHRcdH1cdFx0XG5cdFx0XG5cdFx0LmxpbmtfYnV0dG9uIHsgXG5cdFx0XHRmb250LXNpemU6IDE2cHg7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjNTg5MGUzO1xuXHRcdFx0cGFkZGluZzogNHB4IDIwcHggNHB4IDIwcHg7XG5cdFx0XHRoZWlnaHQ6IDMycHg7XG5cdFx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0XHRtYXJnaW46IGF1dG8gMiU7XG5cdFx0XHR3aWR0aDogMTIwcHg7XG5cdFx0XHRcblx0XHRcdFx0XHRcdFxuXHRcdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzAwcHgpIHtcblx0XHRcdFx0Zm9udC1zaXplOiAxNHB4O1xuXHRcdFx0XHRtYXJnaW46IGF1dG8gMiU7XG5cdFx0XHRcdHBhZGRpbmc6IDVweCAxMHB4O1xuXHRcdFx0XHR3aWR0aDogOTBweDtcblx0XHRcdH1cblx0XHR9XG5cdFx0XG5cdFx0XG59XG59XG5cbi8vY3JvemRlc2sgYnV0dG9uXG4uY3JvemRlc2sge1xuXHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdHRleHQtYWxpZ246Y2VudGVyO1xuXHRtYXgtd2lkdGg6IDMwMHB4O1xuXHR3aWR0aDogMzAlO1xuXHRwYWRkaW5nOiAwIDM1JSA0MHB4IDM1JTtcblx0aW1nIHsgXG5cdFx0bWF4LXdpZHRoOiAzMDBweDsgXG5cdFx0QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAwMHB4KSB7XG5cdFx0XHRtYXgtd2lkdGg6IDIwMHB4O1xuXHRcdH1cblx0XHRcblx0fVxuXG59XG5cbi8vd29vY29tbWVyY2Ugc3RvcmUgc3R5bGVzXG5cbi8vdWwud29vY29tbWVyY2UtZXJyb3Ige1xuIC8vICAgZGlzcGxheTogbm9uZTtcbi8vfVxuXG5cblxuXG5cblxuYS5yZW1vdmUge1xuICAgIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICAgIGJvcmRlcjogMDtcbn1cbiBcblxuLndvb2NvbW1lcmNlIGEucmVtb3ZlOmhvdmVyIHsgY29sb3I6IHJlZDsgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjt9XG4ud29vY29tbWVyY2UgYS5yZW1vdmU6YmVmb3JlIHtcbiAgICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgICBjb250ZW50OiBcIkRlbGV0ZVwiO1xuXHRmb250LXNpemU6IDEwcHg7XG5cdGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgdGV4dC1pbmRlbnQ6IDA7XG5cdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsMTBweCk7XG5cdGNvbG9yOiAjNTg5MGUzO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xufVxuLndvb2NvbW1lcmNlLWVycm9yIHsgYm9yZGVyLXRvcC1jb2xvcjogIzU4OTBlMzsgfVxuLndvb2NvbW1lcmNlLWVycm9yOjpiZWZvcmUgeyBjb250ZW50OiBub25lOyB9XG4ud29vY29tbWVyY2UtZXJyb3Ige1x0cGFkZGluZzogMWVtIDJlbSAxZW0gMWVtO31cbi53b29jb21tZXJjZS1pbmZvLCAud29vY29tbWVyY2UtbWVzc2FnZSB7IGRpc3BsYXk6IG5vbmU7IH1cbi53b29jb21tZXJjZS1jYXJ0LWZvcm0sIC5zaG9wX3RhYmxlLndvb2NvbW1lcmNlLWNoZWNrb3V0LXJldmlldy1vcmRlci10YWJsZSwgXG4ud29vY29tbWVyY2UtY2hlY2tvdXQtcmV2aWV3LW9yZGVyLXRhYmxlID4gdGZvb3Q6bnRoLWNoaWxkKDMpID4gdHI6bnRoLWNoaWxkKDIpID4gdGQ6bnRoLWNoaWxkKDEpICB7IFxuXHRtYXJnaW46IDEwcHggYXV0byA2MHB4IGF1dG87IFxuXHR3aWR0aDogMTAwJTtcdFxuXHRidXR0b24uYnV0dG9uOm50aC1jaGlsZCgxKSB7IGJhY2tncm91bmQtY29sb3I6ICM1ODkwZTM7IGNvbG9yOiAjZmZmOyBmbG9hdDpyaWdodDtmb250LXdlaWdodDogNDAwO31cblx0XHRcblx0LnNob3BfdGFibGVfcmVzcG9uc2l2ZSB7IFxuXHRcdHRoIHsgYmFja2dyb3VuZC1jb2xvcjogI2VlZTtcdH1cblx0fVxufVxuXG4ud29vY29tbWVyY2UtY2hlY2tvdXQtcmV2aWV3LW9yZGVyLXRhYmxlID4gdGhlYWQ6bnRoLWNoaWxkKDEpID4gdHI6bnRoLWNoaWxkKDEpIHtcblx0YmFja2dyb3VuZC1jb2xvcjogI2VlZTtcbn1cblxuXG5cbi53b29jb21tZXJjZSAuY29sMi1zZXQgLmNvbC0xLCAud29vY29tbWVyY2UtcGFnZSAuY29sMi1zZXQgLmNvbC0xIHtcblx0d2lkdGg6IDQ1JTtcblx0bWF4LXdpZHRoOiA2MDBweDtcblx0XHRAbWVkaWEgKG1heC13aWR0aDogNzcwcHgpIHsgd2lkdGg6IDEwMCU7IG1heC13aWR0aDogMTAwJTsgfVxuXHRcbn1cbiNiaWxsaW5nX2xhc3RfbmFtZV9maWVsZCB7IG1hcmdpbi10b3A6IDA7IG1hcmdpbi1ib3R0b206IDFlbTt9XG5cbmlucHV0I2JpbGxpbmdfcGhvbmUuaW5wdXQtdGV4dCB7IGhlaWdodDogMjhweDsgcGFkZGluZy1sZWZ0OiA4cHg7IG1hcmdpbjogMDsgYm9yZGVyOiBub25lO31cbi5zZWxlY3QyLWNvbnRhaW5lci0tZGVmYXVsdCAuc2VsZWN0Mi1zZWxlY3Rpb24tLXNpbmdsZSB7IGJvcmRlci1yYWRpdXM6IDA7IGJvcmRlcjogMHB4OyB9XG4uc2VsZWN0Mi1jb250YWluZXIgeyB2ZXJ0aWNhbC1hbGlnbjogdGV4dC10b3A7IH1cblxuLndvb2NvbW1lcmNlLWJpbGxpbmctZmllbGRzX19maWVsZC13cmFwcGVyIHsgYmFja2dyb3VuZC1jb2xvcjogI2VlZTsgYm9yZGVyOiBub25lOyBwYWRkaW5nOiAyMHB4IDEwcHg7IG1hcmdpbjogMTBweCAwOyB9XG5cblxuXG5zcGFuLndvb2NvbW1lcmNlLWlucHV0LXdyYXBwZXIge1xuXG5cdGJvcmRlcjogbm9uZTtcblx0aW5wdXQgeyBcblx0cGFkZGluZy1sZWZ0OiA4cHg7IFxuXHRmb250LXNpemU6IDE2cHg7XG5cdGZvbnQtZmFtaWx5OiAnT3BlbiBTYW5zJywgc2Fucy1zZXJpZjtcblx0Zm9udC13ZWlnaHQ6IDQwMDsgXG5cdFx0aGVpZ2h0OiAzMnB4O1xuXHRsaW5lLWhlaWdodDogMzJweDtcblx0fVxufVxuXG5cdFxuI3BsYWNlX29yZGVyIHsgYmFja2dyb3VuZC1jb2xvcjogIzU4OTBlMzsgfVxuXG4ud29vY29tbWVyY2UtY2hlY2tvdXQgI3BheW1lbnQgeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZWVlOyB9XG5cblxuZmllbGRzZXQjd2MtYnJhaW50cmVlLWNjLWZvcm0ud2MtY3JlZGl0LWNhcmQtZm9ybS53Yy1wYXltZW50LWZvcm0gcC5mb3JtLXJvdy5mb3JtLXJvdy1sYXN0Lndvb2NvbW1lcmNlLXZhbGlkYXRlZCB7IHdpZHRoOiA0MCU7IH1cblxuXG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NzBweCkge1xuIC53b29jb21tZXJjZSB0YWJsZS5zaG9wX3RhYmxlX3Jlc3BvbnNpdmUgdHIgdGQ6OmJlZm9yZSwgLndvb2NvbW1lcmNlLXBhZ2UgdGFibGUuc2hvcF90YWJsZV9yZXNwb25zaXZlIHRyIHRkOjpiZWZvcmUgeyBjb250ZW50OiBhdHRyKGRhdGEtdGl0bGUpOyB9XG59XG50YWJsZS53b29jb21tZXJjZS1vcmRlci1vdmVydmlldyB7ICBtYXJnaW46IDEwcHggMTBweCA2MHB4IDBweDsgd2lkdGg6IDkwJTsgbWluLXdpZHRoOiAyODBweDsgbWF4LXdpZHRoOiA2MDBweDsgdGFibGUtbGF5b3V0OiBmaXhlZDsgYm9yZGVyOiAxcHggc29saWQgI2VlZTt9XG50YWJsZS53b29jb21tZXJjZS1vcmRlci1vdmVydmlldyB0Ym9keSB0ciB7IGJvcmRlcjogMXB4IHNvbGlkICNlZWU7IH1cbnRkLndvb2NvbW1lcmNlLW9yZGVyLW92ZXJ2aWV3LXRpdGxlIHsgZm9udC1zaXplOiAxOHB4O3BhZGRpbmc6IDVweCAwIDVweCAxNXB4OyB3aWR0aDogNzAlOyBtaW4td2lkdGg6IDEwMHB4OyB9XG50ZC53b29jb21tZXJjZS1vcmRlci1vdmVydmlldy1kYXRhIHtmb250LXdlaWdodDogNjAwOyBmb250LXNpemU6IDEuNGVtOyBwYWRkaW5nOiA1cHggMCA1cHggMTVweDsgd2lkdGg6IDMwJTsgbWluLXdpZHRoOiAyMDBweDt9XG4ucHVyY2hhc2VQYWdlIHtcblx0dGV4dC1hbGlnbjogbGVmdDtcblx0bWFyZ2luOiBhdXRvIDUlO1xuXHRcbn1cblxuXG4ud29vY29tbWVyY2UgdGFibGUuc2hvcF90YWJsZSB7XG5cdFx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NTBweCkge1xuXHRcdFx0dGhlYWQgeyBkaXNwbGF5OiBub25lOyB9XG5cdFx0XHR0ZCB7IGRpc3BsYXk6IHRhYmxlLWNlbGw7fVxuXHRcdFx0fVxufVxuXG4ucHVyY2hhc2VUYWJsZUZvcm0gaDQgeyBtYXJnaW46IDIwcHggYXV0bzsgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7IGZvbnQtd2VpZ2h0OiA2MDA7IGZvbnQtc2l6ZTogMThweDsgfVxuXG4ucHVyY2hhc2VCdXR0b25zICB7IFxuXHR0ZXh0LWFsaWduOiBsZWZ0O1xuXHRtYXJnaW46IDQwcHggYXV0bztcblx0ZGlzcGxheTogaW5saW5lLWZsZXg7XG5cdFxuXHRAbWVkaWEgKG1heC13aWR0aDogMTAwMHB4KSB7XG5cdFx0ZGlzcGxheTogdGFibGUtY2VsbDtcblx0fVx0XG5cdFxuXHRcblx0YS5saWNfYWRkX3RvX2NhcnQge1xuXHRcdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcblx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdGNvbG9yOiAjZmZmOyBcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjNTg5MGUzOyBcblx0XHRwYWRkaW5nOiAxMHB4IDE1cHg7XG5cdFx0bWFyZ2luOiA1cHggNDBweCA1cHggMDsgXG5cdFx0Zm9udC1zaXplOiAxOHB4OyBcblx0XHR3aWR0aDogNDAwcHg7IFxuXHRcdGhlaWdodDogMTAwcHg7XG5cdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXHRcdHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cdEBtZWRpYSAobWF4LXdpZHRoOiAxMDAwcHgpIHtcblx0XHRtYXJnaW46IDIwcHggYXV0bzsgXG5cdH1cdFx0XHRcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNTAwcHgpIHtcblx0XHR3aWR0aDogMzAwcHg7XG5cdH1cdFx0XG5cdH1cbn1cblxuLndvb2NvbW1lcmNlIC53b29jb21tZXJjZS1vcmRlci1kZXRhaWxzLCAud29vY29tbWVyY2UgLndvb2NvbW1lcmNlLW9yZGVyLWRvd25sb2FkcyB7XG5cdHdpZHRoOiA5MCU7XG5cdG1heC13aWR0aDogNjAwcHg7XG5cdG1pbi13aWR0aDogMjgwcHg7XG5cdG1hcmdpbjogMTBweCAxMHB4IDYwcHggMDtcblx0XG59XG5cbi53b29jb21tZXJjZSAud29vY29tbWVyY2UtY3VzdG9tZXItZGV0YWlscyB7IFxuXHR3aWR0aDogOTAlOyBcblx0bWF4LXdpZHRoOiA0MDBweDsgXG5cdHBhZGRpbmctdG9wOiAyMHB4OyBcblx0YWRkcmVzcyB7IFxuXHRcdHBhZGRpbmctbGVmdDogNSU7IFxuXHR9XG5cdGgyIHtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHR9XG5cdH1cblxuXHRcbi53b29jb21tZXJjZS1jaGVja291dCBwLndvb2NvbW1lcmNlLWludmFsaWQtcmVxdWlyZWQtZmllbGQgc3Bhbi5lcnJvciB7XG4gICBjb2xvcjogI2UyNDAxYztcbiAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICBmb250LXdlaWdodDogYm9sZDtcbn1cdFxuXG4uc2VsZWN0LWNzcyB7XG5cdGRpc3BsYXk6IGJsb2NrO1xuXHRmb250LXNpemU6IDE2cHg7XG5cdGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuXHRmb250LXdlaWdodDogNjAwO1xuXHRjb2xvcjogIzQ0NDtcblx0bGluZS1oZWlnaHQ6IDEuMztcblx0cGFkZGluZzogLjZlbSAxLjRlbSAuNWVtIC44ZW07XG5cdHdpZHRoOiA0MDBweDtcblx0bWF4LXdpZHRoOiA0MDBweDtcblx0Ym94LXNpemluZzogYm9yZGVyLWJveDtcblx0bWFyZ2luOiAwO1xuXHRib3JkZXI6IDFweCBzb2xpZCAjYWFhO1xuXHRib3gtc2hhZG93OiAwIDFweCAwIDFweCByZ2JhKDAsMCwwLC4wNCk7XG5cdGJvcmRlci1yYWRpdXM6IC41ZW07XG5cdC1tb3otYXBwZWFyYW5jZTogbm9uZTtcblx0LXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuXHRhcHBlYXJhbmNlOiBub25lO1xuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuXHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ2RhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PVVTLUFTQ0lJLCUzQ3N2ZyUyMHhtbG5zJTNEJTIyaHR0cCUzQSUyRiUyRnd3dy53My5vcmclMkYyMDAwJTJGc3ZnJTIyJTIwd2lkdGglM0QlMjIyOTIuNCUyMiUyMGhlaWdodCUzRCUyMjI5Mi40JTIyJTNFJTNDcGF0aCUyMGZpbGwlM0QlMjIlMjMwMDdDQjIlMjIlMjBkJTNEJTIyTTI4NyUyMDY5LjRhMTcuNiUyMDE3LjYlMjAwJTIwMCUyMDAtMTMtNS40SDE4LjRjLTUlMjAwLTkuMyUyMDEuOC0xMi45JTIwNS40QTE3LjYlMjAxNy42JTIwMCUyMDAlMjAwJTIwMCUyMDgyLjJjMCUyMDUlMjAxLjglMjA5LjMlMjA1LjQlMjAxMi45bDEyOCUyMDEyNy45YzMuNiUyMDMuNiUyMDcuOCUyMDUuNCUyMDEyLjglMjA1LjRzOS4yLTEuOCUyMDEyLjgtNS40TDI4NyUyMDk1YzMuNS0zLjUlMjA1LjQtNy44JTIwNS40LTEyLjglMjAwLTUtMS45LTkuMi01LjUtMTIuOHolMjIlMkYlM0UlM0MlMkZzdmclM0UnKSxcblx0ICBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAjZmZmZmZmIDAlLCNlNWU1ZTUgMTAwJSk7XG5cdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQsIHJlcGVhdDtcblx0YmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQgLjdlbSB0b3AgNTAlLCAwIDA7XG5cdGJhY2tncm91bmQtc2l6ZTogLjY1ZW0gYXV0bywgMTAwJTtcblx0QG1lZGlhIChtYXgtd2lkdGg6IDEwMDBweCkge1xuXHRcdG1hcmdpbi1ib3R0b206IDIwcHg7IFxuXHR9XHRcbiAgICBAbWVkaWEgKG1heC13aWR0aDogNTAwcHgpIHtcblx0XHR3aWR0aDogMzAwcHg7XG5cdH1cbn1cbi5zZWxlY3QtY3NzOjotbXMtZXhwYW5kIHtcblx0ZGlzcGxheTogbm9uZTtcbn1cbi5zZWxlY3QtY3NzOmhvdmVyIHtcblx0Ym9yZGVyLWNvbG9yOiAjODg4O1xufVxuLnNlbGVjdC1jc3M6Zm9jdXMge1xuXHRib3JkZXItY29sb3I6ICNhYWE7XG5cdGJveC1zaGFkb3c6IDAgMCAxcHggM3B4IHJnYmEoNTksIDE1MywgMjUyLCAuNyk7XG5cdGJveC1zaGFkb3c6IDAgMCAwIDNweCAtbW96LW1hYy1mb2N1c3Jpbmc7XG5cdGNvbG9yOiAjMjIyO1xuXHRvdXRsaW5lOiBub25lO1xufVxuLnNlbGVjdC1jc3Mgb3B0aW9uIHtcblx0Zm9udC13ZWlnaHQ6bm9ybWFsO1xufSJdLCJtYXBwaW5ncyI6IjtBaURXSSxrQkFBa0IsQ0FBQyxRQUFRO0VxQ1Y3QixFQUFFO0lBQ0EsVUFBVSxFRE9DLE9BQU87RUNMcEIsR0FBRztJQUNELFVBQVUsRUFBRSxPQUFPO0VBRXJCLElBQUk7SUFDRixVQUFVLEVEQ0MsT0FBTzs7QXBDVWxCLGVBQWUsQ0FBQyxRQUFRO0VxQ2xCMUIsRUFBRTtJQUNBLFVBQVUsRURPQyxPQUFPO0VDTHBCLEdBQUc7SUFDRCxVQUFVLEVBQUUsT0FBTztFQUVyQixJQUFJO0lBQ0YsVUFBVSxFRENDLE9BQU87O0FwQ3NCbEIsVUFBVSxDQUFDLFFBQVE7RXFDOUJyQixFQUFFO0lBQ0EsVUFBVSxFRE9DLE9BQU87RUNMcEIsR0FBRztJQUNELFVBQVUsRUFBRSxPQUFPO0VBRXJCLElBQUk7SUFDRixVQUFVLEVEQ0MsT0FBTzs7QUlOcEIsSUFBSSxDQUFDO0VBQ0gsVUFBVSxFQUFFLFVBQVcsR0FDeEI7O0FBRUQsQ0FBQyxFQUFELENBQUMsQUFFRSxPQUFPLEVBRlYsQ0FBQyxBQUdFLFFBQVEsQ0FBQztFQUNSLFVBQVUsRUFBRSxPQUFRLEdBQ3JCOztBZVpMOzs7OztHQUtHO0FDTEg7Ozs7O0dBS0c7QUNMSDs7R0FFRztBQ0ZIOzs7Ozs7O0dBT0c7QUNQSDs7Ozs7Ozs7R0FRRztBQ1JIOzs7Ozs7R0FNRztBQ05IOzs7Ozs7R0FNRztBQ05IOzs7R0FHRztBTUhILE1BQU0sRUFPTixLQUFLLENBUUYsQUFB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 */
