/**
 * Contact us block styles
 */
/**
 * Load SCSS mixins and non-generated code
 */
/**
 * Variables
 */
/** Paths */
/**
 * Breakpoints, container widths
 * 	Change the values in _scroll.js as well
 */
/** Colors */
/** Quick options */
/** Components */
/** Fonts */
/**
* Mixins
*/
/**
 * Style inner SVG
 * @return {[type]} [description]
 */
/**
 * @param $animation Animation properties: name duration timing-function delay iteration-count direction fill-mode play-state;
 */
/**
 * @param $width Extra breakpoint width
 */
/** Bootstrap button base */
/** Typo setting */
/** Animated underline */
.block--production {
  overflow: hidden; }
  .block--production .block__cover {
    padding-bottom: 60px; }

.production {
  --production-height: 480px;
  --scale: 0.8;
  width: 100%;
  padding-top: 10px;
  padding-left: calc(50vw - 44px); }
  @media (min-width: 576px) {
    .production {
      --scale: 1; } }
  @media (min-width: 1200px) {
    .production {
      --scale: 0.8; } }
  @media (min-width: 1500px) {
    .production {
      --production-height: 550px;
      --scale: 1; } }
  @media (min-width: 1200px) {
    .production {
      padding-left: 0; } }
  @media (min-width: 1500px) {
    .production {
      margin-top: 50px; } }
  .production__bg {
    position: absolute;
    top: calc(var(--navbar-spacing) + 93px);
    left: 0;
    right: 0;
    height: 100vh;
    z-index: 0;
    background-image: radial-gradient(rgba(209, 208, 208, 0.8) 20%, transparent 20%);
    background-repeat: repeat;
    background-size: 17px 17px; }
  .production__scroller {
    width: 1200px; }
    @media (min-width: 576px) {
      .production__scroller {
        width: 1480px; } }
    @media (min-width: 1200px) {
      .production__scroller {
        width: 1200px;
        margin-left: auto;
        margin-right: auto; } }
    @media (min-width: 1500px) {
      .production__scroller {
        width: 1480px; } }
  .production__steps {
    width: 100%;
    display: flex;
    justify-content: flex-start;
    align-items: flex-end; }
  .production__step {
    position: relative;
    opacity: 0.45;
    transition: opacity .3s ease-in-out;
    will-change: opacity; }
    .production__step.active {
      opacity: 1; }
    .production__step::before, .production__step::after {
      content: '';
      position: absolute;
      width: 8px;
      height: 9px;
      background: transparent url("../../svg/drop-orange.svg") no-repeat center center;
      background-size: contain;
      z-index: 2; }
    .production__step::after {
      background-image: url("../../svg/drop-blue.svg"); }
    .production__step--1 {
      flex: 0 0 6.7521944632%; }
      .production__step--1::before, .production__step--1::after {
        top: 18.7969924812%;
        left: 13%;
        opacity: 0; }
      .production__step--1::after {
        left: auto;
        top: 35.7142857143%;
        right: 21%;
        transform: rotate(45deg); }
      .production__step--1.active::before {
        -webkit-animation: drops1 1.5s linear infinite;
        -moz-animation: drops1 1.5s linear infinite;
        -o-animation: drops1 1.5s linear infinite;
        animation: drops1 1.5s linear infinite;
        -webkit-animation-fill-mode: forward;
        -moz-animation-fill-mode: forward;
        -o-animation-fill-mode: forward;
        animation-fill-mode: forward; }
      .production__step--1.active::after {
        -webkit-animation: drops2 1.5s linear 1s infinite;
        -moz-animation: drops2 1.5s linear 1s infinite;
        -o-animation: drops2 1.5s linear 1s infinite;
        animation: drops2 1.5s linear 1s infinite;
        -webkit-animation-fill-mode: forward;
        -moz-animation-fill-mode: forward;
        -o-animation-fill-mode: forward;
        animation-fill-mode: forward; }
    .production__step--2 {
      flex: 0 0 18.5685347738%; }
      .production__step--2::before {
        top: 2.5773195876%;
        left: 24.7272727273%;
        transform-origin: center bottom;
        transform: rotate(180deg);
        opacity: 0; }
      .production__step--2::after {
        top: 37.8865979381%;
        left: 10.3636363636%;
        transform: rotate(90deg);
        opacity: 0; }
      .production__step--2 .imgAspect::before, .production__step--2 .imgAspect::after {
        content: '';
        position: absolute;
        width: 8px;
        height: 9px;
        background: transparent url("../../svg/drop-blue.svg") no-repeat center center;
        background-size: contain;
        z-index: 2;
        transform: rotate(90deg);
        opacity: 0; }
      .production__step--2 .imgAspect::before {
        left: calc(var(--scale) * 106px);
        bottom: calc(var(--scale) * 29px); }
      .production__step--2 .imgAspect::after {
        left: calc(var(--scale) * 216px);
        bottom: calc(var(--scale) * 54px); }
      .production__step--2.active::before {
        -webkit-animation: drops3 2s linear infinite;
        -moz-animation: drops3 2s linear infinite;
        -o-animation: drops3 2s linear infinite;
        animation: drops3 2s linear infinite;
        -webkit-animation-fill-mode: forward;
        -moz-animation-fill-mode: forward;
        -o-animation-fill-mode: forward;
        animation-fill-mode: forward; }
      .production__step--2.active::after {
        -webkit-animation: drops4 5s linear infinite;
        -moz-animation: drops4 5s linear infinite;
        -o-animation: drops4 5s linear infinite;
        animation: drops4 5s linear infinite;
        -webkit-animation-fill-mode: forward;
        -moz-animation-fill-mode: forward;
        -o-animation-fill-mode: forward;
        animation-fill-mode: forward; }
      .production__step--2.active .imgAspect::before {
        -webkit-animation: drops5 3s linear infinite;
        -moz-animation: drops5 3s linear infinite;
        -o-animation: drops5 3s linear infinite;
        animation: drops5 3s linear infinite;
        -webkit-animation-fill-mode: forward;
        -moz-animation-fill-mode: forward;
        -o-animation-fill-mode: forward;
        animation-fill-mode: forward; }
      .production__step--2.active .imgAspect::after {
        -webkit-animation: drops6 2s linear 2s infinite;
        -moz-animation: drops6 2s linear 2s infinite;
        -o-animation: drops6 2s linear 2s infinite;
        animation: drops6 2s linear 2s infinite;
        -webkit-animation-fill-mode: forward;
        -moz-animation-fill-mode: forward;
        -o-animation-fill-mode: forward;
        animation-fill-mode: forward; }
    .production__step--3 {
      flex: 0 0 24.9831195138%; }
      .production__step--3::before, .production__step--3::after {
        transform: rotate(90deg);
        opacity: 0; }
      .production__step--3::before {
        background-image: url("../../svg/drop-blue.svg");
        bottom: calc(var(--scale) * 112px);
        right: calc(var(--scale) * 115px); }
      .production__step--3::after {
        bottom: calc(var(--scale) * 101px);
        right: calc(var(--scale) * 119px); }
      .production__step--3 .imgAspect::before, .production__step--3 .imgAspect::after {
        content: '';
        position: absolute;
        z-index: 2;
        opacity: 0;
        transition: opacity .5s ease-in-out;
        will-change: opacity; }
      .production__step--3 .imgAspect::before {
        top: calc(var(--scale) * 110px);
        left: calc(var(--scale) * 105px);
        width: 84px;
        height: 80px;
        background: transparent url("../../img/drops.png") repeat-x top right; }
      .production__step--3 .imgAspect::after {
        top: calc(var(--scale) * 40px);
        right: calc(var(--scale) * 134px);
        width: calc(var(--scale) * 187px);
        height: calc(var(--scale) * 187px);
        border-radius: 50%;
        clip-path: polygon(0 calc(var(--scale) * 135px), 100% calc(var(--scale) * 135px), 100% 100%, 0 100%);
        background: #386B8A;
        -webkit-animation: waves 2s ease-in-out 0.5s infinite;
        -moz-animation: waves 2s ease-in-out 0.5s infinite;
        -o-animation: waves 2s ease-in-out 0.5s infinite;
        animation: waves 2s ease-in-out 0.5s infinite;
        -webkit-animation-fill-mode: forward;
        -moz-animation-fill-mode: forward;
        -o-animation-fill-mode: forward;
        animation-fill-mode: forward; }
        @media (min-width: 576px) {
          .production__step--3 .imgAspect::after {
            right: calc(var(--scale) * 133px); } }
        @media (min-width: 1200px) {
          .production__step--3 .imgAspect::after {
            right: calc(var(--scale) * 134px); } }
        @media (min-width: 1500px) {
          .production__step--3 .imgAspect::after {
            right: calc(var(--scale) * 133px); } }
      .production__step--3.active::before {
        -webkit-animation: drops7 4s linear 0.5s infinite;
        -moz-animation: drops7 4s linear 0.5s infinite;
        -o-animation: drops7 4s linear 0.5s infinite;
        animation: drops7 4s linear 0.5s infinite;
        -webkit-animation-fill-mode: forward;
        -moz-animation-fill-mode: forward;
        -o-animation-fill-mode: forward;
        animation-fill-mode: forward; }
      .production__step--3.active::after {
        -webkit-animation: drops8 4s linear 1.5s infinite;
        -moz-animation: drops8 4s linear 1.5s infinite;
        -o-animation: drops8 4s linear 1.5s infinite;
        animation: drops8 4s linear 1.5s infinite;
        -webkit-animation-fill-mode: forward;
        -moz-animation-fill-mode: forward;
        -o-animation-fill-mode: forward;
        animation-fill-mode: forward; }
      .production__step--3.active .imgAspect::before {
        -webkit-animation: steam1 2.5s linear 1s infinite;
        -moz-animation: steam1 2.5s linear 1s infinite;
        -o-animation: steam1 2.5s linear 1s infinite;
        animation: steam1 2.5s linear 1s infinite;
        -webkit-animation-fill-mode: forward;
        -moz-animation-fill-mode: forward;
        -o-animation-fill-mode: forward;
        animation-fill-mode: forward; }
      .production__step--3.active .imgAspect::after {
        opacity: 1; }
    .production__step--4 {
      flex: 0 0 19.2437542201%; }
      .production__step--4::before {
        top: calc(var(--scale) * 55px);
        left: calc(var(--scale) * 165px);
        transform: rotate(-75deg);
        opacity: 0; }
      .production__step--4::after {
        display: none; }
      .production__step--4 .imgAspect::before, .production__step--4 .imgAspect::after {
        content: '';
        position: absolute;
        z-index: 2;
        opacity: 0; }
      .production__step--4 .imgAspect::before {
        left: calc(var(--scale) * 130px);
        bottom: calc(var(--scale) * 134px);
        width: 50px;
        height: 80px;
        background: transparent url("../../img/drops.png") repeat-x top left; }
      .production__step--4 .imgAspect::after {
        left: calc(var(--scale) * 71px);
        bottom: calc(var(--scale) * 97px);
        width: calc(var(--scale) * 176px);
        height: calc(var(--scale) * 44px);
        background: #dc3545;
        border-radius: 50%; }
        @media (min-width: 576px) {
          .production__step--4 .imgAspect::after {
            left: calc(var(--scale) * 68px); } }
        @media (min-width: 1200px) {
          .production__step--4 .imgAspect::after {
            left: calc(var(--scale) * 70px); } }
        @media (min-width: 1500px) {
          .production__step--4 .imgAspect::after {
            left: calc(var(--scale) * 68px); } }
      .production__step--4.active::before {
        -webkit-animation: drops9 3s linear infinite;
        -moz-animation: drops9 3s linear infinite;
        -o-animation: drops9 3s linear infinite;
        animation: drops9 3s linear infinite;
        -webkit-animation-fill-mode: forward;
        -moz-animation-fill-mode: forward;
        -o-animation-fill-mode: forward;
        animation-fill-mode: forward; }
      .production__step--4.active .imgAspect::before {
        -webkit-animation: steam2 4.5s linear 1s infinite;
        -moz-animation: steam2 4.5s linear 1s infinite;
        -o-animation: steam2 4.5s linear 1s infinite;
        animation: steam2 4.5s linear 1s infinite;
        -webkit-animation-fill-mode: forward;
        -moz-animation-fill-mode: forward;
        -o-animation-fill-mode: forward;
        animation-fill-mode: forward; }
      .production__step--4.active .imgAspect::after {
        -webkit-animation: burning 1.5s linear 1s infinite;
        -moz-animation: burning 1.5s linear 1s infinite;
        -o-animation: burning 1.5s linear 1s infinite;
        animation: burning 1.5s linear 1s infinite;
        -webkit-animation-fill-mode: forward;
        -moz-animation-fill-mode: forward;
        -o-animation-fill-mode: forward;
        animation-fill-mode: forward; }
    .production__step--5 {
      flex: 0 0 21.1343686698%;
      align-self: flex-start;
      padding-top: 4.3214044564%; }
      .production__step--5::before, .production__step--5::after {
        z-index: 0;
        opacity: 0; }
      .production__step--5::before {
        bottom: calc(var(--scale) * 17px);
        left: calc(var(--scale) * 160px); }
      .production__step--5::after {
        bottom: calc(var(--scale) * 17px);
        left: calc(var(--scale) * 197px); }
      .production__step--5 .imgAspect::before {
        content: '';
        position: absolute;
        top: calc(var(--scale) * 67px);
        right: calc(var(--scale) * 68px);
        z-index: 2;
        width: calc(var(--scale) * 14px);
        height: calc(var(--scale) * 52px);
        background: #9b9b9b;
        transform: rotate(15deg);
        border-radius: 50%;
        opacity: 0; }
      .production__step--5.active::before {
        -webkit-animation: drops10 2s ease-in infinite;
        -moz-animation: drops10 2s ease-in infinite;
        -o-animation: drops10 2s ease-in infinite;
        animation: drops10 2s ease-in infinite;
        -webkit-animation-fill-mode: forward;
        -moz-animation-fill-mode: forward;
        -o-animation-fill-mode: forward;
        animation-fill-mode: forward; }
      .production__step--5.active::after {
        -webkit-animation: drops11 2s linear infinite;
        -moz-animation: drops11 2s linear infinite;
        -o-animation: drops11 2s linear infinite;
        animation: drops11 2s linear infinite;
        -webkit-animation-fill-mode: forward;
        -moz-animation-fill-mode: forward;
        -o-animation-fill-mode: forward;
        animation-fill-mode: forward; }
      .production__step--5.active .imgAspect::before {
        -webkit-animation: condenser 3s linear infinite;
        -moz-animation: condenser 3s linear infinite;
        -o-animation: condenser 3s linear infinite;
        animation: condenser 3s linear infinite;
        -webkit-animation-fill-mode: forward;
        -moz-animation-fill-mode: forward;
        -o-animation-fill-mode: forward;
        animation-fill-mode: forward; }
    .production__step--6 {
      flex: 0 0 9.3180283592%;
      margin-left: -1.924375422%; }
      .production__step--6::before {
        background-image: url("../../svg/drop-red.svg");
        top: -10px;
        left: 10px;
        z-index: 0;
        opacity: 0; }
      .production__step--6::after {
        display: none; }
      .production__step--6 .imgAspect::before {
        content: '';
        position: absolute;
        bottom: calc(var(--scale) * 128px);
        left: calc(var(--scale) * 53px);
        right: calc(var(--scale) * 60px);
        height: calc(var(--scale) * 43px);
        background: #386B8A;
        border-top: calc(var(--scale) * 20px) solid #F49E24;
        transform-origin: center bottom;
        transform: scale(1, 0);
        opacity: 0;
        transition: opacity .3s ease-in-out;
        will-change: opacity; }
      .production__step--6.active::before {
        opacity: 1;
        -webkit-animation: drops12 1.5s linear infinite;
        -moz-animation: drops12 1.5s linear infinite;
        -o-animation: drops12 1.5s linear infinite;
        animation: drops12 1.5s linear infinite;
        -webkit-animation-fill-mode: forward;
        -moz-animation-fill-mode: forward;
        -o-animation-fill-mode: forward;
        animation-fill-mode: forward; }
      .production__step--6.active .imgAspect::before {
        opacity: 1;
        -webkit-animation: filling 5s linear infinite;
        -moz-animation: filling 5s linear infinite;
        -o-animation: filling 5s linear infinite;
        animation: filling 5s linear infinite;
        -webkit-animation-fill-mode: forward;
        -moz-animation-fill-mode: forward;
        -o-animation-fill-mode: forward;
        animation-fill-mode: forward; }
  .production__tab {
    position: relative;
    appearance: none;
    background: none;
    border: none;
    border-top: 1px solid #000;
    width: 100%;
    margin-top: 30px;
    padding: 12px 30px;
    font-size: 0.9375rem;
    line-height: 1.25;
    letter-spacing: normal;
    font-family: "Playfair Display", serif; }
    .production__tab::before, .production__tab::after {
      content: '';
      position: absolute; }
    .production__tab::before {
      left: 0;
      right: 0;
      top: -2px;
      height: 1px;
      background: #000;
      transform-origin: left center;
      transform: scale(0, 1);
      transition: transform .3s ease-in-out;
      will-change: transform; }
    .production__tab::after {
      top: -6px;
      width: 0;
      height: 0;
      border-width: 0 4px 6px;
      border-color: transparent transparent #000;
      border-style: solid;
      transform-origin: bottom center;
      transform: scale(1, 0);
      transition: transform .3s ease-in-out;
      will-change: transform; }
    .production__tab--1::after {
      left: 19.2307692308%; }
    .production__tab--2::after {
      left: 0; }
    .production__tab--3::after {
      left: 2.8846153846%; }
    .production__tab--4::after {
      right: 31.7307692308%; }
    .production__tab--5::after {
      right: 12.9807692308%; }
    .production__tab--6::after {
      right: 46.6346153846%; }
    .production__tab__label {
      display: inline-block;
      position: relative;
      color: #000;
      transform: translate(0, 0);
      transition: transform .3s ease-in-out, color .3s ease-in-out;
      will-change: transform, color; }
      .production__tab__label::before {
        content: '';
        position: absolute;
        top: 5px;
        right: 0;
        width: 33px;
        height: 9px;
        background: transparent url("../../svg/right.svg") no-repeat center center;
        background-size: contain;
        opacity: 0;
        transform: translate(0, 0);
        transition: opacity .3s ease-in-out 0s, transform .3s ease-in-out;
        will-change: opacity, transform; }
      .production__tab__label::after {
        content: attr(data-label);
        position: absolute;
        top: 0;
        left: -3px;
        right: -3px;
        bottom: 0;
        z-index: 1;
        font-weight: 700;
        color: #000;
        opacity: 0;
        transition: opacity .3s ease-in-out;
        will-change: opacity; }
    .production__tab:hover::after {
      transform: scale(1, 1); }
    .production__tab:hover .production__tab__label {
      transform: translate(-20px, 0); }
      .production__tab:hover .production__tab__label::before {
        opacity: 1;
        transition: opacity .3s ease-in-out .1s, transform .3s ease-in-out;
        transform: translate(40px, 0); }
    .production__tab:focus {
      outline: none; }
      .production__tab:focus .production__tab__label {
        color: transparent; }
        .production__tab:focus .production__tab__label::after {
          opacity: 1; }
    .production__tab.active::before, .production__tab.active::after {
      transform: scale(1, 1); }
    .production__tab.active .production__tab__label {
      color: transparent; }
      .production__tab.active .production__tab__label::after {
        opacity: 1; }
  @media (max-width: 1199.98px) {
    .production__panes {
      position: fixed;
      top: 0;
      left: -100vw;
      right: 100vw;
      bottom: 0; }
    .production__pane {
      width: 90%;
      max-width: 600px;
      position: fixed;
      top: 20px;
      left: 0;
      z-index: 1;
      max-height: calc(100% - 40px - 50px);
      overflow: auto;
      padding: 30px 20px 14px;
      margin: 0 5%;
      background: rgba(241, 241, 241, 0.75);
      border-radius: 5px;
      box-shadow: 5px 5px 5px -5px rgba(0, 0, 0, 0.2);
      opacity: 0;
      transform: translateY(50px);
      transition: transform .5s ease-in-out, opacity .5s ease-in-out, left .01s .5s;
      will-change: transform, opacity, left; }
      .production__pane::before {
        content: '';
        width: 30px;
        height: 25px;
        display: block;
        float: right; }
      .production__pane.active {
        opacity: 1;
        transform: translateY(0);
        left: calc(100vw + max(((100vw - 600px) / 2), 0px));
        z-index: 2;
        transition-delay: 0s; }
      .production__pane .btn--close {
        position: fixed;
        top: 20px;
        right: 15px;
        background: rgba(241, 241, 241, 0.6); } }
  @media (min-width: 1200px) {
    .production__panes {
      position: relative;
      height: calc(100vh - var(--production-height) - var(--nav-height));
      max-height: 200px;
      width: calc(var(--container-width) * 10/12);
      margin-left: auto;
      margin-right: auto; }
    .production__pane {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      max-height: 100%;
      padding: 20px 20px 0;
      overflow: auto;
      opacity: 0;
      transform: translateY(50px);
      transition: transform .5s ease-in-out, opacity .5s ease-in-out;
      will-change: transform, opacity; }
      .production__pane.active {
        opacity: 1;
        transform: translateY(0); } }
  @media (min-width: 1500px) {
    .production__panes {
      width: calc(var(--container-width) * 6/12); }
    .production__pane {
      padding-top: 35px; } }

@-webkit-keyframes drops1 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(0deg); }
  10% {
    opacity: 1; }
  70% {
    opacity: 1;
    transform: translate(calc(var(--scale) * 0px), calc(var(--scale) * 20px)) rotate(0deg); }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 3px), calc(var(--scale) * 25px)) rotate(-45deg); }
  100% {
    opacity: 0;
    transform: translate(0, 0) rotate(0deg); } }

@-moz-keyframes drops1 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(0deg); }
  10% {
    opacity: 1; }
  70% {
    opacity: 1;
    transform: translate(calc(var(--scale) * 0px), calc(var(--scale) * 20px)) rotate(0deg); }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 3px), calc(var(--scale) * 25px)) rotate(-45deg); }
  100% {
    opacity: 0;
    transform: translate(0, 0) rotate(0deg); } }

@-o-keyframes drops1 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(0deg); }
  10% {
    opacity: 1; }
  70% {
    opacity: 1;
    transform: translate(calc(var(--scale) * 0px), calc(var(--scale) * 20px)) rotate(0deg); }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 3px), calc(var(--scale) * 25px)) rotate(-45deg); }
  100% {
    opacity: 0;
    transform: translate(0, 0) rotate(0deg); } }

@keyframes drops1 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(0deg); }
  10% {
    opacity: 1; }
  70% {
    opacity: 1;
    transform: translate(calc(var(--scale) * 0px), calc(var(--scale) * 20px)) rotate(0deg); }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 3px), calc(var(--scale) * 25px)) rotate(-45deg); }
  100% {
    opacity: 0;
    transform: translate(0, 0) rotate(0deg); } }

@-webkit-keyframes drops2 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(45deg); }
  20% {
    opacity: 1;
    transform: translate(calc(var(--scale) * 3px), calc(var(--scale) * -5px)) rotate(0deg); }
  80% {
    transform: translate(calc(var(--scale) * 3px), calc(var(--scale) * -20px)) rotate(0deg);
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 3px), calc(var(--scale) * -25px)) rotate(0deg); }
  100% {
    opacity: 0;
    transform: translate(0, 0) rotate(45deg); } }

@-moz-keyframes drops2 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(45deg); }
  20% {
    opacity: 1;
    transform: translate(calc(var(--scale) * 3px), calc(var(--scale) * -5px)) rotate(0deg); }
  80% {
    transform: translate(calc(var(--scale) * 3px), calc(var(--scale) * -20px)) rotate(0deg);
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 3px), calc(var(--scale) * -25px)) rotate(0deg); }
  100% {
    opacity: 0;
    transform: translate(0, 0) rotate(45deg); } }

@-o-keyframes drops2 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(45deg); }
  20% {
    opacity: 1;
    transform: translate(calc(var(--scale) * 3px), calc(var(--scale) * -5px)) rotate(0deg); }
  80% {
    transform: translate(calc(var(--scale) * 3px), calc(var(--scale) * -20px)) rotate(0deg);
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 3px), calc(var(--scale) * -25px)) rotate(0deg); }
  100% {
    opacity: 0;
    transform: translate(0, 0) rotate(45deg); } }

@keyframes drops2 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(45deg); }
  20% {
    opacity: 1;
    transform: translate(calc(var(--scale) * 3px), calc(var(--scale) * -5px)) rotate(0deg); }
  80% {
    transform: translate(calc(var(--scale) * 3px), calc(var(--scale) * -20px)) rotate(0deg);
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 3px), calc(var(--scale) * -25px)) rotate(0deg); }
  100% {
    opacity: 0;
    transform: translate(0, 0) rotate(45deg); } }

@-webkit-keyframes drops3 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(180deg); }
  20% {
    opacity: 1;
    transform: translate(calc(var(--scale) * -2px), calc(var(--scale) * -10px)) rotate(190deg); }
  40% {
    transform: translate(calc(var(--scale) * 2px), calc(var(--scale) * -20px)) rotate(170deg); }
  60% {
    transform: translate(calc(var(--scale) * -2px), calc(var(--scale) * -30px)) rotate(190deg); }
  80% {
    opacity: 1;
    transform: translate(calc(var(--scale) * 2px), calc(var(--scale) * -40px)) rotate(170deg); }
  100% {
    opacity: 0;
    transform: translate(calc(var(--scale) * -2px), calc(var(--scale) * -50px)) rotate(190deg); } }

@-moz-keyframes drops3 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(180deg); }
  20% {
    opacity: 1;
    transform: translate(calc(var(--scale) * -2px), calc(var(--scale) * -10px)) rotate(190deg); }
  40% {
    transform: translate(calc(var(--scale) * 2px), calc(var(--scale) * -20px)) rotate(170deg); }
  60% {
    transform: translate(calc(var(--scale) * -2px), calc(var(--scale) * -30px)) rotate(190deg); }
  80% {
    opacity: 1;
    transform: translate(calc(var(--scale) * 2px), calc(var(--scale) * -40px)) rotate(170deg); }
  100% {
    opacity: 0;
    transform: translate(calc(var(--scale) * -2px), calc(var(--scale) * -50px)) rotate(190deg); } }

@-o-keyframes drops3 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(180deg); }
  20% {
    opacity: 1;
    transform: translate(calc(var(--scale) * -2px), calc(var(--scale) * -10px)) rotate(190deg); }
  40% {
    transform: translate(calc(var(--scale) * 2px), calc(var(--scale) * -20px)) rotate(170deg); }
  60% {
    transform: translate(calc(var(--scale) * -2px), calc(var(--scale) * -30px)) rotate(190deg); }
  80% {
    opacity: 1;
    transform: translate(calc(var(--scale) * 2px), calc(var(--scale) * -40px)) rotate(170deg); }
  100% {
    opacity: 0;
    transform: translate(calc(var(--scale) * -2px), calc(var(--scale) * -50px)) rotate(190deg); } }

@keyframes drops3 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(180deg); }
  20% {
    opacity: 1;
    transform: translate(calc(var(--scale) * -2px), calc(var(--scale) * -10px)) rotate(190deg); }
  40% {
    transform: translate(calc(var(--scale) * 2px), calc(var(--scale) * -20px)) rotate(170deg); }
  60% {
    transform: translate(calc(var(--scale) * -2px), calc(var(--scale) * -30px)) rotate(190deg); }
  80% {
    opacity: 1;
    transform: translate(calc(var(--scale) * 2px), calc(var(--scale) * -40px)) rotate(170deg); }
  100% {
    opacity: 0;
    transform: translate(calc(var(--scale) * -2px), calc(var(--scale) * -50px)) rotate(190deg); } }

@-webkit-keyframes drops4 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  25% {
    transform: translate(calc(var(--scale) * 50px), 0) rotate(90deg); }
  30% {
    transform: translate(calc(var(--scale) * 55px), calc(var(--scale) * -3px)) rotate(0deg); }
  52% {
    transform: translate(calc(var(--scale) * 55px), calc(var(--scale) * -65px)) rotate(0deg); }
  57% {
    transform: translate(calc(var(--scale) * 60px), calc(var(--scale) * -73px)) rotate(90deg); }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 160px), calc(var(--scale) * -73px)) rotate(90deg); } }

@-moz-keyframes drops4 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  25% {
    transform: translate(calc(var(--scale) * 50px), 0) rotate(90deg); }
  30% {
    transform: translate(calc(var(--scale) * 55px), calc(var(--scale) * -3px)) rotate(0deg); }
  52% {
    transform: translate(calc(var(--scale) * 55px), calc(var(--scale) * -65px)) rotate(0deg); }
  57% {
    transform: translate(calc(var(--scale) * 60px), calc(var(--scale) * -73px)) rotate(90deg); }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 160px), calc(var(--scale) * -73px)) rotate(90deg); } }

@-o-keyframes drops4 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  25% {
    transform: translate(calc(var(--scale) * 50px), 0) rotate(90deg); }
  30% {
    transform: translate(calc(var(--scale) * 55px), calc(var(--scale) * -3px)) rotate(0deg); }
  52% {
    transform: translate(calc(var(--scale) * 55px), calc(var(--scale) * -65px)) rotate(0deg); }
  57% {
    transform: translate(calc(var(--scale) * 60px), calc(var(--scale) * -73px)) rotate(90deg); }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 160px), calc(var(--scale) * -73px)) rotate(90deg); } }

@keyframes drops4 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  25% {
    transform: translate(calc(var(--scale) * 50px), 0) rotate(90deg); }
  30% {
    transform: translate(calc(var(--scale) * 55px), calc(var(--scale) * -3px)) rotate(0deg); }
  52% {
    transform: translate(calc(var(--scale) * 55px), calc(var(--scale) * -65px)) rotate(0deg); }
  57% {
    transform: translate(calc(var(--scale) * 60px), calc(var(--scale) * -73px)) rotate(90deg); }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 160px), calc(var(--scale) * -73px)) rotate(90deg); } }

@-webkit-keyframes drops5 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  25% {
    transform: translate(calc(var(--scale) * 20px), 0) rotate(90deg); }
  30% {
    transform: translate(calc(var(--scale) * 23px), calc(var(--scale) * -3px)) rotate(0deg); }
  55% {
    transform: translate(calc(var(--scale) * 23px), calc(var(--scale) * -22px)) rotate(0deg); }
  60% {
    transform: translate(calc(var(--scale) * 28px), calc(var(--scale) * -26px)) rotate(90deg); }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 55px), calc(var(--scale) * -26px)) rotate(90deg); } }

@-moz-keyframes drops5 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  25% {
    transform: translate(calc(var(--scale) * 20px), 0) rotate(90deg); }
  30% {
    transform: translate(calc(var(--scale) * 23px), calc(var(--scale) * -3px)) rotate(0deg); }
  55% {
    transform: translate(calc(var(--scale) * 23px), calc(var(--scale) * -22px)) rotate(0deg); }
  60% {
    transform: translate(calc(var(--scale) * 28px), calc(var(--scale) * -26px)) rotate(90deg); }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 55px), calc(var(--scale) * -26px)) rotate(90deg); } }

@-o-keyframes drops5 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  25% {
    transform: translate(calc(var(--scale) * 20px), 0) rotate(90deg); }
  30% {
    transform: translate(calc(var(--scale) * 23px), calc(var(--scale) * -3px)) rotate(0deg); }
  55% {
    transform: translate(calc(var(--scale) * 23px), calc(var(--scale) * -22px)) rotate(0deg); }
  60% {
    transform: translate(calc(var(--scale) * 28px), calc(var(--scale) * -26px)) rotate(90deg); }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 55px), calc(var(--scale) * -26px)) rotate(90deg); } }

@keyframes drops5 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  25% {
    transform: translate(calc(var(--scale) * 20px), 0) rotate(90deg); }
  30% {
    transform: translate(calc(var(--scale) * 23px), calc(var(--scale) * -3px)) rotate(0deg); }
  55% {
    transform: translate(calc(var(--scale) * 23px), calc(var(--scale) * -22px)) rotate(0deg); }
  60% {
    transform: translate(calc(var(--scale) * 28px), calc(var(--scale) * -26px)) rotate(90deg); }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 55px), calc(var(--scale) * -26px)) rotate(90deg); } }

@-webkit-keyframes drops6 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  48% {
    opacity: 1; }
  52% {
    opacity: 0.45; }
  80% {
    opacity: 0.45; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 110px), 0) rotate(90deg); } }

@-moz-keyframes drops6 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  48% {
    opacity: 1; }
  52% {
    opacity: 0.45; }
  80% {
    opacity: 0.45; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 110px), 0) rotate(90deg); } }

@-o-keyframes drops6 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  48% {
    opacity: 1; }
  52% {
    opacity: 0.45; }
  80% {
    opacity: 0.45; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 110px), 0) rotate(90deg); } }

@keyframes drops6 {
  0% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  48% {
    opacity: 1; }
  52% {
    opacity: 0.45; }
  80% {
    opacity: 0.45; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 110px), 0) rotate(90deg); } }

@-webkit-keyframes drops7 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  25% {
    transform: translate(calc(var(--scale) * 60px), 0) rotate(90deg); }
  30% {
    transform: translate(calc(var(--scale) * 63px), calc(var(--scale) * 5px)) rotate(180deg); }
  50% {
    transform: translate(calc(var(--scale) * 63px), calc(var(--scale) * 45px)) rotate(180deg); }
  55% {
    transform: translate(calc(var(--scale) * 70px), calc(var(--scale) * 49px)) rotate(90deg); }
  67% {
    opacity: 1; }
  70% {
    opacity: .45; }
  80% {
    opacity: .45; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 180px), calc(var(--scale) * 49px)) rotate(90deg); } }

@-moz-keyframes drops7 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  25% {
    transform: translate(calc(var(--scale) * 60px), 0) rotate(90deg); }
  30% {
    transform: translate(calc(var(--scale) * 63px), calc(var(--scale) * 5px)) rotate(180deg); }
  50% {
    transform: translate(calc(var(--scale) * 63px), calc(var(--scale) * 45px)) rotate(180deg); }
  55% {
    transform: translate(calc(var(--scale) * 70px), calc(var(--scale) * 49px)) rotate(90deg); }
  67% {
    opacity: 1; }
  70% {
    opacity: .45; }
  80% {
    opacity: .45; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 180px), calc(var(--scale) * 49px)) rotate(90deg); } }

@-o-keyframes drops7 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  25% {
    transform: translate(calc(var(--scale) * 60px), 0) rotate(90deg); }
  30% {
    transform: translate(calc(var(--scale) * 63px), calc(var(--scale) * 5px)) rotate(180deg); }
  50% {
    transform: translate(calc(var(--scale) * 63px), calc(var(--scale) * 45px)) rotate(180deg); }
  55% {
    transform: translate(calc(var(--scale) * 70px), calc(var(--scale) * 49px)) rotate(90deg); }
  67% {
    opacity: 1; }
  70% {
    opacity: .45; }
  80% {
    opacity: .45; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 180px), calc(var(--scale) * 49px)) rotate(90deg); } }

@keyframes drops7 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  25% {
    transform: translate(calc(var(--scale) * 60px), 0) rotate(90deg); }
  30% {
    transform: translate(calc(var(--scale) * 63px), calc(var(--scale) * 5px)) rotate(180deg); }
  50% {
    transform: translate(calc(var(--scale) * 63px), calc(var(--scale) * 45px)) rotate(180deg); }
  55% {
    transform: translate(calc(var(--scale) * 70px), calc(var(--scale) * 49px)) rotate(90deg); }
  67% {
    opacity: 1; }
  70% {
    opacity: .45; }
  80% {
    opacity: .45; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 180px), calc(var(--scale) * 49px)) rotate(90deg); } }

@-webkit-keyframes drops8 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  25% {
    transform: translate(calc(var(--scale) * 58px), 0) rotate(90deg); }
  30% {
    transform: translate(calc(var(--scale) * 58px), calc(var(--scale) * 5px)) rotate(180deg); }
  50% {
    transform: translate(calc(var(--scale) * 58px), calc(var(--scale) * 45px)) rotate(180deg); }
  55% {
    transform: translate(calc(var(--scale) * 60px), calc(var(--scale) * 49px)) rotate(90deg); }
  67% {
    opacity: 1; }
  70% {
    opacity: .45; }
  80% {
    opacity: .45; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 180px), calc(var(--scale) * 49px)) rotate(90deg); } }

@-moz-keyframes drops8 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  25% {
    transform: translate(calc(var(--scale) * 58px), 0) rotate(90deg); }
  30% {
    transform: translate(calc(var(--scale) * 58px), calc(var(--scale) * 5px)) rotate(180deg); }
  50% {
    transform: translate(calc(var(--scale) * 58px), calc(var(--scale) * 45px)) rotate(180deg); }
  55% {
    transform: translate(calc(var(--scale) * 60px), calc(var(--scale) * 49px)) rotate(90deg); }
  67% {
    opacity: 1; }
  70% {
    opacity: .45; }
  80% {
    opacity: .45; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 180px), calc(var(--scale) * 49px)) rotate(90deg); } }

@-o-keyframes drops8 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  25% {
    transform: translate(calc(var(--scale) * 58px), 0) rotate(90deg); }
  30% {
    transform: translate(calc(var(--scale) * 58px), calc(var(--scale) * 5px)) rotate(180deg); }
  50% {
    transform: translate(calc(var(--scale) * 58px), calc(var(--scale) * 45px)) rotate(180deg); }
  55% {
    transform: translate(calc(var(--scale) * 60px), calc(var(--scale) * 49px)) rotate(90deg); }
  67% {
    opacity: 1; }
  70% {
    opacity: .45; }
  80% {
    opacity: .45; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 180px), calc(var(--scale) * 49px)) rotate(90deg); } }

@keyframes drops8 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(90deg); }
  15% {
    opacity: 1; }
  25% {
    transform: translate(calc(var(--scale) * 58px), 0) rotate(90deg); }
  30% {
    transform: translate(calc(var(--scale) * 58px), calc(var(--scale) * 5px)) rotate(180deg); }
  50% {
    transform: translate(calc(var(--scale) * 58px), calc(var(--scale) * 45px)) rotate(180deg); }
  55% {
    transform: translate(calc(var(--scale) * 60px), calc(var(--scale) * 49px)) rotate(90deg); }
  67% {
    opacity: 1; }
  70% {
    opacity: .45; }
  80% {
    opacity: .45; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 180px), calc(var(--scale) * 49px)) rotate(90deg); } }

@-webkit-keyframes drops9 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(-75deg); }
  15% {
    opacity: 1; }
  69% {
    opacity: 1; }
  72% {
    opacity: 0.45; }
  80% {
    opacity: 0.45; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 140px), calc(var(--scale) * 38px)) rotate(-75deg); } }

@-moz-keyframes drops9 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(-75deg); }
  15% {
    opacity: 1; }
  69% {
    opacity: 1; }
  72% {
    opacity: 0.45; }
  80% {
    opacity: 0.45; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 140px), calc(var(--scale) * 38px)) rotate(-75deg); } }

@-o-keyframes drops9 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(-75deg); }
  15% {
    opacity: 1; }
  69% {
    opacity: 1; }
  72% {
    opacity: 0.45; }
  80% {
    opacity: 0.45; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 140px), calc(var(--scale) * 38px)) rotate(-75deg); } }

@keyframes drops9 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(-75deg); }
  15% {
    opacity: 1; }
  69% {
    opacity: 1; }
  72% {
    opacity: 0.45; }
  80% {
    opacity: 0.45; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * 140px), calc(var(--scale) * 38px)) rotate(-75deg); } }

@-webkit-keyframes drops10 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0); }
  15% {
    opacity: 1; }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * 50px)); } }

@-moz-keyframes drops10 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0); }
  15% {
    opacity: 1; }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * 50px)); } }

@-o-keyframes drops10 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0); }
  15% {
    opacity: 1; }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * 50px)); } }

@keyframes drops10 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0); }
  15% {
    opacity: 1; }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * 50px)); } }

@-webkit-keyframes drops11 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * 50px)); }
  20% {
    opacity: 1; }
  90% {
    transform: translate(0, 0);
    opacity: 1; }
  91% {
    opacity: 0; } }

@-moz-keyframes drops11 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * 50px)); }
  20% {
    opacity: 1; }
  90% {
    transform: translate(0, 0);
    opacity: 1; }
  91% {
    opacity: 0; } }

@-o-keyframes drops11 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * 50px)); }
  20% {
    opacity: 1; }
  90% {
    transform: translate(0, 0);
    opacity: 1; }
  91% {
    opacity: 0; } }

@keyframes drops11 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * 50px)); }
  20% {
    opacity: 1; }
  90% {
    transform: translate(0, 0);
    opacity: 1; }
  91% {
    opacity: 0; } }

@-webkit-keyframes drops12 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0); }
  15% {
    opacity: 1; }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * 20px)); } }

@-moz-keyframes drops12 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0); }
  15% {
    opacity: 1; }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * 20px)); } }

@-o-keyframes drops12 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0); }
  15% {
    opacity: 1; }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * 20px)); } }

@keyframes drops12 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0); }
  15% {
    opacity: 1; }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * 20px)); } }

@-webkit-keyframes steam1 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0); }
  20% {
    opacity: 1; }
  50% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * -80px)); } }

@-moz-keyframes steam1 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0); }
  20% {
    opacity: 1; }
  50% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * -80px)); } }

@-o-keyframes steam1 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0); }
  20% {
    opacity: 1; }
  50% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * -80px)); } }

@keyframes steam1 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0); }
  20% {
    opacity: 1; }
  50% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * -80px)); } }

@-webkit-keyframes steam2 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0); }
  20% {
    opacity: 1; }
  40% {
    opacity: 0.5; }
  60% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * -170px)); } }

@-moz-keyframes steam2 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0); }
  20% {
    opacity: 1; }
  40% {
    opacity: 0.5; }
  60% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * -170px)); } }

@-o-keyframes steam2 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0); }
  20% {
    opacity: 1; }
  40% {
    opacity: 0.5; }
  60% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * -170px)); } }

@keyframes steam2 {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0); }
  20% {
    opacity: 1; }
  40% {
    opacity: 0.5; }
  60% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(0, calc(var(--scale) * -170px)); } }

@-webkit-keyframes waves {
  0%, 100% {
    clip-path: polygon(0 calc(8% + calc(var(--scale) * 80px)), 7% calc(6% + calc(var(--scale) * 80px)), 14% calc(5% + calc(var(--scale) * 80px)), 21% calc(5% + calc(var(--scale) * 80px)), 28% calc(6% + calc(var(--scale) * 80px)), 34% calc(8% + calc(var(--scale) * 80px)), 40% calc(12% + calc(var(--scale) * 80px)), 46% calc(17% + calc(var(--scale) * 80px)), 50% calc(20% + calc(var(--scale) * 80px)), 54% calc(23% + calc(var(--scale) * 80px)), 60% calc(25% + calc(var(--scale) * 80px)), 66% calc(26% + calc(var(--scale) * 80px)), 70% calc(26% + calc(var(--scale) * 80px)), 77% calc(25% + calc(var(--scale) * 80px)), 83% calc(23% + calc(var(--scale) * 80px)), 89% calc(21% + calc(var(--scale) * 80px)), 95% calc(19% + calc(var(--scale) * 80px)), 100% calc(17% + calc(var(--scale) * 80px)), 100% calc(100% + calc(var(--scale) * 80px)), 0% 100%); }
  50% {
    clip-path: polygon(0 calc(15% + calc(var(--scale) * 80px)), 9% calc(21% + calc(var(--scale) * 80px)), 14% calc(23% + calc(var(--scale) * 80px)), 18% calc(25% + calc(var(--scale) * 80px)), 21% calc(26% + calc(var(--scale) * 80px)), 30% calc(28% + calc(var(--scale) * 80px)), 32% calc(28% + calc(var(--scale) * 80px)), 40% calc(27% + calc(var(--scale) * 80px)), 46% calc(26% + calc(var(--scale) * 80px)), 52% calc(23% + calc(var(--scale) * 80px)), 57% calc(19% + calc(var(--scale) * 80px)), 62% calc(15% + calc(var(--scale) * 80px)), 68% calc(11% + calc(var(--scale) * 80px)), 73% calc(8% + calc(var(--scale) * 80px)), 79% calc(6% + calc(var(--scale) * 80px)), 86% calc(5% + calc(var(--scale) * 80px)), 93% calc(5% + calc(var(--scale) * 80px)), 100% calc(6% + calc(var(--scale) * 80px)), 100% calc(100% + calc(var(--scale) * 80px)), 0% calc(100% + calc(var(--scale) * 80px))); } }

@-moz-keyframes waves {
  0%, 100% {
    clip-path: polygon(0 calc(8% + calc(var(--scale) * 80px)), 7% calc(6% + calc(var(--scale) * 80px)), 14% calc(5% + calc(var(--scale) * 80px)), 21% calc(5% + calc(var(--scale) * 80px)), 28% calc(6% + calc(var(--scale) * 80px)), 34% calc(8% + calc(var(--scale) * 80px)), 40% calc(12% + calc(var(--scale) * 80px)), 46% calc(17% + calc(var(--scale) * 80px)), 50% calc(20% + calc(var(--scale) * 80px)), 54% calc(23% + calc(var(--scale) * 80px)), 60% calc(25% + calc(var(--scale) * 80px)), 66% calc(26% + calc(var(--scale) * 80px)), 70% calc(26% + calc(var(--scale) * 80px)), 77% calc(25% + calc(var(--scale) * 80px)), 83% calc(23% + calc(var(--scale) * 80px)), 89% calc(21% + calc(var(--scale) * 80px)), 95% calc(19% + calc(var(--scale) * 80px)), 100% calc(17% + calc(var(--scale) * 80px)), 100% calc(100% + calc(var(--scale) * 80px)), 0% 100%); }
  50% {
    clip-path: polygon(0 calc(15% + calc(var(--scale) * 80px)), 9% calc(21% + calc(var(--scale) * 80px)), 14% calc(23% + calc(var(--scale) * 80px)), 18% calc(25% + calc(var(--scale) * 80px)), 21% calc(26% + calc(var(--scale) * 80px)), 30% calc(28% + calc(var(--scale) * 80px)), 32% calc(28% + calc(var(--scale) * 80px)), 40% calc(27% + calc(var(--scale) * 80px)), 46% calc(26% + calc(var(--scale) * 80px)), 52% calc(23% + calc(var(--scale) * 80px)), 57% calc(19% + calc(var(--scale) * 80px)), 62% calc(15% + calc(var(--scale) * 80px)), 68% calc(11% + calc(var(--scale) * 80px)), 73% calc(8% + calc(var(--scale) * 80px)), 79% calc(6% + calc(var(--scale) * 80px)), 86% calc(5% + calc(var(--scale) * 80px)), 93% calc(5% + calc(var(--scale) * 80px)), 100% calc(6% + calc(var(--scale) * 80px)), 100% calc(100% + calc(var(--scale) * 80px)), 0% calc(100% + calc(var(--scale) * 80px))); } }

@-o-keyframes waves {
  0%, 100% {
    clip-path: polygon(0 calc(8% + calc(var(--scale) * 80px)), 7% calc(6% + calc(var(--scale) * 80px)), 14% calc(5% + calc(var(--scale) * 80px)), 21% calc(5% + calc(var(--scale) * 80px)), 28% calc(6% + calc(var(--scale) * 80px)), 34% calc(8% + calc(var(--scale) * 80px)), 40% calc(12% + calc(var(--scale) * 80px)), 46% calc(17% + calc(var(--scale) * 80px)), 50% calc(20% + calc(var(--scale) * 80px)), 54% calc(23% + calc(var(--scale) * 80px)), 60% calc(25% + calc(var(--scale) * 80px)), 66% calc(26% + calc(var(--scale) * 80px)), 70% calc(26% + calc(var(--scale) * 80px)), 77% calc(25% + calc(var(--scale) * 80px)), 83% calc(23% + calc(var(--scale) * 80px)), 89% calc(21% + calc(var(--scale) * 80px)), 95% calc(19% + calc(var(--scale) * 80px)), 100% calc(17% + calc(var(--scale) * 80px)), 100% calc(100% + calc(var(--scale) * 80px)), 0% 100%); }
  50% {
    clip-path: polygon(0 calc(15% + calc(var(--scale) * 80px)), 9% calc(21% + calc(var(--scale) * 80px)), 14% calc(23% + calc(var(--scale) * 80px)), 18% calc(25% + calc(var(--scale) * 80px)), 21% calc(26% + calc(var(--scale) * 80px)), 30% calc(28% + calc(var(--scale) * 80px)), 32% calc(28% + calc(var(--scale) * 80px)), 40% calc(27% + calc(var(--scale) * 80px)), 46% calc(26% + calc(var(--scale) * 80px)), 52% calc(23% + calc(var(--scale) * 80px)), 57% calc(19% + calc(var(--scale) * 80px)), 62% calc(15% + calc(var(--scale) * 80px)), 68% calc(11% + calc(var(--scale) * 80px)), 73% calc(8% + calc(var(--scale) * 80px)), 79% calc(6% + calc(var(--scale) * 80px)), 86% calc(5% + calc(var(--scale) * 80px)), 93% calc(5% + calc(var(--scale) * 80px)), 100% calc(6% + calc(var(--scale) * 80px)), 100% calc(100% + calc(var(--scale) * 80px)), 0% calc(100% + calc(var(--scale) * 80px))); } }

@keyframes waves {
  0%, 100% {
    clip-path: polygon(0 calc(8% + calc(var(--scale) * 80px)), 7% calc(6% + calc(var(--scale) * 80px)), 14% calc(5% + calc(var(--scale) * 80px)), 21% calc(5% + calc(var(--scale) * 80px)), 28% calc(6% + calc(var(--scale) * 80px)), 34% calc(8% + calc(var(--scale) * 80px)), 40% calc(12% + calc(var(--scale) * 80px)), 46% calc(17% + calc(var(--scale) * 80px)), 50% calc(20% + calc(var(--scale) * 80px)), 54% calc(23% + calc(var(--scale) * 80px)), 60% calc(25% + calc(var(--scale) * 80px)), 66% calc(26% + calc(var(--scale) * 80px)), 70% calc(26% + calc(var(--scale) * 80px)), 77% calc(25% + calc(var(--scale) * 80px)), 83% calc(23% + calc(var(--scale) * 80px)), 89% calc(21% + calc(var(--scale) * 80px)), 95% calc(19% + calc(var(--scale) * 80px)), 100% calc(17% + calc(var(--scale) * 80px)), 100% calc(100% + calc(var(--scale) * 80px)), 0% 100%); }
  50% {
    clip-path: polygon(0 calc(15% + calc(var(--scale) * 80px)), 9% calc(21% + calc(var(--scale) * 80px)), 14% calc(23% + calc(var(--scale) * 80px)), 18% calc(25% + calc(var(--scale) * 80px)), 21% calc(26% + calc(var(--scale) * 80px)), 30% calc(28% + calc(var(--scale) * 80px)), 32% calc(28% + calc(var(--scale) * 80px)), 40% calc(27% + calc(var(--scale) * 80px)), 46% calc(26% + calc(var(--scale) * 80px)), 52% calc(23% + calc(var(--scale) * 80px)), 57% calc(19% + calc(var(--scale) * 80px)), 62% calc(15% + calc(var(--scale) * 80px)), 68% calc(11% + calc(var(--scale) * 80px)), 73% calc(8% + calc(var(--scale) * 80px)), 79% calc(6% + calc(var(--scale) * 80px)), 86% calc(5% + calc(var(--scale) * 80px)), 93% calc(5% + calc(var(--scale) * 80px)), 100% calc(6% + calc(var(--scale) * 80px)), 100% calc(100% + calc(var(--scale) * 80px)), 0% calc(100% + calc(var(--scale) * 80px))); } }

@-webkit-keyframes burning {
  0%, 100% {
    opacity: 0; }
  50% {
    opacity: 1; } }

@-moz-keyframes burning {
  0%, 100% {
    opacity: 0; }
  50% {
    opacity: 1; } }

@-o-keyframes burning {
  0%, 100% {
    opacity: 0; }
  50% {
    opacity: 1; } }

@keyframes burning {
  0%, 100% {
    opacity: 0; }
  50% {
    opacity: 1; } }

@-webkit-keyframes condenser {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(15deg); }
  15% {
    opacity: 1; }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * -195px), calc(var(--scale) * -53px)) rotate(15deg); } }

@-moz-keyframes condenser {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(15deg); }
  15% {
    opacity: 1; }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * -195px), calc(var(--scale) * -53px)) rotate(15deg); } }

@-o-keyframes condenser {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(15deg); }
  15% {
    opacity: 1; }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * -195px), calc(var(--scale) * -53px)) rotate(15deg); } }

@keyframes condenser {
  0%, 100% {
    opacity: 0;
    transform: translate(0, 0) rotate(15deg); }
  15% {
    opacity: 1; }
  80% {
    opacity: 1; }
  90% {
    opacity: 0;
    transform: translate(calc(var(--scale) * -195px), calc(var(--scale) * -53px)) rotate(15deg); } }

@-webkit-keyframes filling {
  0% {
    transform: scale(1, 0);
    opacity: 1; }
  70% {
    transform: scale(1, 1); }
  90% {
    opacity: 1; }
  100% {
    transform: scale(1, 1);
    opacity: 0; } }

@-moz-keyframes filling {
  0% {
    transform: scale(1, 0);
    opacity: 1; }
  70% {
    transform: scale(1, 1); }
  90% {
    opacity: 1; }
  100% {
    transform: scale(1, 1);
    opacity: 0; } }

@-o-keyframes filling {
  0% {
    transform: scale(1, 0);
    opacity: 1; }
  70% {
    transform: scale(1, 1); }
  90% {
    opacity: 1; }
  100% {
    transform: scale(1, 1);
    opacity: 0; } }

@keyframes filling {
  0% {
    transform: scale(1, 0);
    opacity: 1; }
  70% {
    transform: scale(1, 1); }
  90% {
    opacity: 1; }
  100% {
    transform: scale(1, 1);
    opacity: 0; } }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2tfcHJvZHVjdGlvbi5jc3MiLCJzb3VyY2VzIjpbImJsb2NrX3Byb2R1Y3Rpb24uc2NzcyIsInV0aWxzL191dGlscy5zY3NzIiwidXRpbHMvX3ZhcmlhYmxlcy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19mdW5jdGlvbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fdmFyaWFibGVzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvX21peGlucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL3ZlbmRvci9fcmZzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19kZXByZWNhdGUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19ob3Zlci5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9faW1hZ2Uuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JhZGdlLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19yZXNpemUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3NjcmVlbi1yZWFkZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3NpemUuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3Jlc2V0LXRleHQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3RleHQtZW1waGFzaXMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX3RleHQtaGlkZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fdGV4dC10cnVuY2F0ZS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fdmlzaWJpbGl0eS5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYWxlcnQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2J1dHRvbnMuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2NhcmV0LnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19wYWdpbmF0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19saXN0cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fbGlzdC1ncm91cC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fbmF2LWRpdmlkZXIuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2Zvcm1zLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL190YWJsZS1yb3cuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JhY2tncm91bmQtdmFyaWFudC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYm94LXNoYWRvdy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fZ3JhZGllbnRzLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL190cmFuc2l0aW9uLnNjc3MiLCIuLi8uLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19jbGVhcmZpeC5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fZ3JpZC1mcmFtZXdvcmsuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2dyaWQuc2NzcyIsIi4uLy4uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2Zsb2F0LnNjc3MiLCJ1dGlscy9fbWl4aW5zLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb250YWN0IHVzIGJsb2NrIHN0eWxlc1xuICovXG5cbkBpbXBvcnQgJy4vdXRpbHMvdXRpbHMnO1xuXG4uYmxvY2stLXByb2R1Y3Rpb24ge1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgLmJsb2NrX19jb3ZlciB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiA2MHB4O1xuICAgIH1cbn1cblxuLnByb2R1Y3Rpb24ge1xuICAgIC0tcHJvZHVjdGlvbi1oZWlnaHQ6IDQ4MHB4O1xuICAgIC0tc2NhbGU6IDAuODtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHNtKSB7XG4gICAgICAgIC0tc2NhbGU6IDE7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoeGwpIHtcbiAgICAgICAgLS1zY2FsZTogMC44O1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHh4bCkge1xuICAgICAgICAtLXByb2R1Y3Rpb24taGVpZ2h0OiA1NTBweDtcbiAgICAgICAgLS1zY2FsZTogMTtcbiAgICB9XG5cbiAgICAvLyB3aWR0aDogMTAwdnc7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgcGFkZGluZy1sZWZ0OiBjYWxjKDUwdncgLSA0NHB4KTtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHhsKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCh4eGwpIHtcbiAgICAgICAgbWFyZ2luLXRvcDogNTBweDtcbiAgICB9XG5cbiAgICAmX19iZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiBjYWxjKHZhcigtLW5hdmJhci1zcGFjaW5nKSArIDkzcHgpO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICByaWdodDogMDtcbiAgICAgICAgaGVpZ2h0OiAxMDB2aDtcbiAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KHJnYmEoJGdyYXktMTAwLCAwLjgpIDIwJSwgdHJhbnNwYXJlbnQgMjAlKTtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxN3B4IDE3cHg7XG4gICAgfVxuXG4gICAgJl9fc2Nyb2xsZXIge1xuICAgICAgICAvLyB3aWR0aDogMjk2MnB4O1xuICAgICAgICB3aWR0aDogMTIwMHB4O1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHNtKSB7XG4gICAgICAgICAgICB3aWR0aDogMTQ4MHB4O1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoeGwpIHtcbiAgICAgICAgICAgIHdpZHRoOiAxMjAwcHg7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHh4bCkge1xuICAgICAgICAgICAgd2lkdGg6IDE0ODBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3N0ZXBzIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIH1cbiAgICAmX19zdGVwIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBvcGFjaXR5OiAwLjQ1O1xuICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG5cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB3aWR0aDogOHB4O1xuICAgICAgICAgICAgaGVpZ2h0OiA5cHg7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJHN2Z1BhdGggKyAnL2Ryb3Atb3JhbmdlLnN2ZycpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgfVxuICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHN2Z1BhdGggKyAnL2Ryb3AtYmx1ZS5zdmcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgICYtLTEge1xuICAgICAgICAgICAgZmxleDogMCAwIDIwMC8yOTYyKjEwMCU7XG4gICAgICAgICAgICAmOjpiZWZvcmUsXG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdG9wOiA1MC8yNjYqMTAwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiAyNi8yMDAqMTAwJTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGxlZnQ6IGF1dG87XG4gICAgICAgICAgICAgICAgdG9wOiA5NS8yNjYqMTAwJTtcbiAgICAgICAgICAgICAgICByaWdodDogNDIvMjAwKjEwMCU7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbihkcm9wczEgMS41cyBsaW5lYXIgaW5maW5pdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbihkcm9wczIgMS41cyBsaW5lYXIgMXMgaW5maW5pdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLS0yIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMCA1NTAvMjk2MioxMDAlO1xuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICB0b3A6IDEwLzM4OCoxMDAlO1xuICAgICAgICAgICAgICAgIGxlZnQ6IDEzNi81NTAqMTAwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXIgYm90dG9tO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICB0b3A6IDE0Ny8zODgqMTAwJTtcbiAgICAgICAgICAgICAgICBsZWZ0OiA1Ny81NTAqMTAwJTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5pbWdBc3BlY3Qge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA4cHg7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogOXB4O1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJHN2Z1BhdGggKyAnL2Ryb3AtYmx1ZS5zdmcnKSBuby1yZXBlYXQgY2VudGVyIGNlbnRlcjtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGModmFyKC0tc2NhbGUpICogMTA2cHgpO1xuICAgICAgICAgICAgICAgICAgICBib3R0b206IGNhbGModmFyKC0tc2NhbGUpICogMjlweCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogY2FsYyh2YXIoLS1zY2FsZSkgKiAyMTZweCk7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogY2FsYyh2YXIoLS1zY2FsZSkgKiA1NHB4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYW5pbWF0aW9uKGRyb3BzMyAycyBsaW5lYXIgaW5maW5pdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlICBhbmltYXRpb24oZHJvcHM0IDVzIGxpbmVhciBpbmZpbml0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC5pbWdBc3BlY3Qge1xuICAgICAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYW5pbWF0aW9uKGRyb3BzNSAzcyBsaW5lYXIgaW5maW5pdGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbihkcm9wczYgMnMgbGluZWFyIDJzIGluZmluaXRlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLS0zIHtcbiAgICAgICAgICAgIGZsZXg6IDAgMCA3NDAvMjk2MioxMDAlO1xuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJHN2Z1BhdGggKyAnL2Ryb3AtYmx1ZS5zdmcnKTtcbiAgICAgICAgICAgICAgICBib3R0b206IGNhbGModmFyKC0tc2NhbGUpICogMTEycHgpO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLXNjYWxlKSAqIDExNXB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBib3R0b206IGNhbGModmFyKC0tc2NhbGUpICogMTAxcHgpO1xuICAgICAgICAgICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLXNjYWxlKSAqIDExOXB4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5pbWdBc3BlY3Qge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIHotaW5kZXg6IDI7XG4gICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjVzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgICAgICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgdG9wOiBjYWxjKHZhcigtLXNjYWxlKSAqIDExMHB4KTtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogY2FsYyh2YXIoLS1zY2FsZSkgKiAxMDVweCk7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA4NHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgkaW1nUGF0aCArICcvZHJvcHMucG5nJykgcmVwZWF0LXggdG9wIHJpZ2h0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIHRvcDogY2FsYyh2YXIoLS1zY2FsZSkgKiA0MHB4KTtcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGNhbGModmFyKC0tc2NhbGUpICogMTM0cHgpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1zY2FsZSkgKiAxODdweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1zY2FsZSkgKiAxODdweCk7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICAgICAgY2xpcC1wYXRoOiBwb2x5Z29uKDAgY2FsYyh2YXIoLS1zY2FsZSkgKiAxMzVweCksIDEwMCUgY2FsYyh2YXIoLS1zY2FsZSkgKiAxMzVweCksIDEwMCUgMTAwJSwgMCAxMDAlKTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGdyZWVuRGFyaztcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYW5pbWF0aW9uKHdhdmVzIDJzIGVhc2UtaW4tb3V0IC41cyBpbmZpbml0ZSk7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoc20pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLXNjYWxlKSAqIDEzM3B4KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHhsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByaWdodDogY2FsYyh2YXIoLS1zY2FsZSkgKiAxMzRweCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCh4eGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBjYWxjKHZhcigtLXNjYWxlKSAqIDEzM3B4KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhbmltYXRpb24oZHJvcHM3IDRzIGxpbmVhciAuNXMgaW5maW5pdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbihkcm9wczggNHMgbGluZWFyIDEuNXMgaW5maW5pdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuaW1nQXNwZWN0IHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbihzdGVhbTEgMi41cyBsaW5lYXIgMXMgaW5maW5pdGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi0tNCB7XG4gICAgICAgICAgICBmbGV4OiAwIDAgNTcwLzI5NjIqMTAwJTtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgdG9wOiBjYWxjKHZhcigtLXNjYWxlKSAqIDU1cHgpO1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGModmFyKC0tc2NhbGUpICogMTY1cHgpO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC03NWRlZyk7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLmltZ0FzcGVjdCB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogY2FsYyh2YXIoLS1zY2FsZSkgKiAxMzBweCk7XG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogY2FsYyh2YXIoLS1zY2FsZSkgKiAxMzRweCk7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiA1MHB4O1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDgwcHg7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50IHVybCgkaW1nUGF0aCArICcvZHJvcHMucG5nJykgcmVwZWF0LXggdG9wIGxlZnQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogY2FsYyh2YXIoLS1zY2FsZSkgKiA3MXB4KTtcbiAgICAgICAgICAgICAgICAgICAgYm90dG9tOiBjYWxjKHZhcigtLXNjYWxlKSAqIDk3cHgpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1zY2FsZSkgKiAxNzZweCk7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1zY2FsZSkgKiA0NHB4KTtcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZDogJGRhbmdlcjtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHNtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKHZhcigtLXNjYWxlKSAqIDY4cHgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoeGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGModmFyKC0tc2NhbGUpICogNzBweCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCh4eGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGModmFyKC0tc2NhbGUpICogNjhweCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYW5pbWF0aW9uKGRyb3BzOSAzcyBsaW5lYXIgaW5maW5pdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuaW1nQXNwZWN0IHtcbiAgICAgICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbihzdGVhbTIgNC41cyBsaW5lYXIgMXMgaW5maW5pdGUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbihidXJuaW5nIDEuNXMgbGluZWFyIDFzIGluZmluaXRlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLS01IHtcbiAgICAgICAgICAgIGZsZXg6IDAgMCA2MjYvMjk2MioxMDAlO1xuICAgICAgICAgICAgYWxpZ24tc2VsZjogZmxleC1zdGFydDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAxMjgvMjk2MioxMDAlO1xuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDA7XG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYm90dG9tOiBjYWxjKHZhcigtLXNjYWxlKSAqIDE3cHgpO1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGModmFyKC0tc2NhbGUpICogMTYwcHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGJvdHRvbTogY2FsYyh2YXIoLS1zY2FsZSkgKiAxN3B4KTtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKHZhcigtLXNjYWxlKSAqIDE5N3B4KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5pbWdBc3BlY3Q6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgIHRvcDogY2FsYyh2YXIoLS1zY2FsZSkgKiA2N3B4KTtcbiAgICAgICAgICAgICAgICByaWdodDogY2FsYyh2YXIoLS1zY2FsZSkgKiA2OHB4KTtcbiAgICAgICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLXNjYWxlKSAqIDE0cHgpO1xuICAgICAgICAgICAgICAgIGhlaWdodDogY2FsYyh2YXIoLS1zY2FsZSkgKiA1MnB4KTtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JheS01MDA7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMTVkZWcpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbihkcm9wczEwIDJzIGVhc2UtaW4gaW5maW5pdGUpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYW5pbWF0aW9uKGRyb3BzMTEgMnMgbGluZWFyIGluZmluaXRlKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuaW1nQXNwZWN0OjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhbmltYXRpb24oY29uZGVuc2VyIDNzIGxpbmVhciBpbmZpbml0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgICYtLTYge1xuICAgICAgICAgICAgZmxleDogMCAwIDI3Ni8yOTYyKjEwMCU7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogLTU3LzI5NjIqMTAwJTtcbiAgICAgICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCRzdmdQYXRoICsgJy9kcm9wLXJlZC5zdmcnKTtcbiAgICAgICAgICAgICAgICB0b3A6IC0xMHB4O1xuICAgICAgICAgICAgICAgIGxlZnQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuaW1nQXNwZWN0OjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICBib3R0b206IGNhbGModmFyKC0tc2NhbGUpICogMTI4cHgpO1xuICAgICAgICAgICAgICAgIGxlZnQ6IGNhbGModmFyKC0tc2NhbGUpICogNTNweCk7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IGNhbGModmFyKC0tc2NhbGUpICogNjBweCk7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiBjYWxjKHZhcigtLXNjYWxlKSAqIDQzcHgpO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6ICRncmVlbkRhcms7XG4gICAgICAgICAgICAgICAgYm9yZGVyLXRvcDogY2FsYyh2YXIoLS1zY2FsZSkgKiAyMHB4KSBzb2xpZCAkb3JhbmdlTGlnaHQ7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyIGJvdHRvbTtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDApO1xuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLmFjdGl2ZSB7XG4gICAgICAgICAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgYW5pbWF0aW9uKGRyb3BzMTIgMS41cyBsaW5lYXIgaW5maW5pdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAuaW1nQXNwZWN0OjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBhbmltYXRpb24oZmlsbGluZyA1cyBsaW5lYXIgaW5maW5pdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3RhYiB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGJsYWNrO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWFyZ2luLXRvcDogMzBweDtcbiAgICAgICAgcGFkZGluZzogMTJweCAzMHB4O1xuICAgICAgICBAaW5jbHVkZSB0eXBvKCRoNi1mb250LXNpemUsICRsaW5lLWhlaWdodC14eHMpO1xuICAgICAgICBmb250LWZhbWlseTogJGhlYWRpbmdzLWZvbnQtZmFtaWx5O1xuXG4gICAgICAgICY6OmJlZm9yZSxcbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIH1cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIHRvcDogLTJweDtcbiAgICAgICAgICAgIGhlaWdodDogMXB4O1xuICAgICAgICAgICAgYmFja2dyb3VuZDogJGJsYWNrO1xuICAgICAgICAgICAgdHJhbnNmb3JtLW9yaWdpbjogbGVmdCBjZW50ZXI7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAsIDEpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gICAgICAgIH1cbiAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgdG9wOiAtNnB4O1xuICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICBoZWlnaHQ6IDA7XG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IDAgNHB4IDZweDtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgJGJsYWNrO1xuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAgICAgICAgIHRyYW5zZm9ybS1vcmlnaW46IGJvdHRvbSBjZW50ZXI7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDApO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm07XG4gICAgICAgIH1cblxuICAgICAgICAmLS0xOjphZnRlciB7XG4gICAgICAgICAgICBsZWZ0OiA0MC8yMDgqMTAwJTtcbiAgICAgICAgfVxuICAgICAgICAmLS0yOjphZnRlciB7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB9XG4gICAgICAgICYtLTM6OmFmdGVyIHtcbiAgICAgICAgICAgIGxlZnQ6IDYvMjA4KjEwMCU7XG4gICAgICAgIH1cbiAgICAgICAgJi0tNDo6YWZ0ZXIge1xuICAgICAgICAgICAgcmlnaHQ6IDY2LzIwOCoxMDAlO1xuICAgICAgICB9XG4gICAgICAgICYtLTU6OmFmdGVyIHtcbiAgICAgICAgICAgIHJpZ2h0OiAyNy8yMDgqMTAwJTtcbiAgICAgICAgfVxuICAgICAgICAmLS02OjphZnRlciB7XG4gICAgICAgICAgICByaWdodDogOTcvMjA4KjEwMCU7XG4gICAgICAgIH1cblxuICAgICAgICAmX19sYWJlbCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwwKTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuM3MgZWFzZS1pbi1vdXQsIGNvbG9yIC4zcyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgIHdpbGwtY2hhbmdlOiB0cmFuc2Zvcm0sIGNvbG9yO1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDVweDtcbiAgICAgICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgICAgICB3aWR0aDogMzNweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDlweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCB1cmwoJHN2Z1BhdGggKyAnL3JpZ2h0LnN2ZycpIG5vLXJlcGVhdCBjZW50ZXIgY2VudGVyO1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsMCk7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAuM3MgZWFzZS1pbi1vdXQgMHMsIHRyYW5zZm9ybSAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgd2lsbC1jaGFuZ2U6IG9wYWNpdHksIHRyYW5zZm9ybTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtbGFiZWwpO1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICAgICAgbGVmdDogLTNweDtcbiAgICAgICAgICAgICAgICByaWdodDogLTNweDtcbiAgICAgICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJvbGQ7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICAmOjphZnRlciB7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLnByb2R1Y3Rpb25fX3RhYl9fbGFiZWwge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC0yMHB4LCAwKTtcbiAgICAgICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4zcyBlYXNlLWluLW91dCAuMXMsIHRyYW5zZm9ybSAuM3MgZWFzZS1pbi1vdXQ7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDQwcHgsIDApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgICAucHJvZHVjdGlvbl9fdGFiX19sYWJlbCB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgICAgICAgICAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5hY3RpdmUge1xuICAgICAgICAgICAgJjo6YmVmb3JlLFxuICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSwxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC5wcm9kdWN0aW9uX190YWJfX2xhYmVsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgICAgICAgICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihsZykge1xuICAgICAgICAmX19wYW5lcyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgICAgICAgICB0b3A6IDA7XG4gICAgICAgICAgICBsZWZ0OiAtMTAwdnc7XG4gICAgICAgICAgICByaWdodDogMTAwdnc7XG4gICAgICAgICAgICBib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgJl9fcGFuZSB7XG4gICAgICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA2MDBweDtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgIHRvcDogMjBweDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICAgICAgbWF4LWhlaWdodDogY2FsYygxMDAlIC0gNDBweCAtIDUwcHgpO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiAzMHB4IDIwcHggMTRweDtcbiAgICAgICAgICAgIG1hcmdpbjogMCA1JTtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHJnYmEoJHdoaXRlLTUwLCAwLjc1KTtcbiAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRib3JkZXItcmFkaXVzO1xuICAgICAgICAgICAgYm94LXNoYWRvdzogNXB4IDVweCA1cHggLTVweCByZ2JhKDAsMCwwLDAuMik7XG4gICAgICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDUwcHgpO1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIC41cyBlYXNlLWluLW91dCwgb3BhY2l0eSAuNXMgZWFzZS1pbi1vdXQsIGxlZnQgLjAxcyAuNXM7XG4gICAgICAgICAgICB3aWxsLWNoYW5nZTogdHJhbnNmb3JtLCBvcGFjaXR5LCBsZWZ0O1xuXG4gICAgICAgICAgICAmOjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgICAgICAgICAgIGhlaWdodDogMjVweDtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgICAgICAgICBsZWZ0OiBjYWxjKDEwMHZ3ICsgbWF4KCgoMTAwdncgLSA2MDBweCkgLyAyKSwgMHB4KSk7XG4gICAgICAgICAgICAgICAgei1pbmRleDogMjtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwcztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmJ0bi0tY2xvc2Uge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICAgICAgICAgICAgICB0b3A6IDIwcHg7XG4gICAgICAgICAgICAgICAgcmlnaHQ6IDE1cHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZDogcmdiYSgkd2hpdGUtNTAsIDAuNik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCh4bCkge1xuICAgICAgICAmX19wYW5lcyB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSB2YXIoLS1wcm9kdWN0aW9uLWhlaWdodCkgLSB2YXIoLS1uYXYtaGVpZ2h0KSk7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBweDtcbiAgICAgICAgICAgIHdpZHRoOiBjYWxjKHZhcigtLWNvbnRhaW5lci13aWR0aCkgKiAxMC8xMik7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICAgICAgfVxuICAgICAgICAmX19wYW5lIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHRvcDogMDtcbiAgICAgICAgICAgIGxlZnQ6IDA7XG4gICAgICAgICAgICByaWdodDogMDtcbiAgICAgICAgICAgIGJvdHRvbTogMDtcbiAgICAgICAgICAgIG1heC1oZWlnaHQ6IDEwMCU7XG4gICAgICAgICAgICBwYWRkaW5nOiAyMHB4IDIwcHggMDtcbiAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvO1xuICAgICAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg1MHB4KTtcbiAgICAgICAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAuNXMgZWFzZS1pbi1vdXQsIG9wYWNpdHkgLjVzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgd2lsbC1jaGFuZ2U6IHRyYW5zZm9ybSwgb3BhY2l0eTtcbiAgICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHh4bCkge1xuICAgICAgICAmX19wYW5lcyB7XG4gICAgICAgICAgICB3aWR0aDogY2FsYyh2YXIoLS1jb250YWluZXItd2lkdGgpICogNi8xMik7XG4gICAgICAgIH1cbiAgICAgICAgJl9fcGFuZSB7XG4gICAgICAgICAgICBwYWRkaW5nLXRvcDogMzVweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gQW5pbWF0aW9uc1xuXG5AaW5jbHVkZSBrZXlmcmFtZXMoZHJvcHMxKSB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLDApIHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMTAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgNzAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYyh2YXIoLS1zY2FsZSkgKiAwcHgpLCBjYWxjKHZhcigtLXNjYWxlKSAqIDIwcHgpKSByb3RhdGUoMGRlZylcbiAgICB9XG4gICAgOTAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYyh2YXIoLS1zY2FsZSkgKiAzcHgpLCBjYWxjKHZhcigtLXNjYWxlKSAqIDI1cHgpKSByb3RhdGUoLTQ1ZGVnKVxuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwwKSByb3RhdGUoMGRlZyk7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBrZXlmcmFtZXMoZHJvcHMyKSB7XG4gICAgMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLDApIHJvdGF0ZSg0NWRlZyk7XG4gICAgfVxuICAgIDIwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGModmFyKC0tc2NhbGUpICogM3B4KSwgY2FsYyh2YXIoLS1zY2FsZSkgKiAtNXB4KSkgcm90YXRlKDBkZWcpO1xuICAgIH1cbiAgICA4MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKHZhcigtLXNjYWxlKSAqIDNweCksIGNhbGModmFyKC0tc2NhbGUpICogLTIwcHgpKSByb3RhdGUoMGRlZyk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDkwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGModmFyKC0tc2NhbGUpICogM3B4KSwgY2FsYyh2YXIoLS1zY2FsZSkgKiAtMjVweCkpIHJvdGF0ZSgwZGVnKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsMCkgcm90YXRlKDQ1ZGVnKTtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGtleWZyYW1lcyhkcm9wczMpIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApIHJvdGF0ZSgxODBkZWcpO1xuICAgIH1cbiAgICAyMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKHZhcigtLXNjYWxlKSAqIC0ycHgpLCBjYWxjKHZhcigtLXNjYWxlKSAqIC0xMHB4KSkgcm90YXRlKDE5MGRlZyk7XG4gICAgfVxuICAgIDQwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGModmFyKC0tc2NhbGUpICogMnB4KSwgY2FsYyh2YXIoLS1zY2FsZSkgKiAtMjBweCkpIHJvdGF0ZSgxNzBkZWcpO1xuICAgIH1cbiAgICA2MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKHZhcigtLXNjYWxlKSAqIC0ycHgpLCBjYWxjKHZhcigtLXNjYWxlKSAqIC0zMHB4KSkgcm90YXRlKDE5MGRlZyk7XG4gICAgfVxuICAgIDgwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGModmFyKC0tc2NhbGUpICogMnB4KSwgY2FsYyh2YXIoLS1zY2FsZSkgKiAtNDBweCkpIHJvdGF0ZSgxNzBkZWcpO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYyh2YXIoLS1zY2FsZSkgKiAtMnB4KSwgY2FsYyh2YXIoLS1zY2FsZSkgKiAtNTBweCkpIHJvdGF0ZSgxOTBkZWcpO1xuICAgIH1cbn1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKGRyb3BzNCkge1xuICAgIDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwwKSByb3RhdGUoOTBkZWcpO1xuICAgIH1cbiAgICAxNSUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICAyNSUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKHZhcigtLXNjYWxlKSAqIDUwcHgpLCAwKSByb3RhdGUoOTBkZWcpO1xuICAgIH1cbiAgICAzMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKHZhcigtLXNjYWxlKSAqIDU1cHgpLCBjYWxjKHZhcigtLXNjYWxlKSAqIC0zcHgpKSByb3RhdGUoMGRlZyk7XG4gICAgfVxuICAgIDUyJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGModmFyKC0tc2NhbGUpICogNTVweCksIGNhbGModmFyKC0tc2NhbGUpICogLTY1cHgpKSByb3RhdGUoMGRlZyk7XG4gICAgfVxuICAgIDU3JSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGModmFyKC0tc2NhbGUpICogNjBweCksIGNhbGModmFyKC0tc2NhbGUpICogLTczcHgpKSByb3RhdGUoOTBkZWcpO1xuICAgIH1cbiAgICA4MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICA5MCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKHZhcigtLXNjYWxlKSAqIDE2MHB4KSwgY2FsYyh2YXIoLS1zY2FsZSkgKiAtNzNweCkpIHJvdGF0ZSg5MGRlZylcbiAgICB9XG59XG5cbkBpbmNsdWRlIGtleWZyYW1lcyhkcm9wczUpIHtcbiAgICAwJSwgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsMCkgcm90YXRlKDkwZGVnKTtcbiAgICB9XG4gICAgMTUlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgMjUlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYyh2YXIoLS1zY2FsZSkgKiAyMHB4KSwgMCkgcm90YXRlKDkwZGVnKTtcbiAgICB9XG4gICAgMzAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYyh2YXIoLS1zY2FsZSkgKiAyM3B4KSwgY2FsYyh2YXIoLS1zY2FsZSkgKiAtM3B4KSkgcm90YXRlKDBkZWcpO1xuICAgIH1cbiAgICA1NSUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKHZhcigtLXNjYWxlKSAqIDIzcHgpLCBjYWxjKHZhcigtLXNjYWxlKSAqIC0yMnB4KSkgcm90YXRlKDBkZWcpO1xuICAgIH1cbiAgICA2MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKHZhcigtLXNjYWxlKSAqIDI4cHgpLCBjYWxjKHZhcigtLXNjYWxlKSAqIC0yNnB4KSkgcm90YXRlKDkwZGVnKTtcbiAgICB9XG4gICAgODAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgOTAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYyh2YXIoLS1zY2FsZSkgKiA1NXB4KSwgY2FsYyh2YXIoLS1zY2FsZSkgKiAtMjZweCkpIHJvdGF0ZSg5MGRlZylcbiAgICB9XG59XG5cbkBpbmNsdWRlIGtleWZyYW1lcyhkcm9wczYpIHtcbiAgICAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsMCkgcm90YXRlKDkwZGVnKTtcbiAgICB9XG4gICAgMTUlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgNDglIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgNTIlIHtcbiAgICAgICAgb3BhY2l0eTogMC40NTtcbiAgICB9XG4gICAgODAlIHtcbiAgICAgICAgb3BhY2l0eTogMC40NTtcbiAgICB9XG4gICAgOTAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYyh2YXIoLS1zY2FsZSkgKiAxMTBweCksIDApIHJvdGF0ZSg5MGRlZylcbiAgICB9XG59XG5cbkBpbmNsdWRlIGtleWZyYW1lcyhkcm9wczcpIHtcbiAgICAwJSwgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsMCkgcm90YXRlKDkwZGVnKTtcbiAgICB9XG4gICAgMTUlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgMjUlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYyh2YXIoLS1zY2FsZSkgKiA2MHB4KSwgMCkgcm90YXRlKDkwZGVnKTtcbiAgICB9XG4gICAgMzAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYyh2YXIoLS1zY2FsZSkgKiA2M3B4KSwgY2FsYyh2YXIoLS1zY2FsZSkgKiA1cHgpKSByb3RhdGUoMTgwZGVnKTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYyh2YXIoLS1zY2FsZSkgKiA2M3B4KSwgY2FsYyh2YXIoLS1zY2FsZSkgKiA0NXB4KSkgcm90YXRlKDE4MGRlZyk7XG4gICAgfVxuICAgIDU1JSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGModmFyKC0tc2NhbGUpICogNzBweCksIGNhbGModmFyKC0tc2NhbGUpICogNDlweCkpIHJvdGF0ZSg5MGRlZyk7XG4gICAgfVxuICAgIDY3JSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDcwJSB7XG4gICAgICAgIG9wYWNpdHk6IC40NTtcbiAgICB9XG4gICAgODAlIHtcbiAgICAgICAgb3BhY2l0eTogLjQ1O1xuICAgIH1cbiAgICA5MCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKHZhcigtLXNjYWxlKSAqIDE4MHB4KSwgY2FsYyh2YXIoLS1zY2FsZSkgKiA0OXB4KSkgcm90YXRlKDkwZGVnKTtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGtleWZyYW1lcyhkcm9wczgpIHtcbiAgICAwJSwgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsMCkgcm90YXRlKDkwZGVnKTtcbiAgICB9XG4gICAgMTUlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgMjUlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYyh2YXIoLS1zY2FsZSkgKiA1OHB4KSwgMCkgcm90YXRlKDkwZGVnKTtcbiAgICB9XG4gICAgMzAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYyh2YXIoLS1zY2FsZSkgKiA1OHB4KSwgY2FsYyh2YXIoLS1zY2FsZSkgKiA1cHgpKSByb3RhdGUoMTgwZGVnKTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYyh2YXIoLS1zY2FsZSkgKiA1OHB4KSwgY2FsYyh2YXIoLS1zY2FsZSkgKiA0NXB4KSkgcm90YXRlKDE4MGRlZyk7XG4gICAgfVxuICAgIDU1JSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKGNhbGModmFyKC0tc2NhbGUpICogNjBweCksIGNhbGModmFyKC0tc2NhbGUpICogNDlweCkpIHJvdGF0ZSg5MGRlZyk7XG4gICAgfVxuICAgIDY3JSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDcwJSB7XG4gICAgICAgIG9wYWNpdHk6IC40NTtcbiAgICB9XG4gICAgODAlIHtcbiAgICAgICAgb3BhY2l0eTogIC40NTtcbiAgICB9XG4gICAgOTAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoY2FsYyh2YXIoLS1zY2FsZSkgKiAxODBweCksIGNhbGModmFyKC0tc2NhbGUpICogNDlweCkpIHJvdGF0ZSg5MGRlZyk7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBrZXlmcmFtZXMoZHJvcHM5KSB7XG4gICAgMCUsIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLDApIHJvdGF0ZSgtNzVkZWcpO1xuICAgIH1cbiAgICAxNSUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICA2OSUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICA3MiUge1xuICAgICAgICBvcGFjaXR5OiAwLjQ1O1xuICAgIH1cbiAgICA4MCUge1xuICAgICAgICBvcGFjaXR5OiAwLjQ1O1xuICAgIH1cbiAgICA5MCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKHZhcigtLXNjYWxlKSAqIDE0MHB4KSwgY2FsYyh2YXIoLS1zY2FsZSkgKiAzOHB4KSkgcm90YXRlKC03NWRlZyk7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBrZXlmcmFtZXMoZHJvcHMxMCkge1xuICAgIDAlLCAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgfVxuICAgIDE1JSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDgwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDkwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIGNhbGModmFyKC0tc2NhbGUpICogNTBweCkpO1xuICAgIH1cbn1cbkBpbmNsdWRlIGtleWZyYW1lcyhkcm9wczExKSB7XG4gICAgMCUsIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCBjYWxjKHZhcigtLXNjYWxlKSAqIDUwcHgpKTtcbiAgICB9XG4gICAgMjAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgOTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDkxJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxufVxuXG5AaW5jbHVkZSBrZXlmcmFtZXMoZHJvcHMxMikge1xuICAgIDAlLCAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgfVxuICAgIDE1JSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDgwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDkwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIGNhbGModmFyKC0tc2NhbGUpICogMjBweCkpO1xuICAgIH1cbn1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKHN0ZWFtMSkge1xuICAgIDAlLCAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgfVxuICAgIDIwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDkwJSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIGNhbGModmFyKC0tc2NhbGUpICogLTgwcHgpKVxuICAgIH1cbn1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKHN0ZWFtMikge1xuICAgIDAlLCAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gICAgfVxuICAgIDIwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDQwJSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG4gICAgNjAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgOTAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgY2FsYyh2YXIoLS1zY2FsZSkgKiAtMTcwcHgpKVxuICAgIH1cbn1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKHdhdmVzKSB7XG4gICAgJG9mZnNldDogY2FsYyh2YXIoLS1zY2FsZSkgKiA4MHB4KTtcbiAgICAwJSwgMTAwJSB7XG4gICAgICAgIGNsaXAtcGF0aDogcG9seWdvbigwIGNhbGMoOCUgKyAjeyRvZmZzZXR9KSwgNyUgY2FsYyg2JSArICN7JG9mZnNldH0pLCAxNCUgY2FsYyg1JSArICN7JG9mZnNldH0pLCAyMSUgY2FsYyg1JSArICN7JG9mZnNldH0pLCAyOCUgY2FsYyg2JSArICN7JG9mZnNldH0pLCAzNCUgY2FsYyg4JSArICN7JG9mZnNldH0pLCA0MCUgY2FsYygxMiUgKyAjeyRvZmZzZXR9KSwgNDYlIGNhbGMoMTclICsgI3skb2Zmc2V0fSksIDUwJSBjYWxjKDIwJSArICN7JG9mZnNldH0pLCA1NCUgY2FsYygyMyUgKyAjeyRvZmZzZXR9KSwgNjAlIGNhbGMoMjUlICsgI3skb2Zmc2V0fSksIDY2JSBjYWxjKDI2JSArICN7JG9mZnNldH0pLCA3MCUgY2FsYygyNiUgKyAjeyRvZmZzZXR9KSwgNzclIGNhbGMoMjUlICsgI3skb2Zmc2V0fSksIDgzJSBjYWxjKDIzJSArICN7JG9mZnNldH0pLCA4OSUgY2FsYygyMSUgKyAjeyRvZmZzZXR9KSwgOTUlIGNhbGMoMTklICsgI3skb2Zmc2V0fSksIDEwMCUgY2FsYygxNyUgKyAjeyRvZmZzZXR9KSwgMTAwJSBjYWxjKDEwMCUgKyAjeyRvZmZzZXR9KSwgMCUgMTAwJSk7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgIGNsaXAtcGF0aDogcG9seWdvbigwIGNhbGMoMTUlICsgI3skb2Zmc2V0fSksIDklIGNhbGMoMjElICsgI3skb2Zmc2V0fSksIDE0JSBjYWxjKDIzJSArICN7JG9mZnNldH0pLCAxOCUgY2FsYygyNSUgKyAjeyRvZmZzZXR9KSwgMjElIGNhbGMoMjYlICsgI3skb2Zmc2V0fSksIDMwJSBjYWxjKDI4JSArICN7JG9mZnNldH0pLCAzMiUgY2FsYygyOCUgKyAjeyRvZmZzZXR9KSwgNDAlIGNhbGMoMjclICsgI3skb2Zmc2V0fSksIDQ2JSBjYWxjKDI2JSArICN7JG9mZnNldH0pLCA1MiUgY2FsYygyMyUgKyAjeyRvZmZzZXR9KSwgNTclIGNhbGMoMTklICsgI3skb2Zmc2V0fSksIDYyJSBjYWxjKDE1JSArICN7JG9mZnNldH0pLCA2OCUgY2FsYygxMSUgKyAjeyRvZmZzZXR9KSwgNzMlIGNhbGMoOCUgKyAjeyRvZmZzZXR9KSwgNzklIGNhbGMoNiUgKyAjeyRvZmZzZXR9KSwgODYlIGNhbGMoNSUgKyAjeyRvZmZzZXR9KSwgOTMlIGNhbGMoNSUgKyAjeyRvZmZzZXR9KSwgMTAwJSBjYWxjKDYlICsgI3skb2Zmc2V0fSksIDEwMCUgY2FsYygxMDAlICsgI3skb2Zmc2V0fSksIDAlIGNhbGMoMTAwJSArICN7JG9mZnNldH0pKTtcbiAgICB9XG59XG5cbkBpbmNsdWRlIGtleWZyYW1lcyhidXJuaW5nKSB7XG4gICAgMCUsIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKGNvbmRlbnNlcikge1xuICAgIDAlLCAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwwKSByb3RhdGUoMTVkZWcpO1xuICAgIH1cbiAgICAxNSUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICA4MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICA5MCUge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZShjYWxjKHZhcigtLXNjYWxlKSAqIC0xOTVweCksIGNhbGModmFyKC0tc2NhbGUpICogLTUzcHgpKSByb3RhdGUoMTVkZWcpO1xuICAgIH1cbn1cblxuQGluY2x1ZGUga2V5ZnJhbWVzKGZpbGxpbmcpIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDcwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSwgMSk7XG4gICAgfVxuICAgIDkwJSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEsIDEpO1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbn0iLCIvKipcbiAqIExvYWQgU0NTUyBtaXhpbnMgYW5kIG5vbi1nZW5lcmF0ZWQgY29kZVxuICovXG5cbi8vIFNDU1MgdmFyaWFibGVzXG5AaW1wb3J0ICd2YXJpYWJsZXMnO1xuXG4vLyBCb290c3RyYXBcbkBpbXBvcnQgJ2Jvb3RzdHJhcC9zY3NzL2Z1bmN0aW9ucyc7XG5AaW1wb3J0ICdib290c3RyYXAvc2Nzcy92YXJpYWJsZXMnO1xuQGltcG9ydCAnYm9vdHN0cmFwL3Njc3MvbWl4aW5zJztcblxuLy8gQ3VzdG9tIG1peGluc1xuQGltcG9ydCAnbWl4aW5zJzsiLCIvKipcbiAqIFZhcmlhYmxlc1xuICovXG5cbi8qKiBQYXRocyAqL1xuJGltZ1BhdGg6ICcuLi8uLi9pbWcnO1xuJHN2Z1BhdGg6ICcuLi8uLi9zdmcnO1xuXG4vKipcbiAqIEJyZWFrcG9pbnRzLCBjb250YWluZXIgd2lkdGhzXG4gKiBcdENoYW5nZSB0aGUgdmFsdWVzIGluIF9zY3JvbGwuanMgYXMgd2VsbFxuICovXG4kZ3JpZC1icmVha3BvaW50czogKFxuXHR4czogMCxcblx0c206IDU3NnB4LFxuXHRtZDogNzY4cHgsXG5cdGxnOiA5OTJweCxcblx0eGw6IDEyMDBweCxcblx0eHhsOiAxNTAwcHhcbik7XG4kY29udGFpbmVyLW1heC13aWR0aHM6IChcblx0c206IDU0MHB4LFxuXHRtZDogNzIwcHgsXG5cdGxnOiA5NjBweCxcblx0eGw6IDExNDBweCxcblx0eHhsOiAxNDgwcHhcbik7XG4kZ3JpZC1ndXR0ZXItd2lkdGg6IDQwcHg7XG5cbi8qKiBDb2xvcnMgKi9cbiR3aGl0ZTogI2ZmZjtcbiR3aGl0ZS01MDogI2YxZjFmMTsgLy8gUGFwZXIgYmFja2dyb3VuZFxuJHdoaXRlLTEwMDogI2Y0ZjZmNTsgLy8gR3JvdXAgYmxvY2sgYmFja2dyb3VuZFxuJGdyYXktMTAwOiAjRDFEMEQwOyAvLyBTZXBhcmF0b3JcbiRncmF5LTMwMDogcmdiYSgyNDQsIDIzNiwgMjIzLCAwLjY1KTsgLy8gQm9keSBiYWNrZ3JvdW5kXG4kZ3JheS01MDA6ICM5YjliOWI7IC8vIFN1YmZvb3RlciB0ZXh0LCBpbGx1c3RyYXRpb24gY29uZGVuc2VyIGVsZW1lbnRcbiRncmF5LTgwMDogIzIxMjEyMTsgLy8gTGlnaHQgYnV0dG9uIHRleHRcbiRibGFjazogIzAwMDtcblxuJG9yYW5nZUxpZ2h0OiAjRjQ5RTI0O1xuJG9yYW5nZUxpZ2h0ZXI6ICNmN2VlZGY7IC8vIFNsaWRlc2hvdyBibG9jayBmYWxsYmFjayBiYWNrZ3JvdW5kXG4kZ3JlZW5MaWdodDogI0Q2REQ2NDtcbiRncmVlbkxpZ2h0ZXI6ICNlNWVlZGE7IC8vIEJvb2sgYmxvY2sgZmFsbGJhY2sgYmFja2dyb3VuZFxuJGdyZWVuRGFyazogIzM4NkI4QTsgLy8gRHJvcCBhbmQgb2lsIGluIGlsbHVzdHJhdGlvblxuXG4kcHJpbWFyeTogJGJsYWNrO1xuXG4kYm9keS1jb2xvcjogJGJsYWNrO1xuJGJvZHktYmc6ICRncmF5LTMwMDtcblxuXG4vKiogUXVpY2sgb3B0aW9ucyAqL1xuJGVuYWJsZS1jYXJldDogZmFsc2U7XG4kZW5hYmxlLXJvdW5kZWQ6IGZhbHNlO1xuJGVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZXM6IHRydWU7XG4kZW5hYmxlLXZhbGlkYXRpb24taWNvbnM6IGZhbHNlO1xuXG5cbi8qKiBDb21wb25lbnRzICovXG4kYm9yZGVyLXdpZHRoOiAycHg7XG4kYm9yZGVyLWNvbG9yOiAkZ3JheS0xMDA7XG4kYm9yZGVyLXJhZGl1czogNXB4O1xuXG4vKiogRm9udHMgKi9cbiRhbGVncmV5YTogJ0FsZWdyZXlhIFNhbnMnLCBzYW5zLXNlcmlmO1xuJHBsYXlmYWlyOiAnUGxheWZhaXIgRGlzcGxheScsIHNlcmlmO1xuJG1lZGRvbjogJ0RhbmNpbmcgU2NyaXB0JywgY3Vyc2l2ZTtcblxuJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWY6ICRhbGVncmV5YTtcbiRoZWFkaW5ncy1mb250LWZhbWlseTogJHBsYXlmYWlyO1xuJGhhbmR3cml0ZTogJG1lZGRvbjtcblxuLy8gRm9udCBzaXplXG4kZm9udC1zaXplLWJhc2U6IDE2LzE2KjFyZW07IC8vIE1lbnUsIHNlY3Rpb24gdGV4dCwgZm9vdGVyIHRleHRcbiRmb250LXNpemUtbGc6IDE4LzE2KjFyZW07IC8vIFByb2R1Y3QgdGl0bGVcbiRmb250LXNpemUtc206IDEyLzE2KjFyZW07IC8vIFRyYXksIHNtYWxsIGJ1dHRvbnMsIHVwdGl0bGVzLCBkYXRlXG4kZm9udC1zaXplLW1kOiAxNC8xNioxcmVtOyAvLyBQcm9kdWN0IHRlYXNlciB0ZXh0XG4kZm9udC1zaXplczogKFxuXHRiYXNlOiAkZm9udC1zaXplLWJhc2UsXG5cdGxnOiAkZm9udC1zaXplLWxnLFxuXHRzbTogJGZvbnQtc2l6ZS1zbSxcblx0bWQ6ICRmb250LXNpemUtbWRcbik7XG5cbiRoMS1mb250LXNpemU6IDM3LzE2KjFyZW07IC8vIFByb2R1Y3QgdGl0bGVcbiRoMi1mb250LXNpemU6IDM0LzE2KjFyZW07IC8vIFNlY3Rpb24gdGl0bGUsIHF1b3RlXG4kaDMtZm9udC1zaXplOiAyNC8xNioxcmVtOyAvLyBUYWJzXG4kaDQtZm9udC1zaXplOiAyMi8xNioxcmVtOyAvLyBCbG9nIHRpdGxlXG4kaDUtZm9udC1zaXplOiAkZm9udC1zaXplLWxnO1xuJGg2LWZvbnQtc2l6ZTogMTUvMTYqMXJlbTsgLy8gUHJvZHVjdGlvbiBpbGx1c3RyYXRpb24gdGFic1xuJGhlYWRpbmctc2l6ZXM6IChcblx0aDE6ICRoMS1mb250LXNpemUsXG5cdGgyOiAkaDItZm9udC1zaXplLFxuXHRoMzogJGgzLWZvbnQtc2l6ZSxcblx0aDQ6ICRoNC1mb250LXNpemUsXG5cdGg1OiAkaDUtZm9udC1zaXplLFxuXHRoNjogJGg2LWZvbnQtc2l6ZVxuKTtcblxuJGRpc3BsYXkxLXNpemU6ICA1Ni8xNioxcmVtOyAvLyBIZXJvIHRpdGxlXG4kbGVhZC1mb250LXNpemU6IDMwLzE2KjFyZW07IC8vIENvbnRhY3QgdXMgbWFpbCBhbmQgcGhvbmVcblxuLy8gTGluZSBoZWlnaHRcbiRsaW5lLWhlaWdodC1iYXNlOiAyOS8xNjsgLy8gMS44MSwgQm9keSB0ZXh0LCBxdW90ZSBuYW1lLCBzZWN0aW9uIHRleHRcbiRsaW5lLWhlaWdodC1sZzogMTsgLy8gSGVybyB0aXRsZSwgc2VjdGlvbiB0aXRsZSwgcHJvZHVjdCB0aXRsZVxuJGxpbmUtaGVpZ2h0LXNtOiAyMi8xNDsgLy8gMS41NywgUHJvZHVjdCB0ZWFzZXIgdGV4dCwgcXVvdGVcbiRsaW5lLWhlaWdodC0zeHM6IDI0LjgvMjI7IC8vIDEuMTIsIEJsb2cgdGl0bGVcbiRsaW5lLWhlaWdodC14eHM6IDE1LzEyOyAvLyAxLjI1LCBTbWFsbCBidXR0b25zLCBkYXRlXG4kbGluZS1oZWlnaHQteHM6IDE4LjgvMTQ7IC8vIDEuMzQsIEJyZWFkY3J1bWJzXG4kbGluZS1oZWlnaHQtbWQ6IDMzLjYvMjQ7IC8vIDEuNCwgUHJvZHVjdCBkZXRhaWxcbiRsaW5lLWhlaWdodC14bDogMzEvMTY7IC8vIDEuOTQsIEZvb3RlciB0ZXh0XG4kbGluZS1oZWlnaHQteHhsOiAyOS8xMjsgLy8gMi40MSwgVHJheSwgdXB0aXRsZVxuJGxpbmUtaGVpZ2h0czogKFxuXHRiYXNlOiAkbGluZS1oZWlnaHQtYmFzZSxcblx0bGc6ICRsaW5lLWhlaWdodC1sZyxcblx0c206ICRsaW5lLWhlaWdodC1zbSxcblx0M3hzOiAkbGluZS1oZWlnaHQtM3hzLFxuXHR4eHM6ICRsaW5lLWhlaWdodC14eHMsXG5cdHhzOiAkbGluZS1oZWlnaHQteHMsXG5cdG1kOiAkbGluZS1oZWlnaHQtbWQsXG5cdHhsOiAkbGluZS1oZWlnaHQteGwsXG5cdHh4bDogJGxpbmUtaGVpZ2h0LXh4bFxuKTtcblxuJGhlYWRpbmdzLWxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQtbGc7XG4kZGlzcGxheS1saW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0LWxnO1xuXG4vLyBGb250IHdlaWdodHNcbiRmb250LXdlaWdodC1ib2xkOiA3MDA7XG4kZm9udC13ZWlnaHQtbWVkaXVtOiA1MDA7XG4kZm9udC13ZWlnaHQtYmFzZTogNDAwO1xuJGZvbnQtd2VpZ2h0LWxpZ2h0OiAzMDA7XG5cbiRoZWFkaW5ncy1mb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LWJhc2U7XG4kZGlzcGxheTEtd2VpZ2h0OiAkZm9udC13ZWlnaHQtYmFzZTtcblxuLy8gTGV0dGVyIHNwYWNpbmdcbiRsZXR0ZXItc3BhY2luZy1zbTogMC40cHg7IC8vIFRyYXksIHVwdGl0bGUsIHByb2R1Y3QgdGVhc2VyIHRleHRcbiRsZXR0ZXItc3BhY2luZy1tZDogMC41cHg7IC8vIE1lbnUsIHF1b3RlIG5hbWUsIHNlY3Rpb24gdGV4dCwgZm9vdGVyIHRleHRcbiRsZXR0ZXItc3BhY2luZy1sZzogMC45cHg7IC8vIFF1b3RlXG4kbGV0dGVyLXNwYWNpbmcteGw6IDEuMnB4OyAvLyBTbWFsbCBidXR0b25zLCBkYXRlXG4kbGV0dGVyLXNwYWNpbmcteHhsOiAzLjJweDsgLy8gQ29udGFjdCBmb3JtIHRpdGxlLCBidXR0b25zXG4kbGV0dGVyLXNwYWNpbmdzOiAoXG5cdHNtOiAkbGV0dGVyLXNwYWNpbmctc20sXG5cdG1kOiAkbGV0dGVyLXNwYWNpbmctbWQsXG5cdGxnOiAkbGV0dGVyLXNwYWNpbmctbGcsXG5cdHhsOiAkbGV0dGVyLXNwYWNpbmcteGxcbik7XG5cbi8vIEJ1dHRvbnNcbiRidG4tZm9udC1zaXplLWxnOiAkZm9udC1zaXplLWJhc2U7XG4kYnRuLWxpbmUtaGVpZ2h0LWxnOiAkbGluZS1oZWlnaHQteHhzO1xuJGJ0bi1wYWRkaW5nLXktbGc6IDI0LzE2KjFyZW07XG4kYnRuLXBhZGRpbmcteC1sZzogNTgvMTYqMXJlbTtcblxuJGJ0bi1ib3JkZXItd2lkdGg6IDFweDtcbiIsIi8vIEJvb3RzdHJhcCBmdW5jdGlvbnNcbi8vXG4vLyBVdGlsaXR5IG1peGlucyBhbmQgZnVuY3Rpb25zIGZvciBldmFsdWF0aW5nIHNvdXJjZSBjb2RlIGFjcm9zcyBvdXIgdmFyaWFibGVzLCBtYXBzLCBhbmQgbWl4aW5zLlxuXG4vLyBBc2NlbmRpbmdcbi8vIFVzZWQgdG8gZXZhbHVhdGUgU2FzcyBtYXBzIGxpa2Ugb3VyIGdyaWQgYnJlYWtwb2ludHMuXG5AbWl4aW4gX2Fzc2VydC1hc2NlbmRpbmcoJG1hcCwgJG1hcC1uYW1lKSB7XG4gICRwcmV2LWtleTogbnVsbDtcbiAgJHByZXYtbnVtOiBudWxsO1xuICBAZWFjaCAka2V5LCAkbnVtIGluICRtYXAge1xuICAgIEBpZiAkcHJldi1udW0gPT0gbnVsbCBvciB1bml0KCRudW0pID09IFwiJVwiIG9yIHVuaXQoJHByZXYtbnVtKSA9PSBcIiVcIiB7XG4gICAgICAvLyBEbyBub3RoaW5nXG4gICAgfSBAZWxzZSBpZiBub3QgY29tcGFyYWJsZSgkcHJldi1udW0sICRudW0pIHtcbiAgICAgIEB3YXJuIFwiUG90ZW50aWFsbHkgaW52YWxpZCB2YWx1ZSBmb3IgI3skbWFwLW5hbWV9OiBUaGlzIG1hcCBtdXN0IGJlIGluIGFzY2VuZGluZyBvcmRlciwgYnV0IGtleSAnI3ska2V5fScgaGFzIHZhbHVlICN7JG51bX0gd2hvc2UgdW5pdCBtYWtlcyBpdCBpbmNvbXBhcmFibGUgdG8gI3skcHJldi1udW19LCB0aGUgdmFsdWUgb2YgdGhlIHByZXZpb3VzIGtleSAnI3skcHJldi1rZXl9JyAhXCI7XG4gICAgfSBAZWxzZSBpZiAkcHJldi1udW0gPj0gJG51bSB7XG4gICAgICBAd2FybiBcIkludmFsaWQgdmFsdWUgZm9yICN7JG1hcC1uYW1lfTogVGhpcyBtYXAgbXVzdCBiZSBpbiBhc2NlbmRpbmcgb3JkZXIsIGJ1dCBrZXkgJyN7JGtleX0nIGhhcyB2YWx1ZSAjeyRudW19IHdoaWNoIGlzbid0IGdyZWF0ZXIgdGhhbiAjeyRwcmV2LW51bX0sIHRoZSB2YWx1ZSBvZiB0aGUgcHJldmlvdXMga2V5ICcjeyRwcmV2LWtleX0nICFcIjtcbiAgICB9XG4gICAgJHByZXYta2V5OiAka2V5O1xuICAgICRwcmV2LW51bTogJG51bTtcbiAgfVxufVxuXG4vLyBTdGFydHMgYXQgemVyb1xuLy8gVXNlZCB0byBlbnN1cmUgdGhlIG1pbi13aWR0aCBvZiB0aGUgbG93ZXN0IGJyZWFrcG9pbnQgc3RhcnRzIGF0IDAuXG5AbWl4aW4gX2Fzc2VydC1zdGFydHMtYXQtemVybygkbWFwLCAkbWFwLW5hbWU6IFwiJGdyaWQtYnJlYWtwb2ludHNcIikge1xuICBAaWYgbGVuZ3RoKCRtYXApID4gMCB7XG4gICAgJHZhbHVlczogbWFwLXZhbHVlcygkbWFwKTtcbiAgICAkZmlyc3QtdmFsdWU6IG50aCgkdmFsdWVzLCAxKTtcbiAgICBAaWYgJGZpcnN0LXZhbHVlICE9IDAge1xuICAgICAgQHdhcm4gXCJGaXJzdCBicmVha3BvaW50IGluICN7JG1hcC1uYW1lfSBtdXN0IHN0YXJ0IGF0IDAsIGJ1dCBzdGFydHMgYXQgI3skZmlyc3QtdmFsdWV9LlwiO1xuICAgIH1cbiAgfVxufVxuXG4vLyBSZXBsYWNlIGAkc2VhcmNoYCB3aXRoIGAkcmVwbGFjZWAgaW4gYCRzdHJpbmdgXG4vLyBVc2VkIG9uIG91ciBTVkcgaWNvbiBiYWNrZ3JvdW5kcyBmb3IgY3VzdG9tIGZvcm1zLlxuLy9cbi8vIEBhdXRob3IgSHVnbyBHaXJhdWRlbFxuLy8gQHBhcmFtIHtTdHJpbmd9ICRzdHJpbmcgLSBJbml0aWFsIHN0cmluZ1xuLy8gQHBhcmFtIHtTdHJpbmd9ICRzZWFyY2ggLSBTdWJzdHJpbmcgdG8gcmVwbGFjZVxuLy8gQHBhcmFtIHtTdHJpbmd9ICRyZXBsYWNlICgnJykgLSBOZXcgdmFsdWVcbi8vIEByZXR1cm4ge1N0cmluZ30gLSBVcGRhdGVkIHN0cmluZ1xuQGZ1bmN0aW9uIHN0ci1yZXBsYWNlKCRzdHJpbmcsICRzZWFyY2gsICRyZXBsYWNlOiBcIlwiKSB7XG4gICRpbmRleDogc3RyLWluZGV4KCRzdHJpbmcsICRzZWFyY2gpO1xuXG4gIEBpZiAkaW5kZXgge1xuICAgIEByZXR1cm4gc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpICsgJHJlcGxhY2UgKyBzdHItcmVwbGFjZShzdHItc2xpY2UoJHN0cmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkc2VhcmNoKSksICRzZWFyY2gsICRyZXBsYWNlKTtcbiAgfVxuXG4gIEByZXR1cm4gJHN0cmluZztcbn1cblxuLy8gU2VlIGh0dHBzOi8vY29kZXBlbi5pby9rZXZpbndlYmVyL3Blbi9kWFdvUndcbi8vXG4vLyBSZXF1aXJlcyB0aGUgdXNlIG9mIHF1b3RlcyBhcm91bmQgZGF0YSBVUklzLlxuXG5AZnVuY3Rpb24gZXNjYXBlLXN2Zygkc3RyaW5nKSB7XG4gIEBpZiBzdHItaW5kZXgoJHN0cmluZywgXCJkYXRhOmltYWdlL3N2Zyt4bWxcIikge1xuICAgIEBlYWNoICRjaGFyLCAkZW5jb2RlZCBpbiAkZXNjYXBlZC1jaGFyYWN0ZXJzIHtcbiAgICAgIC8vIERvIG5vdCBlc2NhcGUgdGhlIHVybCBicmFja2V0c1xuICAgICAgQGlmIHN0ci1pbmRleCgkc3RyaW5nLCBcInVybChcIikgPT0gMSB7XG4gICAgICAgICRzdHJpbmc6IHVybChcIiN7c3RyLXJlcGxhY2Uoc3RyLXNsaWNlKCRzdHJpbmcsIDYsIC0zKSwgJGNoYXIsICRlbmNvZGVkKX1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHN0cmluZzogc3RyLXJlcGxhY2UoJHN0cmluZywgJGNoYXIsICRlbmNvZGVkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzdHJpbmc7XG59XG5cbi8vIENvbG9yIGNvbnRyYXN0XG5AZnVuY3Rpb24gY29sb3IteWlxKCRjb2xvciwgJGRhcms6ICR5aXEtdGV4dC1kYXJrLCAkbGlnaHQ6ICR5aXEtdGV4dC1saWdodCkge1xuICAkcjogcmVkKCRjb2xvcik7XG4gICRnOiBncmVlbigkY29sb3IpO1xuICAkYjogYmx1ZSgkY29sb3IpO1xuXG4gICR5aXE6ICgoJHIgKiAyOTkpICsgKCRnICogNTg3KSArICgkYiAqIDExNCkpIC8gMTAwMDtcblxuICBAaWYgKCR5aXEgPj0gJHlpcS1jb250cmFzdGVkLXRocmVzaG9sZCkge1xuICAgIEByZXR1cm4gJGRhcms7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJGxpZ2h0O1xuICB9XG59XG5cbi8vIFJldHJpZXZlIGNvbG9yIFNhc3MgbWFwc1xuQGZ1bmN0aW9uIGNvbG9yKCRrZXk6IFwiYmx1ZVwiKSB7XG4gIEByZXR1cm4gbWFwLWdldCgkY29sb3JzLCAka2V5KTtcbn1cblxuQGZ1bmN0aW9uIHRoZW1lLWNvbG9yKCRrZXk6IFwicHJpbWFyeVwiKSB7XG4gIEByZXR1cm4gbWFwLWdldCgkdGhlbWUtY29sb3JzLCAka2V5KTtcbn1cblxuQGZ1bmN0aW9uIGdyYXkoJGtleTogXCIxMDBcIikge1xuICBAcmV0dXJuIG1hcC1nZXQoJGdyYXlzLCAka2V5KTtcbn1cblxuLy8gUmVxdWVzdCBhIHRoZW1lIGNvbG9yIGxldmVsXG5AZnVuY3Rpb24gdGhlbWUtY29sb3ItbGV2ZWwoJGNvbG9yLW5hbWU6IFwicHJpbWFyeVwiLCAkbGV2ZWw6IDApIHtcbiAgJGNvbG9yOiB0aGVtZS1jb2xvcigkY29sb3ItbmFtZSk7XG4gICRjb2xvci1iYXNlOiBpZigkbGV2ZWwgPiAwLCAkYmxhY2ssICR3aGl0ZSk7XG4gICRsZXZlbDogYWJzKCRsZXZlbCk7XG5cbiAgQHJldHVybiBtaXgoJGNvbG9yLWJhc2UsICRjb2xvciwgJGxldmVsICogJHRoZW1lLWNvbG9yLWludGVydmFsKTtcbn1cblxuLy8gUmV0dXJuIHZhbGlkIGNhbGNcbkBmdW5jdGlvbiBhZGQoJHZhbHVlMSwgJHZhbHVlMiwgJHJldHVybi1jYWxjOiB0cnVlKSB7XG4gIEBpZiAkdmFsdWUxID09IG51bGwge1xuICAgIEByZXR1cm4gJHZhbHVlMjtcbiAgfVxuXG4gIEBpZiAkdmFsdWUyID09IG51bGwge1xuICAgIEByZXR1cm4gJHZhbHVlMTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZTEpID09IG51bWJlciBhbmQgdHlwZS1vZigkdmFsdWUyKSA9PSBudW1iZXIgYW5kIGNvbXBhcmFibGUoJHZhbHVlMSwgJHZhbHVlMikge1xuICAgIEByZXR1cm4gJHZhbHVlMSArICR2YWx1ZTI7XG4gIH1cblxuICBAcmV0dXJuIGlmKCRyZXR1cm4tY2FsYyA9PSB0cnVlLCBjYWxjKCN7JHZhbHVlMX0gKyAjeyR2YWx1ZTJ9KSwgJHZhbHVlMSArIHVucXVvdGUoXCIgKyBcIikgKyAkdmFsdWUyKTtcbn1cblxuQGZ1bmN0aW9uIHN1YnRyYWN0KCR2YWx1ZTEsICR2YWx1ZTIsICRyZXR1cm4tY2FsYzogdHJ1ZSkge1xuICBAaWYgJHZhbHVlMSA9PSBudWxsIGFuZCAkdmFsdWUyID09IG51bGwge1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIEBpZiAkdmFsdWUxID09IG51bGwge1xuICAgIEByZXR1cm4gLSR2YWx1ZTI7XG4gIH1cblxuICBAaWYgJHZhbHVlMiA9PSBudWxsIHtcbiAgICBAcmV0dXJuICR2YWx1ZTE7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkdmFsdWUxKSA9PSBudW1iZXIgYW5kIHR5cGUtb2YoJHZhbHVlMikgPT0gbnVtYmVyIGFuZCBjb21wYXJhYmxlKCR2YWx1ZTEsICR2YWx1ZTIpIHtcbiAgICBAcmV0dXJuICR2YWx1ZTEgLSAkdmFsdWUyO1xuICB9XG5cbiAgQHJldHVybiBpZigkcmV0dXJuLWNhbGMgPT0gdHJ1ZSwgY2FsYygjeyR2YWx1ZTF9IC0gI3skdmFsdWUyfSksICR2YWx1ZTEgKyB1bnF1b3RlKFwiIC0gXCIpICsgJHZhbHVlMik7XG59XG4iLCIvLyBWYXJpYWJsZXNcbi8vXG4vLyBWYXJpYWJsZXMgc2hvdWxkIGZvbGxvdyB0aGUgYCRjb21wb25lbnQtc3RhdGUtcHJvcGVydHktc2l6ZWAgZm9ybXVsYSBmb3Jcbi8vIGNvbnNpc3RlbnQgbmFtaW5nLiBFeDogJG5hdi1saW5rLWRpc2FibGVkLWNvbG9yIGFuZCAkbW9kYWwtY29udGVudC1ib3gtc2hhZG93LXhzLlxuXG4vLyBDb2xvciBzeXN0ZW1cblxuJHdoaXRlOiAgICAjZmZmICFkZWZhdWx0O1xuJGdyYXktMTAwOiAjZjhmOWZhICFkZWZhdWx0O1xuJGdyYXktMjAwOiAjZTllY2VmICFkZWZhdWx0O1xuJGdyYXktMzAwOiAjZGVlMmU2ICFkZWZhdWx0O1xuJGdyYXktNDAwOiAjY2VkNGRhICFkZWZhdWx0O1xuJGdyYXktNTAwOiAjYWRiNWJkICFkZWZhdWx0O1xuJGdyYXktNjAwOiAjNmM3NTdkICFkZWZhdWx0O1xuJGdyYXktNzAwOiAjNDk1MDU3ICFkZWZhdWx0O1xuJGdyYXktODAwOiAjMzQzYTQwICFkZWZhdWx0O1xuJGdyYXktOTAwOiAjMjEyNTI5ICFkZWZhdWx0O1xuJGJsYWNrOiAgICAjMDAwICFkZWZhdWx0O1xuXG4kZ3JheXM6ICgpICFkZWZhdWx0O1xuJGdyYXlzOiBtYXAtbWVyZ2UoXG4gIChcbiAgICBcIjEwMFwiOiAkZ3JheS0xMDAsXG4gICAgXCIyMDBcIjogJGdyYXktMjAwLFxuICAgIFwiMzAwXCI6ICRncmF5LTMwMCxcbiAgICBcIjQwMFwiOiAkZ3JheS00MDAsXG4gICAgXCI1MDBcIjogJGdyYXktNTAwLFxuICAgIFwiNjAwXCI6ICRncmF5LTYwMCxcbiAgICBcIjcwMFwiOiAkZ3JheS03MDAsXG4gICAgXCI4MDBcIjogJGdyYXktODAwLFxuICAgIFwiOTAwXCI6ICRncmF5LTkwMFxuICApLFxuICAkZ3JheXNcbik7XG5cbiRibHVlOiAgICAjMDA3YmZmICFkZWZhdWx0O1xuJGluZGlnbzogICM2NjEwZjIgIWRlZmF1bHQ7XG4kcHVycGxlOiAgIzZmNDJjMSAhZGVmYXVsdDtcbiRwaW5rOiAgICAjZTgzZThjICFkZWZhdWx0O1xuJHJlZDogICAgICNkYzM1NDUgIWRlZmF1bHQ7XG4kb3JhbmdlOiAgI2ZkN2UxNCAhZGVmYXVsdDtcbiR5ZWxsb3c6ICAjZmZjMTA3ICFkZWZhdWx0O1xuJGdyZWVuOiAgICMyOGE3NDUgIWRlZmF1bHQ7XG4kdGVhbDogICAgIzIwYzk5NyAhZGVmYXVsdDtcbiRjeWFuOiAgICAjMTdhMmI4ICFkZWZhdWx0O1xuXG4kY29sb3JzOiAoKSAhZGVmYXVsdDtcbiRjb2xvcnM6IG1hcC1tZXJnZShcbiAgKFxuICAgIFwiYmx1ZVwiOiAgICAgICAkYmx1ZSxcbiAgICBcImluZGlnb1wiOiAgICAgJGluZGlnbyxcbiAgICBcInB1cnBsZVwiOiAgICAgJHB1cnBsZSxcbiAgICBcInBpbmtcIjogICAgICAgJHBpbmssXG4gICAgXCJyZWRcIjogICAgICAgICRyZWQsXG4gICAgXCJvcmFuZ2VcIjogICAgICRvcmFuZ2UsXG4gICAgXCJ5ZWxsb3dcIjogICAgICR5ZWxsb3csXG4gICAgXCJncmVlblwiOiAgICAgICRncmVlbixcbiAgICBcInRlYWxcIjogICAgICAgJHRlYWwsXG4gICAgXCJjeWFuXCI6ICAgICAgICRjeWFuLFxuICAgIFwid2hpdGVcIjogICAgICAkd2hpdGUsXG4gICAgXCJncmF5XCI6ICAgICAgICRncmF5LTYwMCxcbiAgICBcImdyYXktZGFya1wiOiAgJGdyYXktODAwXG4gICksXG4gICRjb2xvcnNcbik7XG5cbiRwcmltYXJ5OiAgICAgICAkYmx1ZSAhZGVmYXVsdDtcbiRzZWNvbmRhcnk6ICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG4kc3VjY2VzczogICAgICAgJGdyZWVuICFkZWZhdWx0O1xuJGluZm86ICAgICAgICAgICRjeWFuICFkZWZhdWx0O1xuJHdhcm5pbmc6ICAgICAgICR5ZWxsb3cgIWRlZmF1bHQ7XG4kZGFuZ2VyOiAgICAgICAgJHJlZCAhZGVmYXVsdDtcbiRsaWdodDogICAgICAgICAkZ3JheS0xMDAgIWRlZmF1bHQ7XG4kZGFyazogICAgICAgICAgJGdyYXktODAwICFkZWZhdWx0O1xuXG4kdGhlbWUtY29sb3JzOiAoKSAhZGVmYXVsdDtcbiR0aGVtZS1jb2xvcnM6IG1hcC1tZXJnZShcbiAgKFxuICAgIFwicHJpbWFyeVwiOiAgICAkcHJpbWFyeSxcbiAgICBcInNlY29uZGFyeVwiOiAgJHNlY29uZGFyeSxcbiAgICBcInN1Y2Nlc3NcIjogICAgJHN1Y2Nlc3MsXG4gICAgXCJpbmZvXCI6ICAgICAgICRpbmZvLFxuICAgIFwid2FybmluZ1wiOiAgICAkd2FybmluZyxcbiAgICBcImRhbmdlclwiOiAgICAgJGRhbmdlcixcbiAgICBcImxpZ2h0XCI6ICAgICAgJGxpZ2h0LFxuICAgIFwiZGFya1wiOiAgICAgICAkZGFya1xuICApLFxuICAkdGhlbWUtY29sb3JzXG4pO1xuXG4vLyBTZXQgYSBzcGVjaWZpYyBqdW1wIHBvaW50IGZvciByZXF1ZXN0aW5nIGNvbG9yIGp1bXBzXG4kdGhlbWUtY29sb3ItaW50ZXJ2YWw6ICAgICAgOCUgIWRlZmF1bHQ7XG5cbi8vIFRoZSB5aXEgbGlnaHRuZXNzIHZhbHVlIHRoYXQgZGV0ZXJtaW5lcyB3aGVuIHRoZSBsaWdodG5lc3Mgb2YgY29sb3IgY2hhbmdlcyBmcm9tIFwiZGFya1wiIHRvIFwibGlnaHRcIi4gQWNjZXB0YWJsZSB2YWx1ZXMgYXJlIGJldHdlZW4gMCBhbmQgMjU1LlxuJHlpcS1jb250cmFzdGVkLXRocmVzaG9sZDogIDE1MCAhZGVmYXVsdDtcblxuLy8gQ3VzdG9taXplIHRoZSBsaWdodCBhbmQgZGFyayB0ZXh0IGNvbG9ycyBmb3IgdXNlIGluIG91ciBZSVEgY29sb3IgY29udHJhc3QgZnVuY3Rpb24uXG4keWlxLXRleHQtZGFyazogICAgICAgICAgICAgJGdyYXktOTAwICFkZWZhdWx0O1xuJHlpcS10ZXh0LWxpZ2h0OiAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8gQ2hhcmFjdGVycyB3aGljaCBhcmUgZXNjYXBlZCBieSB0aGUgZXNjYXBlLXN2ZyBmdW5jdGlvblxuJGVzY2FwZWQtY2hhcmFjdGVyczogKFxuICAoXCI8XCIsIFwiJTNjXCIpLFxuICAoXCI+XCIsIFwiJTNlXCIpLFxuICAoXCIjXCIsIFwiJTIzXCIpLFxuICAoXCIoXCIsIFwiJTI4XCIpLFxuICAoXCIpXCIsIFwiJTI5XCIpLFxuKSAhZGVmYXVsdDtcblxuXG4vLyBPcHRpb25zXG4vL1xuLy8gUXVpY2tseSBtb2RpZnkgZ2xvYmFsIHN0eWxpbmcgYnkgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIG9wdGlvbmFsIGZlYXR1cmVzLlxuXG4kZW5hYmxlLWNhcmV0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRlbmFibGUtcm91bmRlZDogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJGVuYWJsZS1zaGFkb3dzOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGVuYWJsZS1ncmFkaWVudHM6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGVuYWJsZS10cmFuc2l0aW9uczogICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kZW5hYmxlLXByZWZlcnMtcmVkdWNlZC1tb3Rpb24tbWVkaWEtcXVlcnk6ICAgdHJ1ZSAhZGVmYXVsdDtcbiRlbmFibGUtaG92ZXItbWVkaWEtcXVlcnk6ICAgICAgICAgICAgICAgICAgICBmYWxzZSAhZGVmYXVsdDsgLy8gRGVwcmVjYXRlZCwgbm8gbG9uZ2VyIGFmZmVjdHMgYW55IGNvbXBpbGVkIENTU1xuJGVuYWJsZS1ncmlkLWNsYXNzZXM6ICAgICAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kZW5hYmxlLXBvaW50ZXItY3Vyc29yLWZvci1idXR0b25zOiAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRlbmFibGUtcHJpbnQtc3R5bGVzOiAgICAgICAgICAgICAgICAgICAgICAgICB0cnVlICFkZWZhdWx0O1xuJGVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZXM6ICAgICAgICAgICAgICAgIGZhbHNlICFkZWZhdWx0O1xuJGVuYWJsZS12YWxpZGF0aW9uLWljb25zOiAgICAgICAgICAgICAgICAgICAgIHRydWUgIWRlZmF1bHQ7XG4kZW5hYmxlLWRlcHJlY2F0aW9uLW1lc3NhZ2VzOiAgICAgICAgICAgICAgICAgdHJ1ZSAhZGVmYXVsdDtcblxuXG4vLyBTcGFjaW5nXG4vL1xuLy8gQ29udHJvbCB0aGUgZGVmYXVsdCBzdHlsaW5nIG9mIG1vc3QgQm9vdHN0cmFwIGVsZW1lbnRzIGJ5IG1vZGlmeWluZyB0aGVzZVxuLy8gdmFyaWFibGVzLiBNb3N0bHkgZm9jdXNlZCBvbiBzcGFjaW5nLlxuLy8gWW91IGNhbiBhZGQgbW9yZSBlbnRyaWVzIHRvIHRoZSAkc3BhY2VycyBtYXAsIHNob3VsZCB5b3UgbmVlZCBtb3JlIHZhcmlhdGlvbi5cblxuJHNwYWNlcjogMXJlbSAhZGVmYXVsdDtcbiRzcGFjZXJzOiAoKSAhZGVmYXVsdDtcbiRzcGFjZXJzOiBtYXAtbWVyZ2UoXG4gIChcbiAgICAwOiAwLFxuICAgIDE6ICgkc3BhY2VyICogLjI1KSxcbiAgICAyOiAoJHNwYWNlciAqIC41KSxcbiAgICAzOiAkc3BhY2VyLFxuICAgIDQ6ICgkc3BhY2VyICogMS41KSxcbiAgICA1OiAoJHNwYWNlciAqIDMpXG4gICksXG4gICRzcGFjZXJzXG4pO1xuXG4vLyBUaGlzIHZhcmlhYmxlIGFmZmVjdHMgdGhlIGAuaC0qYCBhbmQgYC53LSpgIGNsYXNzZXMuXG4kc2l6ZXM6ICgpICFkZWZhdWx0O1xuJHNpemVzOiBtYXAtbWVyZ2UoXG4gIChcbiAgICAyNTogMjUlLFxuICAgIDUwOiA1MCUsXG4gICAgNzU6IDc1JSxcbiAgICAxMDA6IDEwMCUsXG4gICAgYXV0bzogYXV0b1xuICApLFxuICAkc2l6ZXNcbik7XG5cblxuLy8gQm9keVxuLy9cbi8vIFNldHRpbmdzIGZvciB0aGUgYDxib2R5PmAgZWxlbWVudC5cblxuJGJvZHktYmc6ICAgICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRib2R5LWNvbG9yOiAgICAgICAgICAgICAgICAkZ3JheS05MDAgIWRlZmF1bHQ7XG5cblxuLy8gTGlua3Ncbi8vXG4vLyBTdHlsZSBhbmNob3IgZWxlbWVudHMuXG5cbiRsaW5rLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW1lLWNvbG9yKFwicHJpbWFyeVwiKSAhZGVmYXVsdDtcbiRsaW5rLWRlY29yYXRpb246ICAgICAgICAgICAgICAgICAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XG4kbGluay1ob3Zlci1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICBkYXJrZW4oJGxpbmstY29sb3IsIDE1JSkgIWRlZmF1bHQ7XG4kbGluay1ob3Zlci1kZWNvcmF0aW9uOiAgICAgICAgICAgICAgICAgICB1bmRlcmxpbmUgIWRlZmF1bHQ7XG4vLyBEYXJrZW4gcGVyY2VudGFnZSBmb3IgbGlua3Mgd2l0aCBgLnRleHQtKmAgY2xhc3MgKGUuZy4gYC50ZXh0LXN1Y2Nlc3NgKVxuJGVtcGhhc2l6ZWQtbGluay1ob3Zlci1kYXJrZW4tcGVyY2VudGFnZTogMTUlICFkZWZhdWx0O1xuXG4vLyBQYXJhZ3JhcGhzXG4vL1xuLy8gU3R5bGUgcCBlbGVtZW50LlxuXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206ICAgMXJlbSAhZGVmYXVsdDtcblxuXG4vLyBHcmlkIGJyZWFrcG9pbnRzXG4vL1xuLy8gRGVmaW5lIHRoZSBtaW5pbXVtIGRpbWVuc2lvbnMgYXQgd2hpY2ggeW91ciBsYXlvdXQgd2lsbCBjaGFuZ2UsXG4vLyBhZGFwdGluZyB0byBkaWZmZXJlbnQgc2NyZWVuIHNpemVzLCBmb3IgdXNlIGluIG1lZGlhIHF1ZXJpZXMuXG5cbiRncmlkLWJyZWFrcG9pbnRzOiAoXG4gIHhzOiAwLFxuICBzbTogNTc2cHgsXG4gIG1kOiA3NjhweCxcbiAgbGc6IDk5MnB4LFxuICB4bDogMTIwMHB4XG4pICFkZWZhdWx0O1xuXG5AaW5jbHVkZSBfYXNzZXJ0LWFzY2VuZGluZygkZ3JpZC1icmVha3BvaW50cywgXCIkZ3JpZC1icmVha3BvaW50c1wiKTtcbkBpbmNsdWRlIF9hc3NlcnQtc3RhcnRzLWF0LXplcm8oJGdyaWQtYnJlYWtwb2ludHMsIFwiJGdyaWQtYnJlYWtwb2ludHNcIik7XG5cblxuLy8gR3JpZCBjb250YWluZXJzXG4vL1xuLy8gRGVmaW5lIHRoZSBtYXhpbXVtIHdpZHRoIG9mIGAuY29udGFpbmVyYCBmb3IgZGlmZmVyZW50IHNjcmVlbiBzaXplcy5cblxuJGNvbnRhaW5lci1tYXgtd2lkdGhzOiAoXG4gIHNtOiA1NDBweCxcbiAgbWQ6IDcyMHB4LFxuICBsZzogOTYwcHgsXG4gIHhsOiAxMTQwcHhcbikgIWRlZmF1bHQ7XG5cbkBpbmNsdWRlIF9hc3NlcnQtYXNjZW5kaW5nKCRjb250YWluZXItbWF4LXdpZHRocywgXCIkY29udGFpbmVyLW1heC13aWR0aHNcIik7XG5cblxuLy8gR3JpZCBjb2x1bW5zXG4vL1xuLy8gU2V0IHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbmQgc3BlY2lmeSB0aGUgd2lkdGggb2YgdGhlIGd1dHRlcnMuXG5cbiRncmlkLWNvbHVtbnM6ICAgICAgICAgICAgICAgIDEyICFkZWZhdWx0O1xuJGdyaWQtZ3V0dGVyLXdpZHRoOiAgICAgICAgICAgMzBweCAhZGVmYXVsdDtcbiRncmlkLXJvdy1jb2x1bW5zOiAgICAgICAgICAgIDYgIWRlZmF1bHQ7XG5cblxuLy8gQ29tcG9uZW50c1xuLy9cbi8vIERlZmluZSBjb21tb24gcGFkZGluZyBhbmQgYm9yZGVyIHJhZGl1cyBzaXplcyBhbmQgbW9yZS5cblxuJGxpbmUtaGVpZ2h0LWxnOiAgICAgICAgICAgICAgMS41ICFkZWZhdWx0O1xuJGxpbmUtaGVpZ2h0LXNtOiAgICAgICAgICAgICAgMS41ICFkZWZhdWx0O1xuXG4kYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAxcHggIWRlZmF1bHQ7XG4kYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAkZ3JheS0zMDAgIWRlZmF1bHQ7XG5cbiRib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgIC4yNXJlbSAhZGVmYXVsdDtcbiRib3JkZXItcmFkaXVzLWxnOiAgICAgICAgICAgIC4zcmVtICFkZWZhdWx0O1xuJGJvcmRlci1yYWRpdXMtc206ICAgICAgICAgICAgLjJyZW0gIWRlZmF1bHQ7XG5cbiRyb3VuZGVkLXBpbGw6ICAgICAgICAgICAgICAgIDUwcmVtICFkZWZhdWx0O1xuXG4kYm94LXNoYWRvdy1zbTogICAgICAgICAgICAgICAwIC4xMjVyZW0gLjI1cmVtIHJnYmEoJGJsYWNrLCAuMDc1KSAhZGVmYXVsdDtcbiRib3gtc2hhZG93OiAgICAgICAgICAgICAgICAgIDAgLjVyZW0gMXJlbSByZ2JhKCRibGFjaywgLjE1KSAhZGVmYXVsdDtcbiRib3gtc2hhZG93LWxnOiAgICAgICAgICAgICAgIDAgMXJlbSAzcmVtIHJnYmEoJGJsYWNrLCAuMTc1KSAhZGVmYXVsdDtcblxuJGNvbXBvbmVudC1hY3RpdmUtY29sb3I6ICAgICAgJHdoaXRlICFkZWZhdWx0O1xuJGNvbXBvbmVudC1hY3RpdmUtYmc6ICAgICAgICAgdGhlbWUtY29sb3IoXCJwcmltYXJ5XCIpICFkZWZhdWx0O1xuXG4kY2FyZXQtd2lkdGg6ICAgICAgICAgICAgICAgICAuM2VtICFkZWZhdWx0O1xuJGNhcmV0LXZlcnRpY2FsLWFsaWduOiAgICAgICAgJGNhcmV0LXdpZHRoICogLjg1ICFkZWZhdWx0O1xuJGNhcmV0LXNwYWNpbmc6ICAgICAgICAgICAgICAgJGNhcmV0LXdpZHRoICogLjg1ICFkZWZhdWx0O1xuXG4kdHJhbnNpdGlvbi1iYXNlOiAgICAgICAgICAgICBhbGwgLjJzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuJHRyYW5zaXRpb24tZmFkZTogICAgICAgICAgICAgb3BhY2l0eSAuMTVzIGxpbmVhciAhZGVmYXVsdDtcbiR0cmFuc2l0aW9uLWNvbGxhcHNlOiAgICAgICAgIGhlaWdodCAuMzVzIGVhc2UgIWRlZmF1bHQ7XG5cbiRlbWJlZC1yZXNwb25zaXZlLWFzcGVjdC1yYXRpb3M6ICgpICFkZWZhdWx0O1xuJGVtYmVkLXJlc3BvbnNpdmUtYXNwZWN0LXJhdGlvczogam9pbihcbiAgKFxuICAgICgyMSA5KSxcbiAgICAoMTYgOSksXG4gICAgKDQgMyksXG4gICAgKDEgMSksXG4gICksXG4gICRlbWJlZC1yZXNwb25zaXZlLWFzcGVjdC1yYXRpb3Ncbik7XG5cbi8vIFR5cG9ncmFwaHlcbi8vXG4vLyBGb250LCBsaW5lLWhlaWdodCwgYW5kIGNvbG9yIGZvciBib2R5IHRleHQsIGhlYWRpbmdzLCBhbmQgbW9yZS5cblxuLy8gc3R5bGVsaW50LWRpc2FibGUgdmFsdWUta2V5d29yZC1jYXNlXG4kZm9udC1mYW1pbHktc2Fucy1zZXJpZjogICAgICAtYXBwbGUtc3lzdGVtLCBCbGlua01hY1N5c3RlbUZvbnQsIFwiU2Vnb2UgVUlcIiwgUm9ib3RvLCBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBcIk5vdG8gU2Fuc1wiLCBzYW5zLXNlcmlmLCBcIkFwcGxlIENvbG9yIEVtb2ppXCIsIFwiU2Vnb2UgVUkgRW1vamlcIiwgXCJTZWdvZSBVSSBTeW1ib2xcIiwgXCJOb3RvIENvbG9yIEVtb2ppXCIgIWRlZmF1bHQ7XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiAgICAgICBTRk1vbm8tUmVndWxhciwgTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIFwiQ291cmllciBOZXdcIiwgbW9ub3NwYWNlICFkZWZhdWx0O1xuJGZvbnQtZmFtaWx5LWJhc2U6ICAgICAgICAgICAgJGZvbnQtZmFtaWx5LXNhbnMtc2VyaWYgIWRlZmF1bHQ7XG4vLyBzdHlsZWxpbnQtZW5hYmxlIHZhbHVlLWtleXdvcmQtY2FzZVxuXG4kZm9udC1zaXplLWJhc2U6ICAgICAgICAgICAgICAxcmVtICFkZWZhdWx0OyAvLyBBc3N1bWVzIHRoZSBicm93c2VyIGRlZmF1bHQsIHR5cGljYWxseSBgMTZweGBcbiRmb250LXNpemUtbGc6ICAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDEuMjUgIWRlZmF1bHQ7XG4kZm9udC1zaXplLXNtOiAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAuODc1ICFkZWZhdWx0O1xuXG4kZm9udC13ZWlnaHQtbGlnaHRlcjogICAgICAgICBsaWdodGVyICFkZWZhdWx0O1xuJGZvbnQtd2VpZ2h0LWxpZ2h0OiAgICAgICAgICAgMzAwICFkZWZhdWx0O1xuJGZvbnQtd2VpZ2h0LW5vcm1hbDogICAgICAgICAgNDAwICFkZWZhdWx0O1xuJGZvbnQtd2VpZ2h0LWJvbGQ6ICAgICAgICAgICAgNzAwICFkZWZhdWx0O1xuJGZvbnQtd2VpZ2h0LWJvbGRlcjogICAgICAgICAgYm9sZGVyICFkZWZhdWx0O1xuXG4kZm9udC13ZWlnaHQtYmFzZTogICAgICAgICAgICAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGxpbmUtaGVpZ2h0LWJhc2U6ICAgICAgICAgICAgMS41ICFkZWZhdWx0O1xuXG4kaDEtZm9udC1zaXplOiAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAyLjUgIWRlZmF1bHQ7XG4kaDItZm9udC1zaXplOiAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAyICFkZWZhdWx0O1xuJGgzLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogMS43NSAhZGVmYXVsdDtcbiRoNC1mb250LXNpemU6ICAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDEuNSAhZGVmYXVsdDtcbiRoNS1mb250LXNpemU6ICAgICAgICAgICAgICAgICRmb250LXNpemUtYmFzZSAqIDEuMjUgIWRlZmF1bHQ7XG4kaDYtZm9udC1zaXplOiAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgIWRlZmF1bHQ7XG5cbiRoZWFkaW5ncy1tYXJnaW4tYm90dG9tOiAgICAgICRzcGFjZXIgLyAyICFkZWZhdWx0O1xuJGhlYWRpbmdzLWZvbnQtZmFtaWx5OiAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRoZWFkaW5ncy1mb250LXdlaWdodDogICAgICAgIDUwMCAhZGVmYXVsdDtcbiRoZWFkaW5ncy1saW5lLWhlaWdodDogICAgICAgIDEuMiAhZGVmYXVsdDtcbiRoZWFkaW5ncy1jb2xvcjogICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG5cbiRkaXNwbGF5MS1zaXplOiAgICAgICAgICAgICAgIDZyZW0gIWRlZmF1bHQ7XG4kZGlzcGxheTItc2l6ZTogICAgICAgICAgICAgICA1LjVyZW0gIWRlZmF1bHQ7XG4kZGlzcGxheTMtc2l6ZTogICAgICAgICAgICAgICA0LjVyZW0gIWRlZmF1bHQ7XG4kZGlzcGxheTQtc2l6ZTogICAgICAgICAgICAgICAzLjVyZW0gIWRlZmF1bHQ7XG5cbiRkaXNwbGF5MS13ZWlnaHQ6ICAgICAgICAgICAgIDMwMCAhZGVmYXVsdDtcbiRkaXNwbGF5Mi13ZWlnaHQ6ICAgICAgICAgICAgIDMwMCAhZGVmYXVsdDtcbiRkaXNwbGF5My13ZWlnaHQ6ICAgICAgICAgICAgIDMwMCAhZGVmYXVsdDtcbiRkaXNwbGF5NC13ZWlnaHQ6ICAgICAgICAgICAgIDMwMCAhZGVmYXVsdDtcbiRkaXNwbGF5LWxpbmUtaGVpZ2h0OiAgICAgICAgICRoZWFkaW5ncy1saW5lLWhlaWdodCAhZGVmYXVsdDtcblxuJGxlYWQtZm9udC1zaXplOiAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogMS4yNSAhZGVmYXVsdDtcbiRsZWFkLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgIDMwMCAhZGVmYXVsdDtcblxuJHNtYWxsLWZvbnQtc2l6ZTogICAgICAgICAgICAgODAlICFkZWZhdWx0O1xuXG4kdGV4dC1tdXRlZDogICAgICAgICAgICAgICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG5cbiRibG9ja3F1b3RlLXNtYWxsLWNvbG9yOiAgICAgICRncmF5LTYwMCAhZGVmYXVsdDtcbiRibG9ja3F1b3RlLXNtYWxsLWZvbnQtc2l6ZTogICRzbWFsbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kYmxvY2txdW90ZS1mb250LXNpemU6ICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAxLjI1ICFkZWZhdWx0O1xuXG4kaHItYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICByZ2JhKCRibGFjaywgLjEpICFkZWZhdWx0O1xuJGhyLWJvcmRlci13aWR0aDogICAgICAgICAgICAgJGJvcmRlci13aWR0aCAhZGVmYXVsdDtcblxuJG1hcmstcGFkZGluZzogICAgICAgICAgICAgICAgLjJlbSAhZGVmYXVsdDtcblxuJGR0LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG5cbiRrYmQtYm94LXNoYWRvdzogICAgICAgICAgICAgIGluc2V0IDAgLS4xcmVtIDAgcmdiYSgkYmxhY2ssIC4yNSkgIWRlZmF1bHQ7XG4kbmVzdGVkLWtiZC1mb250LXdlaWdodDogICAgICAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcblxuJGxpc3QtaW5saW5lLXBhZGRpbmc6ICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG5cbiRtYXJrLWJnOiAgICAgICAgICAgICAgICAgICAgICNmY2Y4ZTMgIWRlZmF1bHQ7XG5cbiRoci1tYXJnaW4teTogICAgICAgICAgICAgICAgICRzcGFjZXIgIWRlZmF1bHQ7XG5cblxuLy8gVGFibGVzXG4vL1xuLy8gQ3VzdG9taXplcyB0aGUgYC50YWJsZWAgY29tcG9uZW50IHdpdGggYmFzaWMgdmFsdWVzLCBlYWNoIHVzZWQgYWNyb3NzIGFsbCB0YWJsZSB2YXJpYXRpb25zLlxuXG4kdGFibGUtY2VsbC1wYWRkaW5nOiAgICAgICAgICAuNzVyZW0gIWRlZmF1bHQ7XG4kdGFibGUtY2VsbC1wYWRkaW5nLXNtOiAgICAgICAuM3JlbSAhZGVmYXVsdDtcblxuJHRhYmxlLWNvbG9yOiAgICAgICAgICAgICAgICAgJGJvZHktY29sb3IgIWRlZmF1bHQ7XG4kdGFibGUtYmc6ICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJHRhYmxlLWFjY2VudC1iZzogICAgICAgICAgICAgcmdiYSgkYmxhY2ssIC4wNSkgIWRlZmF1bHQ7XG4kdGFibGUtaG92ZXItY29sb3I6ICAgICAgICAgICAkdGFibGUtY29sb3IgIWRlZmF1bHQ7XG4kdGFibGUtaG92ZXItYmc6ICAgICAgICAgICAgICByZ2JhKCRibGFjaywgLjA3NSkgIWRlZmF1bHQ7XG4kdGFibGUtYWN0aXZlLWJnOiAgICAgICAgICAgICAkdGFibGUtaG92ZXItYmcgIWRlZmF1bHQ7XG5cbiR0YWJsZS1ib3JkZXItd2lkdGg6ICAgICAgICAgICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kdGFibGUtYm9yZGVyLWNvbG9yOiAgICAgICAgICAkYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuXG4kdGFibGUtaGVhZC1iZzogICAgICAgICAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kdGFibGUtaGVhZC1jb2xvcjogICAgICAgICAgICAkZ3JheS03MDAgIWRlZmF1bHQ7XG4kdGFibGUtdGgtZm9udC13ZWlnaHQ6ICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kdGFibGUtZGFyay1jb2xvcjogICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kdGFibGUtZGFyay1iZzogICAgICAgICAgICAgICAkZ3JheS04MDAgIWRlZmF1bHQ7XG4kdGFibGUtZGFyay1hY2NlbnQtYmc6ICAgICAgICByZ2JhKCR3aGl0ZSwgLjA1KSAhZGVmYXVsdDtcbiR0YWJsZS1kYXJrLWhvdmVyLWNvbG9yOiAgICAgICR0YWJsZS1kYXJrLWNvbG9yICFkZWZhdWx0O1xuJHRhYmxlLWRhcmstaG92ZXItYmc6ICAgICAgICAgcmdiYSgkd2hpdGUsIC4wNzUpICFkZWZhdWx0O1xuJHRhYmxlLWRhcmstYm9yZGVyLWNvbG9yOiAgICAgbGlnaHRlbigkdGFibGUtZGFyay1iZywgNy41JSkgIWRlZmF1bHQ7XG5cbiR0YWJsZS1zdHJpcGVkLW9yZGVyOiAgICAgICAgIG9kZCAhZGVmYXVsdDtcblxuJHRhYmxlLWNhcHRpb24tY29sb3I6ICAgICAgICAgJHRleHQtbXV0ZWQgIWRlZmF1bHQ7XG5cbiR0YWJsZS1iZy1sZXZlbDogICAgICAgICAgICAgIC05ICFkZWZhdWx0O1xuJHRhYmxlLWJvcmRlci1sZXZlbDogICAgICAgICAgLTYgIWRlZmF1bHQ7XG5cblxuLy8gQnV0dG9ucyArIEZvcm1zXG4vL1xuLy8gU2hhcmVkIHZhcmlhYmxlcyB0aGF0IGFyZSByZWFzc2lnbmVkIHRvIGAkaW5wdXQtYCBhbmQgYCRidG4tYCBzcGVjaWZpYyB2YXJpYWJsZXMuXG5cbiRpbnB1dC1idG4tcGFkZGluZy15OiAgICAgICAgIC4zNzVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLXBhZGRpbmcteDogICAgICAgICAuNzVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWZvbnQtZmFtaWx5OiAgICAgICBudWxsICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1mb250LXNpemU6ICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1saW5lLWhlaWdodDogICAgICAgJGxpbmUtaGVpZ2h0LWJhc2UgIWRlZmF1bHQ7XG5cbiRpbnB1dC1idG4tZm9jdXMtd2lkdGg6ICAgICAgIC4ycmVtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1mb2N1cy1jb2xvcjogICAgICAgcmdiYSgkY29tcG9uZW50LWFjdGl2ZS1iZywgLjI1KSAhZGVmYXVsdDtcbiRpbnB1dC1idG4tZm9jdXMtYm94LXNoYWRvdzogIDAgMCAwICRpbnB1dC1idG4tZm9jdXMtd2lkdGggJGlucHV0LWJ0bi1mb2N1cy1jb2xvciAhZGVmYXVsdDtcblxuJGlucHV0LWJ0bi1wYWRkaW5nLXktc206ICAgICAgLjI1cmVtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1wYWRkaW5nLXgtc206ICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWZvbnQtc2l6ZS1zbTogICAgICAkZm9udC1zaXplLXNtICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1saW5lLWhlaWdodC1zbTogICAgJGxpbmUtaGVpZ2h0LXNtICFkZWZhdWx0O1xuXG4kaW5wdXQtYnRuLXBhZGRpbmcteS1sZzogICAgICAuNXJlbSAhZGVmYXVsdDtcbiRpbnB1dC1idG4tcGFkZGluZy14LWxnOiAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kaW5wdXQtYnRuLWZvbnQtc2l6ZS1sZzogICAgICAkZm9udC1zaXplLWxnICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1saW5lLWhlaWdodC1sZzogICAgJGxpbmUtaGVpZ2h0LWxnICFkZWZhdWx0O1xuXG4kaW5wdXQtYnRuLWJvcmRlci13aWR0aDogICAgICAkYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuXG5cbi8vIEJ1dHRvbnNcbi8vXG4vLyBGb3IgZWFjaCBvZiBCb290c3RyYXAncyBidXR0b25zLCBkZWZpbmUgdGV4dCwgYmFja2dyb3VuZCwgYW5kIGJvcmRlciBjb2xvci5cblxuJGJ0bi1wYWRkaW5nLXk6ICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXkgIWRlZmF1bHQ7XG4kYnRuLXBhZGRpbmcteDogICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteCAhZGVmYXVsdDtcbiRidG4tZm9udC1mYW1pbHk6ICAgICAgICAgICAgICRpbnB1dC1idG4tZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG4kYnRuLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtc2l6ZSAhZGVmYXVsdDtcbiRidG4tbGluZS1oZWlnaHQ6ICAgICAgICAgICAgICRpbnB1dC1idG4tbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kYnRuLXdoaXRlLXNwYWNlOiAgICAgICAgICAgICBudWxsICFkZWZhdWx0OyAvLyBTZXQgdG8gYG5vd3JhcGAgdG8gcHJldmVudCB0ZXh0IHdyYXBwaW5nXG5cbiRidG4tcGFkZGluZy15LXNtOiAgICAgICAgICAgICRpbnB1dC1idG4tcGFkZGluZy15LXNtICFkZWZhdWx0O1xuJGJ0bi1wYWRkaW5nLXgtc206ICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXgtc20gIWRlZmF1bHQ7XG4kYnRuLWZvbnQtc2l6ZS1zbTogICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtc2l6ZS1zbSAhZGVmYXVsdDtcbiRidG4tbGluZS1oZWlnaHQtc206ICAgICAgICAgICRpbnB1dC1idG4tbGluZS1oZWlnaHQtc20gIWRlZmF1bHQ7XG5cbiRidG4tcGFkZGluZy15LWxnOiAgICAgICAgICAgICRpbnB1dC1idG4tcGFkZGluZy15LWxnICFkZWZhdWx0O1xuJGJ0bi1wYWRkaW5nLXgtbGc6ICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXgtbGcgIWRlZmF1bHQ7XG4kYnRuLWZvbnQtc2l6ZS1sZzogICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtc2l6ZS1sZyAhZGVmYXVsdDtcbiRidG4tbGluZS1oZWlnaHQtbGc6ICAgICAgICAgICRpbnB1dC1idG4tbGluZS1oZWlnaHQtbGcgIWRlZmF1bHQ7XG5cbiRidG4tYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICRpbnB1dC1idG4tYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuXG4kYnRuLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAkZm9udC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuJGJ0bi1ib3gtc2hhZG93OiAgICAgICAgICAgICAgaW5zZXQgMCAxcHggMCByZ2JhKCR3aGl0ZSwgLjE1KSwgMCAxcHggMXB4IHJnYmEoJGJsYWNrLCAuMDc1KSAhZGVmYXVsdDtcbiRidG4tZm9jdXMtd2lkdGg6ICAgICAgICAgICAgICRpbnB1dC1idG4tZm9jdXMtd2lkdGggIWRlZmF1bHQ7XG4kYnRuLWZvY3VzLWJveC1zaGFkb3c6ICAgICAgICAkaW5wdXQtYnRuLWZvY3VzLWJveC1zaGFkb3cgIWRlZmF1bHQ7XG4kYnRuLWRpc2FibGVkLW9wYWNpdHk6ICAgICAgICAuNjUgIWRlZmF1bHQ7XG4kYnRuLWFjdGl2ZS1ib3gtc2hhZG93OiAgICAgICBpbnNldCAwIDNweCA1cHggcmdiYSgkYmxhY2ssIC4xMjUpICFkZWZhdWx0O1xuXG4kYnRuLWxpbmstZGlzYWJsZWQtY29sb3I6ICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG5cbiRidG4tYmxvY2stc3BhY2luZy15OiAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuXG4vLyBBbGxvd3MgZm9yIGN1c3RvbWl6aW5nIGJ1dHRvbiByYWRpdXMgaW5kZXBlbmRlbnRseSBmcm9tIGdsb2JhbCBib3JkZXIgcmFkaXVzXG4kYnRuLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcbiRidG4tYm9yZGVyLXJhZGl1cy1sZzogICAgICAgICRib3JkZXItcmFkaXVzLWxnICFkZWZhdWx0O1xuJGJ0bi1ib3JkZXItcmFkaXVzLXNtOiAgICAgICAgJGJvcmRlci1yYWRpdXMtc20gIWRlZmF1bHQ7XG5cbiRidG4tdHJhbnNpdGlvbjogICAgICAgICAgICAgIGNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgLjE1cyBlYXNlLWluLW91dCwgYm9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuXG4vLyBGb3Jtc1xuXG4kbGFiZWwtbWFyZ2luLWJvdHRvbTogICAgICAgICAgICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG5cbiRpbnB1dC1wYWRkaW5nLXk6ICAgICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteSAhZGVmYXVsdDtcbiRpbnB1dC1wYWRkaW5nLXg6ICAgICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteCAhZGVmYXVsdDtcbiRpbnB1dC1mb250LWZhbWlseTogICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtZmFtaWx5ICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1idG4tZm9udC1zaXplICFkZWZhdWx0O1xuJGlucHV0LWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgICAgICRmb250LXdlaWdodC1iYXNlICFkZWZhdWx0O1xuJGlucHV0LWxpbmUtaGVpZ2h0OiAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1idG4tbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG5cbiRpbnB1dC1wYWRkaW5nLXktc206ICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteS1zbSAhZGVmYXVsdDtcbiRpbnB1dC1wYWRkaW5nLXgtc206ICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLXBhZGRpbmcteC1zbSAhZGVmYXVsdDtcbiRpbnB1dC1mb250LXNpemUtc206ICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvbnQtc2l6ZS1zbSAhZGVmYXVsdDtcbiRpbnB1dC1saW5lLWhlaWdodC1zbTogICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWxpbmUtaGVpZ2h0LXNtICFkZWZhdWx0O1xuXG4kaW5wdXQtcGFkZGluZy15LWxnOiAgICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXktbGcgIWRlZmF1bHQ7XG4kaW5wdXQtcGFkZGluZy14LWxnOiAgICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1wYWRkaW5nLXgtbGcgIWRlZmF1bHQ7XG4kaW5wdXQtZm9udC1zaXplLWxnOiAgICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1mb250LXNpemUtbGcgIWRlZmF1bHQ7XG4kaW5wdXQtbGluZS1oZWlnaHQtbGc6ICAgICAgICAgICAgICAgICAgJGlucHV0LWJ0bi1saW5lLWhlaWdodC1sZyAhZGVmYXVsdDtcblxuJGlucHV0LWJnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRpbnB1dC1kaXNhYmxlZC1iZzogICAgICAgICAgICAgICAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG5cbiRpbnB1dC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICAgICAkZ3JheS03MDAgIWRlZmF1bHQ7XG4kaW5wdXQtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgJGdyYXktNDAwICFkZWZhdWx0O1xuJGlucHV0LWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgICAgICRpbnB1dC1idG4tYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGlucHV0LWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICAgICAgIGluc2V0IDAgMXB4IDFweCByZ2JhKCRibGFjaywgLjA3NSkgIWRlZmF1bHQ7XG5cbiRpbnB1dC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItcmFkaXVzLWxnOiAgICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cy1sZyAhZGVmYXVsdDtcbiRpbnB1dC1ib3JkZXItcmFkaXVzLXNtOiAgICAgICAgICAgICAgICAkYm9yZGVyLXJhZGl1cy1zbSAhZGVmYXVsdDtcblxuJGlucHV0LWZvY3VzLWJnOiAgICAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1iZyAhZGVmYXVsdDtcbiRpbnB1dC1mb2N1cy1ib3JkZXItY29sb3I6ICAgICAgICAgICAgICBsaWdodGVuKCRjb21wb25lbnQtYWN0aXZlLWJnLCAyNSUpICFkZWZhdWx0O1xuJGlucHV0LWZvY3VzLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICRpbnB1dC1jb2xvciAhZGVmYXVsdDtcbiRpbnB1dC1mb2N1cy13aWR0aDogICAgICAgICAgICAgICAgICAgICAkaW5wdXQtYnRuLWZvY3VzLXdpZHRoICFkZWZhdWx0O1xuJGlucHV0LWZvY3VzLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgICRpbnB1dC1idG4tZm9jdXMtYm94LXNoYWRvdyAhZGVmYXVsdDtcblxuJGlucHV0LXBsYWNlaG9sZGVyLWNvbG9yOiAgICAgICAgICAgICAgICRncmF5LTYwMCAhZGVmYXVsdDtcbiRpbnB1dC1wbGFpbnRleHQtY29sb3I6ICAgICAgICAgICAgICAgICAkYm9keS1jb2xvciAhZGVmYXVsdDtcblxuJGlucHV0LWhlaWdodC1ib3JkZXI6ICAgICAgICAgICAgICAgICAgICRpbnB1dC1ib3JkZXItd2lkdGggKiAyICFkZWZhdWx0O1xuXG4kaW5wdXQtaGVpZ2h0LWlubmVyOiAgICAgICAgICAgICAgICAgICAgYWRkKCRpbnB1dC1saW5lLWhlaWdodCAqIDFlbSwgJGlucHV0LXBhZGRpbmcteSAqIDIpICFkZWZhdWx0O1xuJGlucHV0LWhlaWdodC1pbm5lci1oYWxmOiAgICAgICAgICAgICAgIGFkZCgkaW5wdXQtbGluZS1oZWlnaHQgKiAuNWVtLCAkaW5wdXQtcGFkZGluZy15KSAhZGVmYXVsdDtcbiRpbnB1dC1oZWlnaHQtaW5uZXItcXVhcnRlcjogICAgICAgICAgICBhZGQoJGlucHV0LWxpbmUtaGVpZ2h0ICogLjI1ZW0sICRpbnB1dC1wYWRkaW5nLXkgLyAyKSAhZGVmYXVsdDtcblxuJGlucHV0LWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgICAgIGFkZCgkaW5wdXQtbGluZS1oZWlnaHQgKiAxZW0sIGFkZCgkaW5wdXQtcGFkZGluZy15ICogMiwgJGlucHV0LWhlaWdodC1ib3JkZXIsIGZhbHNlKSkgIWRlZmF1bHQ7XG4kaW5wdXQtaGVpZ2h0LXNtOiAgICAgICAgICAgICAgICAgICAgICAgYWRkKCRpbnB1dC1saW5lLWhlaWdodC1zbSAqIDFlbSwgYWRkKCRpbnB1dC1wYWRkaW5nLXktc20gKiAyLCAkaW5wdXQtaGVpZ2h0LWJvcmRlciwgZmFsc2UpKSAhZGVmYXVsdDtcbiRpbnB1dC1oZWlnaHQtbGc6ICAgICAgICAgICAgICAgICAgICAgICBhZGQoJGlucHV0LWxpbmUtaGVpZ2h0LWxnICogMWVtLCBhZGQoJGlucHV0LXBhZGRpbmcteS1sZyAqIDIsICRpbnB1dC1oZWlnaHQtYm9yZGVyLCBmYWxzZSkpICFkZWZhdWx0O1xuXG4kaW5wdXQtdHJhbnNpdGlvbjogICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yIC4xNXMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgLjE1cyBlYXNlLWluLW91dCAhZGVmYXVsdDtcblxuJGZvcm0tdGV4dC1tYXJnaW4tdG9wOiAgICAgICAgICAgICAgICAgIC4yNXJlbSAhZGVmYXVsdDtcblxuJGZvcm0tY2hlY2staW5wdXQtZ3V0dGVyOiAgICAgICAgICAgICAgIDEuMjVyZW0gIWRlZmF1bHQ7XG4kZm9ybS1jaGVjay1pbnB1dC1tYXJnaW4teTogICAgICAgICAgICAgLjNyZW0gIWRlZmF1bHQ7XG4kZm9ybS1jaGVjay1pbnB1dC1tYXJnaW4teDogICAgICAgICAgICAgLjI1cmVtICFkZWZhdWx0O1xuXG4kZm9ybS1jaGVjay1pbmxpbmUtbWFyZ2luLXg6ICAgICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xuJGZvcm0tY2hlY2staW5saW5lLWlucHV0LW1hcmdpbi14OiAgICAgIC4zMTI1cmVtICFkZWZhdWx0O1xuXG4kZm9ybS1ncmlkLWd1dHRlci13aWR0aDogICAgICAgICAgICAgICAgMTBweCAhZGVmYXVsdDtcbiRmb3JtLWdyb3VwLW1hcmdpbi1ib3R0b206ICAgICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuXG4kaW5wdXQtZ3JvdXAtYWRkb24tY29sb3I6ICAgICAgICAgICAgICAgJGlucHV0LWNvbG9yICFkZWZhdWx0O1xuJGlucHV0LWdyb3VwLWFkZG9uLWJnOiAgICAgICAgICAgICAgICAgICRncmF5LTIwMCAhZGVmYXVsdDtcbiRpbnB1dC1ncm91cC1hZGRvbi1ib3JkZXItY29sb3I6ICAgICAgICAkaW5wdXQtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuXG4kY3VzdG9tLWZvcm1zLXRyYW5zaXRpb246ICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvciAuMTVzIGVhc2UtaW4tb3V0LCBib3JkZXItY29sb3IgLjE1cyBlYXNlLWluLW91dCwgYm94LXNoYWRvdyAuMTVzIGVhc2UtaW4tb3V0ICFkZWZhdWx0O1xuXG4kY3VzdG9tLWNvbnRyb2wtZ3V0dGVyOiAgICAgICAgICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kY3VzdG9tLWNvbnRyb2wtc3BhY2VyLXg6ICAgICAgICAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiRjdXN0b20tY29udHJvbC1jdXJzb3I6ICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuXG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLXNpemU6ICAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYmc6ICAgICAgICAgICAkaW5wdXQtYmcgIWRlZmF1bHQ7XG5cbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYmctc2l6ZTogICAgICA1MCUgNTAlICFkZWZhdWx0O1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1ib3gtc2hhZG93OiAgICRpbnB1dC1ib3gtc2hhZG93ICFkZWZhdWx0O1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1ib3JkZXItY29sb3I6ICRncmF5LTUwMCAhZGVmYXVsdDtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYm9yZGVyLXdpZHRoOiAkaW5wdXQtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuXG4kY3VzdG9tLWNvbnRyb2wtbGFiZWwtY29sb3I6ICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1kaXNhYmxlZC1iZzogICAgICAgICAgJGlucHV0LWRpc2FibGVkLWJnICFkZWZhdWx0O1xuJGN1c3RvbS1jb250cm9sLWxhYmVsLWRpc2FibGVkLWNvbG9yOiAgICAgICAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xuXG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtY29sb3I6ICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1jb2xvciAhZGVmYXVsdDtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1iZzogICAgICAgICAgICRjb21wb25lbnQtYWN0aXZlLWJnICFkZWZhdWx0O1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1jaGVja2VkLWRpc2FibGVkLWJnOiAgcmdiYSh0aGVtZS1jb2xvcihcInByaW1hcnlcIiksIC41KSAhZGVmYXVsdDtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1ib3gtc2hhZG93OiAgIG51bGwgIWRlZmF1bHQ7XG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtYm9yZGVyLWNvbG9yOiAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtYmcgIWRlZmF1bHQ7XG5cbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItZm9jdXMtYm94LXNoYWRvdzogICAgICRpbnB1dC1mb2N1cy1ib3gtc2hhZG93ICFkZWZhdWx0O1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1mb2N1cy1ib3JkZXItY29sb3I6ICAgJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcblxuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1hY3RpdmUtY29sb3I6ICAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG4kY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWFjdGl2ZS1iZzogICAgICAgICAgICBsaWdodGVuKCRjb21wb25lbnQtYWN0aXZlLWJnLCAzNSUpICFkZWZhdWx0O1xuJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1hY3RpdmUtYm94LXNoYWRvdzogICAgbnVsbCAhZGVmYXVsdDtcbiRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYWN0aXZlLWJvcmRlci1jb2xvcjogICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItYWN0aXZlLWJnICFkZWZhdWx0O1xuXG4kY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1ib3JkZXItcmFkaXVzOiAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcbiRjdXN0b20tY2hlY2tib3gtaW5kaWNhdG9yLWljb24tY2hlY2tlZDogICAgICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzgnIGhlaWdodD0nOCcgdmlld0JveD0nMCAwIDggOCc+PHBhdGggZmlsbD0nI3skY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWNoZWNrZWQtY29sb3J9JyBkPSdNNi41NjQuNzVsLTMuNTkgMy42MTItMS41MzgtMS41NUwwIDQuMjZsMi45NzQgMi45OUw4IDIuMTkzeicvPjwvc3ZnPlwiKSAhZGVmYXVsdDtcblxuJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaW5kZXRlcm1pbmF0ZS1iZzogICAgICAgICAgICRjb21wb25lbnQtYWN0aXZlLWJnICFkZWZhdWx0O1xuJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaW5kZXRlcm1pbmF0ZS1jb2xvcjogICAgICAgICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1jb2xvciAhZGVmYXVsdDtcbiRjdXN0b20tY2hlY2tib3gtaW5kaWNhdG9yLWljb24taW5kZXRlcm1pbmF0ZTogICAgICAgICB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSc0JyBoZWlnaHQ9JzQnIHZpZXdCb3g9JzAgMCA0IDQnPjxwYXRoIHN0cm9rZT0nI3skY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1pbmRldGVybWluYXRlLWNvbG9yfScgZD0nTTAgMmg0Jy8+PC9zdmc+XCIpICFkZWZhdWx0O1xuJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaW5kZXRlcm1pbmF0ZS1ib3gtc2hhZG93OiAgIG51bGwgIWRlZmF1bHQ7XG4kY3VzdG9tLWNoZWNrYm94LWluZGljYXRvci1pbmRldGVybWluYXRlLWJvcmRlci1jb2xvcjogJGN1c3RvbS1jaGVja2JveC1pbmRpY2F0b3ItaW5kZXRlcm1pbmF0ZS1iZyAhZGVmYXVsdDtcblxuJGN1c3RvbS1yYWRpby1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1czogICAgICAgICAgNTAlICFkZWZhdWx0O1xuJGN1c3RvbS1yYWRpby1pbmRpY2F0b3ItaWNvbi1jaGVja2VkOiAgICAgICAgICAgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTInIGhlaWdodD0nMTInIHZpZXdCb3g9Jy00IC00IDggOCc+PGNpcmNsZSByPSczJyBmaWxsPScjeyRjdXN0b20tY29udHJvbC1pbmRpY2F0b3ItY2hlY2tlZC1jb2xvcn0nLz48L3N2Zz5cIikgIWRlZmF1bHQ7XG5cbiRjdXN0b20tc3dpdGNoLXdpZHRoOiAgICAgICAgICAgICAgICAgICAgICAgICAgICRjdXN0b20tY29udHJvbC1pbmRpY2F0b3Itc2l6ZSAqIDEuNzUgIWRlZmF1bHQ7XG4kY3VzdG9tLXN3aXRjaC1pbmRpY2F0b3ItYm9yZGVyLXJhZGl1czogICAgICAgICAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLXNpemUgLyAyICFkZWZhdWx0O1xuJGN1c3RvbS1zd2l0Y2gtaW5kaWNhdG9yLXNpemU6ICAgICAgICAgICAgICAgICAgc3VidHJhY3QoJGN1c3RvbS1jb250cm9sLWluZGljYXRvci1zaXplLCAkY3VzdG9tLWNvbnRyb2wtaW5kaWNhdG9yLWJvcmRlci13aWR0aCAqIDQpICFkZWZhdWx0O1xuXG4kY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXk6ICAgICAgICAgICAkaW5wdXQtcGFkZGluZy15ICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtcGFkZGluZy14OiAgICAgICAgICAgJGlucHV0LXBhZGRpbmcteCAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LWZvbnQtZmFtaWx5OiAgICAgICAgICRpbnB1dC1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LWZvbnQtc2l6ZTogICAgICAgICAgICRpbnB1dC1mb250LXNpemUgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1oZWlnaHQ6ICAgICAgICAgICAgICAkaW5wdXQtaGVpZ2h0ICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLXBhZGRpbmc6ICAgMXJlbSAhZGVmYXVsdDsgLy8gRXh0cmEgcGFkZGluZyB0byBhY2NvdW50IGZvciB0aGUgcHJlc2VuY2Ugb2YgdGhlIGJhY2tncm91bmQtaW1hZ2UgYmFzZWQgaW5kaWNhdG9yXG4kY3VzdG9tLXNlbGVjdC1mb250LXdlaWdodDogICAgICAgICAkaW5wdXQtZm9udC13ZWlnaHQgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1saW5lLWhlaWdodDogICAgICAgICAkaW5wdXQtbGluZS1oZWlnaHQgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1jb2xvcjogICAgICAgICAgICAgICAkaW5wdXQtY29sb3IgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1kaXNhYmxlZC1jb2xvcjogICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1iZzogICAgICAgICAgICAgICAgICAkaW5wdXQtYmcgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1kaXNhYmxlZC1iZzogICAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1iZy1zaXplOiAgICAgICAgICAgICA4cHggMTBweCAhZGVmYXVsdDsgLy8gSW4gcGl4ZWxzIGJlY2F1c2UgaW1hZ2UgZGltZW5zaW9uc1xuJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yLWNvbG9yOiAgICAgJGdyYXktODAwICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtaW5kaWNhdG9yOiAgICAgICAgICAgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nNCcgaGVpZ2h0PSc1JyB2aWV3Qm94PScwIDAgNCA1Jz48cGF0aCBmaWxsPScjeyRjdXN0b20tc2VsZWN0LWluZGljYXRvci1jb2xvcn0nIGQ9J00yIDBMMCAyaDR6bTAgNUwwIDNoNHonLz48L3N2Zz5cIikgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1iYWNrZ3JvdW5kOiAgICAgICAgICBlc2NhcGUtc3ZnKCRjdXN0b20tc2VsZWN0LWluZGljYXRvcikgbm8tcmVwZWF0IHJpZ2h0ICRjdXN0b20tc2VsZWN0LXBhZGRpbmcteCBjZW50ZXIgLyAkY3VzdG9tLXNlbGVjdC1iZy1zaXplICFkZWZhdWx0OyAvLyBVc2VkIHNvIHdlIGNhbiBoYXZlIG11bHRpcGxlIGJhY2tncm91bmQgZWxlbWVudHMgKGUuZy4sIGFycm93IGFuZCBmZWVkYmFjayBpY29uKVxuXG4kY3VzdG9tLXNlbGVjdC1mZWVkYmFjay1pY29uLXBhZGRpbmctcmlnaHQ6IGFkZCgxZW0gKiAuNzUsICgyICogJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15ICogLjc1KSArICRjdXN0b20tc2VsZWN0LXBhZGRpbmcteCArICRjdXN0b20tc2VsZWN0LWluZGljYXRvci1wYWRkaW5nKSAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LWZlZWRiYWNrLWljb24tcG9zaXRpb246ICAgICAgY2VudGVyIHJpZ2h0ICgkY3VzdG9tLXNlbGVjdC1wYWRkaW5nLXggKyAkY3VzdG9tLXNlbGVjdC1pbmRpY2F0b3ItcGFkZGluZykgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1mZWVkYmFjay1pY29uLXNpemU6ICAgICAgICAgICRpbnB1dC1oZWlnaHQtaW5uZXItaGFsZiAkaW5wdXQtaGVpZ2h0LWlubmVyLWhhbGYgIWRlZmF1bHQ7XG5cbiRjdXN0b20tc2VsZWN0LWJvcmRlci13aWR0aDogICAgICAgICRpbnB1dC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1ib3JkZXItY29sb3I6ICAgICAgICAkaW5wdXQtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtYm9yZGVyLXJhZGl1czogICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1ib3gtc2hhZG93OiAgICAgICAgICBpbnNldCAwIDFweCAycHggcmdiYSgkYmxhY2ssIC4wNzUpICFkZWZhdWx0O1xuXG4kY3VzdG9tLXNlbGVjdC1mb2N1cy1ib3JkZXItY29sb3I6ICAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtZm9jdXMtd2lkdGg6ICAgICAgICAgJGlucHV0LWZvY3VzLXdpZHRoICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtZm9jdXMtYm94LXNoYWRvdzogICAgMCAwIDAgJGN1c3RvbS1zZWxlY3QtZm9jdXMtd2lkdGggJGlucHV0LWJ0bi1mb2N1cy1jb2xvciAhZGVmYXVsdDtcblxuJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15LXNtOiAgICAgICAgJGlucHV0LXBhZGRpbmcteS1zbSAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LXBhZGRpbmcteC1zbTogICAgICAgICRpbnB1dC1wYWRkaW5nLXgtc20gIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1mb250LXNpemUtc206ICAgICAgICAkaW5wdXQtZm9udC1zaXplLXNtICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtaGVpZ2h0LXNtOiAgICAgICAgICAgJGlucHV0LWhlaWdodC1zbSAhZGVmYXVsdDtcblxuJGN1c3RvbS1zZWxlY3QtcGFkZGluZy15LWxnOiAgICAgICAgJGlucHV0LXBhZGRpbmcteS1sZyAhZGVmYXVsdDtcbiRjdXN0b20tc2VsZWN0LXBhZGRpbmcteC1sZzogICAgICAgICRpbnB1dC1wYWRkaW5nLXgtbGcgIWRlZmF1bHQ7XG4kY3VzdG9tLXNlbGVjdC1mb250LXNpemUtbGc6ICAgICAgICAkaW5wdXQtZm9udC1zaXplLWxnICFkZWZhdWx0O1xuJGN1c3RvbS1zZWxlY3QtaGVpZ2h0LWxnOiAgICAgICAgICAgJGlucHV0LWhlaWdodC1sZyAhZGVmYXVsdDtcblxuJGN1c3RvbS1yYW5nZS10cmFjay13aWR0aDogICAgICAgICAgMTAwJSAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdHJhY2staGVpZ2h0OiAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS10cmFjay1jdXJzb3I6ICAgICAgICAgcG9pbnRlciAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdHJhY2stYmc6ICAgICAgICAgICAgICRncmF5LTMwMCAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdHJhY2stYm9yZGVyLXJhZGl1czogIDFyZW0gIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXRyYWNrLWJveC1zaGFkb3c6ICAgICBpbnNldCAwIC4yNXJlbSAuMjVyZW0gcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcblxuJGN1c3RvbS1yYW5nZS10aHVtYi13aWR0aDogICAgICAgICAgICAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdGh1bWItaGVpZ2h0OiAgICAgICAgICAgICAgICAgICRjdXN0b20tcmFuZ2UtdGh1bWItd2lkdGggIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWJnOiAgICAgICAgICAgICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZyAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdGh1bWItYm9yZGVyOiAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuJGN1c3RvbS1yYW5nZS10aHVtYi1ib3gtc2hhZG93OiAgICAgICAgICAgICAgMCAuMXJlbSAuMjVyZW0gcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcbiRjdXN0b20tcmFuZ2UtdGh1bWItZm9jdXMtYm94LXNoYWRvdzogICAgICAgIDAgMCAwIDFweCAkYm9keS1iZywgJGlucHV0LWZvY3VzLWJveC1zaGFkb3cgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWZvY3VzLWJveC1zaGFkb3ctd2lkdGg6ICAkaW5wdXQtZm9jdXMtd2lkdGggIWRlZmF1bHQ7IC8vIEZvciBmb2N1cyBib3ggc2hhZG93IGlzc3VlIGluIElFL0VkZ2VcbiRjdXN0b20tcmFuZ2UtdGh1bWItYWN0aXZlLWJnOiAgICAgICAgICAgICAgIGxpZ2h0ZW4oJGNvbXBvbmVudC1hY3RpdmUtYmcsIDM1JSkgIWRlZmF1bHQ7XG4kY3VzdG9tLXJhbmdlLXRodW1iLWRpc2FibGVkLWJnOiAgICAgICAgICAgICAkZ3JheS01MDAgIWRlZmF1bHQ7XG5cbiRjdXN0b20tZmlsZS1oZWlnaHQ6ICAgICAgICAgICAgICAgICRpbnB1dC1oZWlnaHQgIWRlZmF1bHQ7XG4kY3VzdG9tLWZpbGUtaGVpZ2h0LWlubmVyOiAgICAgICAgICAkaW5wdXQtaGVpZ2h0LWlubmVyICFkZWZhdWx0O1xuJGN1c3RvbS1maWxlLWZvY3VzLWJvcmRlci1jb2xvcjogICAgJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1mb2N1cy1ib3gtc2hhZG93OiAgICAgICRpbnB1dC1mb2N1cy1ib3gtc2hhZG93ICFkZWZhdWx0O1xuJGN1c3RvbS1maWxlLWRpc2FibGVkLWJnOiAgICAgICAgICAgJGlucHV0LWRpc2FibGVkLWJnICFkZWZhdWx0O1xuXG4kY3VzdG9tLWZpbGUtcGFkZGluZy15OiAgICAgICAgICAgICAkaW5wdXQtcGFkZGluZy15ICFkZWZhdWx0O1xuJGN1c3RvbS1maWxlLXBhZGRpbmcteDogICAgICAgICAgICAgJGlucHV0LXBhZGRpbmcteCAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1saW5lLWhlaWdodDogICAgICAgICAgICRpbnB1dC1saW5lLWhlaWdodCAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1mb250LWZhbWlseTogICAgICAgICAgICRpbnB1dC1mb250LWZhbWlseSAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1mb250LXdlaWdodDogICAgICAgICAgICRpbnB1dC1mb250LXdlaWdodCAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1jb2xvcjogICAgICAgICAgICAgICAgICRpbnB1dC1jb2xvciAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1iZzogICAgICAgICAgICAgICAgICAgICRpbnB1dC1iZyAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1ib3JkZXItd2lkdGg6ICAgICAgICAgICRpbnB1dC1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kY3VzdG9tLWZpbGUtYm9yZGVyLWNvbG9yOiAgICAgICAgICAkaW5wdXQtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJGN1c3RvbS1maWxlLWJvcmRlci1yYWRpdXM6ICAgICAgICAgJGlucHV0LWJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kY3VzdG9tLWZpbGUtYm94LXNoYWRvdzogICAgICAgICAgICAkaW5wdXQtYm94LXNoYWRvdyAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1idXR0b24tY29sb3I6ICAgICAgICAgICRjdXN0b20tZmlsZS1jb2xvciAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS1idXR0b24tYmc6ICAgICAgICAgICAgICRpbnB1dC1ncm91cC1hZGRvbi1iZyAhZGVmYXVsdDtcbiRjdXN0b20tZmlsZS10ZXh0OiAoXG4gIGVuOiBcIkJyb3dzZVwiXG4pICFkZWZhdWx0O1xuXG5cbi8vIEZvcm0gdmFsaWRhdGlvblxuXG4kZm9ybS1mZWVkYmFjay1tYXJnaW4tdG9wOiAgICAgICAgICAkZm9ybS10ZXh0LW1hcmdpbi10b3AgIWRlZmF1bHQ7XG4kZm9ybS1mZWVkYmFjay1mb250LXNpemU6ICAgICAgICAgICAkc21hbGwtZm9udC1zaXplICFkZWZhdWx0O1xuJGZvcm0tZmVlZGJhY2stdmFsaWQtY29sb3I6ICAgICAgICAgdGhlbWUtY29sb3IoXCJzdWNjZXNzXCIpICFkZWZhdWx0O1xuJGZvcm0tZmVlZGJhY2staW52YWxpZC1jb2xvcjogICAgICAgdGhlbWUtY29sb3IoXCJkYW5nZXJcIikgIWRlZmF1bHQ7XG5cbiRmb3JtLWZlZWRiYWNrLWljb24tdmFsaWQtY29sb3I6ICAgICRmb3JtLWZlZWRiYWNrLXZhbGlkLWNvbG9yICFkZWZhdWx0O1xuJGZvcm0tZmVlZGJhY2staWNvbi12YWxpZDogICAgICAgICAgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nOCcgaGVpZ2h0PSc4JyB2aWV3Qm94PScwIDAgOCA4Jz48cGF0aCBmaWxsPScjeyRmb3JtLWZlZWRiYWNrLWljb24tdmFsaWQtY29sb3J9JyBkPSdNMi4zIDYuNzNMLjYgNC41M2MtLjQtMS4wNC40Ni0xLjQgMS4xLS44bDEuMSAxLjQgMy40LTMuOGMuNi0uNjMgMS42LS4yNyAxLjIuN2wtNCA0LjZjLS40My41LS44LjQtMS4xLjF6Jy8+PC9zdmc+XCIpICFkZWZhdWx0O1xuJGZvcm0tZmVlZGJhY2staWNvbi1pbnZhbGlkLWNvbG9yOiAgJGZvcm0tZmVlZGJhY2staW52YWxpZC1jb2xvciAhZGVmYXVsdDtcbiRmb3JtLWZlZWRiYWNrLWljb24taW52YWxpZDogICAgICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzEyJyBoZWlnaHQ9JzEyJyBmaWxsPSdub25lJyBzdHJva2U9JyN7JGZvcm0tZmVlZGJhY2staWNvbi1pbnZhbGlkLWNvbG9yfScgdmlld0JveD0nMCAwIDEyIDEyJz48Y2lyY2xlIGN4PSc2JyBjeT0nNicgcj0nNC41Jy8+PHBhdGggc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgZD0nTTUuOCAzLjZoLjRMNiA2LjV6Jy8+PGNpcmNsZSBjeD0nNicgY3k9JzguMicgcj0nLjYnIGZpbGw9JyN7JGZvcm0tZmVlZGJhY2staWNvbi1pbnZhbGlkLWNvbG9yfScgc3Ryb2tlPSdub25lJy8+PC9zdmc+XCIpICFkZWZhdWx0O1xuXG4kZm9ybS12YWxpZGF0aW9uLXN0YXRlczogKCkgIWRlZmF1bHQ7XG4kZm9ybS12YWxpZGF0aW9uLXN0YXRlczogbWFwLW1lcmdlKFxuICAoXG4gICAgXCJ2YWxpZFwiOiAoXG4gICAgICBcImNvbG9yXCI6ICRmb3JtLWZlZWRiYWNrLXZhbGlkLWNvbG9yLFxuICAgICAgXCJpY29uXCI6ICRmb3JtLWZlZWRiYWNrLWljb24tdmFsaWRcbiAgICApLFxuICAgIFwiaW52YWxpZFwiOiAoXG4gICAgICBcImNvbG9yXCI6ICRmb3JtLWZlZWRiYWNrLWludmFsaWQtY29sb3IsXG4gICAgICBcImljb25cIjogJGZvcm0tZmVlZGJhY2staWNvbi1pbnZhbGlkXG4gICAgKSxcbiAgKSxcbiAgJGZvcm0tdmFsaWRhdGlvbi1zdGF0ZXNcbik7XG5cbi8vIFotaW5kZXggbWFzdGVyIGxpc3Rcbi8vXG4vLyBXYXJuaW5nOiBBdm9pZCBjdXN0b21pemluZyB0aGVzZSB2YWx1ZXMuIFRoZXkncmUgdXNlZCBmb3IgYSBiaXJkJ3MgZXllIHZpZXdcbi8vIG9mIGNvbXBvbmVudHMgZGVwZW5kZW50IG9uIHRoZSB6LWF4aXMgYW5kIGFyZSBkZXNpZ25lZCB0byBhbGwgd29yayB0b2dldGhlci5cblxuJHppbmRleC1kcm9wZG93bjogICAgICAgICAgICAgICAgICAgMTAwMCAhZGVmYXVsdDtcbiR6aW5kZXgtc3RpY2t5OiAgICAgICAgICAgICAgICAgICAgIDEwMjAgIWRlZmF1bHQ7XG4kemluZGV4LWZpeGVkOiAgICAgICAgICAgICAgICAgICAgICAxMDMwICFkZWZhdWx0O1xuJHppbmRleC1tb2RhbC1iYWNrZHJvcDogICAgICAgICAgICAgMTA0MCAhZGVmYXVsdDtcbiR6aW5kZXgtbW9kYWw6ICAgICAgICAgICAgICAgICAgICAgIDEwNTAgIWRlZmF1bHQ7XG4kemluZGV4LXBvcG92ZXI6ICAgICAgICAgICAgICAgICAgICAxMDYwICFkZWZhdWx0O1xuJHppbmRleC10b29sdGlwOiAgICAgICAgICAgICAgICAgICAgMTA3MCAhZGVmYXVsdDtcblxuXG4vLyBOYXZzXG5cbiRuYXYtbGluay1wYWRkaW5nLXk6ICAgICAgICAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuJG5hdi1saW5rLXBhZGRpbmcteDogICAgICAgICAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiRuYXYtbGluay1kaXNhYmxlZC1jb2xvcjogICAgICAgICAgICRncmF5LTYwMCAhZGVmYXVsdDtcblxuJG5hdi10YWJzLWJvcmRlci1jb2xvcjogICAgICAgICAgICAgJGdyYXktMzAwICFkZWZhdWx0O1xuJG5hdi10YWJzLWJvcmRlci13aWR0aDogICAgICAgICAgICAgJGJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRuYXYtdGFicy1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgICRib3JkZXItcmFkaXVzICFkZWZhdWx0O1xuJG5hdi10YWJzLWxpbmstaG92ZXItYm9yZGVyLWNvbG9yOiAgJGdyYXktMjAwICRncmF5LTIwMCAkbmF2LXRhYnMtYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJG5hdi10YWJzLWxpbmstYWN0aXZlLWNvbG9yOiAgICAgICAgJGdyYXktNzAwICFkZWZhdWx0O1xuJG5hdi10YWJzLWxpbmstYWN0aXZlLWJnOiAgICAgICAgICAgJGJvZHktYmcgIWRlZmF1bHQ7XG4kbmF2LXRhYnMtbGluay1hY3RpdmUtYm9yZGVyLWNvbG9yOiAkZ3JheS0zMDAgJGdyYXktMzAwICRuYXYtdGFicy1saW5rLWFjdGl2ZS1iZyAhZGVmYXVsdDtcblxuJG5hdi1waWxscy1ib3JkZXItcmFkaXVzOiAgICAgICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kbmF2LXBpbGxzLWxpbmstYWN0aXZlLWNvbG9yOiAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1jb2xvciAhZGVmYXVsdDtcbiRuYXYtcGlsbHMtbGluay1hY3RpdmUtYmc6ICAgICAgICAgICRjb21wb25lbnQtYWN0aXZlLWJnICFkZWZhdWx0O1xuXG4kbmF2LWRpdmlkZXItY29sb3I6ICAgICAgICAgICAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kbmF2LWRpdmlkZXItbWFyZ2luLXk6ICAgICAgICAgICAgICAkc3BhY2VyIC8gMiAhZGVmYXVsdDtcblxuXG4vLyBOYXZiYXJcblxuJG5hdmJhci1wYWRkaW5nLXk6ICAgICAgICAgICAgICAgICAgJHNwYWNlciAvIDIgIWRlZmF1bHQ7XG4kbmF2YmFyLXBhZGRpbmcteDogICAgICAgICAgICAgICAgICAkc3BhY2VyICFkZWZhdWx0O1xuXG4kbmF2YmFyLW5hdi1saW5rLXBhZGRpbmcteDogICAgICAgICAuNXJlbSAhZGVmYXVsdDtcblxuJG5hdmJhci1icmFuZC1mb250LXNpemU6ICAgICAgICAgICAgJGZvbnQtc2l6ZS1sZyAhZGVmYXVsdDtcbi8vIENvbXB1dGUgdGhlIG5hdmJhci1icmFuZCBwYWRkaW5nLXkgc28gdGhlIG5hdmJhci1icmFuZCB3aWxsIGhhdmUgdGhlIHNhbWUgaGVpZ2h0IGFzIG5hdmJhci10ZXh0IGFuZCBuYXYtbGlua1xuJG5hdi1saW5rLWhlaWdodDogICAgICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogJGxpbmUtaGVpZ2h0LWJhc2UgKyAkbmF2LWxpbmstcGFkZGluZy15ICogMiAhZGVmYXVsdDtcbiRuYXZiYXItYnJhbmQtaGVpZ2h0OiAgICAgICAgICAgICAgICRuYXZiYXItYnJhbmQtZm9udC1zaXplICogJGxpbmUtaGVpZ2h0LWJhc2UgIWRlZmF1bHQ7XG4kbmF2YmFyLWJyYW5kLXBhZGRpbmcteTogICAgICAgICAgICAoJG5hdi1saW5rLWhlaWdodCAtICRuYXZiYXItYnJhbmQtaGVpZ2h0KSAvIDIgIWRlZmF1bHQ7XG5cbiRuYXZiYXItdG9nZ2xlci1wYWRkaW5nLXk6ICAgICAgICAgIC4yNXJlbSAhZGVmYXVsdDtcbiRuYXZiYXItdG9nZ2xlci1wYWRkaW5nLXg6ICAgICAgICAgIC43NXJlbSAhZGVmYXVsdDtcbiRuYXZiYXItdG9nZ2xlci1mb250LXNpemU6ICAgICAgICAgICRmb250LXNpemUtbGcgIWRlZmF1bHQ7XG4kbmF2YmFyLXRvZ2dsZXItYm9yZGVyLXJhZGl1czogICAgICAkYnRuLWJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG5cbiRuYXZiYXItZGFyay1jb2xvcjogICAgICAgICAgICAgICAgIHJnYmEoJHdoaXRlLCAuNSkgIWRlZmF1bHQ7XG4kbmF2YmFyLWRhcmstaG92ZXItY29sb3I6ICAgICAgICAgICByZ2JhKCR3aGl0ZSwgLjc1KSAhZGVmYXVsdDtcbiRuYXZiYXItZGFyay1hY3RpdmUtY29sb3I6ICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRuYXZiYXItZGFyay1kaXNhYmxlZC1jb2xvcjogICAgICAgIHJnYmEoJHdoaXRlLCAuMjUpICFkZWZhdWx0O1xuJG5hdmJhci1kYXJrLXRvZ2dsZXItaWNvbi1iZzogICAgICAgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMzAnIGhlaWdodD0nMzAnIHZpZXdCb3g9JzAgMCAzMCAzMCc+PHBhdGggc3Ryb2tlPScjeyRuYXZiYXItZGFyay1jb2xvcn0nIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLW1pdGVybGltaXQ9JzEwJyBzdHJva2Utd2lkdGg9JzInIGQ9J000IDdoMjJNNCAxNWgyMk00IDIzaDIyJy8+PC9zdmc+XCIpICFkZWZhdWx0O1xuJG5hdmJhci1kYXJrLXRvZ2dsZXItYm9yZGVyLWNvbG9yOiAgcmdiYSgkd2hpdGUsIC4xKSAhZGVmYXVsdDtcblxuJG5hdmJhci1saWdodC1jb2xvcjogICAgICAgICAgICAgICAgcmdiYSgkYmxhY2ssIC41KSAhZGVmYXVsdDtcbiRuYXZiYXItbGlnaHQtaG92ZXItY29sb3I6ICAgICAgICAgIHJnYmEoJGJsYWNrLCAuNykgIWRlZmF1bHQ7XG4kbmF2YmFyLWxpZ2h0LWFjdGl2ZS1jb2xvcjogICAgICAgICByZ2JhKCRibGFjaywgLjkpICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC1kaXNhYmxlZC1jb2xvcjogICAgICAgcmdiYSgkYmxhY2ssIC4zKSAhZGVmYXVsdDtcbiRuYXZiYXItbGlnaHQtdG9nZ2xlci1pY29uLWJnOiAgICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzMwJyBoZWlnaHQ9JzMwJyB2aWV3Qm94PScwIDAgMzAgMzAnPjxwYXRoIHN0cm9rZT0nI3skbmF2YmFyLWxpZ2h0LWNvbG9yfScgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbWl0ZXJsaW1pdD0nMTAnIHN0cm9rZS13aWR0aD0nMicgZD0nTTQgN2gyMk00IDE1aDIyTTQgMjNoMjInLz48L3N2Zz5cIikgIWRlZmF1bHQ7XG4kbmF2YmFyLWxpZ2h0LXRvZ2dsZXItYm9yZGVyLWNvbG9yOiByZ2JhKCRibGFjaywgLjEpICFkZWZhdWx0O1xuXG4kbmF2YmFyLWxpZ2h0LWJyYW5kLWNvbG9yOiAgICAgICAgICAgICAgICAkbmF2YmFyLWxpZ2h0LWFjdGl2ZS1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItbGlnaHQtYnJhbmQtaG92ZXItY29sb3I6ICAgICAgICAgICRuYXZiYXItbGlnaHQtYWN0aXZlLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1kYXJrLWJyYW5kLWNvbG9yOiAgICAgICAgICAgICAgICAgJG5hdmJhci1kYXJrLWFjdGl2ZS1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItZGFyay1icmFuZC1ob3Zlci1jb2xvcjogICAgICAgICAgICRuYXZiYXItZGFyay1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG5cblxuLy8gRHJvcGRvd25zXG4vL1xuLy8gRHJvcGRvd24gbWVudSBjb250YWluZXIgYW5kIGNvbnRlbnRzLlxuXG4kZHJvcGRvd24tbWluLXdpZHRoOiAgICAgICAgICAgICAgICAxMHJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1wYWRkaW5nLXg6ICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG4kZHJvcGRvd24tcGFkZGluZy15OiAgICAgICAgICAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1zcGFjZXI6ICAgICAgICAgICAgICAgICAgIC4xMjVyZW0gIWRlZmF1bHQ7XG4kZHJvcGRvd24tZm9udC1zaXplOiAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgIWRlZmF1bHQ7XG4kZHJvcGRvd24tY29sb3I6ICAgICAgICAgICAgICAgICAgICAkYm9keS1jb2xvciAhZGVmYXVsdDtcbiRkcm9wZG93bi1iZzogICAgICAgICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRkcm9wZG93bi1ib3JkZXItY29sb3I6ICAgICAgICAgICAgIHJnYmEoJGJsYWNrLCAuMTUpICFkZWZhdWx0O1xuJGRyb3Bkb3duLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kZHJvcGRvd24tYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAkYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJGRyb3Bkb3duLWlubmVyLWJvcmRlci1yYWRpdXM6ICAgICAgc3VidHJhY3QoJGRyb3Bkb3duLWJvcmRlci1yYWRpdXMsICRkcm9wZG93bi1ib3JkZXItd2lkdGgpICFkZWZhdWx0O1xuJGRyb3Bkb3duLWRpdmlkZXItYmc6ICAgICAgICAgICAgICAgJGdyYXktMjAwICFkZWZhdWx0O1xuJGRyb3Bkb3duLWRpdmlkZXItbWFyZ2luLXk6ICAgICAgICAgJG5hdi1kaXZpZGVyLW1hcmdpbi15ICFkZWZhdWx0O1xuJGRyb3Bkb3duLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgMCAuNXJlbSAxcmVtIHJnYmEoJGJsYWNrLCAuMTc1KSAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLWxpbmstY29sb3I6ICAgICAgICAgICAgICAgJGdyYXktOTAwICFkZWZhdWx0O1xuJGRyb3Bkb3duLWxpbmstaG92ZXItY29sb3I6ICAgICAgICAgZGFya2VuKCRncmF5LTkwMCwgNSUpICFkZWZhdWx0O1xuJGRyb3Bkb3duLWxpbmstaG92ZXItYmc6ICAgICAgICAgICAgJGdyYXktMTAwICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tbGluay1hY3RpdmUtY29sb3I6ICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1jb2xvciAhZGVmYXVsdDtcbiRkcm9wZG93bi1saW5rLWFjdGl2ZS1iZzogICAgICAgICAgICRjb21wb25lbnQtYWN0aXZlLWJnICFkZWZhdWx0O1xuXG4kZHJvcGRvd24tbGluay1kaXNhYmxlZC1jb2xvcjogICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG5cbiRkcm9wZG93bi1pdGVtLXBhZGRpbmcteTogICAgICAgICAgIC4yNXJlbSAhZGVmYXVsdDtcbiRkcm9wZG93bi1pdGVtLXBhZGRpbmcteDogICAgICAgICAgIDEuNXJlbSAhZGVmYXVsdDtcblxuJGRyb3Bkb3duLWhlYWRlci1jb2xvcjogICAgICAgICAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xuJGRyb3Bkb3duLWhlYWRlci1wYWRkaW5nOiAgICAgICAgICAgJGRyb3Bkb3duLXBhZGRpbmcteSAkZHJvcGRvd24taXRlbS1wYWRkaW5nLXggIWRlZmF1bHQ7XG5cblxuLy8gUGFnaW5hdGlvblxuXG4kcGFnaW5hdGlvbi1wYWRkaW5nLXk6ICAgICAgICAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLXBhZGRpbmcteDogICAgICAgICAgICAgIC43NXJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLXBhZGRpbmcteS1zbTogICAgICAgICAgIC4yNXJlbSAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLXBhZGRpbmcteC1zbTogICAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tcGFkZGluZy15LWxnOiAgICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tcGFkZGluZy14LWxnOiAgICAgICAgICAgMS41cmVtICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tbGluZS1oZWlnaHQ6ICAgICAgICAgICAgMS4yNSAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24tY29sb3I6ICAgICAgICAgICAgICAgICAgJGxpbmstY29sb3IgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1iZzogICAgICAgICAgICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1ib3JkZXItd2lkdGg6ICAgICAgICAgICAkYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tYm9yZGVyLWNvbG9yOiAgICAgICAgICAgJGdyYXktMzAwICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1mb2N1cy1ib3gtc2hhZG93OiAgICAgICAkaW5wdXQtYnRuLWZvY3VzLWJveC1zaGFkb3cgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1mb2N1cy1vdXRsaW5lOiAgICAgICAgICAwICFkZWZhdWx0O1xuXG4kcGFnaW5hdGlvbi1ob3Zlci1jb2xvcjogICAgICAgICAgICAkbGluay1ob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWhvdmVyLWJnOiAgICAgICAgICAgICAgICRncmF5LTIwMCAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWhvdmVyLWJvcmRlci1jb2xvcjogICAgICRncmF5LTMwMCAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24tYWN0aXZlLWNvbG9yOiAgICAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG4kcGFnaW5hdGlvbi1hY3RpdmUtYmc6ICAgICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZyAhZGVmYXVsdDtcbiRwYWdpbmF0aW9uLWFjdGl2ZS1ib3JkZXItY29sb3I6ICAgICRwYWdpbmF0aW9uLWFjdGl2ZS1iZyAhZGVmYXVsdDtcblxuJHBhZ2luYXRpb24tZGlzYWJsZWQtY29sb3I6ICAgICAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tZGlzYWJsZWQtYmc6ICAgICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuJHBhZ2luYXRpb24tZGlzYWJsZWQtYm9yZGVyLWNvbG9yOiAgJGdyYXktMzAwICFkZWZhdWx0O1xuXG5cbi8vIEp1bWJvdHJvblxuXG4kanVtYm90cm9uLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAycmVtICFkZWZhdWx0O1xuJGp1bWJvdHJvbi1jb2xvcjogICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRqdW1ib3Ryb24tYmc6ICAgICAgICAgICAgICAgICAgICAgICRncmF5LTIwMCAhZGVmYXVsdDtcblxuXG4vLyBDYXJkc1xuXG4kY2FyZC1zcGFjZXIteTogICAgICAgICAgICAgICAgICAgICAuNzVyZW0gIWRlZmF1bHQ7XG4kY2FyZC1zcGFjZXIteDogICAgICAgICAgICAgICAgICAgICAxLjI1cmVtICFkZWZhdWx0O1xuJGNhcmQtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICAgICAgJGJvcmRlci13aWR0aCAhZGVmYXVsdDtcbiRjYXJkLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgICRib3JkZXItcmFkaXVzICFkZWZhdWx0O1xuJGNhcmQtYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgICAgcmdiYSgkYmxhY2ssIC4xMjUpICFkZWZhdWx0O1xuJGNhcmQtaW5uZXItYm9yZGVyLXJhZGl1czogICAgICAgICAgc3VidHJhY3QoJGNhcmQtYm9yZGVyLXJhZGl1cywgJGNhcmQtYm9yZGVyLXdpZHRoKSAhZGVmYXVsdDtcbiRjYXJkLWNhcC1iZzogICAgICAgICAgICAgICAgICAgICAgIHJnYmEoJGJsYWNrLCAuMDMpICFkZWZhdWx0O1xuJGNhcmQtY2FwLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRjYXJkLWhlaWdodDogICAgICAgICAgICAgICAgICAgICAgIG51bGwgIWRlZmF1bHQ7XG4kY2FyZC1jb2xvcjogICAgICAgICAgICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJGNhcmQtYmc6ICAgICAgICAgICAgICAgICAgICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuXG4kY2FyZC1pbWctb3ZlcmxheS1wYWRkaW5nOiAgICAgICAgICAxLjI1cmVtICFkZWZhdWx0O1xuXG4kY2FyZC1ncm91cC1tYXJnaW46ICAgICAgICAgICAgICAgICAkZ3JpZC1ndXR0ZXItd2lkdGggLyAyICFkZWZhdWx0O1xuJGNhcmQtZGVjay1tYXJnaW46ICAgICAgICAgICAgICAgICAgJGNhcmQtZ3JvdXAtbWFyZ2luICFkZWZhdWx0O1xuXG4kY2FyZC1jb2x1bW5zLWNvdW50OiAgICAgICAgICAgICAgICAzICFkZWZhdWx0O1xuJGNhcmQtY29sdW1ucy1nYXA6ICAgICAgICAgICAgICAgICAgMS4yNXJlbSAhZGVmYXVsdDtcbiRjYXJkLWNvbHVtbnMtbWFyZ2luOiAgICAgICAgICAgICAgICRjYXJkLXNwYWNlci15ICFkZWZhdWx0O1xuXG5cbi8vIFRvb2x0aXBzXG5cbiR0b29sdGlwLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICRmb250LXNpemUtc20gIWRlZmF1bHQ7XG4kdG9vbHRpcC1tYXgtd2lkdGg6ICAgICAgICAgICAgICAgICAyMDBweCAhZGVmYXVsdDtcbiR0b29sdGlwLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiR0b29sdGlwLWJnOiAgICAgICAgICAgICAgICAgICAgICAgICRibGFjayAhZGVmYXVsdDtcbiR0b29sdGlwLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICRib3JkZXItcmFkaXVzICFkZWZhdWx0O1xuJHRvb2x0aXAtb3BhY2l0eTogICAgICAgICAgICAgICAgICAgLjkgIWRlZmF1bHQ7XG4kdG9vbHRpcC1wYWRkaW5nLXk6ICAgICAgICAgICAgICAgICAuMjVyZW0gIWRlZmF1bHQ7XG4kdG9vbHRpcC1wYWRkaW5nLXg6ICAgICAgICAgICAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiR0b29sdGlwLW1hcmdpbjogICAgICAgICAgICAgICAgICAgIDAgIWRlZmF1bHQ7XG5cbiR0b29sdGlwLWFycm93LXdpZHRoOiAgICAgICAgICAgICAgIC44cmVtICFkZWZhdWx0O1xuJHRvb2x0aXAtYXJyb3ctaGVpZ2h0OiAgICAgICAgICAgICAgLjRyZW0gIWRlZmF1bHQ7XG4kdG9vbHRpcC1hcnJvdy1jb2xvcjogICAgICAgICAgICAgICAkdG9vbHRpcC1iZyAhZGVmYXVsdDtcblxuLy8gRm9ybSB0b29sdGlwcyBtdXN0IGNvbWUgYWZ0ZXIgcmVndWxhciB0b29sdGlwc1xuJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1wYWRkaW5nLXk6ICAgICAkdG9vbHRpcC1wYWRkaW5nLXkgIWRlZmF1bHQ7XG4kZm9ybS1mZWVkYmFjay10b29sdGlwLXBhZGRpbmcteDogICAgICR0b29sdGlwLXBhZGRpbmcteCAhZGVmYXVsdDtcbiRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtZm9udC1zaXplOiAgICAgJHRvb2x0aXAtZm9udC1zaXplICFkZWZhdWx0O1xuJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1saW5lLWhlaWdodDogICAkbGluZS1oZWlnaHQtYmFzZSAhZGVmYXVsdDtcbiRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtb3BhY2l0eTogICAgICAgJHRvb2x0aXAtb3BhY2l0eSAhZGVmYXVsdDtcbiRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtYm9yZGVyLXJhZGl1czogJHRvb2x0aXAtYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcblxuXG4vLyBQb3BvdmVyc1xuXG4kcG9wb3Zlci1mb250LXNpemU6ICAgICAgICAgICAgICAgICAkZm9udC1zaXplLXNtICFkZWZhdWx0O1xuJHBvcG92ZXItYmc6ICAgICAgICAgICAgICAgICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuJHBvcG92ZXItbWF4LXdpZHRoOiAgICAgICAgICAgICAgICAgMjc2cHggIWRlZmF1bHQ7XG4kcG9wb3Zlci1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAkYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJHBvcG92ZXItYm9yZGVyLWNvbG9yOiAgICAgICAgICAgICAgcmdiYSgkYmxhY2ssIC4yKSAhZGVmYXVsdDtcbiRwb3BvdmVyLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICRib3JkZXItcmFkaXVzLWxnICFkZWZhdWx0O1xuJHBvcG92ZXItaW5uZXItYm9yZGVyLXJhZGl1czogICAgICAgc3VidHJhY3QoJHBvcG92ZXItYm9yZGVyLXJhZGl1cywgJHBvcG92ZXItYm9yZGVyLXdpZHRoKSAhZGVmYXVsdDtcbiRwb3BvdmVyLWJveC1zaGFkb3c6ICAgICAgICAgICAgICAgIDAgLjI1cmVtIC41cmVtIHJnYmEoJGJsYWNrLCAuMikgIWRlZmF1bHQ7XG5cbiRwb3BvdmVyLWhlYWRlci1iZzogICAgICAgICAgICAgICAgIGRhcmtlbigkcG9wb3Zlci1iZywgMyUpICFkZWZhdWx0O1xuJHBvcG92ZXItaGVhZGVyLWNvbG9yOiAgICAgICAgICAgICAgJGhlYWRpbmdzLWNvbG9yICFkZWZhdWx0O1xuJHBvcG92ZXItaGVhZGVyLXBhZGRpbmcteTogICAgICAgICAgLjVyZW0gIWRlZmF1bHQ7XG4kcG9wb3Zlci1oZWFkZXItcGFkZGluZy14OiAgICAgICAgICAuNzVyZW0gIWRlZmF1bHQ7XG5cbiRwb3BvdmVyLWJvZHktY29sb3I6ICAgICAgICAgICAgICAgICRib2R5LWNvbG9yICFkZWZhdWx0O1xuJHBvcG92ZXItYm9keS1wYWRkaW5nLXk6ICAgICAgICAgICAgJHBvcG92ZXItaGVhZGVyLXBhZGRpbmcteSAhZGVmYXVsdDtcbiRwb3BvdmVyLWJvZHktcGFkZGluZy14OiAgICAgICAgICAgICRwb3BvdmVyLWhlYWRlci1wYWRkaW5nLXggIWRlZmF1bHQ7XG5cbiRwb3BvdmVyLWFycm93LXdpZHRoOiAgICAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kcG9wb3Zlci1hcnJvdy1oZWlnaHQ6ICAgICAgICAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiRwb3BvdmVyLWFycm93LWNvbG9yOiAgICAgICAgICAgICAgICRwb3BvdmVyLWJnICFkZWZhdWx0O1xuXG4kcG9wb3Zlci1hcnJvdy1vdXRlci1jb2xvcjogICAgICAgICBmYWRlLWluKCRwb3BvdmVyLWJvcmRlci1jb2xvciwgLjA1KSAhZGVmYXVsdDtcblxuXG4vLyBUb2FzdHNcblxuJHRvYXN0LW1heC13aWR0aDogICAgICAgICAgICAgICAgICAgMzUwcHggIWRlZmF1bHQ7XG4kdG9hc3QtcGFkZGluZy14OiAgICAgICAgICAgICAgICAgICAuNzVyZW0gIWRlZmF1bHQ7XG4kdG9hc3QtcGFkZGluZy15OiAgICAgICAgICAgICAgICAgICAuMjVyZW0gIWRlZmF1bHQ7XG4kdG9hc3QtZm9udC1zaXplOiAgICAgICAgICAgICAgICAgICAuODc1cmVtICFkZWZhdWx0O1xuJHRvYXN0LWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiR0b2FzdC1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgICAgICAgIHJnYmEoJHdoaXRlLCAuODUpICFkZWZhdWx0O1xuJHRvYXN0LWJvcmRlci13aWR0aDogICAgICAgICAgICAgICAgMXB4ICFkZWZhdWx0O1xuJHRvYXN0LWJvcmRlci1jb2xvcjogICAgICAgICAgICAgICAgcmdiYSgwLCAwLCAwLCAuMSkgIWRlZmF1bHQ7XG4kdG9hc3QtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAgICAuMjVyZW0gIWRlZmF1bHQ7XG4kdG9hc3QtYm94LXNoYWRvdzogICAgICAgICAgICAgICAgICAwIC4yNXJlbSAuNzVyZW0gcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcblxuJHRvYXN0LWhlYWRlci1jb2xvcjogICAgICAgICAgICAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xuJHRvYXN0LWhlYWRlci1iYWNrZ3JvdW5kLWNvbG9yOiAgICAgcmdiYSgkd2hpdGUsIC44NSkgIWRlZmF1bHQ7XG4kdG9hc3QtaGVhZGVyLWJvcmRlci1jb2xvcjogICAgICAgICByZ2JhKDAsIDAsIDAsIC4wNSkgIWRlZmF1bHQ7XG5cblxuLy8gQmFkZ2VzXG5cbiRiYWRnZS1mb250LXNpemU6ICAgICAgICAgICAgICAgICAgIDc1JSAhZGVmYXVsdDtcbiRiYWRnZS1mb250LXdlaWdodDogICAgICAgICAgICAgICAgICRmb250LXdlaWdodC1ib2xkICFkZWZhdWx0O1xuJGJhZGdlLXBhZGRpbmcteTogICAgICAgICAgICAgICAgICAgLjI1ZW0gIWRlZmF1bHQ7XG4kYmFkZ2UtcGFkZGluZy14OiAgICAgICAgICAgICAgICAgICAuNGVtICFkZWZhdWx0O1xuJGJhZGdlLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG5cbiRiYWRnZS10cmFuc2l0aW9uOiAgICAgICAgICAgICAgICAgICRidG4tdHJhbnNpdGlvbiAhZGVmYXVsdDtcbiRiYWRnZS1mb2N1cy13aWR0aDogICAgICAgICAgICAgICAgICRpbnB1dC1idG4tZm9jdXMtd2lkdGggIWRlZmF1bHQ7XG5cbiRiYWRnZS1waWxsLXBhZGRpbmcteDogICAgICAgICAgICAgIC42ZW0gIWRlZmF1bHQ7XG4vLyBVc2UgYSBoaWdoZXIgdGhhbiBub3JtYWwgdmFsdWUgdG8gZW5zdXJlIGNvbXBsZXRlbHkgcm91bmRlZCBlZGdlcyB3aGVuXG4vLyBjdXN0b21pemluZyBwYWRkaW5nIG9yIGZvbnQtc2l6ZSBvbiBsYWJlbHMuXG4kYmFkZ2UtcGlsbC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAxMHJlbSAhZGVmYXVsdDtcblxuXG4vLyBNb2RhbHNcblxuLy8gUGFkZGluZyBhcHBsaWVkIHRvIHRoZSBtb2RhbCBib2R5XG4kbW9kYWwtaW5uZXItcGFkZGluZzogICAgICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuXG4vLyBNYXJnaW4gYmV0d2VlbiBlbGVtZW50cyBpbiBmb290ZXIsIG11c3QgYmUgbG93ZXIgdGhhbiBvciBlcXVhbCB0byAyICogJG1vZGFsLWlubmVyLXBhZGRpbmdcbiRtb2RhbC1mb290ZXItbWFyZ2luLWJldHdlZW46ICAgICAgIC41cmVtICFkZWZhdWx0O1xuXG4kbW9kYWwtZGlhbG9nLW1hcmdpbjogICAgICAgICAgICAgICAuNXJlbSAhZGVmYXVsdDtcbiRtb2RhbC1kaWFsb2ctbWFyZ2luLXktc20tdXA6ICAgICAgIDEuNzVyZW0gIWRlZmF1bHQ7XG5cbiRtb2RhbC10aXRsZS1saW5lLWhlaWdodDogICAgICAgICAgICRsaW5lLWhlaWdodC1iYXNlICFkZWZhdWx0O1xuXG4kbW9kYWwtY29udGVudC1jb2xvcjogICAgICAgICAgICAgICBudWxsICFkZWZhdWx0O1xuJG1vZGFsLWNvbnRlbnQtYmc6ICAgICAgICAgICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuJG1vZGFsLWNvbnRlbnQtYm9yZGVyLWNvbG9yOiAgICAgICAgcmdiYSgkYmxhY2ssIC4yKSAhZGVmYXVsdDtcbiRtb2RhbC1jb250ZW50LWJvcmRlci13aWR0aDogICAgICAgICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kbW9kYWwtY29udGVudC1ib3JkZXItcmFkaXVzOiAgICAgICAkYm9yZGVyLXJhZGl1cy1sZyAhZGVmYXVsdDtcbiRtb2RhbC1jb250ZW50LWlubmVyLWJvcmRlci1yYWRpdXM6IHN1YnRyYWN0KCRtb2RhbC1jb250ZW50LWJvcmRlci1yYWRpdXMsICRtb2RhbC1jb250ZW50LWJvcmRlci13aWR0aCkgIWRlZmF1bHQ7XG4kbW9kYWwtY29udGVudC1ib3gtc2hhZG93LXhzOiAgICAgICAwIC4yNXJlbSAuNXJlbSByZ2JhKCRibGFjaywgLjUpICFkZWZhdWx0O1xuJG1vZGFsLWNvbnRlbnQtYm94LXNoYWRvdy1zbS11cDogICAgMCAuNXJlbSAxcmVtIHJnYmEoJGJsYWNrLCAuNSkgIWRlZmF1bHQ7XG5cbiRtb2RhbC1iYWNrZHJvcC1iZzogICAgICAgICAgICAgICAgICRibGFjayAhZGVmYXVsdDtcbiRtb2RhbC1iYWNrZHJvcC1vcGFjaXR5OiAgICAgICAgICAgIC41ICFkZWZhdWx0O1xuJG1vZGFsLWhlYWRlci1ib3JkZXItY29sb3I6ICAgICAgICAgJGJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRtb2RhbC1mb290ZXItYm9yZGVyLWNvbG9yOiAgICAgICAgICRtb2RhbC1oZWFkZXItYm9yZGVyLWNvbG9yICFkZWZhdWx0O1xuJG1vZGFsLWhlYWRlci1ib3JkZXItd2lkdGg6ICAgICAgICAgJG1vZGFsLWNvbnRlbnQtYm9yZGVyLXdpZHRoICFkZWZhdWx0O1xuJG1vZGFsLWZvb3Rlci1ib3JkZXItd2lkdGg6ICAgICAgICAgJG1vZGFsLWhlYWRlci1ib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kbW9kYWwtaGVhZGVyLXBhZGRpbmcteTogICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuJG1vZGFsLWhlYWRlci1wYWRkaW5nLXg6ICAgICAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiRtb2RhbC1oZWFkZXItcGFkZGluZzogICAgICAgICAgICAgICRtb2RhbC1oZWFkZXItcGFkZGluZy15ICRtb2RhbC1oZWFkZXItcGFkZGluZy14ICFkZWZhdWx0OyAvLyBLZWVwIHRoaXMgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5XG5cbiRtb2RhbC14bDogICAgICAgICAgICAgICAgICAgICAgICAgIDExNDBweCAhZGVmYXVsdDtcbiRtb2RhbC1sZzogICAgICAgICAgICAgICAgICAgICAgICAgIDgwMHB4ICFkZWZhdWx0O1xuJG1vZGFsLW1kOiAgICAgICAgICAgICAgICAgICAgICAgICAgNTAwcHggIWRlZmF1bHQ7XG4kbW9kYWwtc206ICAgICAgICAgICAgICAgICAgICAgICAgICAzMDBweCAhZGVmYXVsdDtcblxuJG1vZGFsLWZhZGUtdHJhbnNmb3JtOiAgICAgICAgICAgICAgdHJhbnNsYXRlKDAsIC01MHB4KSAhZGVmYXVsdDtcbiRtb2RhbC1zaG93LXRyYW5zZm9ybTogICAgICAgICAgICAgIG5vbmUgIWRlZmF1bHQ7XG4kbW9kYWwtdHJhbnNpdGlvbjogICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gLjNzIGVhc2Utb3V0ICFkZWZhdWx0O1xuJG1vZGFsLXNjYWxlLXRyYW5zZm9ybTogICAgICAgICAgICAgc2NhbGUoMS4wMikgIWRlZmF1bHQ7XG5cblxuLy8gQWxlcnRzXG4vL1xuLy8gRGVmaW5lIGFsZXJ0IGNvbG9ycywgYm9yZGVyIHJhZGl1cywgYW5kIHBhZGRpbmcuXG5cbiRhbGVydC1wYWRkaW5nLXk6ICAgICAgICAgICAgICAgICAgIC43NXJlbSAhZGVmYXVsdDtcbiRhbGVydC1wYWRkaW5nLXg6ICAgICAgICAgICAgICAgICAgIDEuMjVyZW0gIWRlZmF1bHQ7XG4kYWxlcnQtbWFyZ2luLWJvdHRvbTogICAgICAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuJGFsZXJ0LWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAgICAgJGJvcmRlci1yYWRpdXMgIWRlZmF1bHQ7XG4kYWxlcnQtbGluay1mb250LXdlaWdodDogICAgICAgICAgICAkZm9udC13ZWlnaHQtYm9sZCAhZGVmYXVsdDtcbiRhbGVydC1ib3JkZXItd2lkdGg6ICAgICAgICAgICAgICAgICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG5cbiRhbGVydC1iZy1sZXZlbDogICAgICAgICAgICAgICAgICAgIC0xMCAhZGVmYXVsdDtcbiRhbGVydC1ib3JkZXItbGV2ZWw6ICAgICAgICAgICAgICAgIC05ICFkZWZhdWx0O1xuJGFsZXJ0LWNvbG9yLWxldmVsOiAgICAgICAgICAgICAgICAgNiAhZGVmYXVsdDtcblxuXG4vLyBQcm9ncmVzcyBiYXJzXG5cbiRwcm9ncmVzcy1oZWlnaHQ6ICAgICAgICAgICAgICAgICAgIDFyZW0gIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtZm9udC1zaXplOiAgICAgICAgICAgICAgICAkZm9udC1zaXplLWJhc2UgKiAuNzUgIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtYmc6ICAgICAgICAgICAgICAgICAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kcHJvZ3Jlc3MtYm9yZGVyLXJhZGl1czogICAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcbiRwcm9ncmVzcy1ib3gtc2hhZG93OiAgICAgICAgICAgICAgIGluc2V0IDAgLjFyZW0gLjFyZW0gcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1iYXItY29sb3I6ICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1iYXItYmc6ICAgICAgICAgICAgICAgICAgIHRoZW1lLWNvbG9yKFwicHJpbWFyeVwiKSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1iYXItYW5pbWF0aW9uLXRpbWluZzogICAgIDFzIGxpbmVhciBpbmZpbml0ZSAhZGVmYXVsdDtcbiRwcm9ncmVzcy1iYXItdHJhbnNpdGlvbjogICAgICAgICAgIHdpZHRoIC42cyBlYXNlICFkZWZhdWx0O1xuXG5cbi8vIExpc3QgZ3JvdXBcblxuJGxpc3QtZ3JvdXAtY29sb3I6ICAgICAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWJnOiAgICAgICAgICAgICAgICAgICAgICR3aGl0ZSAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWJvcmRlci1jb2xvcjogICAgICAgICAgIHJnYmEoJGJsYWNrLCAuMTI1KSAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWJvcmRlci13aWR0aDogICAgICAgICAgICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kbGlzdC1ncm91cC1ib3JkZXItcmFkaXVzOiAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcblxuJGxpc3QtZ3JvdXAtaXRlbS1wYWRkaW5nLXk6ICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xuJGxpc3QtZ3JvdXAtaXRlbS1wYWRkaW5nLXg6ICAgICAgICAgMS4yNXJlbSAhZGVmYXVsdDtcblxuJGxpc3QtZ3JvdXAtaG92ZXItYmc6ICAgICAgICAgICAgICAgJGdyYXktMTAwICFkZWZhdWx0O1xuJGxpc3QtZ3JvdXAtYWN0aXZlLWNvbG9yOiAgICAgICAgICAgJGNvbXBvbmVudC1hY3RpdmUtY29sb3IgIWRlZmF1bHQ7XG4kbGlzdC1ncm91cC1hY3RpdmUtYmc6ICAgICAgICAgICAgICAkY29tcG9uZW50LWFjdGl2ZS1iZyAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWFjdGl2ZS1ib3JkZXItY29sb3I6ICAgICRsaXN0LWdyb3VwLWFjdGl2ZS1iZyAhZGVmYXVsdDtcblxuJGxpc3QtZ3JvdXAtZGlzYWJsZWQtY29sb3I6ICAgICAgICAgJGdyYXktNjAwICFkZWZhdWx0O1xuJGxpc3QtZ3JvdXAtZGlzYWJsZWQtYmc6ICAgICAgICAgICAgJGxpc3QtZ3JvdXAtYmcgIWRlZmF1bHQ7XG5cbiRsaXN0LWdyb3VwLWFjdGlvbi1jb2xvcjogICAgICAgICAgICRncmF5LTcwMCAhZGVmYXVsdDtcbiRsaXN0LWdyb3VwLWFjdGlvbi1ob3Zlci1jb2xvcjogICAgICRsaXN0LWdyb3VwLWFjdGlvbi1jb2xvciAhZGVmYXVsdDtcblxuJGxpc3QtZ3JvdXAtYWN0aW9uLWFjdGl2ZS1jb2xvcjogICAgJGJvZHktY29sb3IgIWRlZmF1bHQ7XG4kbGlzdC1ncm91cC1hY3Rpb24tYWN0aXZlLWJnOiAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG5cblxuLy8gSW1hZ2UgdGh1bWJuYWlsc1xuXG4kdGh1bWJuYWlsLXBhZGRpbmc6ICAgICAgICAgICAgICAgICAuMjVyZW0gIWRlZmF1bHQ7XG4kdGh1bWJuYWlsLWJnOiAgICAgICAgICAgICAgICAgICAgICAkYm9keS1iZyAhZGVmYXVsdDtcbiR0aHVtYm5haWwtYm9yZGVyLXdpZHRoOiAgICAgICAgICAgICRib3JkZXItd2lkdGggIWRlZmF1bHQ7XG4kdGh1bWJuYWlsLWJvcmRlci1jb2xvcjogICAgICAgICAgICAkZ3JheS0zMDAgIWRlZmF1bHQ7XG4kdGh1bWJuYWlsLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICAkYm9yZGVyLXJhZGl1cyAhZGVmYXVsdDtcbiR0aHVtYm5haWwtYm94LXNoYWRvdzogICAgICAgICAgICAgIDAgMXB4IDJweCByZ2JhKCRibGFjaywgLjA3NSkgIWRlZmF1bHQ7XG5cblxuLy8gRmlndXJlc1xuXG4kZmlndXJlLWNhcHRpb24tZm9udC1zaXplOiAgICAgICAgICA5MCUgIWRlZmF1bHQ7XG4kZmlndXJlLWNhcHRpb24tY29sb3I6ICAgICAgICAgICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG5cblxuLy8gQnJlYWRjcnVtYnNcblxuJGJyZWFkY3J1bWItZm9udC1zaXplOiAgICAgICAgICAgICAgbnVsbCAhZGVmYXVsdDtcblxuJGJyZWFkY3J1bWItcGFkZGluZy15OiAgICAgICAgICAgICAgLjc1cmVtICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItcGFkZGluZy14OiAgICAgICAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiRicmVhZGNydW1iLWl0ZW0tcGFkZGluZzogICAgICAgICAgIC41cmVtICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYi1tYXJnaW4tYm90dG9tOiAgICAgICAgICAxcmVtICFkZWZhdWx0O1xuXG4kYnJlYWRjcnVtYi1iZzogICAgICAgICAgICAgICAgICAgICAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yOiAgICAgICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1hY3RpdmUtY29sb3I6ICAgICAgICAgICAkZ3JheS02MDAgIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1kaXZpZGVyOiAgICAgICAgICAgICAgICBxdW90ZShcIi9cIikgIWRlZmF1bHQ7XG5cbiRicmVhZGNydW1iLWJvcmRlci1yYWRpdXM6ICAgICAgICAgICRib3JkZXItcmFkaXVzICFkZWZhdWx0O1xuXG5cbi8vIENhcm91c2VsXG5cbiRjYXJvdXNlbC1jb250cm9sLWNvbG9yOiAgICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtY29udHJvbC13aWR0aDogICAgICAgICAgICAgMTUlICFkZWZhdWx0O1xuJGNhcm91c2VsLWNvbnRyb2wtb3BhY2l0eTogICAgICAgICAgIC41ICFkZWZhdWx0O1xuJGNhcm91c2VsLWNvbnRyb2wtaG92ZXItb3BhY2l0eTogICAgIC45ICFkZWZhdWx0O1xuJGNhcm91c2VsLWNvbnRyb2wtdHJhbnNpdGlvbjogICAgICAgIG9wYWNpdHkgLjE1cyBlYXNlICFkZWZhdWx0O1xuXG4kY2Fyb3VzZWwtaW5kaWNhdG9yLXdpZHRoOiAgICAgICAgICAgMzBweCAhZGVmYXVsdDtcbiRjYXJvdXNlbC1pbmRpY2F0b3ItaGVpZ2h0OiAgICAgICAgICAzcHggIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtaW5kaWNhdG9yLWhpdC1hcmVhLWhlaWdodDogMTBweCAhZGVmYXVsdDtcbiRjYXJvdXNlbC1pbmRpY2F0b3Itc3BhY2VyOiAgICAgICAgICAzcHggIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtaW5kaWNhdG9yLWFjdGl2ZS1iZzogICAgICAgJHdoaXRlICFkZWZhdWx0O1xuJGNhcm91c2VsLWluZGljYXRvci10cmFuc2l0aW9uOiAgICAgIG9wYWNpdHkgLjZzIGVhc2UgIWRlZmF1bHQ7XG5cbiRjYXJvdXNlbC1jYXB0aW9uLXdpZHRoOiAgICAgICAgICAgICA3MCUgIWRlZmF1bHQ7XG4kY2Fyb3VzZWwtY2FwdGlvbi1jb2xvcjogICAgICAgICAgICAgJHdoaXRlICFkZWZhdWx0O1xuXG4kY2Fyb3VzZWwtY29udHJvbC1pY29uLXdpZHRoOiAgICAgICAgMjBweCAhZGVmYXVsdDtcblxuJGNhcm91c2VsLWNvbnRyb2wtcHJldi1pY29uLWJnOiAgICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbD0nI3skY2Fyb3VzZWwtY29udHJvbC1jb2xvcn0nIHdpZHRoPSc4JyBoZWlnaHQ9JzgnIHZpZXdCb3g9JzAgMCA4IDgnPjxwYXRoIGQ9J001LjI1IDBsLTQgNCA0IDQgMS41LTEuNUw0LjI1IDRsMi41LTIuNUw1LjI1IDB6Jy8+PC9zdmc+XCIpICFkZWZhdWx0O1xuJGNhcm91c2VsLWNvbnRyb2wtbmV4dC1pY29uLWJnOiAgICAgIHVybChcImRhdGE6aW1hZ2Uvc3ZnK3htbCw8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgZmlsbD0nI3skY2Fyb3VzZWwtY29udHJvbC1jb2xvcn0nIHdpZHRoPSc4JyBoZWlnaHQ9JzgnIHZpZXdCb3g9JzAgMCA4IDgnPjxwYXRoIGQ9J00yLjc1IDBsLTEuNSAxLjVMMy43NSA0bC0yLjUgMi41TDIuNzUgOGw0LTQtNC00eicvPjwvc3ZnPlwiKSAhZGVmYXVsdDtcblxuJGNhcm91c2VsLXRyYW5zaXRpb24tZHVyYXRpb246ICAgICAgIC42cyAhZGVmYXVsdDtcbiRjYXJvdXNlbC10cmFuc2l0aW9uOiAgICAgICAgICAgICAgICB0cmFuc2Zvcm0gJGNhcm91c2VsLXRyYW5zaXRpb24tZHVyYXRpb24gZWFzZS1pbi1vdXQgIWRlZmF1bHQ7IC8vIERlZmluZSB0cmFuc2Zvcm0gdHJhbnNpdGlvbiBmaXJzdCBpZiB1c2luZyBtdWx0aXBsZSB0cmFuc2l0aW9ucyAoZS5nLiwgYHRyYW5zZm9ybSAycyBlYXNlLCBvcGFjaXR5IC41cyBlYXNlLW91dGApXG5cblxuLy8gU3Bpbm5lcnNcblxuJHNwaW5uZXItd2lkdGg6ICAgICAgICAgMnJlbSAhZGVmYXVsdDtcbiRzcGlubmVyLWhlaWdodDogICAgICAgICRzcGlubmVyLXdpZHRoICFkZWZhdWx0O1xuJHNwaW5uZXItYm9yZGVyLXdpZHRoOiAgLjI1ZW0gIWRlZmF1bHQ7XG5cbiRzcGlubmVyLXdpZHRoLXNtOiAgICAgICAgMXJlbSAhZGVmYXVsdDtcbiRzcGlubmVyLWhlaWdodC1zbTogICAgICAgJHNwaW5uZXItd2lkdGgtc20gIWRlZmF1bHQ7XG4kc3Bpbm5lci1ib3JkZXItd2lkdGgtc206IC4yZW0gIWRlZmF1bHQ7XG5cblxuLy8gQ2xvc2VcblxuJGNsb3NlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgJGZvbnQtc2l6ZS1iYXNlICogMS41ICFkZWZhdWx0O1xuJGNsb3NlLWZvbnQtd2VpZ2h0OiAgICAgICAgICAgICAgICAgJGZvbnQtd2VpZ2h0LWJvbGQgIWRlZmF1bHQ7XG4kY2xvc2UtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAkYmxhY2sgIWRlZmF1bHQ7XG4kY2xvc2UtdGV4dC1zaGFkb3c6ICAgICAgICAgICAgICAgICAwIDFweCAwICR3aGl0ZSAhZGVmYXVsdDtcblxuXG4vLyBDb2RlXG5cbiRjb2RlLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgIDg3LjUlICFkZWZhdWx0O1xuJGNvZGUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgJHBpbmsgIWRlZmF1bHQ7XG5cbiRrYmQtcGFkZGluZy15OiAgICAgICAgICAgICAgICAgICAgIC4ycmVtICFkZWZhdWx0O1xuJGtiZC1wYWRkaW5nLXg6ICAgICAgICAgICAgICAgICAgICAgLjRyZW0gIWRlZmF1bHQ7XG4ka2JkLWZvbnQtc2l6ZTogICAgICAgICAgICAgICAgICAgICAkY29kZS1mb250LXNpemUgIWRlZmF1bHQ7XG4ka2JkLWNvbG9yOiAgICAgICAgICAgICAgICAgICAgICAgICAkd2hpdGUgIWRlZmF1bHQ7XG4ka2JkLWJnOiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZ3JheS05MDAgIWRlZmF1bHQ7XG5cbiRwcmUtY29sb3I6ICAgICAgICAgICAgICAgICAgICAgICAgICRncmF5LTkwMCAhZGVmYXVsdDtcbiRwcmUtc2Nyb2xsYWJsZS1tYXgtaGVpZ2h0OiAgICAgICAgIDM0MHB4ICFkZWZhdWx0O1xuXG5cbi8vIFV0aWxpdGllc1xuXG4kZGlzcGxheXM6IG5vbmUsIGlubGluZSwgaW5saW5lLWJsb2NrLCBibG9jaywgdGFibGUsIHRhYmxlLXJvdywgdGFibGUtY2VsbCwgZmxleCwgaW5saW5lLWZsZXggIWRlZmF1bHQ7XG4kb3ZlcmZsb3dzOiBhdXRvLCBoaWRkZW4gIWRlZmF1bHQ7XG4kcG9zaXRpb25zOiBzdGF0aWMsIHJlbGF0aXZlLCBhYnNvbHV0ZSwgZml4ZWQsIHN0aWNreSAhZGVmYXVsdDtcbiR1c2VyLXNlbGVjdHM6IGFsbCwgYXV0bywgbm9uZSAhZGVmYXVsdDtcblxuXG4vLyBQcmludGluZ1xuXG4kcHJpbnQtcGFnZS1zaXplOiAgICAgICAgICAgICAgICAgICBhMyAhZGVmYXVsdDtcbiRwcmludC1ib2R5LW1pbi13aWR0aDogICAgICAgICAgICAgIG1hcC1nZXQoJGdyaWQtYnJlYWtwb2ludHMsIFwibGdcIikgIWRlZmF1bHQ7XG4iLCIvLyBUb2dnbGVzXG4vL1xuLy8gVXNlZCBpbiBjb25qdW5jdGlvbiB3aXRoIGdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIGNlcnRhaW4gdGhlbWUgZmVhdHVyZXMuXG5cbi8vIFZlbmRvclxuQGltcG9ydCBcInZlbmRvci9yZnNcIjtcblxuLy8gRGVwcmVjYXRlXG5AaW1wb3J0IFwibWl4aW5zL2RlcHJlY2F0ZVwiO1xuXG4vLyBVdGlsaXRpZXNcbkBpbXBvcnQgXCJtaXhpbnMvYnJlYWtwb2ludHNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvaG92ZXJcIjtcbkBpbXBvcnQgXCJtaXhpbnMvaW1hZ2VcIjtcbkBpbXBvcnQgXCJtaXhpbnMvYmFkZ2VcIjtcbkBpbXBvcnQgXCJtaXhpbnMvcmVzaXplXCI7XG5AaW1wb3J0IFwibWl4aW5zL3NjcmVlbi1yZWFkZXJcIjtcbkBpbXBvcnQgXCJtaXhpbnMvc2l6ZVwiO1xuQGltcG9ydCBcIm1peGlucy9yZXNldC10ZXh0XCI7XG5AaW1wb3J0IFwibWl4aW5zL3RleHQtZW1waGFzaXNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvdGV4dC1oaWRlXCI7XG5AaW1wb3J0IFwibWl4aW5zL3RleHQtdHJ1bmNhdGVcIjtcbkBpbXBvcnQgXCJtaXhpbnMvdmlzaWJpbGl0eVwiO1xuXG4vLyBDb21wb25lbnRzXG5AaW1wb3J0IFwibWl4aW5zL2FsZXJ0XCI7XG5AaW1wb3J0IFwibWl4aW5zL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJtaXhpbnMvY2FyZXRcIjtcbkBpbXBvcnQgXCJtaXhpbnMvcGFnaW5hdGlvblwiO1xuQGltcG9ydCBcIm1peGlucy9saXN0c1wiO1xuQGltcG9ydCBcIm1peGlucy9saXN0LWdyb3VwXCI7XG5AaW1wb3J0IFwibWl4aW5zL25hdi1kaXZpZGVyXCI7XG5AaW1wb3J0IFwibWl4aW5zL2Zvcm1zXCI7XG5AaW1wb3J0IFwibWl4aW5zL3RhYmxlLXJvd1wiO1xuXG4vLyBTa2luc1xuQGltcG9ydCBcIm1peGlucy9iYWNrZ3JvdW5kLXZhcmlhbnRcIjtcbkBpbXBvcnQgXCJtaXhpbnMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcIm1peGlucy9ib3gtc2hhZG93XCI7XG5AaW1wb3J0IFwibWl4aW5zL2dyYWRpZW50c1wiO1xuQGltcG9ydCBcIm1peGlucy90cmFuc2l0aW9uXCI7XG5cbi8vIExheW91dFxuQGltcG9ydCBcIm1peGlucy9jbGVhcmZpeFwiO1xuQGltcG9ydCBcIm1peGlucy9ncmlkLWZyYW1ld29ya1wiO1xuQGltcG9ydCBcIm1peGlucy9ncmlkXCI7XG5AaW1wb3J0IFwibWl4aW5zL2Zsb2F0XCI7XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBwcm9wZXJ0eS1ibGFja2xpc3QsIHNjc3MvZG9sbGFyLXZhcmlhYmxlLWRlZmF1bHRcblxuLy8gU0NTUyBSRlMgbWl4aW5cbi8vXG4vLyBBdXRvbWF0ZWQgZm9udC1yZXNpemluZ1xuLy9cbi8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vdHdicy9yZnNcblxuLy8gQ29uZmlndXJhdGlvblxuXG4vLyBCYXNlIGZvbnQgc2l6ZVxuJHJmcy1iYXNlLWZvbnQtc2l6ZTogMS4yNXJlbSAhZGVmYXVsdDtcbiRyZnMtZm9udC1zaXplLXVuaXQ6IHJlbSAhZGVmYXVsdDtcblxuLy8gQnJlYWtwb2ludCBhdCB3aGVyZSBmb250LXNpemUgc3RhcnRzIGRlY3JlYXNpbmcgaWYgc2NyZWVuIHdpZHRoIGlzIHNtYWxsZXJcbiRyZnMtYnJlYWtwb2ludDogMTIwMHB4ICFkZWZhdWx0O1xuJHJmcy1icmVha3BvaW50LXVuaXQ6IHB4ICFkZWZhdWx0O1xuXG4vLyBSZXNpemUgZm9udC1zaXplIGJhc2VkIG9uIHNjcmVlbiBoZWlnaHQgYW5kIHdpZHRoXG4kcmZzLXR3by1kaW1lbnNpb25hbDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIEZhY3RvciBvZiBkZWNyZWFzZVxuJHJmcy1mYWN0b3I6IDEwICFkZWZhdWx0O1xuXG5AaWYgdHlwZS1vZigkcmZzLWZhY3RvcikgIT0gXCJudW1iZXJcIiBvciAkcmZzLWZhY3RvciA8PSAxIHtcbiAgQGVycm9yIFwiYCN7JHJmcy1mYWN0b3J9YCBpcyBub3QgYSB2YWxpZCAgJHJmcy1mYWN0b3IsIGl0IG11c3QgYmUgZ3JlYXRlciB0aGFuIDEuXCI7XG59XG5cbi8vIEdlbmVyYXRlIGVuYWJsZSBvciBkaXNhYmxlIGNsYXNzZXMuIFBvc3NpYmlsaXRpZXM6IGZhbHNlLCBcImVuYWJsZVwiIG9yIFwiZGlzYWJsZVwiXG4kcmZzLWNsYXNzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gMSByZW0gPSAkcmZzLXJlbS12YWx1ZSBweFxuJHJmcy1yZW0tdmFsdWU6IDE2ICFkZWZhdWx0O1xuXG4vLyBTYWZhcmkgaWZyYW1lIHJlc2l6ZSBidWc6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL3Jmcy9pc3N1ZXMvMTRcbiRyZnMtc2FmYXJpLWlmcmFtZS1yZXNpemUtYnVnLWZpeDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIERpc2FibGUgUkZTIGJ5IHNldHRpbmcgJGVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZXMgdG8gZmFsc2VcbiRlbmFibGUtcmVzcG9uc2l2ZS1mb250LXNpemVzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBDYWNoZSAkcmZzLWJhc2UtZm9udC1zaXplIHVuaXRcbiRyZnMtYmFzZS1mb250LXNpemUtdW5pdDogdW5pdCgkcmZzLWJhc2UtZm9udC1zaXplKTtcblxuLy8gUmVtb3ZlIHB4LXVuaXQgZnJvbSAkcmZzLWJhc2UtZm9udC1zaXplIGZvciBjYWxjdWxhdGlvbnNcbkBpZiAkcmZzLWJhc2UtZm9udC1zaXplLXVuaXQgPT0gXCJweFwiIHtcbiAgJHJmcy1iYXNlLWZvbnQtc2l6ZTogJHJmcy1iYXNlLWZvbnQtc2l6ZSAvICgkcmZzLWJhc2UtZm9udC1zaXplICogMCArIDEpO1xufVxuQGVsc2UgaWYgJHJmcy1iYXNlLWZvbnQtc2l6ZS11bml0ID09IFwicmVtXCIge1xuICAkcmZzLWJhc2UtZm9udC1zaXplOiAkcmZzLWJhc2UtZm9udC1zaXplIC8gKCRyZnMtYmFzZS1mb250LXNpemUgKiAwICsgMSAvICRyZnMtcmVtLXZhbHVlKTtcbn1cblxuLy8gQ2FjaGUgJHJmcy1icmVha3BvaW50IHVuaXQgdG8gcHJldmVudCBtdWx0aXBsZSBjYWxsc1xuJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGU6IHVuaXQoJHJmcy1icmVha3BvaW50KTtcblxuLy8gUmVtb3ZlIHVuaXQgZnJvbSAkcmZzLWJyZWFrcG9pbnQgZm9yIGNhbGN1bGF0aW9uc1xuQGlmICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IFwicHhcIiB7XG4gICRyZnMtYnJlYWtwb2ludDogJHJmcy1icmVha3BvaW50IC8gKCRyZnMtYnJlYWtwb2ludCAqIDAgKyAxKTtcbn1cbkBlbHNlIGlmICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IFwicmVtXCIgb3IgJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGUgPT0gXCJlbVwiIHtcbiAgJHJmcy1icmVha3BvaW50OiAkcmZzLWJyZWFrcG9pbnQgLyAoJHJmcy1icmVha3BvaW50ICogMCArIDEgLyAkcmZzLXJlbS12YWx1ZSk7XG59XG5cbi8vIFJlc3BvbnNpdmUgZm9udC1zaXplIG1peGluXG5AbWl4aW4gcmZzKCRmcywgJGltcG9ydGFudDogZmFsc2UpIHtcbiAgLy8gQ2FjaGUgJGZzIHVuaXRcbiAgJGZzLXVuaXQ6IGlmKHR5cGUtb2YoJGZzKSA9PSBcIm51bWJlclwiLCB1bml0KCRmcyksIGZhbHNlKTtcblxuICAvLyBBZGQgIWltcG9ydGFudCBzdWZmaXggaWYgbmVlZGVkXG4gICRyZnMtc3VmZml4OiBpZigkaW1wb3J0YW50LCBcIiAhaW1wb3J0YW50XCIsIFwiXCIpO1xuXG4gIC8vIElmICRmcyBpc24ndCBhIG51bWJlciAobGlrZSBpbmhlcml0KSBvciAkZnMgaGFzIGEgdW5pdCAobm90IHB4IG9yIHJlbSwgbGlrZSAxLjVlbSkgb3IgJCBpcyAwLCBqdXN0IHByaW50IHRoZSB2YWx1ZVxuICBAaWYgbm90ICRmcy11bml0IG9yICRmcy11bml0ICE9IFwiXCIgYW5kICRmcy11bml0ICE9IFwicHhcIiBhbmQgJGZzLXVuaXQgIT0gXCJyZW1cIiBvciAkZnMgPT0gMCB7XG4gICAgZm9udC1zaXplOiAjeyRmc30jeyRyZnMtc3VmZml4fTtcbiAgfVxuICBAZWxzZSB7XG4gICAgLy8gVmFyaWFibGVzIGZvciBzdG9yaW5nIHN0YXRpYyBhbmQgZmx1aWQgcmVzY2FsaW5nXG4gICAgJHJmcy1zdGF0aWM6IG51bGw7XG4gICAgJHJmcy1mbHVpZDogbnVsbDtcblxuICAgIC8vIFJlbW92ZSBweC11bml0IGZyb20gJGZzIGZvciBjYWxjdWxhdGlvbnNcbiAgICBAaWYgJGZzLXVuaXQgPT0gXCJweFwiIHtcbiAgICAgICRmczogJGZzIC8gKCRmcyAqIDAgKyAxKTtcbiAgICB9XG4gICAgQGVsc2UgaWYgJGZzLXVuaXQgPT0gXCJyZW1cIiB7XG4gICAgICAkZnM6ICRmcyAvICgkZnMgKiAwICsgMSAvICRyZnMtcmVtLXZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBTZXQgZGVmYXVsdCBmb250LXNpemVcbiAgICBAaWYgJHJmcy1mb250LXNpemUtdW5pdCA9PSByZW0ge1xuICAgICAgJHJmcy1zdGF0aWM6ICN7JGZzIC8gJHJmcy1yZW0tdmFsdWV9cmVtI3skcmZzLXN1ZmZpeH07XG4gICAgfVxuICAgIEBlbHNlIGlmICRyZnMtZm9udC1zaXplLXVuaXQgPT0gcHgge1xuICAgICAgJHJmcy1zdGF0aWM6ICN7JGZzfXB4I3skcmZzLXN1ZmZpeH07XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBlcnJvciBcImAjeyRyZnMtZm9udC1zaXplLXVuaXR9YCBpcyBub3QgYSB2YWxpZCB1bml0IGZvciAkcmZzLWZvbnQtc2l6ZS11bml0LiBVc2UgYHB4YCBvciBgcmVtYC5cIjtcbiAgICB9XG5cbiAgICAvLyBPbmx5IGFkZCBtZWRpYSBxdWVyeSBpZiBmb250LXNpemUgaXMgYmlnZ2VyIGFzIHRoZSBtaW5pbXVtIGZvbnQtc2l6ZVxuICAgIC8vIElmICRyZnMtZmFjdG9yID09IDEsIG5vIHJlc2NhbGluZyB3aWxsIHRha2UgcGxhY2VcbiAgICBAaWYgJGZzID4gJHJmcy1iYXNlLWZvbnQtc2l6ZSBhbmQgJGVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZXMge1xuICAgICAgJG1pbi13aWR0aDogbnVsbDtcbiAgICAgICR2YXJpYWJsZS11bml0OiBudWxsO1xuXG4gICAgICAvLyBDYWxjdWxhdGUgbWluaW11bSBmb250LXNpemUgZm9yIGdpdmVuIGZvbnQtc2l6ZVxuICAgICAgJGZzLW1pbjogJHJmcy1iYXNlLWZvbnQtc2l6ZSArICgkZnMgLSAkcmZzLWJhc2UtZm9udC1zaXplKSAvICRyZnMtZmFjdG9yO1xuXG4gICAgICAvLyBDYWxjdWxhdGUgZGlmZmVyZW5jZSBiZXR3ZWVuIGdpdmVuIGZvbnQtc2l6ZSBhbmQgbWluaW11bSBmb250LXNpemUgZm9yIGdpdmVuIGZvbnQtc2l6ZVxuICAgICAgJGZzLWRpZmY6ICRmcyAtICRmcy1taW47XG5cbiAgICAgIC8vIEJhc2UgZm9udC1zaXplIGZvcm1hdHRpbmdcbiAgICAgIC8vIE5vIG5lZWQgdG8gY2hlY2sgaWYgdGhlIHVuaXQgaXMgdmFsaWQsIGJlY2F1c2Ugd2UgZGlkIHRoYXQgYmVmb3JlXG4gICAgICAkbWluLXdpZHRoOiBpZigkcmZzLWZvbnQtc2l6ZS11bml0ID09IHJlbSwgI3skZnMtbWluIC8gJHJmcy1yZW0tdmFsdWV9cmVtLCAjeyRmcy1taW59cHgpO1xuXG4gICAgICAvLyBJZiB0d28tZGltZW5zaW9uYWwsIHVzZSBzbWFsbGVzdCBvZiBzY3JlZW4gd2lkdGggYW5kIGhlaWdodFxuICAgICAgJHZhcmlhYmxlLXVuaXQ6IGlmKCRyZnMtdHdvLWRpbWVuc2lvbmFsLCB2bWluLCB2dyk7XG5cbiAgICAgIC8vIENhbGN1bGF0ZSB0aGUgdmFyaWFibGUgd2lkdGggYmV0d2VlbiAwIGFuZCAkcmZzLWJyZWFrcG9pbnRcbiAgICAgICR2YXJpYWJsZS13aWR0aDogI3skZnMtZGlmZiAqIDEwMCAvICRyZnMtYnJlYWtwb2ludH0jeyR2YXJpYWJsZS11bml0fTtcblxuICAgICAgLy8gU2V0IHRoZSBjYWxjdWxhdGVkIGZvbnQtc2l6ZS5cbiAgICAgICRyZnMtZmx1aWQ6IGNhbGMoI3skbWluLXdpZHRofSArICN7JHZhcmlhYmxlLXdpZHRofSkgI3skcmZzLXN1ZmZpeH07XG4gICAgfVxuXG4gICAgLy8gUmVuZGVyaW5nXG4gICAgQGlmICRyZnMtZmx1aWQgPT0gbnVsbCB7XG4gICAgICAvLyBPbmx5IHJlbmRlciBzdGF0aWMgZm9udC1zaXplIGlmIG5vIGZsdWlkIGZvbnQtc2l6ZSBpcyBhdmFpbGFibGVcbiAgICAgIGZvbnQtc2l6ZTogJHJmcy1zdGF0aWM7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRtcS12YWx1ZTogbnVsbDtcblxuICAgICAgLy8gUkZTIGJyZWFrcG9pbnQgZm9ybWF0dGluZ1xuICAgICAgQGlmICRyZnMtYnJlYWtwb2ludC11bml0ID09IGVtIG9yICRyZnMtYnJlYWtwb2ludC11bml0ID09IHJlbSB7XG4gICAgICAgICRtcS12YWx1ZTogI3skcmZzLWJyZWFrcG9pbnQgLyAkcmZzLXJlbS12YWx1ZX0jeyRyZnMtYnJlYWtwb2ludC11bml0fTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRyZnMtYnJlYWtwb2ludC11bml0ID09IHB4IHtcbiAgICAgICAgJG1xLXZhbHVlOiAjeyRyZnMtYnJlYWtwb2ludH1weDtcbiAgICAgIH1cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQGVycm9yIFwiYCN7JHJmcy1icmVha3BvaW50LXVuaXR9YCBpcyBub3QgYSB2YWxpZCB1bml0IGZvciAkcmZzLWJyZWFrcG9pbnQtdW5pdC4gVXNlIGBweGAsIGBlbWAgb3IgYHJlbWAuXCI7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkcmZzLWNsYXNzID09IFwiZGlzYWJsZVwiIHtcbiAgICAgICAgLy8gQWRkaW5nIGFuIGV4dHJhIGNsYXNzIGluY3JlYXNlcyBzcGVjaWZpY2l0eSxcbiAgICAgICAgLy8gd2hpY2ggcHJldmVudHMgdGhlIG1lZGlhIHF1ZXJ5IHRvIG92ZXJyaWRlIHRoZSBmb250IHNpemVcbiAgICAgICAgJixcbiAgICAgICAgLmRpc2FibGUtcmVzcG9uc2l2ZS1mb250LXNpemUgJixcbiAgICAgICAgJi5kaXNhYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplIHtcbiAgICAgICAgICBmb250LXNpemU6ICRyZnMtc3RhdGljO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogJHJmcy1zdGF0aWM7XG4gICAgICB9XG5cbiAgICAgIEBpZiAkcmZzLXR3by1kaW1lbnNpb25hbCB7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAjeyRtcS12YWx1ZX0pLCAobWF4LWhlaWdodDogI3skbXEtdmFsdWV9KSB7XG4gICAgICAgICAgQGlmICRyZnMtY2xhc3MgPT0gXCJlbmFibGVcIiB7XG4gICAgICAgICAgICAuZW5hYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplICYsXG4gICAgICAgICAgICAmLmVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZSB7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHJmcy1mbHVpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcmZzLWZsdWlkO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiAkcmZzLXNhZmFyaS1pZnJhbWUtcmVzaXplLWJ1Zy1maXgge1xuICAgICAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGxlbmd0aC16ZXJvLW5vLXVuaXRcbiAgICAgICAgICAgIG1pbi13aWR0aDogMHZ3O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAbWVkaWEgKG1heC13aWR0aDogI3skbXEtdmFsdWV9KSB7XG4gICAgICAgICAgQGlmICRyZnMtY2xhc3MgPT0gXCJlbmFibGVcIiB7XG4gICAgICAgICAgICAuZW5hYmxlLXJlc3BvbnNpdmUtZm9udC1zaXplICYsXG4gICAgICAgICAgICAmLmVuYWJsZS1yZXNwb25zaXZlLWZvbnQtc2l6ZSB7XG4gICAgICAgICAgICAgIGZvbnQtc2l6ZTogJHJmcy1mbHVpZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgQGVsc2Uge1xuICAgICAgICAgICAgZm9udC1zaXplOiAkcmZzLWZsdWlkO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBpZiAkcmZzLXNhZmFyaS1pZnJhbWUtcmVzaXplLWJ1Zy1maXgge1xuICAgICAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGxlbmd0aC16ZXJvLW5vLXVuaXRcbiAgICAgICAgICAgIG1pbi13aWR0aDogMHZ3O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBUaGUgZm9udC1zaXplICYgcmVzcG9uc2l2ZS1mb250LXNpemUgbWl4aW4gdXNlcyBSRlMgdG8gcmVzY2FsZSBmb250IHNpemVzXG5AbWl4aW4gZm9udC1zaXplKCRmcywgJGltcG9ydGFudDogZmFsc2UpIHtcbiAgQGluY2x1ZGUgcmZzKCRmcywgJGltcG9ydGFudCk7XG59XG5cbkBtaXhpbiByZXNwb25zaXZlLWZvbnQtc2l6ZSgkZnMsICRpbXBvcnRhbnQ6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIHJmcygkZnMsICRpbXBvcnRhbnQpO1xufVxuIiwiLy8gRGVwcmVjYXRlIG1peGluXG4vL1xuLy8gVGhpcyBtaXhpbiBjYW4gYmUgdXNlZCB0byBkZXByZWNhdGUgbWl4aW5zIG9yIGZ1bmN0aW9ucy5cbi8vIGAkZW5hYmxlLWRlcHJlY2F0aW9uLW1lc3NhZ2VzYCBpcyBhIGdsb2JhbCB2YXJpYWJsZSwgYCRpZ25vcmUtd2FybmluZ2AgaXMgYSB2YXJpYWJsZSB0aGF0IGNhbiBiZSBwYXNzZWQgdG9cbi8vIHNvbWUgZGVwcmVjYXRlZCBtaXhpbnMgdG8gc3VwcHJlc3MgdGhlIHdhcm5pbmcgKGZvciBleGFtcGxlIGlmIHRoZSBtaXhpbiBpcyBzdGlsbCBiZSB1c2VkIGluIHRoZSBjdXJyZW50IHZlcnNpb24gb2YgQm9vdHN0cmFwKVxuQG1peGluIGRlcHJlY2F0ZSgkbmFtZSwgJGRlcHJlY2F0ZS12ZXJzaW9uLCAkcmVtb3ZlLXZlcnNpb24sICRpZ25vcmUtd2FybmluZzogZmFsc2UpIHtcbiAgQGlmICgkZW5hYmxlLWRlcHJlY2F0aW9uLW1lc3NhZ2VzICE9IGZhbHNlIGFuZCAkaWdub3JlLXdhcm5pbmcgIT0gdHJ1ZSkge1xuICAgIEB3YXJuIFwiI3skbmFtZX0gaGFzIGJlZW4gZGVwcmVjYXRlZCBhcyBvZiAjeyRkZXByZWNhdGUtdmVyc2lvbn0uIEl0IHdpbGwgYmUgcmVtb3ZlZCBlbnRpcmVseSBpbiAjeyRyZW1vdmUtdmVyc2lvbn0uXCI7XG4gIH1cbn1cbiIsIi8vIEJyZWFrcG9pbnQgdmlld3BvcnQgc2l6ZXMgYW5kIG1lZGlhIHF1ZXJpZXMuXG4vL1xuLy8gQnJlYWtwb2ludHMgYXJlIGRlZmluZWQgYXMgYSBtYXAgb2YgKG5hbWU6IG1pbmltdW0gd2lkdGgpLCBvcmRlciBmcm9tIHNtYWxsIHRvIGxhcmdlOlxuLy9cbi8vICAgICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCkpXG4vLyAgICBtZFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cywgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cykpIHtcbiAgJG46IGluZGV4KCRicmVha3BvaW50LW5hbWVzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG4gIT0gbnVsbCBhbmQgJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgbGFyZ2VzdCAobGFzdCkgYnJlYWtwb2ludC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIGNhbGN1bGF0ZWQgYXMgdGhlIG1pbmltdW0gb2YgdGhlIG5leHQgb25lIGxlc3MgMC4wMnB4XG4vLyB0byB3b3JrIGFyb3VuZCB0aGUgbGltaXRhdGlvbnMgb2YgYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAuMDIsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEByZXR1cm4gaWYoYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cykgPT0gbnVsbCwgXCJcIiwgXCItI3skbmFtZX1cIik7XG59XG5cbi8vIE1lZGlhIG9mIGF0IGxlYXN0IHRoZSBtaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgd2lkZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtaW4ge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIG9mIGF0IG1vc3QgdGhlIG1heGltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBsYXJnZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgQGlmICRtYXgge1xuICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oJGxvd2VyLCAkdXBwZXIsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJGxvd2VyLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiBicmVha3BvaW50LW1heCgkdXBwZXIsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJGxvd2VyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gSG92ZXIgbWl4aW4gYW5kIGAkZW5hYmxlLWhvdmVyLW1lZGlhLXF1ZXJ5YCBhcmUgZGVwcmVjYXRlZC5cbi8vXG4vLyBPcmlnaW5hbGx5IGFkZGVkIGR1cmluZyBvdXIgYWxwaGFzIGFuZCBtYWludGFpbmVkIGR1cmluZyBiZXRhcywgdGhpcyBtaXhpbiB3YXNcbi8vIGRlc2lnbmVkIHRvIHByZXZlbnQgYDpob3ZlcmAgc3RpY2tpbmVzcyBvbiBpT1MtYW4gaXNzdWUgd2hlcmUgaG92ZXIgc3R5bGVzXG4vLyB3b3VsZCBwZXJzaXN0IGFmdGVyIGluaXRpYWwgdG91Y2guXG4vL1xuLy8gRm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIHdlJ3ZlIGtlcHQgdGhlc2UgbWl4aW5zIGFuZCB1cGRhdGVkIHRoZW0gdG9cbi8vIGFsd2F5cyByZXR1cm4gdGhlaXIgcmVndWxhciBwc2V1ZG8tY2xhc3NlcyBpbnN0ZWFkIG9mIGEgc2hpbW1lZCBtZWRpYSBxdWVyeS5cbi8vXG4vLyBJc3N1ZTogaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwL2lzc3Vlcy8yNTE5NVxuXG5AbWl4aW4gaG92ZXIoKSB7XG4gICY6aG92ZXIgeyBAY29udGVudDsgfVxufVxuXG5AbWl4aW4gaG92ZXItZm9jdXMoKSB7XG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbkBtaXhpbiBwbGFpbi1ob3Zlci1mb2N1cygpIHtcbiAgJixcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGhvdmVyLWZvY3VzLWFjdGl2ZSgpIHtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyxcbiAgJjphY3RpdmUge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyBJbWFnZSBNaXhpbnNcbi8vIC0gUmVzcG9uc2l2ZSBpbWFnZVxuLy8gLSBSZXRpbmEgaW1hZ2VcblxuXG4vLyBSZXNwb25zaXZlIGltYWdlXG4vL1xuLy8gS2VlcCBpbWFnZXMgZnJvbSBzY2FsaW5nIGJleW9uZCB0aGUgd2lkdGggb2YgdGhlaXIgcGFyZW50cy5cblxuQG1peGluIGltZy1mbHVpZCgpIHtcbiAgLy8gUGFydCAxOiBTZXQgYSBtYXhpbXVtIHJlbGF0aXZlIHRvIHRoZSBwYXJlbnRcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvLyBQYXJ0IDI6IE92ZXJyaWRlIHRoZSBoZWlnaHQgdG8gYXV0bywgb3RoZXJ3aXNlIGltYWdlcyB3aWxsIGJlIHN0cmV0Y2hlZFxuICAvLyB3aGVuIHNldHRpbmcgYSB3aWR0aCBhbmQgaGVpZ2h0IGF0dHJpYnV0ZSBvbiB0aGUgaW1nIGVsZW1lbnQuXG4gIGhlaWdodDogYXV0bztcbn1cblxuXG4vLyBSZXRpbmEgaW1hZ2Vcbi8vXG4vLyBTaG9ydCByZXRpbmEgbWl4aW4gZm9yIHNldHRpbmcgYmFja2dyb3VuZC1pbWFnZSBhbmQgLXNpemUuXG5cbkBtaXhpbiBpbWctcmV0aW5hKCRmaWxlLTF4LCAkZmlsZS0yeCwgJHdpZHRoLTF4LCAkaGVpZ2h0LTF4KSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgkZmlsZS0xeCk7XG5cbiAgLy8gQXV0b3ByZWZpeGVyIHRha2VzIGNhcmUgb2YgYWRkaW5nIC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbyBhbmQgLW8tbWluLWRldmljZS1waXhlbC1yYXRpbyxcbiAgLy8gYnV0IGRvZXNuJ3QgY29udmVydCBkcHB4PT5kcGkuXG4gIC8vIFRoZXJlJ3Mgbm8gc3VjaCB0aGluZyBhcyB1bnByZWZpeGVkIG1pbi1kZXZpY2UtcGl4ZWwtcmF0aW8gc2luY2UgaXQncyBub25zdGFuZGFyZC5cbiAgLy8gQ29tcGF0aWJpbGl0eSBpbmZvOiBodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWNzcy1tZWRpYS1yZXNvbHV0aW9uXG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAxOTJkcGkpLCAvLyBJRTktMTEgZG9uJ3Qgc3VwcG9ydCBkcHB4XG4gICAgb25seSBzY3JlZW4gYW5kIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpIHsgLy8gU3RhbmRhcmRpemVkXG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCRmaWxlLTJ4KTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICR3aWR0aC0xeCAkaGVpZ2h0LTF4O1xuICB9XG4gIEBpbmNsdWRlIGRlcHJlY2F0ZShcImBpbWctcmV0aW5hKClgXCIsIFwidjQuMy4wXCIsIFwidjVcIik7XG59XG4iLCJAbWl4aW4gYmFkZ2UtdmFyaWFudCgkYmcpIHtcbiAgY29sb3I6IGNvbG9yLXlpcSgkYmcpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmc7XG5cbiAgQGF0LXJvb3QgYSN7Jn0ge1xuICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzKCkge1xuICAgICAgY29sb3I6IGNvbG9yLXlpcSgkYmcpO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRiZywgMTAlKTtcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICYuZm9jdXMge1xuICAgICAgb3V0bGluZTogMDtcbiAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRiYWRnZS1mb2N1cy13aWR0aCByZ2JhKCRiZywgLjUpO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gUmVzaXplIGFueXRoaW5nXG5cbkBtaXhpbiByZXNpemFibGUoJGRpcmVjdGlvbikge1xuICBvdmVyZmxvdzogYXV0bzsgLy8gUGVyIENTUzMgVUksIGByZXNpemVgIG9ubHkgYXBwbGllcyB3aGVuIGBvdmVyZmxvd2AgaXNuJ3QgYHZpc2libGVgXG4gIHJlc2l6ZTogJGRpcmVjdGlvbjsgLy8gT3B0aW9uczogaG9yaXpvbnRhbCwgdmVydGljYWwsIGJvdGhcbn1cbiIsIi8vIE9ubHkgZGlzcGxheSBjb250ZW50IHRvIHNjcmVlbiByZWFkZXJzXG4vL1xuLy8gU2VlOiBodHRwczovL3d3dy5hMTF5cHJvamVjdC5jb20vcG9zdHMvMjAxMy0wMS0xMS1ob3ctdG8taGlkZS1jb250ZW50L1xuLy8gU2VlOiBodHRwczovL2h1Z29naXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cblxuQG1peGluIHNyLW9ubHkoKSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDFweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogLTFweDsgLy8gRml4IGZvciBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXAvaXNzdWVzLzI1Njg2XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCk7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIGJvcmRlcjogMDtcbn1cblxuLy8gVXNlIGluIGNvbmp1bmN0aW9uIHdpdGggLnNyLW9ubHkgdG8gb25seSBkaXNwbGF5IGNvbnRlbnQgd2hlbiBpdCdzIGZvY3VzZWQuXG4vL1xuLy8gVXNlZnVsIGZvciBcIlNraXAgdG8gbWFpbiBjb250ZW50XCIgbGlua3M7IHNlZSBodHRwczovL3d3dy53My5vcmcvVFIvMjAxMy9OT1RFLVdDQUcyMC1URUNIUy0yMDEzMDkwNS9HMVxuLy9cbi8vIENyZWRpdDogSFRNTDUgQm9pbGVycGxhdGVcblxuQG1peGluIHNyLW9ubHktZm9jdXNhYmxlKCkge1xuICAmOmFjdGl2ZSxcbiAgJjpmb2N1cyB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG4gICAgY2xpcDogYXV0bztcbiAgICB3aGl0ZS1zcGFjZTogbm9ybWFsO1xuICB9XG59XG4iLCIvLyBTaXppbmcgc2hvcnRjdXRzXG5cbkBtaXhpbiBzaXplKCR3aWR0aCwgJGhlaWdodDogJHdpZHRoKSB7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgQGluY2x1ZGUgZGVwcmVjYXRlKFwiYHNpemUoKWBcIiwgXCJ2NC4zLjBcIiwgXCJ2NVwiKTtcbn1cbiIsIkBtaXhpbiByZXNldC10ZXh0KCkge1xuICBmb250LWZhbWlseTogJGZvbnQtZmFtaWx5LWJhc2U7XG4gIC8vIFdlIGRlbGliZXJhdGVseSBkbyBOT1QgcmVzZXQgZm9udC1zaXplIG9yIHdvcmQtd3JhcC5cbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogJGZvbnQtd2VpZ2h0LW5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuICB0ZXh0LWFsaWduOiBsZWZ0OyAvLyBGYWxsYmFjayBmb3Igd2hlcmUgYHN0YXJ0YCBpcyBub3Qgc3VwcG9ydGVkXG4gIHRleHQtYWxpZ246IHN0YXJ0O1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDtcbiAgd29yZC1icmVhazogbm9ybWFsO1xuICB3b3JkLXNwYWNpbmc6IG5vcm1hbDtcbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgbGluZS1icmVhazogYXV0bztcbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuXG4vLyBUeXBvZ3JhcGh5XG5cbkBtaXhpbiB0ZXh0LWVtcGhhc2lzLXZhcmlhbnQoJHBhcmVudCwgJGNvbG9yLCAkaWdub3JlLXdhcm5pbmc6IGZhbHNlKSB7XG4gICN7JHBhcmVudH0ge1xuICAgIGNvbG9yOiAkY29sb3IgIWltcG9ydGFudDtcbiAgfVxuICBAaWYgJGVtcGhhc2l6ZWQtbGluay1ob3Zlci1kYXJrZW4tcGVyY2VudGFnZSAhPSAwIHtcbiAgICBhI3skcGFyZW50fSB7XG4gICAgICBAaW5jbHVkZSBob3Zlci1mb2N1cygpIHtcbiAgICAgICAgY29sb3I6IGRhcmtlbigkY29sb3IsICRlbXBoYXNpemVkLWxpbmstaG92ZXItZGFya2VuLXBlcmNlbnRhZ2UpICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIGRlcHJlY2F0ZShcImB0ZXh0LWVtcGhhc2lzLXZhcmlhbnQoKWBcIiwgXCJ2NC40LjBcIiwgXCJ2NVwiLCAkaWdub3JlLXdhcm5pbmcpO1xufVxuIiwiLy8gQ1NTIGltYWdlIHJlcGxhY2VtZW50XG5AbWl4aW4gdGV4dC1oaWRlKCRpZ25vcmUtd2FybmluZzogZmFsc2UpIHtcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGZvbnQtZmFtaWx5LW5vLW1pc3NpbmctZ2VuZXJpYy1mYW1pbHkta2V5d29yZFxuICBmb250OiAwLzAgYTtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlcjogMDtcblxuICBAaW5jbHVkZSBkZXByZWNhdGUoXCJgdGV4dC1oaWRlKClgXCIsIFwidjQuMS4wXCIsIFwidjVcIiwgJGlnbm9yZS13YXJuaW5nKTtcbn1cbiIsIi8vIFRleHQgdHJ1bmNhdGVcbi8vIFJlcXVpcmVzIGlubGluZS1ibG9jayBvciBibG9jayBmb3IgcHJvcGVyIHN0eWxpbmdcblxuQG1peGluIHRleHQtdHJ1bmNhdGUoKSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbi8vIFZpc2liaWxpdHlcblxuQG1peGluIGludmlzaWJsZSgkdmlzaWJpbGl0eSkge1xuICB2aXNpYmlsaXR5OiAkdmlzaWJpbGl0eSAhaW1wb3J0YW50O1xuICBAaW5jbHVkZSBkZXByZWNhdGUoXCJgaW52aXNpYmxlKClgXCIsIFwidjQuMy4wXCIsIFwidjVcIik7XG59XG4iLCJAbWl4aW4gYWxlcnQtdmFyaWFudCgkYmFja2dyb3VuZCwgJGJvcmRlciwgJGNvbG9yKSB7XG4gIGNvbG9yOiAkY29sb3I7XG4gIEBpbmNsdWRlIGdyYWRpZW50LWJnKCRiYWNrZ3JvdW5kKTtcbiAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuXG4gIGhyIHtcbiAgICBib3JkZXItdG9wLWNvbG9yOiBkYXJrZW4oJGJvcmRlciwgNSUpO1xuICB9XG5cbiAgLmFsZXJ0LWxpbmsge1xuICAgIGNvbG9yOiBkYXJrZW4oJGNvbG9yLCAxMCUpO1xuICB9XG59XG4iLCIvLyBCdXR0b24gdmFyaWFudHNcbi8vXG4vLyBFYXNpbHkgcHVtcCBvdXQgZGVmYXVsdCBzdHlsZXMsIGFzIHdlbGwgYXMgOmhvdmVyLCA6Zm9jdXMsIDphY3RpdmUsXG4vLyBhbmQgZGlzYWJsZWQgb3B0aW9ucyBmb3IgYWxsIGJ1dHRvbnNcblxuQG1peGluIGJ1dHRvbi12YXJpYW50KCRiYWNrZ3JvdW5kLCAkYm9yZGVyLCAkaG92ZXItYmFja2dyb3VuZDogZGFya2VuKCRiYWNrZ3JvdW5kLCA3LjUlKSwgJGhvdmVyLWJvcmRlcjogZGFya2VuKCRib3JkZXIsIDEwJSksICRhY3RpdmUtYmFja2dyb3VuZDogZGFya2VuKCRiYWNrZ3JvdW5kLCAxMCUpLCAkYWN0aXZlLWJvcmRlcjogZGFya2VuKCRib3JkZXIsIDEyLjUlKSkge1xuICBjb2xvcjogY29sb3IteWlxKCRiYWNrZ3JvdW5kKTtcbiAgQGluY2x1ZGUgZ3JhZGllbnQtYmcoJGJhY2tncm91bmQpO1xuICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3coJGJ0bi1ib3gtc2hhZG93KTtcblxuICBAaW5jbHVkZSBob3ZlcigpIHtcbiAgICBjb2xvcjogY29sb3IteWlxKCRob3Zlci1iYWNrZ3JvdW5kKTtcbiAgICBAaW5jbHVkZSBncmFkaWVudC1iZygkaG92ZXItYmFja2dyb3VuZCk7XG4gICAgYm9yZGVyLWNvbG9yOiAkaG92ZXItYm9yZGVyO1xuICB9XG5cbiAgJjpmb2N1cyxcbiAgJi5mb2N1cyB7XG4gICAgY29sb3I6IGNvbG9yLXlpcSgkaG92ZXItYmFja2dyb3VuZCk7XG4gICAgQGluY2x1ZGUgZ3JhZGllbnQtYmcoJGhvdmVyLWJhY2tncm91bmQpO1xuICAgIGJvcmRlci1jb2xvcjogJGhvdmVyLWJvcmRlcjtcbiAgICBAaWYgJGVuYWJsZS1zaGFkb3dzIHtcbiAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJGJ0bi1ib3gtc2hhZG93LCAwIDAgMCAkYnRuLWZvY3VzLXdpZHRoIHJnYmEobWl4KGNvbG9yLXlpcSgkYmFja2dyb3VuZCksICRib3JkZXIsIDE1JSksIC41KSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAvLyBBdm9pZCB1c2luZyBtaXhpbiBzbyB3ZSBjYW4gcGFzcyBjdXN0b20gZm9jdXMgc2hhZG93IHByb3Blcmx5XG4gICAgICBib3gtc2hhZG93OiAwIDAgMCAkYnRuLWZvY3VzLXdpZHRoIHJnYmEobWl4KGNvbG9yLXlpcSgkYmFja2dyb3VuZCksICRib3JkZXIsIDE1JSksIC41KTtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlZCBjb21lcyBmaXJzdCBzbyBhY3RpdmUgY2FuIHByb3Blcmx5IHJlc3R5bGVcbiAgJi5kaXNhYmxlZCxcbiAgJjpkaXNhYmxlZCB7XG4gICAgY29sb3I6IGNvbG9yLXlpcSgkYmFja2dyb3VuZCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyO1xuICAgIC8vIFJlbW92ZSBDU1MgZ3JhZGllbnRzIGlmIHRoZXkncmUgZW5hYmxlZFxuICAgIEBpZiAkZW5hYmxlLWdyYWRpZW50cyB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgIH1cbiAgfVxuXG4gICY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCk6YWN0aXZlLFxuICAmOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpLmFjdGl2ZSxcbiAgLnNob3cgPiAmLmRyb3Bkb3duLXRvZ2dsZSB7XG4gICAgY29sb3I6IGNvbG9yLXlpcSgkYWN0aXZlLWJhY2tncm91bmQpO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhY3RpdmUtYmFja2dyb3VuZDtcbiAgICBAaWYgJGVuYWJsZS1ncmFkaWVudHMge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLy8gUmVtb3ZlIHRoZSBncmFkaWVudCBmb3IgdGhlIHByZXNzZWQvYWN0aXZlIHN0YXRlXG4gICAgfVxuICAgIGJvcmRlci1jb2xvcjogJGFjdGl2ZS1ib3JkZXI7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpZiAkZW5hYmxlLXNoYWRvd3MgYW5kICRidG4tYWN0aXZlLWJveC1zaGFkb3cgIT0gbm9uZSB7XG4gICAgICAgIEBpbmNsdWRlIGJveC1zaGFkb3coJGJ0bi1hY3RpdmUtYm94LXNoYWRvdywgMCAwIDAgJGJ0bi1mb2N1cy13aWR0aCByZ2JhKG1peChjb2xvci15aXEoJGJhY2tncm91bmQpLCAkYm9yZGVyLCAxNSUpLCAuNSkpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIEF2b2lkIHVzaW5nIG1peGluIHNvIHdlIGNhbiBwYXNzIGN1c3RvbSBmb2N1cyBzaGFkb3cgcHJvcGVybHlcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGJ0bi1mb2N1cy13aWR0aCByZ2JhKG1peChjb2xvci15aXEoJGJhY2tncm91bmQpLCAkYm9yZGVyLCAxNSUpLCAuNSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBidXR0b24tb3V0bGluZS12YXJpYW50KCRjb2xvciwgJGNvbG9yLWhvdmVyOiBjb2xvci15aXEoJGNvbG9yKSwgJGFjdGl2ZS1iYWNrZ3JvdW5kOiAkY29sb3IsICRhY3RpdmUtYm9yZGVyOiAkY29sb3IpIHtcbiAgY29sb3I6ICRjb2xvcjtcbiAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG5cbiAgQGluY2x1ZGUgaG92ZXIoKSB7XG4gICAgY29sb3I6ICRjb2xvci1ob3ZlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkYWN0aXZlLWJvcmRlcjtcbiAgfVxuXG4gICY6Zm9jdXMsXG4gICYuZm9jdXMge1xuICAgIGJveC1zaGFkb3c6IDAgMCAwICRidG4tZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC41KTtcbiAgfVxuXG4gICYuZGlzYWJsZWQsXG4gICY6ZGlzYWJsZWQge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cblxuICAmOm5vdCg6ZGlzYWJsZWQpOm5vdCguZGlzYWJsZWQpOmFjdGl2ZSxcbiAgJjpub3QoOmRpc2FibGVkKTpub3QoLmRpc2FibGVkKS5hY3RpdmUsXG4gIC5zaG93ID4gJi5kcm9wZG93bi10b2dnbGUge1xuICAgIGNvbG9yOiBjb2xvci15aXEoJGFjdGl2ZS1iYWNrZ3JvdW5kKTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYWN0aXZlLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLWNvbG9yOiAkYWN0aXZlLWJvcmRlcjtcblxuICAgICY6Zm9jdXMge1xuICAgICAgQGlmICRlbmFibGUtc2hhZG93cyBhbmQgJGJ0bi1hY3RpdmUtYm94LXNoYWRvdyAhPSBub25lIHtcbiAgICAgICAgQGluY2x1ZGUgYm94LXNoYWRvdygkYnRuLWFjdGl2ZS1ib3gtc2hhZG93LCAwIDAgMCAkYnRuLWZvY3VzLXdpZHRoIHJnYmEoJGNvbG9yLCAuNSkpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIEF2b2lkIHVzaW5nIG1peGluIHNvIHdlIGNhbiBwYXNzIGN1c3RvbSBmb2N1cyBzaGFkb3cgcHJvcGVybHlcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGJ0bi1mb2N1cy13aWR0aCByZ2JhKCRjb2xvciwgLjUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBCdXR0b24gc2l6ZXNcbkBtaXhpbiBidXR0b24tc2l6ZSgkcGFkZGluZy15LCAkcGFkZGluZy14LCAkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICRib3JkZXItcmFkaXVzKSB7XG4gIHBhZGRpbmc6ICRwYWRkaW5nLXkgJHBhZGRpbmcteDtcbiAgQGluY2x1ZGUgZm9udC1zaXplKCRmb250LXNpemUpO1xuICBsaW5lLWhlaWdodDogJGxpbmUtaGVpZ2h0O1xuICAvLyBNYW51YWxseSBkZWNsYXJlIHRvIHByb3ZpZGUgYW4gb3ZlcnJpZGUgdG8gdGhlIGJyb3dzZXIgZGVmYXVsdFxuICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKCRib3JkZXItcmFkaXVzLCAwKTtcbn1cbiIsIkBtaXhpbiBjYXJldC1kb3duKCkge1xuICBib3JkZXItdG9wOiAkY2FyZXQtd2lkdGggc29saWQ7XG4gIGJvcmRlci1yaWdodDogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAwO1xuICBib3JkZXItbGVmdDogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xufVxuXG5AbWl4aW4gY2FyZXQtdXAoKSB7XG4gIGJvcmRlci10b3A6IDA7XG4gIGJvcmRlci1yaWdodDogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItYm90dG9tOiAkY2FyZXQtd2lkdGggc29saWQ7XG4gIGJvcmRlci1sZWZ0OiAkY2FyZXQtd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG59XG5cbkBtaXhpbiBjYXJldC1yaWdodCgpIHtcbiAgYm9yZGVyLXRvcDogJGNhcmV0LXdpZHRoIHNvbGlkIHRyYW5zcGFyZW50O1xuICBib3JkZXItcmlnaHQ6IDA7XG4gIGJvcmRlci1ib3R0b206ICRjYXJldC13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLWxlZnQ6ICRjYXJldC13aWR0aCBzb2xpZDtcbn1cblxuQG1peGluIGNhcmV0LWxlZnQoKSB7XG4gIGJvcmRlci10b3A6ICRjYXJldC13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJpZ2h0OiAkY2FyZXQtd2lkdGggc29saWQ7XG4gIGJvcmRlci1ib3R0b206ICRjYXJldC13aWR0aCBzb2xpZCB0cmFuc3BhcmVudDtcbn1cblxuQG1peGluIGNhcmV0KCRkaXJlY3Rpb246IGRvd24pIHtcbiAgQGlmICRlbmFibGUtY2FyZXQge1xuICAgICY6OmFmdGVyIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIG1hcmdpbi1sZWZ0OiAkY2FyZXQtc3BhY2luZztcbiAgICAgIHZlcnRpY2FsLWFsaWduOiAkY2FyZXQtdmVydGljYWwtYWxpZ247XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgQGlmICRkaXJlY3Rpb24gPT0gZG93biB7XG4gICAgICAgIEBpbmNsdWRlIGNhcmV0LWRvd24oKTtcbiAgICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cCB7XG4gICAgICAgIEBpbmNsdWRlIGNhcmV0LXVwKCk7XG4gICAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgICBAaW5jbHVkZSBjYXJldC1yaWdodCgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuXG4gICAgICAmOjpiZWZvcmUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDogJGNhcmV0LXNwYWNpbmc7XG4gICAgICAgIHZlcnRpY2FsLWFsaWduOiAkY2FyZXQtdmVydGljYWwtYWxpZ247XG4gICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgIEBpbmNsdWRlIGNhcmV0LWxlZnQoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOmVtcHR5OjphZnRlciB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFBhZ2luYXRpb25cblxuQG1peGluIHBhZ2luYXRpb24tc2l6ZSgkcGFkZGluZy15LCAkcGFkZGluZy14LCAkZm9udC1zaXplLCAkbGluZS1oZWlnaHQsICRib3JkZXItcmFkaXVzKSB7XG4gIC5wYWdlLWxpbmsge1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nLXkgJHBhZGRpbmcteDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodDtcbiAgfVxuXG4gIC5wYWdlLWl0ZW0ge1xuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgLnBhZ2UtbGluayB7XG4gICAgICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygkYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAucGFnZS1saW5rIHtcbiAgICAgICAgQGluY2x1ZGUgYm9yZGVyLXJpZ2h0LXJhZGl1cygkYm9yZGVyLXJhZGl1cyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBMaXN0c1xuXG4vLyBVbnN0eWxlZCBrZWVwcyBsaXN0IGl0ZW1zIGJsb2NrIGxldmVsLCBqdXN0IHJlbW92ZXMgZGVmYXVsdCBicm93c2VyIHBhZGRpbmcgYW5kIGxpc3Qtc3R5bGVcbkBtaXhpbiBsaXN0LXVuc3R5bGVkKCkge1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG4iLCIvLyBMaXN0IEdyb3Vwc1xuXG5AbWl4aW4gbGlzdC1ncm91cC1pdGVtLXZhcmlhbnQoJHN0YXRlLCAkYmFja2dyb3VuZCwgJGNvbG9yKSB7XG4gIC5saXN0LWdyb3VwLWl0ZW0tI3skc3RhdGV9IHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kO1xuXG4gICAgJi5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uIHtcbiAgICAgIEBpbmNsdWRlIGhvdmVyLWZvY3VzKCkge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBkYXJrZW4oJGJhY2tncm91bmQsIDUlKTtcbiAgICAgIH1cblxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gSG9yaXpvbnRhbCBkaXZpZGVyc1xuLy9cbi8vIERpdmlkZXJzIChiYXNpY2FsbHkgYW4gaHIpIHdpdGhpbiBkcm9wZG93bnMgYW5kIG5hdiBsaXN0c1xuXG5AbWl4aW4gbmF2LWRpdmlkZXIoJGNvbG9yOiAkbmF2LWRpdmlkZXItY29sb3IsICRtYXJnaW4teTogJG5hdi1kaXZpZGVyLW1hcmdpbi15LCAkaWdub3JlLXdhcm5pbmc6IGZhbHNlKSB7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luOiAkbWFyZ2luLXkgMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRjb2xvcjtcbiAgQGluY2x1ZGUgZGVwcmVjYXRlKFwiVGhlIGBuYXYtZGl2aWRlcigpYCBtaXhpblwiLCBcInY0LjQuMFwiLCBcInY1XCIsICRpZ25vcmUtd2FybmluZyk7XG59XG4iLCIvLyBGb3JtIGNvbnRyb2wgZm9jdXMgc3RhdGVcbi8vXG4vLyBHZW5lcmF0ZSBhIGN1c3RvbWl6ZWQgZm9jdXMgc3RhdGUgYW5kIGZvciBhbnkgaW5wdXQgd2l0aCB0aGUgc3BlY2lmaWVkIGNvbG9yLFxuLy8gd2hpY2ggZGVmYXVsdHMgdG8gdGhlIGAkaW5wdXQtZm9jdXMtYm9yZGVyLWNvbG9yYCB2YXJpYWJsZS5cbi8vXG4vLyBXZSBoaWdobHkgZW5jb3VyYWdlIHlvdSB0byBub3QgY3VzdG9taXplIHRoZSBkZWZhdWx0IHZhbHVlLCBidXQgaW5zdGVhZCB1c2Vcbi8vIHRoaXMgdG8gdHdlYWsgY29sb3JzIG9uIGFuIGFzLW5lZWRlZCBiYXNpcy4gVGhpcyBhZXN0aGV0aWMgY2hhbmdlIGlzIGJhc2VkIG9uXG4vLyBXZWJLaXQncyBkZWZhdWx0IHN0eWxlcywgYnV0IGFwcGxpY2FibGUgdG8gYSB3aWRlciByYW5nZSBvZiBicm93c2Vycy4gSXRzXG4vLyB1c2FiaWxpdHkgYW5kIGFjY2Vzc2liaWxpdHkgc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3VudCB3aXRoIGFueSBjaGFuZ2UuXG4vL1xuLy8gRXhhbXBsZSB1c2FnZTogY2hhbmdlIHRoZSBkZWZhdWx0IGJsdWUgYm9yZGVyIGFuZCBzaGFkb3cgdG8gd2hpdGUgZm9yIGJldHRlclxuLy8gY29udHJhc3QgYWdhaW5zdCBhIGRhcmsgZ3JheSBiYWNrZ3JvdW5kLlxuQG1peGluIGZvcm0tY29udHJvbC1mb2N1cygkaWdub3JlLXdhcm5pbmc6IGZhbHNlKSB7XG4gICY6Zm9jdXMge1xuICAgIGNvbG9yOiAkaW5wdXQtZm9jdXMtY29sb3I7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGlucHV0LWZvY3VzLWJnO1xuICAgIGJvcmRlci1jb2xvcjogJGlucHV0LWZvY3VzLWJvcmRlci1jb2xvcjtcbiAgICBvdXRsaW5lOiAwO1xuICAgIEBpZiAkZW5hYmxlLXNoYWRvd3Mge1xuICAgICAgQGluY2x1ZGUgYm94LXNoYWRvdygkaW5wdXQtYm94LXNoYWRvdywgJGlucHV0LWZvY3VzLWJveC1zaGFkb3cpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgLy8gQXZvaWQgdXNpbmcgbWl4aW4gc28gd2UgY2FuIHBhc3MgY3VzdG9tIGZvY3VzIHNoYWRvdyBwcm9wZXJseVxuICAgICAgYm94LXNoYWRvdzogJGlucHV0LWZvY3VzLWJveC1zaGFkb3c7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIGRlcHJlY2F0ZShcIlRoZSBgZm9ybS1jb250cm9sLWZvY3VzKClgIG1peGluXCIsIFwidjQuNC4wXCIsIFwidjVcIiwgJGlnbm9yZS13YXJuaW5nKTtcbn1cblxuLy8gVGhpcyBtaXhpbiB1c2VzIGFuIGBpZigpYCB0ZWNobmlxdWUgdG8gYmUgY29tcGF0aWJsZSB3aXRoIERhcnQgU2Fzc1xuLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXNzL3Nhc3MvaXNzdWVzLzE4NzMjaXNzdWVjb21tZW50LTE1MjI5MzcyNSBmb3IgbW9yZSBkZXRhaWxzXG5AbWl4aW4gZm9ybS12YWxpZGF0aW9uLXN0YXRlLXNlbGVjdG9yKCRzdGF0ZSkge1xuICBAaWYgKCRzdGF0ZSA9PSBcInZhbGlkXCIgb3IgJHN0YXRlID09IFwiaW52YWxpZFwiKSB7XG4gICAgLndhcy12YWxpZGF0ZWQgI3tpZigmLCBcIiZcIiwgXCJcIil9OiN7JHN0YXRlfSxcbiAgICAje2lmKCYsIFwiJlwiLCBcIlwiKX0uaXMtI3skc3RhdGV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgI3tpZigmLCBcIiZcIiwgXCJcIil9LmlzLSN7JHN0YXRlfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvcm0tdmFsaWRhdGlvbi1zdGF0ZSgkc3RhdGUsICRjb2xvciwgJGljb24pIHtcbiAgLiN7JHN0YXRlfS1mZWVkYmFjayB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtYXJnaW4tdG9wOiAkZm9ybS1mZWVkYmFjay1tYXJnaW4tdG9wO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgkZm9ybS1mZWVkYmFjay1mb250LXNpemUpO1xuICAgIGNvbG9yOiAkY29sb3I7XG4gIH1cblxuICAuI3skc3RhdGV9LXRvb2x0aXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICB6LWluZGV4OiA1O1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvLyBDb250YWluIHRvIHBhcmVudCB3aGVuIHBvc3NpYmxlXG4gICAgcGFkZGluZzogJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1wYWRkaW5nLXkgJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1wYWRkaW5nLXg7XG4gICAgbWFyZ2luLXRvcDogLjFyZW07XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogJGZvcm0tZmVlZGJhY2stdG9vbHRpcC1saW5lLWhlaWdodDtcbiAgICBjb2xvcjogY29sb3IteWlxKCRjb2xvcik7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkY29sb3IsICRmb3JtLWZlZWRiYWNrLXRvb2x0aXAtb3BhY2l0eSk7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygkZm9ybS1mZWVkYmFjay10b29sdGlwLWJvcmRlci1yYWRpdXMpO1xuICB9XG5cbiAgQGluY2x1ZGUgZm9ybS12YWxpZGF0aW9uLXN0YXRlLXNlbGVjdG9yKCRzdGF0ZSkge1xuICAgIH4gLiN7JHN0YXRlfS1mZWVkYmFjayxcbiAgICB+IC4jeyRzdGF0ZX0tdG9vbHRpcCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG4gIH1cblxuICAuZm9ybS1jb250cm9sIHtcbiAgICBAaW5jbHVkZSBmb3JtLXZhbGlkYXRpb24tc3RhdGUtc2VsZWN0b3IoJHN0YXRlKSB7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcblxuICAgICAgQGlmICRlbmFibGUtdmFsaWRhdGlvbi1pY29ucyB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6ICRpbnB1dC1oZWlnaHQtaW5uZXI7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGVzY2FwZS1zdmcoJGljb24pO1xuICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodCAkaW5wdXQtaGVpZ2h0LWlubmVyLXF1YXJ0ZXIgY2VudGVyO1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6ICRpbnB1dC1oZWlnaHQtaW5uZXItaGFsZiAkaW5wdXQtaGVpZ2h0LWlubmVyLWhhbGY7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMge1xuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgJGlucHV0LWZvY3VzLXdpZHRoIHJnYmEoJGNvbG9yLCAuMjUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBzZWxlY3Rvci1uby1xdWFsaWZ5aW5nLXR5cGVcbiAgdGV4dGFyZWEuZm9ybS1jb250cm9sIHtcbiAgICBAaW5jbHVkZSBmb3JtLXZhbGlkYXRpb24tc3RhdGUtc2VsZWN0b3IoJHN0YXRlKSB7XG4gICAgICBAaWYgJGVuYWJsZS12YWxpZGF0aW9uLWljb25zIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGlucHV0LWhlaWdodC1pbm5lcjtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wICRpbnB1dC1oZWlnaHQtaW5uZXItcXVhcnRlciByaWdodCAkaW5wdXQtaGVpZ2h0LWlubmVyLXF1YXJ0ZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmN1c3RvbS1zZWxlY3Qge1xuICAgIEBpbmNsdWRlIGZvcm0tdmFsaWRhdGlvbi1zdGF0ZS1zZWxlY3Rvcigkc3RhdGUpIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuXG4gICAgICBAaWYgJGVuYWJsZS12YWxpZGF0aW9uLWljb25zIHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogJGN1c3RvbS1zZWxlY3QtZmVlZGJhY2staWNvbi1wYWRkaW5nLXJpZ2h0O1xuICAgICAgICBiYWNrZ3JvdW5kOiAkY3VzdG9tLXNlbGVjdC1iYWNrZ3JvdW5kLCBlc2NhcGUtc3ZnKCRpY29uKSAkY3VzdG9tLXNlbGVjdC1iZyBuby1yZXBlYXQgJGN1c3RvbS1zZWxlY3QtZmVlZGJhY2staWNvbi1wb3NpdGlvbiAvICRjdXN0b20tc2VsZWN0LWZlZWRiYWNrLWljb24tc2l6ZTtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkaW5wdXQtZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC4yNSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmZvcm0tY2hlY2staW5wdXQge1xuICAgIEBpbmNsdWRlIGZvcm0tdmFsaWRhdGlvbi1zdGF0ZS1zZWxlY3Rvcigkc3RhdGUpIHtcbiAgICAgIH4gLmZvcm0tY2hlY2stbGFiZWwge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgfVxuXG4gICAgICB+IC4jeyRzdGF0ZX0tZmVlZGJhY2ssXG4gICAgICB+IC4jeyRzdGF0ZX0tdG9vbHRpcCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5jdXN0b20tY29udHJvbC1pbnB1dCB7XG4gICAgQGluY2x1ZGUgZm9ybS12YWxpZGF0aW9uLXN0YXRlLXNlbGVjdG9yKCRzdGF0ZSkge1xuICAgICAgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWwge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuXG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpjaGVja2VkIHtcbiAgICAgICAgfiAuY3VzdG9tLWNvbnRyb2wtbGFiZWw6OmJlZm9yZSB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiBsaWdodGVuKCRjb2xvciwgMTAlKTtcbiAgICAgICAgICBAaW5jbHVkZSBncmFkaWVudC1iZyhsaWdodGVuKCRjb2xvciwgMTAlKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIH4gLmN1c3RvbS1jb250cm9sLWxhYmVsOjpiZWZvcmUge1xuICAgICAgICAgIGJveC1zaGFkb3c6IDAgMCAwICRpbnB1dC1mb2N1cy13aWR0aCByZ2JhKCRjb2xvciwgLjI1KTtcbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpjaGVja2VkKSB+IC5jdXN0b20tY29udHJvbC1sYWJlbDo6YmVmb3JlIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIGN1c3RvbSBmaWxlXG4gIC5jdXN0b20tZmlsZS1pbnB1dCB7XG4gICAgQGluY2x1ZGUgZm9ybS12YWxpZGF0aW9uLXN0YXRlLXNlbGVjdG9yKCRzdGF0ZSkge1xuICAgICAgfiAuY3VzdG9tLWZpbGUtbGFiZWwge1xuICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgIH1cblxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIH4gLmN1c3RvbS1maWxlLWxhYmVsIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAkaW5wdXQtZm9jdXMtd2lkdGggcmdiYSgkY29sb3IsIC4yNSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIi8vIFRhYmxlc1xuXG5AbWl4aW4gdGFibGUtcm93LXZhcmlhbnQoJHN0YXRlLCAkYmFja2dyb3VuZCwgJGJvcmRlcjogbnVsbCkge1xuICAvLyBFeGFjdCBzZWxlY3RvcnMgYmVsb3cgcmVxdWlyZWQgdG8gb3ZlcnJpZGUgYC50YWJsZS1zdHJpcGVkYCBhbmQgcHJldmVudFxuICAvLyBpbmhlcml0YW5jZSB0byBuZXN0ZWQgdGFibGVzLlxuICAudGFibGUtI3skc3RhdGV9IHtcbiAgICAmLFxuICAgID4gdGgsXG4gICAgPiB0ZCB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICBAaWYgJGJvcmRlciAhPSBudWxsIHtcbiAgICAgIHRoLFxuICAgICAgdGQsXG4gICAgICB0aGVhZCB0aCxcbiAgICAgIHRib2R5ICsgdGJvZHkge1xuICAgICAgICBib3JkZXItY29sb3I6ICRib3JkZXI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVzIGZvciBgLnRhYmxlLWhvdmVyYFxuICAvLyBOb3RlOiB0aGlzIGlzIG5vdCBhdmFpbGFibGUgZm9yIGNlbGxzIG9yIHJvd3Mgd2l0aGluIGB0aGVhZGAgb3IgYHRmb290YC5cbiAgLnRhYmxlLWhvdmVyIHtcbiAgICAkaG92ZXItYmFja2dyb3VuZDogZGFya2VuKCRiYWNrZ3JvdW5kLCA1JSk7XG5cbiAgICAudGFibGUtI3skc3RhdGV9IHtcbiAgICAgIEBpbmNsdWRlIGhvdmVyKCkge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItYmFja2dyb3VuZDtcblxuICAgICAgICA+IHRkLFxuICAgICAgICA+IHRoIHtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkaG92ZXItYmFja2dyb3VuZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG5cbi8vIENvbnRleHR1YWwgYmFja2dyb3VuZHNcblxuQG1peGluIGJnLXZhcmlhbnQoJHBhcmVudCwgJGNvbG9yLCAkaWdub3JlLXdhcm5pbmc6IGZhbHNlKSB7XG4gICN7JHBhcmVudH0ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb2xvciAhaW1wb3J0YW50O1xuICB9XG4gIGEjeyRwYXJlbnR9LFxuICBidXR0b24jeyRwYXJlbnR9IHtcbiAgICBAaW5jbHVkZSBob3Zlci1mb2N1cygpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IGRhcmtlbigkY29sb3IsIDEwJSkgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgZGVwcmVjYXRlKFwiVGhlIGBiZy12YXJpYW50YCBtaXhpblwiLCBcInY0LjQuMFwiLCBcInY1XCIsICRpZ25vcmUtd2FybmluZyk7XG59XG5cbkBtaXhpbiBiZy1ncmFkaWVudC12YXJpYW50KCRwYXJlbnQsICRjb2xvciwgJGlnbm9yZS13YXJuaW5nOiBmYWxzZSkge1xuICAjeyRwYXJlbnR9IHtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3IgbGluZWFyLWdyYWRpZW50KDE4MGRlZywgbWl4KCRib2R5LWJnLCAkY29sb3IsIDE1JSksICRjb2xvcikgcmVwZWF0LXggIWltcG9ydGFudDtcbiAgfVxuICBAaW5jbHVkZSBkZXByZWNhdGUoXCJUaGUgYGJnLWdyYWRpZW50LXZhcmlhbnRgIG1peGluXCIsIFwidjQuNS4wXCIsIFwidjVcIiwgJGlnbm9yZS13YXJuaW5nKTtcbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIHByb3BlcnR5LWRpc2FsbG93ZWQtbGlzdFxuLy8gU2luZ2xlIHNpZGUgYm9yZGVyLXJhZGl1c1xuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gcmVwbGFjZSBuZWdhdGl2ZSB2YWx1ZXMgd2l0aCAwXG5AZnVuY3Rpb24gdmFsaWQtcmFkaXVzKCRyYWRpdXMpIHtcbiAgJHJldHVybjogKCk7XG4gIEBlYWNoICR2YWx1ZSBpbiAkcmFkaXVzIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IG51bWJlciB7XG4gICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgbWF4KCR2YWx1ZSwgMCkpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sICR2YWx1ZSk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJHJldHVybjtcbn1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMsICRmYWxsYmFjay1ib3JkZXItcmFkaXVzOiBmYWxzZSkge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbiAgQGVsc2UgaWYgJGZhbGxiYWNrLWJvcmRlci1yYWRpdXMgIT0gZmFsc2Uge1xuICAgIGJvcmRlci1yYWRpdXM6ICRmYWxsYmFjay1ib3JkZXItcmFkaXVzO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItdG9wLWxlZnQtcmFkaXVzKCRyYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItdG9wLXJpZ2h0LXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzKCRyYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cygkcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuIiwiQG1peGluIGJveC1zaGFkb3coJHNoYWRvdy4uLikge1xuICBAaWYgJGVuYWJsZS1zaGFkb3dzIHtcbiAgICAkcmVzdWx0OiAoKTtcblxuICAgIEBpZiAobGVuZ3RoKCRzaGFkb3cpID09IDEpIHtcbiAgICAgIC8vIFdlIGNhbiBwYXNzIGBAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO2BcbiAgICAgICRyZXN1bHQ6ICRzaGFkb3c7XG4gICAgfSBAZWxzZSB7XG4gICAgICAvLyBGaWx0ZXIgdG8gYXZvaWQgaW52YWxpZCBwcm9wZXJ0aWVzIGZvciBleGFtcGxlIGBib3gtc2hhZG93OiBub25lLCAxcHggMXB4IGJsYWNrO2BcbiAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCRzaGFkb3cpIHtcbiAgICAgICAgQGlmIG50aCgkc2hhZG93LCAkaSkgIT0gXCJub25lXCIge1xuICAgICAgICAgICRyZXN1bHQ6IGFwcGVuZCgkcmVzdWx0LCBudGgoJHNoYWRvdywgJGkpLCBcImNvbW1hXCIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIEBpZiAobGVuZ3RoKCRyZXN1bHQpID4gMCkge1xuICAgICAgYm94LXNoYWRvdzogJHJlc3VsdDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEdyYWRpZW50c1xuXG5AbWl4aW4gZ3JhZGllbnQtYmcoJGNvbG9yKSB7XG4gIEBpZiAkZW5hYmxlLWdyYWRpZW50cyB7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yIGxpbmVhci1ncmFkaWVudCgxODBkZWcsIG1peCgkYm9keS1iZywgJGNvbG9yLCAxNSUpLCAkY29sb3IpIHJlcGVhdC14O1xuICB9IEBlbHNlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY29sb3I7XG4gIH1cbn1cblxuLy8gSG9yaXpvbnRhbCBncmFkaWVudCwgZnJvbSBsZWZ0IHRvIHJpZ2h0XG4vL1xuLy8gQ3JlYXRlcyB0d28gY29sb3Igc3RvcHMsIHN0YXJ0IGFuZCBlbmQsIGJ5IHNwZWNpZnlpbmcgYSBjb2xvciBhbmQgcG9zaXRpb24gZm9yIGVhY2ggY29sb3Igc3RvcC5cbkBtaXhpbiBncmFkaWVudC14KCRzdGFydC1jb2xvcjogJGdyYXktNzAwLCAkZW5kLWNvbG9yOiAkZ3JheS04MDAsICRzdGFydC1wZXJjZW50OiAwJSwgJGVuZC1wZXJjZW50OiAxMDAlKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yICRzdGFydC1wZXJjZW50LCAkZW5kLWNvbG9yICRlbmQtcGVyY2VudCk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cblxuLy8gVmVydGljYWwgZ3JhZGllbnQsIGZyb20gdG9wIHRvIGJvdHRvbVxuLy9cbi8vIENyZWF0ZXMgdHdvIGNvbG9yIHN0b3BzLCBzdGFydCBhbmQgZW5kLCBieSBzcGVjaWZ5aW5nIGEgY29sb3IgYW5kIHBvc2l0aW9uIGZvciBlYWNoIGNvbG9yIHN0b3AuXG5AbWl4aW4gZ3JhZGllbnQteSgkc3RhcnQtY29sb3I6ICRncmF5LTcwMCwgJGVuZC1jb2xvcjogJGdyYXktODAwLCAkc3RhcnQtcGVyY2VudDogMCUsICRlbmQtcGVyY2VudDogMTAwJSkge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQodG8gYm90dG9tLCAkc3RhcnQtY29sb3IgJHN0YXJ0LXBlcmNlbnQsICRlbmQtY29sb3IgJGVuZC1wZXJjZW50KTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdC14O1xufVxuXG5AbWl4aW4gZ3JhZGllbnQtZGlyZWN0aW9uYWwoJHN0YXJ0LWNvbG9yOiAkZ3JheS03MDAsICRlbmQtY29sb3I6ICRncmF5LTgwMCwgJGRlZzogNDVkZWcpIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KCRkZWcsICRzdGFydC1jb2xvciwgJGVuZC1jb2xvcik7XG4gIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQteDtcbn1cbkBtaXhpbiBncmFkaWVudC14LXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICRibHVlLCAkbWlkLWNvbG9yOiAkcHVycGxlLCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAkcmVkKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgJHN0YXJ0LWNvbG9yLCAkbWlkLWNvbG9yICRjb2xvci1zdG9wLCAkZW5kLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbn1cbkBtaXhpbiBncmFkaWVudC15LXRocmVlLWNvbG9ycygkc3RhcnQtY29sb3I6ICRibHVlLCAkbWlkLWNvbG9yOiAkcHVycGxlLCAkY29sb3Itc3RvcDogNTAlLCAkZW5kLWNvbG9yOiAkcmVkKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCgkc3RhcnQtY29sb3IsICRtaWQtY29sb3IgJGNvbG9yLXN0b3AsICRlbmQtY29sb3IpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuQG1peGluIGdyYWRpZW50LXJhZGlhbCgkaW5uZXItY29sb3I6ICRncmF5LTcwMCwgJG91dGVyLWNvbG9yOiAkZ3JheS04MDApIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGNpcmNsZSwgJGlubmVyLWNvbG9yLCAkb3V0ZXItY29sb3IpO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xufVxuQG1peGluIGdyYWRpZW50LXN0cmlwZWQoJGNvbG9yOiByZ2JhKCR3aGl0ZSwgLjE1KSwgJGFuZ2xlOiA0NWRlZykge1xuICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoJGFuZ2xlLCAkY29sb3IgMjUlLCB0cmFuc3BhcmVudCAyNSUsIHRyYW5zcGFyZW50IDUwJSwgJGNvbG9yIDUwJSwgJGNvbG9yIDc1JSwgdHJhbnNwYXJlbnQgNzUlLCB0cmFuc3BhcmVudCk7XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBwcm9wZXJ0eS1kaXNhbGxvd2VkLWxpc3RcbkBtaXhpbiB0cmFuc2l0aW9uKCR0cmFuc2l0aW9uLi4uKSB7XG4gIEBpZiBsZW5ndGgoJHRyYW5zaXRpb24pID09IDAge1xuICAgICR0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbi1iYXNlO1xuICB9XG5cbiAgQGlmIGxlbmd0aCgkdHJhbnNpdGlvbikgPiAxIHtcbiAgICBAZWFjaCAkdmFsdWUgaW4gJHRyYW5zaXRpb24ge1xuICAgICAgQGlmICR2YWx1ZSA9PSBudWxsIG9yICR2YWx1ZSA9PSBub25lIHtcbiAgICAgICAgQHdhcm4gXCJUaGUga2V5d29yZCAnbm9uZScgb3IgJ251bGwnIG11c3QgYmUgdXNlZCBhcyBhIHNpbmdsZSBhcmd1bWVudC5cIjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGVuYWJsZS10cmFuc2l0aW9ucyB7XG4gICAgQGlmIG50aCgkdHJhbnNpdGlvbiwgMSkgIT0gbnVsbCB7XG4gICAgICB0cmFuc2l0aW9uOiAkdHJhbnNpdGlvbjtcbiAgICB9XG5cbiAgICBAaWYgJGVuYWJsZS1wcmVmZXJzLXJlZHVjZWQtbW90aW9uLW1lZGlhLXF1ZXJ5IGFuZCBudGgoJHRyYW5zaXRpb24sIDEpICE9IG51bGwgYW5kIG50aCgkdHJhbnNpdGlvbiwgMSkgIT0gbm9uZSB7XG4gICAgICBAbWVkaWEgKHByZWZlcnMtcmVkdWNlZC1tb3Rpb246IHJlZHVjZSkge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQG1peGluIGNsZWFyZml4KCkge1xuICAmOjphZnRlciB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgY29udGVudDogXCJcIjtcbiAgfVxufVxuIiwiLy8gRnJhbWV3b3JrIGdyaWQgZ2VuZXJhdGlvblxuLy9cbi8vIFVzZWQgb25seSBieSBCb290c3RyYXAgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIGdyaWQgY2xhc3NlcyBnaXZlblxuLy8gYW55IHZhbHVlIG9mIGAkZ3JpZC1jb2x1bW5zYC5cblxuQG1peGluIG1ha2UtZ3JpZC1jb2x1bW5zKCRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zLCAkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgLy8gQ29tbW9uIHByb3BlcnRpZXMgZm9yIGFsbCBicmVha3BvaW50c1xuICAlZ3JpZC1jb2x1bW4ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAkZ3V0dGVyIC8gMjtcbiAgICBwYWRkaW5nLWxlZnQ6ICRndXR0ZXIgLyAyO1xuICB9XG5cbiAgQGVhY2ggJGJyZWFrcG9pbnQgaW4gbWFwLWtleXMoJGJyZWFrcG9pbnRzKSB7XG4gICAgJGluZml4OiBicmVha3BvaW50LWluZml4KCRicmVha3BvaW50LCAkYnJlYWtwb2ludHMpO1xuXG4gICAgQGlmICRjb2x1bW5zID4gMCB7XG4gICAgICAvLyBBbGxvdyBjb2x1bW5zIHRvIHN0cmV0Y2ggZnVsbCB3aWR0aCBiZWxvdyB0aGVpciBicmVha3BvaW50c1xuICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29sdW1ucyB7XG4gICAgICAgIC5jb2wjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgIEBleHRlbmQgJWdyaWQtY29sdW1uO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmNvbCN7JGluZml4fSxcbiAgICAuY29sI3skaW5maXh9LWF1dG8ge1xuICAgICAgQGV4dGVuZCAlZ3JpZC1jb2x1bW47XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICAvLyBQcm92aWRlIGJhc2ljIGAuY29sLXticH1gIGNsYXNzZXMgZm9yIGVxdWFsLXdpZHRoIGZsZXhib3ggY29sdW1uc1xuICAgICAgLmNvbCN7JGluZml4fSB7XG4gICAgICAgIGZsZXgtYmFzaXM6IDA7XG4gICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgfVxuXG4gICAgICBAaWYgJGdyaWQtcm93LWNvbHVtbnMgPiAwIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkZ3JpZC1yb3ctY29sdW1ucyB7XG4gICAgICAgICAgLnJvdy1jb2xzI3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHJvdy1jb2xzKCRpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLmNvbCN7JGluZml4fS1hdXRvIHtcbiAgICAgICAgQGluY2x1ZGUgbWFrZS1jb2wtYXV0bygpO1xuICAgICAgfVxuXG4gICAgICBAaWYgJGNvbHVtbnMgPiAwIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29sdW1ucyB7XG4gICAgICAgICAgLmNvbCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbCgkaSwgJGNvbHVtbnMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAub3JkZXIjeyRpbmZpeH0tZmlyc3QgeyBvcmRlcjogLTE7IH1cblxuICAgICAgLm9yZGVyI3skaW5maXh9LWxhc3QgeyBvcmRlcjogJGNvbHVtbnMgKyAxOyB9XG5cbiAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJGNvbHVtbnMge1xuICAgICAgICAub3JkZXIjeyRpbmZpeH0tI3skaX0geyBvcmRlcjogJGk7IH1cbiAgICAgIH1cblxuICAgICAgQGlmICRjb2x1bW5zID4gMCB7XG4gICAgICAgIC8vIGAkY29sdW1ucyAtIDFgIGJlY2F1c2Ugb2Zmc2V0dGluZyBieSB0aGUgd2lkdGggb2YgYW4gZW50aXJlIHJvdyBpc24ndCBwb3NzaWJsZVxuICAgICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICgkY29sdW1ucyAtIDEpIHtcbiAgICAgICAgICBAaWYgbm90ICgkaW5maXggPT0gXCJcIiBhbmQgJGkgPT0gMCkgeyAvLyBBdm9pZCBlbWl0dGluZyB1c2VsZXNzIC5vZmZzZXQtMFxuICAgICAgICAgICAgLm9mZnNldCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1ha2UtY29sLW9mZnNldCgkaSwgJGNvbHVtbnMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8vIEdyaWQgc3lzdGVtXG4vL1xuLy8gR2VuZXJhdGUgc2VtYW50aWMgZ3JpZCBjb2x1bW5zIHdpdGggdGhlc2UgbWl4aW5zLlxuXG5AbWl4aW4gbWFrZS1jb250YWluZXIoJGd1dHRlcjogJGdyaWQtZ3V0dGVyLXdpZHRoKSB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAkZ3V0dGVyIC8gMjtcbiAgcGFkZGluZy1sZWZ0OiAkZ3V0dGVyIC8gMjtcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbn1cblxuQG1peGluIG1ha2Utcm93KCRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCkge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIG1hcmdpbi1yaWdodDogLSRndXR0ZXIgLyAyO1xuICBtYXJnaW4tbGVmdDogLSRndXR0ZXIgLyAyO1xufVxuXG4vLyBGb3IgZWFjaCBicmVha3BvaW50LCBkZWZpbmUgdGhlIG1heGltdW0gd2lkdGggb2YgdGhlIGNvbnRhaW5lciBpbiBhIG1lZGlhIHF1ZXJ5XG5AbWl4aW4gbWFrZS1jb250YWluZXItbWF4LXdpZHRocygkbWF4LXdpZHRoczogJGNvbnRhaW5lci1tYXgtd2lkdGhzLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gIEBlYWNoICRicmVha3BvaW50LCAkY29udGFpbmVyLW1heC13aWR0aCBpbiAkbWF4LXdpZHRocyB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBtYXgtd2lkdGg6ICRjb250YWluZXItbWF4LXdpZHRoO1xuICAgIH1cbiAgfVxuICBAaW5jbHVkZSBkZXByZWNhdGUoXCJUaGUgYG1ha2UtY29udGFpbmVyLW1heC13aWR0aHNgIG1peGluXCIsIFwidjQuNS4yXCIsIFwidjVcIik7XG59XG5cbkBtaXhpbiBtYWtlLWNvbC1yZWFkeSgkZ3V0dGVyOiAkZ3JpZC1ndXR0ZXItd2lkdGgpIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvLyBQcmV2ZW50IGNvbHVtbnMgZnJvbSBiZWNvbWluZyB0b28gbmFycm93IHdoZW4gYXQgc21hbGxlciBncmlkIHRpZXJzIGJ5XG4gIC8vIGFsd2F5cyBzZXR0aW5nIGB3aWR0aDogMTAwJTtgLiBUaGlzIHdvcmtzIGJlY2F1c2Ugd2UgdXNlIGBmbGV4YCB2YWx1ZXNcbiAgLy8gbGF0ZXIgb24gdG8gb3ZlcnJpZGUgdGhpcyBpbml0aWFsIHdpZHRoLlxuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogJGd1dHRlciAvIDI7XG4gIHBhZGRpbmctbGVmdDogJGd1dHRlciAvIDI7XG59XG5cbkBtaXhpbiBtYWtlLWNvbCgkc2l6ZSwgJGNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgZmxleDogMCAwIHBlcmNlbnRhZ2UoJHNpemUgLyAkY29sdW1ucyk7XG4gIC8vIEFkZCBhIGBtYXgtd2lkdGhgIHRvIGVuc3VyZSBjb250ZW50IHdpdGhpbiBlYWNoIGNvbHVtbiBkb2VzIG5vdCBibG93IG91dFxuICAvLyB0aGUgd2lkdGggb2YgdGhlIGNvbHVtbi4gQXBwbGllcyB0byBJRTEwKyBhbmQgRmlyZWZveC4gQ2hyb21lIGFuZCBTYWZhcmlcbiAgLy8gZG8gbm90IGFwcGVhciB0byByZXF1aXJlIHRoaXMuXG4gIG1heC13aWR0aDogcGVyY2VudGFnZSgkc2l6ZSAvICRjb2x1bW5zKTtcbn1cblxuQG1peGluIG1ha2UtY29sLWF1dG8oKSB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICB3aWR0aDogYXV0bztcbiAgbWF4LXdpZHRoOiAxMDAlOyAvLyBSZXNldCBlYXJsaWVyIGdyaWQgdGllcnNcbn1cblxuQG1peGluIG1ha2UtY29sLW9mZnNldCgkc2l6ZSwgJGNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgJG51bTogJHNpemUgLyAkY29sdW1ucztcbiAgbWFyZ2luLWxlZnQ6IGlmKCRudW0gPT0gMCwgMCwgcGVyY2VudGFnZSgkbnVtKSk7XG59XG5cbi8vIFJvdyBjb2x1bW5zXG4vL1xuLy8gU3BlY2lmeSBvbiBhIHBhcmVudCBlbGVtZW50KGUuZy4sIC5yb3cpIHRvIGZvcmNlIGltbWVkaWF0ZSBjaGlsZHJlbiBpbnRvIE5OXG4vLyBudW1iZXJvZiBjb2x1bW5zLiBTdXBwb3J0cyB3cmFwcGluZyB0byBuZXcgbGluZXMsIGJ1dCBkb2VzIG5vdCBkbyBhIE1hc29ucnlcbi8vIHN0eWxlIGdyaWQuXG5AbWl4aW4gcm93LWNvbHMoJGNvdW50KSB7XG4gID4gKiB7XG4gICAgZmxleDogMCAwIDEwMCUgLyAkY291bnQ7XG4gICAgbWF4LXdpZHRoOiAxMDAlIC8gJGNvdW50O1xuICB9XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBkZWNsYXJhdGlvbi1uby1pbXBvcnRhbnRcblxuQG1peGluIGZsb2F0LWxlZnQoKSB7XG4gIGZsb2F0OiBsZWZ0ICFpbXBvcnRhbnQ7XG4gIEBpbmNsdWRlIGRlcHJlY2F0ZShcIlRoZSBgZmxvYXQtbGVmdGAgbWl4aW5cIiwgXCJ2NC4zLjBcIiwgXCJ2NVwiKTtcbn1cbkBtaXhpbiBmbG9hdC1yaWdodCgpIHtcbiAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gIEBpbmNsdWRlIGRlcHJlY2F0ZShcIlRoZSBgZmxvYXQtcmlnaHRgIG1peGluXCIsIFwidjQuMy4wXCIsIFwidjVcIik7XG59XG5AbWl4aW4gZmxvYXQtbm9uZSgpIHtcbiAgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDtcbiAgQGluY2x1ZGUgZGVwcmVjYXRlKFwiVGhlIGBmbG9hdC1ub25lYCBtaXhpblwiLCBcInY0LjMuMFwiLCBcInY1XCIpO1xufVxuIiwiLyoqXG4qIE1peGluc1xuKi9cblxuLyoqXG4gKiBTdHlsZSBpbm5lciBTVkdcbiAqIEByZXR1cm4ge1t0eXBlXX0gW2Rlc2NyaXB0aW9uXVxuICovXG5AbWl4aW4gc3R5bGVJbm5lclN2ZygpIHtcblx0cG9seWdvbixcblx0cG9seWxpbmUsXG5cdHNxdWFyZSxcblx0cmVjdCxcblx0Y2lyY2xlLFxuXHR0ZXh0LFxuXHRwYXRoIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG5AZnVuY3Rpb24gc3RyaXAtdW5pdCgkbnVtYmVyKSB7XG5cdEBpZiB0eXBlLW9mKCRudW1iZXIpID09ICdudW1iZXInIGFuZCBub3QgdW5pdGxlc3MoJG51bWJlcikge1xuXHRcdEByZXR1cm4gJG51bWJlciAvICgkbnVtYmVyICogMCArIDEpO1xuXHR9XG5cdEByZXR1cm4gJG51bWJlcjtcbn1cblxuQG1peGluIGtleWZyYW1lcygkYW5pbWF0aW9uX25hbWUpIHtcblx0QC13ZWJraXQta2V5ZnJhbWVzICN7JGFuaW1hdGlvbl9uYW1lfSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cblxuXHRALW1vei1rZXlmcmFtZXMgI3skYW5pbWF0aW9uX25hbWV9IHtcblx0XHRAY29udGVudDtcblx0fVxuXG5cdEAtby1rZXlmcmFtZXMgI3skYW5pbWF0aW9uX25hbWV9IHtcblx0XHRAY29udGVudDtcblx0fVxuXG5cdEBrZXlmcmFtZXMgI3skYW5pbWF0aW9uX25hbWV9IHtcblx0XHRAY29udGVudDtcblx0fVxufVxuXG4vKipcbiAqIEBwYXJhbSAkYW5pbWF0aW9uIEFuaW1hdGlvbiBwcm9wZXJ0aWVzOiBuYW1lIGR1cmF0aW9uIHRpbWluZy1mdW5jdGlvbiBkZWxheSBpdGVyYXRpb24tY291bnQgZGlyZWN0aW9uIGZpbGwtbW9kZSBwbGF5LXN0YXRlO1xuICovXG5AbWl4aW4gYW5pbWF0aW9uKCRhbmltYXRpb24pIHtcblx0LXdlYmtpdC1hbmltYXRpb246ICRhbmltYXRpb247XG5cdC1tb3otYW5pbWF0aW9uOiAkYW5pbWF0aW9uO1xuXHQtby1hbmltYXRpb246ICRhbmltYXRpb247XG5cdGFuaW1hdGlvbjogJGFuaW1hdGlvbjtcblxuXHQtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmQ7XG5cdC1tb3otYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZDtcblx0LW8tYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZDtcblx0YW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZDtcbn1cblxuLyoqXG4gKiBAcGFyYW0gJHdpZHRoIEV4dHJhIGJyZWFrcG9pbnQgd2lkdGhcbiAqL1xuQG1peGluIGJyZWFrcG9pbnQtdXAoJHdpZHRoKSB7XG5cdEBtZWRpYSAobWluLXdpZHRoOiAkd2lkdGgpIHtcblx0XHRAY29udGVudDtcblx0fVxufVxuQG1peGluIGJyZWFrcG9pbnQtZG93bigkd2lkdGgpIHtcblx0QG1lZGlhIChtYXgtd2lkdGg6ICR3aWR0aCkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5AbWl4aW4gYnJlYWtwb2ludC1oLXVwKCR3aWR0aCkge1xuXHRAbWVkaWEgKG1pbi1oZWlnaHQ6ICR3aWR0aCkge1xuXHRcdEBjb250ZW50O1xuXHR9XG59XG5AbWl4aW4gYnJlYWtwb2ludC1oLWRvd24oJHdpZHRoKSB7XG5cdEBtZWRpYSAobWF4LWhlaWdodDogJHdpZHRoKSB7XG5cdFx0QGNvbnRlbnQ7XG5cdH1cbn1cblxuLyoqIEJvb3RzdHJhcCBidXR0b24gYmFzZSAqL1xuQG1peGluIGJ0bigpIHtcblx0ZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXHRmb250LWZhbWlseTogJGJ0bi1mb250LWZhbWlseTtcblx0Zm9udC13ZWlnaHQ6ICRidG4tZm9udC13ZWlnaHQ7XG5cdGNvbG9yOiAkYm9keS1jb2xvcjtcblx0dGV4dC1hbGlnbjogY2VudGVyO1xuXHR0ZXh0LWRlY29yYXRpb246IGlmKCRsaW5rLWRlY29yYXRpb24gPT0gbm9uZSwgbnVsbCwgbm9uZSk7XG5cdHdoaXRlLXNwYWNlOiAkYnRuLXdoaXRlLXNwYWNlO1xuXHR2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuXHR1c2VyLXNlbGVjdDogbm9uZTtcblx0YmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cdGJvcmRlcjogJGJ0bi1ib3JkZXItd2lkdGggc29saWQgdHJhbnNwYXJlbnQ7XG5cdEBpbmNsdWRlIGJ1dHRvbi1zaXplKCRidG4tcGFkZGluZy15LCAkYnRuLXBhZGRpbmcteCwgJGJ0bi1mb250LXNpemUsICRidG4tbGluZS1oZWlnaHQsICRidG4tYm9yZGVyLXJhZGl1cyk7XG5cdEBpbmNsdWRlIHRyYW5zaXRpb24oJGJ0bi10cmFuc2l0aW9uKTtcblx0QGluY2x1ZGUgaG92ZXIoKSB7XG5cdFx0Y29sb3I6ICRib2R5LWNvbG9yO1xuXHRcdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0fVxuXG5cdCY6Zm9jdXMsXG5cdCYuZm9jdXMge1xuXHRcdG91dGxpbmU6IDA7XG5cdFx0Ym94LXNoYWRvdzogJGJ0bi1mb2N1cy1ib3gtc2hhZG93O1xuXHR9XG5cdCYuZGlzYWJsZWQsXG5cdCY6ZGlzYWJsZWQge1xuXHRcdG9wYWNpdHk6ICRidG4tZGlzYWJsZWQtb3BhY2l0eTtcblx0XHRAaW5jbHVkZSBib3gtc2hhZG93KG5vbmUpO1xuXHR9XG5cdCY6bm90KDpkaXNhYmxlZCk6bm90KC5kaXNhYmxlZCkge1xuXHRcdGN1cnNvcjogaWYoJGVuYWJsZS1wb2ludGVyLWN1cnNvci1mb3ItYnV0dG9ucywgcG9pbnRlciwgbnVsbCk7XG5cdFx0JjphY3RpdmUsXG5cdFx0Ji5hY3RpdmUge1xuXHRcdFx0QGluY2x1ZGUgYm94LXNoYWRvdygkYnRuLWFjdGl2ZS1ib3gtc2hhZG93KTtcblxuXHRcdFx0Jjpmb2N1cyB7XG5cdFx0XHRcdEBpbmNsdWRlIGJveC1zaGFkb3coJGJ0bi1mb2N1cy1ib3gtc2hhZG93LCAkYnRuLWFjdGl2ZS1ib3gtc2hhZG93KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cbn1cblxuLyoqIFR5cG8gc2V0dGluZyAqL1xuQG1peGluIHR5cG8oJGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlLCAkbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlLCAkbGV0dGVyLXNwYWNpbmc6IG5vcm1hbCkge1xuXHRAaW5jbHVkZSBmb250LXNpemUoJGZvbnQtc2l6ZSk7XG5cdGxpbmUtaGVpZ2h0OiAkbGluZS1oZWlnaHQ7XG5cdEBpZiAoJGxldHRlci1zcGFjaW5nICE9IDApIHtcblx0XHRsZXR0ZXItc3BhY2luZzogJGxldHRlci1zcGFjaW5nO1xuXHR9XG59XG5cbi8qKiBBbmltYXRlZCB1bmRlcmxpbmUgKi9cbkBtaXhpbiB1bmRlcmxpbmVkKCRkZWxheTogMHMsICRib3R0b206IDAuNWVtKSB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMTtcblx0dGV4dC1zaGFkb3c6IC0xcHggMXB4IDAgJHdoaXRlO1xuXHQmOjpiZWZvcmUge1xuXHRcdGNvbnRlbnQ6ICcnO1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRib3R0b206ICRib3R0b207XG5cdFx0bGVmdDogMDtcblx0XHRyaWdodDogMDtcblx0XHR6LWluZGV4OiAtMTtcblx0XHRoZWlnaHQ6IDA7XG5cdFx0Ym9yZGVyLWJvdHRvbTogMXB4IHNvbGlkO1xuXHRcdHRyYW5zZm9ybS1vcmlnaW46IGxlZnQgY2VudGVyO1xuXHRcdHRyYW5zZm9ybTogc2NhbGUoMCwgMSk7XG5cdFx0dHJhbnNpdGlvbjogdHJhbnNmb3JtIC4zcyBlYXNlLWluLW91dCAkZGVsYXk7XG5cdFx0d2lsbC1jaGFuZ2U6IHRyYW5zZm9ybTtcblx0fVxuXHRAaW5jbHVkZSB1bmRlcmxpbmVkLWluYWN0aXZlKCRkZWxheSk7XG59XG5AbWl4aW4gdW5kZXJsaW5lZC1yaWdodCgpIHtcblx0Jjo6YmVmb3JlIHtcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOiByaWdodCBjZW50ZXI7XG5cdH1cbn1cbkBtaXhpbiB1bmRlcmxpbmVkLWFjdGl2ZSgkZGVsYXk6IDBzKSB7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblx0Jjo6YmVmb3JlIHtcblx0XHR0cmFuc2Zvcm06IHNjYWxlKDEsIDEpO1xuXHRcdHRyYW5zaXRpb24tZGVsYXk6ICRkZWxheTtcblx0fVxufVxuQG1peGluIHVuZGVybGluZWQtaW5hY3RpdmUoJGRlbGF5OiAwcykge1xuXHQmOjpiZWZvcmUge1xuXHRcdHRyYW5zZm9ybTogc2NhbGUoMCwgMSk7XG5cdFx0dHJhbnNpdGlvbi1kZWxheTogJGRlbGF5O1xuXHR9XG59XG5cbi8vIENvbnRlbnQgd2lkdGhcbkBtaXhpbiBuYXJyb3dDb250ZW50KCkge1xuXHRtYXJnaW4tbGVmdDogdmFyKC0tY29udGFpbmVyLW1hcmdpbik7XG5cdG1hcmdpbi1yaWdodDogdmFyKC0tY29udGFpbmVyLW1hcmdpbik7XG5cdEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcblx0XHRtYXJnaW4tbGVmdDogY2FsYyh2YXIoLS1jb250YWluZXItbWFyZ2luKSArIHZhcigtLWNvbnRhaW5lci13aWR0aCkgLyAxMik7XG5cdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvbnRhaW5lci1tYXJnaW4pICsgdmFyKC0tY29udGFpbmVyLXdpZHRoKSAvIDEyKTtcblx0fVxuXHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKGxnKSB7XG5cdFx0bWFyZ2luLWxlZnQ6IGNhbGModmFyKC0tY29udGFpbmVyLW1hcmdpbikgKyAyICogdmFyKC0tY29udGFpbmVyLXdpZHRoKSAvIDEyKTtcblx0XHRtYXJnaW4tcmlnaHQ6IGNhbGModmFyKC0tY29udGFpbmVyLW1hcmdpbikgKyAyICogdmFyKC0tY29udGFpbmVyLXdpZHRoKSAvIDEyKTtcblx0fVxuXHRAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKHh4bCkge1xuXHRcdG1hcmdpbi1sZWZ0OiBjYWxjKHZhcigtLWNvbnRhaW5lci1tYXJnaW4pICsgMyAqIHZhcigtLWNvbnRhaW5lci13aWR0aCkgLyAxMik7XG5cdFx0bWFyZ2luLXJpZ2h0OiBjYWxjKHZhcigtLWNvbnRhaW5lci1tYXJnaW4pICsgMyAqIHZhcigtLWNvbnRhaW5lci13aWR0aCkgLyAxMik7XG5cdH1cbn0iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUNGSDs7R0FFRztBQ0ZIOztHQUVHO0FBRUgsWUFBWTtBQUlaOzs7R0FHRztBQWtCSCxhQUFhO0FBc0JiLG9CQUFvQjtBQU9wQixpQkFBaUI7QUFLakIsWUFBWTtBb0MvRFo7O0VBRUU7QUFFRjs7O0dBR0c7QUFzQ0g7O0dBRUc7QUFhSDs7R0FFRztBQXNCSCw0QkFBNEI7QUEyQzVCLG1CQUFtQjtBQVNuQix5QkFBeUI7QXRDbEl6QixBQUFBLGtCQUFrQixDQUFDO0VBQ2YsUUFBUSxFQUFFLE1BQU0sR0FJbkI7RUFMRCxBQUVJLGtCQUZjLENBRWQsYUFBYSxDQUFDO0lBQ1YsY0FBYyxFQUFFLElBQUksR0FDdkI7O0FBR0wsQUFBQSxXQUFXLENBQUM7RUFDUixtQkFBbUIsQ0FBQSxNQUFDO0VBQ3BCLE9BQU8sQ0FBQSxJQUFDO0VBYVIsS0FBSyxFQUFFLElBQUk7RUFDWCxXQUFXLEVBQUUsSUFBSTtFQUNqQixZQUFZLEVBQUUsaUJBQWlCLEdBK2pCbEM7RVFqaUJHLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSztJUi9DNUIsQUFBQSxXQUFXLENBQUM7TUFJSixPQUFPLENBQUEsRUFBQyxHQTRrQmY7RVFqaUJHLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTTtJUi9DN0IsQUFBQSxXQUFXLENBQUM7TUFPSixPQUFPLENBQUEsSUFBQyxHQXlrQmY7RVFqaUJHLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTTtJUi9DN0IsQUFBQSxX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 */
