/* Converts pixels to em. */
/* String Replace */
/* Font Face */
/* Main theme's variables definitions. */
/* Typography vars */
/* Font stacks */
/* Font weights */
/* Generic font sizes */
/* Theme general color sets */
/* Breakpoints definitions */
/* Grid variables */
/* Vendor variables */
/* Timing functions */
/* Susy grid system settings */
/* Define breakpoints. */

.container {
  max-width: 100%;
  margin-left: 20px;
  margin-right: 20px; }
  
  .container:after {
    content: " ";
    display: block;
    clear: both; }
  @media (min-width: 48em) {
    
    .container {
      max-width: 100%;
      margin-left: 74px;
      margin-right: 74px; }
      
      .container:after {
        content: " ";
        display: block;
        clear: both; } }
  @media (min-width: 64em) {
    
    .container {
      max-width: 100%;
      margin-left: 102px;
      margin-right: 102px; }
      
      .container:after {
        content: " ";
        display: block;
        clear: both; } }
  @media (min-width: 75.6875em) {
    
    .container {
      max-width: 1171px;
      margin-left: auto;
      margin-right: auto; }
      
      .container:after {
        content: " ";
        display: block;
        clear: both; } }


.container--narrow {
  max-width: 100%;
  margin-left: 20px;
  margin-right: 20px; }
  
  .container--narrow:after {
    content: " ";
    display: block;
    clear: both; }
  @media (min-width: 48em) {
    
    .container--narrow {
      margin: 0 auto;
      max-width: 620px; } }
  @media (min-width: 64em) {
    
    .container--narrow {
      max-width: 770px; } }


.container--1920 {
  margin: 0 auto;
  max-width: 1920px; }

/* Columns definitions */
@media (min-width: 48em) {
  .col-tablet-portrait-one-half {
    width: 48.83721%;
    float: left; }
    .col-tablet-portrait-one-half:nth-child(2n + 1) {
      margin-left: 0;
      margin-right: -100%;
      clear: both;
      margin-left: 0; }
    .col-tablet-portrait-one-half:nth-child(2n + 2) {
      margin-left: 51.16279%;
      margin-right: -100%;
      clear: none; } }

@media (min-width: 64em) {
  .col-tablet-landscape-one-half {
    width: 48.83721%;
    float: left; }
    .col-tablet-landscape-one-half:nth-child(2n + 1) {
      margin-left: 0;
      margin-right: -100%;
      clear: both;
      margin-left: 0; }
    .col-tablet-landscape-one-half:nth-child(2n + 2) {
      margin-left: 51.16279%;
      margin-right: -100%;
      clear: none; } }

@media (min-width: 75.6875em) {
  .col-desktop-one-third {
    width: 31.78295%;
    float: left; }
    .col-desktop-one-third:nth-child(3n + 1) {
      margin-left: 0;
      margin-right: -100%;
      clear: both;
      margin-left: 0; }
    .col-desktop-one-third:nth-child(3n + 2) {
      margin-left: 34.10853%;
      margin-right: -100%;
      clear: none; }
    .col-desktop-one-third:nth-child(3n + 3) {
      margin-left: 68.21705%;
      margin-right: -100%;
      clear: none; } }

@media (min-width: 48em) {
  .col-tablet-landscape-quarter {
    float: left;
    width: 25%; } }

/*
* sticky footer at bottom
* https://css-tricks.com/snippets/css/sticky-footer/
*/
@media (min-width: 64em) {
  html, body {
    height: 100%; }
  #page-wrapper {
    min-height: 100%;
    /* equal to footer height */
    margin-bottom: -78px; }
  #page-wrapper:after {
    content: "";
    display: block; }
  #page-wrapper:after {
    /* .push must be the same height as footer */
    height: 78px; } }

html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
  margin: 0;
  padding: 0;
  border: 0;
  font-family: inherit;
  font-size: 100%;
  vertical-align: baseline;
  font-weight: inherit;
  outline: 0 none;
  box-sizing: border-box; }

input, textarea, :before, :after {
  box-sizing: border-box; }

input, textarea, button {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none; }

input, textarea, button, select {
  margin: 0;
  padding: 0;
  border: 0;
  font-family: inherit;
  font-size: 100%;
  vertical-align: baseline;
  font-weight: inherit;
  outline: 0 none; }

audio,
canvas,
video {
  display: inline-block; }

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

caption, th, td {
  text-align: left;
  font-weight: normal;
  vertical-align: middle; }

q, blockquote {
  quotes: none; }

q:before, q:after, blockquote:before, blockquote:after {
  content: "";
  content: none; }

a img {
  border: none; }

article, aside, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, main {
  display: block; }

img {
  height: auto;
  font-size: 0;
  display: block; }

img, object, embed {
  max-width: 100%; }

svg:not(:root) {
  overflow: visible; }

/* Theme's font families init */
@font-face {
  font-family: "BlueSkyStandard";
  font-weight: normal;
  src: url("../fonts/BlueSkyStandard-Regular.ttf") format("truetype"), url("../fonts/BlueSkyStandard-Regular.eot?") format("eot"), url("../fonts/BlueSkyStandard-Regular.woff2") format("woff2"), url("../fonts/BlueSkyStandard-Regular.woff") format("woff"); }

@font-face {
  font-family: "BlueSkyStandard";
  font-style: italic;
  font-weight: normal;
  src: url("../fonts/BlueSkyStandard-RegularItalic.ttf") format("truetype"), url("../fonts/BlueSkyStandard-RegularItalic.eot?") format("eot"), url("../fonts/BlueSkyStandard-RegularItalic.woff2") format("woff2"), url("../fonts/BlueSkyStandard-RegularItalic.woff") format("woff"); }

@font-face {
  font-family: "BlueSkyStandard";
  font-weight: 300;
  src: url("../fonts/BlueSkyStandard-Light.ttf") format("truetype"), url("../fonts/BlueSkyStandard-Light.eot?") format("eot"), url("../fonts/BlueSkyStandard-Light.woff2") format("woff2"), url("../fonts/BlueSkyStandard-Light.woff") format("woff"); }

@font-face {
  font-family: "BlueSkyStandard";
  font-weight: 700;
  src: url("../fonts/BlueSkyStandard-Bold.ttf") format("truetype"), url("../fonts/BlueSkyStandard-Bold.eot?") format("eot"), url("../fonts/BlueSkyStandard-Bold.woff2") format("woff2"), url("../fonts/BlueSkyStandard-Bold.woff") format("woff"); }

/* base color CSS for fonts and backgrounds */
/* text colors */
.text--black {
  color: #000; }

.text-astronautblue {
  color: #05617e; }


.text--light-blue-gray {
  color: #b7e8ea; }


.text--turquoise-blue {
  color: #08bbc8; }


.text--blizzard-blue {
  color: #b4eaee; }


.text--duck-egg-blue {
  color: #e6fafa; }


.text--dark-navy-blue {
  color: #000f16; }


.text--med-navy-blue {
  color: #00263d; }


.text--ultra-light-blue {
  color: #e8f7f7; }


.text--light-blue {
  color: #b8e8eb; }


.text--primary-color {
  color: #000; }


.text--dusty-gray {
  color: #9b9b9b; }


.text--light-gray {
  color: #e3e3e3; }


.text--teal {
  color: #13d4c8; }


.text--white {
  color: #fff; }


.text--error {
  color: #FF231E; }


.text--red {
  color: #ff0000; }

/* background colors */

.background--aqua {
  background-color: #13d4c8; }


.background--light-blue-gray {
  background-color: #b7e8ea; }


.background--turquoise-blue {
  background-color: #08bbc8; }


.background--blizzard-blue {
  background-color: #b4eaee; }


.background--duck-egg-blue {
  background-color: #e6fafa; }


.background--dark-navy-blue {
  background-color: #000f16; }


.background--ultra-dark-navy {
  background-color: #001a29; }


.background--med-navy-blue {
  background-color: #00263d; }


.background--ultra-light-blue {
  background-color: #e8f7f7; }


.background--light-blue {
  background-color: #b8e8eb; }


.background--primary-color {
  background-color: #000; }


.background--dusty-gray {
  background-color: #9b9b9b; }


.background--ultra-light-gray {
  background-color: #f7f7f7; }


.background--light-gray {
  background-color: #e3e3e3; }


.background--teal {
  background-color: #13d4c8; }


.background--white {
  background-color: #fff; }

.background--black {
  background-color: #000; }

.background--gray {
  background-color: #53565a; }

/* Clearfix */
.clearfix:before, .clearfix:after {
  content: '';
  display: table; }

.clearfix:after {
  clear: both; }

/* Cover image, simulates background-size: cover for static images. */

.cover-image {
  left: 50%;
  max-width: inherit;
  min-height: 100%;
  min-width: 100%;
  position: absolute;
  top: 50%;
  -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%);
  width: inherit;
  z-index: -1; }


.centered {
  left: 50%;
  position: absolute;
  top: 50%;
  -ms-transform: translate(-50%, -50%);
      transform: translate(-50%, -50%); }

/* Visibility rules */
@media screen and (max-width: 47.9375em) {
  
  .hide-mobile {
    display: none !important; } }

@media (min-width: 48em) {
  
  .hide-tablet-portrait {
    display: none !important; } }

@media screen and (max-width: 63.9375em) {
  
  .hide-tablet-landscape-down {
    display: none !important; } }

@media (min-width: 64em) {
  
  .hide-tablet-landscape {
    display: none !important; } }


.header-padding {
  padding-top: 100px; }
  @media (min-width: 48em) {
    
    .header-padding {
      padding-top: 120px; } }
  @media (min-width: 64em) {
    
    .header-padding {
      padding-top: 180px; } }

html[lang="en"] .hide-en {
  display: none !important; }

html[lang="zh-hans"] .hide-zh-hans {
  display: none !important; }


.has-dotted-bg {
  position: relative; }
  
  .has-dotted-bg:before {
    background: url("../images/pattern-aqua-doted-grid.png");
    content: '';
    height: 185px;
    left: 0;
    position: absolute;
    top: 0;
    width: 100%;
    z-index: -1; }
    @media (min-width: 48em) {
      
      .has-dotted-bg:before {
        height: 245px; } }
    @media (min-width: 64em) {
      
      .has-dotted-bg:before {
        height: 340px; } }

/* Default margins. */

.margin-bottom {
  margin-bottom: 30px; }
  @media (min-width: 48em) {
    
    .margin-bottom {
      margin-bottom: 60px; } }
  @media (min-width: 64em) {
    
    .margin-bottom {
      margin-bottom: 80px; } }


.header-black.top-nav-active .header__logo svg g path {
  fill: #fff !important; }

@media (min-width: 64em) {
  
  .header-black .header:not(.header--animated) .region-top-navigation .block-language li a {
    color: #000; } }

@media (min-width: 64em) {
  
  .header-black .header:not(.header--animated) .region-top-navigation .block-language li a:hover,
  .header-black .header:not(.header--animated) .region-top-navigation .block-language li a:focus,
  .header-black .header:not(.header--animated) .region-top-navigation .block-language li a.is-active {
    border-bottom: 1px solid #000; } }


.header-black .header:not(.header--animated) .header__logo svg g path {
  fill: #000; }

@media (min-width: 64em) {
  
  .header-black .header:not(.header--animated) .region-top-navigation .menu a {
    color: #000; }
    
    .header-black .header:not(.header--animated) .region-top-navigation .menu a:hover,
    .header-black .header:not(.header--animated) .region-top-navigation .menu a:focus,
    .header-black .header:not(.header--animated) .region-top-navigation .menu a.is-active {
      border-color: #000; } }

/* GLOBAL CUSTOM CSS */

.no--tracking {
  letter-spacing: 0; }

/* Image zoom effect */

.image--zoom img {
  transition: transform 2s ease; }


.image--zoom:hover img {
  -ms-transform: scale(1.05);
      transform: scale(1.05); }


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

body {
  font-family: 'Rock Salt', cursive; }

.logo {
  position: absolute;
  left: 20px;
  top: -4px;
  z-index: 999; }
  @media (min-width: 64em) {
    .logo {
      display: -ms-inline-flexbox;
      display: inline-flex;
      max-height: 80px;
      margin-left: 20px;
      margin-top: 10px;
      position: relative;
      text-align: left; } }
  .logo img {
    display: inline-block;
    width: 54px; }
    @media (min-width: 64em) {
      .logo img {
        width: 100px; } }
    @media (min-width: 75.6875em) {
      .logo img {
        width: 140px; } }
  .logo span {
    display: inline-block;
    font-size: 20px;
    padding: 0px 0 0 0px;
    margin-left: 10px;
    color: #999; }
    @media (min-width: 64em) {
      .logo span {
        font-size: 21px;
        padding: 11px 15px 0 12px; } }
    @media (min-width: 75.6875em) {
      .logo span {
        font-size: 31px; } }

header {
  width: 100%;
  margin: 0 auto;
  position: fixed;
  z-index: 999; }
  @media (min-width: 64em) {
    header {
      background: #fff;
      opacity: 0.8; } }
  header .burger {
    width: 20px;
    height: 50px;
    position: absolute;
    right: 17px;
    top: 13px;
    cursor: pointer;
    z-index: 998; }
    header .burger .burger-line {
      border-top: 2px solid #fff;
      display: block;
      margin-bottom: 5px; }
  header .close {
    display: none;
    position: absolute;
    right: 16px;
    top: 12px;
    z-index: 999;
    color: #fff;
    font-family: Helvetica, sans-serif;
    font-size: 21px;
    cursor: pointer; }
  header .navigation {
    display: block;
    text-align: center;
    position: absolute;
    left: 0;
    top: 0;
    height: auto;
    width: 100%;
    background: #000;
    padding: 20px;
    opacity: 0.9;
    z-index: 990;
    min-height: 50px; }
    @media (min-width: 64em) {
      header .navigation {
        display: -ms-inline-flexbox;
        display: inline-flex;
        margin-left: 50px;
        text-align: left;
        position: relative;
        background: transparent;
        padding: 22px 35px 0 0;
        opacity: 1;
        width: auto;
        height: auto;
        float: right; } }
    @media (min-width: 75.6875em) {
      header .navigation {
        padding: 35px 35px 0 0; } }
    header .navigation.active {
      height: 100vh; }
    header .navigation li {
      list-style: none; }
      @media (min-width: 64em) {
        header .navigation li {
          display: -ms-inline-flexbox;
          display: inline-flex;
          margin-left: 15px; } }
    header .navigation a {
      color: #fff;
      text-decoration: none;
      font-size: 14px; }
      @media (min-width: 64em) {
        header .navigation a {
          color: #ff0000;
          font-size: 12px; } }
      @media (min-width: 75.6875em) {
        header .navigation a {
          font-size: 13px; } }
    header .navigation .nav-items {
      display: none;
      margin-top: 20px; }
      @media (min-width: 64em) {
        header .navigation .nav-items {
          display: inline-block !important;
          margin-top: 0; } }

/* Site-wide buttons definitions */

.btn {
  color: #fff;
  cursor: pointer;
  display: inline-block;
  letter-spacing: 2px;
  line-height: 1.6;
  text-align: center;
  text-decoration: none;
  text-transform: uppercase; }
  
  .btn.btn--aqua {
    color: #13d4c8; }
  
  .btn.btn--aqua-reverse {
    background-color: #13d4c8; }
  
  .btn.btn--gray {
    color: #e3e3e3;
    border-color: #e3e3e3; }

/* Button sizes */

.btn--smaller {
  font-size: 10px;
  font-weight: 700;
  padding: 11px 23px 9px; }


.btn--small {
  font-size: 12px;
  font-weight: 700;
  padding: 14px 23px 12px; }


.btn--medium {
  font-size: 24px;
  font-weight: 400;
  padding: 7px 30px; }

/* Button styles */

.btn--icon:after {
  background-position: center center;
  background-repeat: no-repeat;
  background-size: 100% auto;
  content: '';
  display: inline-block;
  height: 16px;
  margin-left: 10px;
  vertical-align: sub;
  width: 16px; }


.btn--rounded {
  border: 2px solid #fff;
  border-radius: 100px; }
  
  .btn--rounded.btn--black {
    border-color: #000; }
  
  .btn--rounded.btn--aqua {
    border-color: #13d4c8; }
  
  .btn--rounded.btn--turquoise {
    border-color: #08bbc8; }
  
  .btn--rounded.btn--red {
    border-color: #FF231E; }
  
  .btn--rounded.btn--med-navy-blue {
    border-color: #00263d; }
  
  .btn--rounded.btn--white {
    border-color: #fff; }

/* Button icons */

.btn--arrow-right:after {
  background-image: url("../images/icon-arrow-white.svg"); }


.btn--arrow-right.btn--black:after {
  background-image: url("../images/icon-arrow.svg"); }


.btn--arrow-right.btn--turquoise:after {
  background-image: url("../images/icon-arrow-turquoise.svg"); }


.btn--arrow-right.btn--aqua:after {
  background-image: url("../images/icon-arrow-aqua.svg"); }


.btn--arrow-right.btn--med-navy-blue:after {
  background-image: url("../images/icon-arrow-med-navy.svg"); }


.btn-social {
  display: inline-block;
  height: 22px;
  width: 22px; }
  
  .btn-social svg use,
  .btn-social svg path {
    stroke: #fff; }


.btn--icon-plus:after {
  background-image: url("../images/icon-plus-white.svg"); }


.btn--icon-plus.btn--black:after {
  background-image: url("../images/icon-plus.svg"); }


.btn--icon-plus.btn--aqua:after {
  background-image: url("../images/icon-plus-aqua.svg"); }


.btn--icon-minus:after {
  background-image: url("../images/icon-minus.svg");
  position: relative;
  top: -2px; }


.btn--icon-minus.btn--black:after {
  background-image: url("../images/icon-minus.svg"); }


.btn--icon-minus.btn--aqua:after {
  background-image: url("../images/icon-minus-aqua.svg"); }


.btn--icon-tick:after {
  background-image: url("../images/icon-tick-white.svg");
  position: relative;
  top: -2px; }


.btn--icon-tick.btn--black:after {
  background-image: url("../images/icon-tick.svg"); }


.btn--icon-tick.btn--aqua:after {
  background-image: url("../images/16-icon-tick.svg"); }


.btn--icon-error:after {
  background-image: url("../images/16-icon-cross.svg");
  position: relative;
  top: -2px; }


.btn--icon-external:after {
  background-image: url("../images/icon-external-white.svg"); }


.btn--icon-external.btn--black:after {
  background-image: url("../images/icon-external-black.svg"); }


.btn--icon-external.btn--aqua:after {
  background-image: url("../images/icon-external-aqua.svg"); }

/* Button colors */

.btn--black {
  color: #000; }


.btn--aqua {
  color: #13d4c8; }


.btn--med-navy-blue {
  color: #00263d; }


.btn--turquoise {
  color: #08bbc8; }


.btn--red {
  color: #FF231E; }


.btn--default {
  border-radius: 20px;
  border: 2px solid #fff;
  font-weight: 700;
  letter-spacing: 2px;
  padding: 11px 20px;
  text-decoration: none; }


.btn--black {
  border-color: #000;
  color: #000; }


.btn--right-arrow {
  background: url("../images/right-arrow-circle.svg") center center no-repeat;
  background-size: cover;
  height: 64px;
  text-indent: -9999px;
  width: 64px; }

.no-touchevents
.btn--icon--animated {
  padding: 14px 40px 12px;
  position: relative;
  transition: padding 0.35s ease-in-out; }
  .no-touchevents
  .btn--icon--animated:after {
    opacity: 0;
    position: absolute;
    right: 30px;
    top: 50%;
    -ms-transform: translate(0, -50%);
        transform: translate(0, -50%);
    transition: all 0.35s ease-in-out; }
  .no-touchevents
  .btn--icon--animated:focus, .no-touchevents
  .btn--icon--animated:hover {
    padding-left: 35px;
    padding-right: 45px; }
    .no-touchevents
    .btn--icon--animated:focus:after, .no-touchevents
    .btn--icon--animated:hover:after {
      opacity: 1;
      right: 30px;
      -ms-transform: translate(10px, -50%);
          transform: translate(10px, -50%); }

/* Vendor code */
.button-container {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-direction: column;
      flex-direction: column;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap; }

.svg__arrow {
  width: 11px;
  height: 14px;
  vertical-align: middle;
  cursor: pointer;
  position: absolute;
  top: 50%;
  z-index: 2;
  padding: 1px;
  transition: transform 0.4s ease-in-out, opacity 0.75s ease-in-out; }
  .svg__arrow--right {
    right: 35px;
    transform: translate3d(0, -50%, 0); }
  .svg__arrow--center {
    left: 50%;
    transform: translate3d(-50%, -50%, 0); }
  .svg__arrow__shape--stroke {
    fill: transparent;
    stroke-width: 2;
    stroke: #fff; }
  .svg__arrow__shape--fill {
    fill: #fff;
    stroke-width: 2;
    stroke: #fff; }
  .svg__arrow__shape--fadein {
    transition: opacity 0.5s ease-in-out 0.1s;
    opacity: 0; }

.svg__pause {
  width: 22px;
  height: 28px;
  vertical-align: middle;
  cursor: pointer;
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  padding: 1px;
  transform: translate3d(-50%, -50%, 0);
  transition: opacity 0.5s linear 0.1s; }
  .svg__pause__shape--right {
    transform: translate3d(14px, 0, 0); }
  .animatedbtn__play--64 .svg__pause {
    margin-left: 2px;
    margin-top: 2px; }
  .animatedbtn__play--48 .svg__pause {
    height: 18px;
    width: 13px; }

.svg__rect {
  position: absolute;
  top: 0;
  left: 50%;
  width: 100%;
  overflow: visible;
  -ms-transform-origin: 50% 50% 0;
      transform-origin: 50% 50% 0;
  transform: translate3d(-50%, 0, 0);
  transition: width 0.5s cubic-bezier(0.8, 0.3, 0.1, 1); }
  .svg__rect__shape {
    -ms-transform-origin: 50% 50% 0;
        transform-origin: 50% 50% 0; }
    .svg__rect__shape--stroke {
      fill: transparent;
      stroke-width: 2;
      stroke: #fff; }
      .svg__rect__shape--stroke--black {
        stroke: #000; }
    .svg__rect__shape--pill {
      stroke-dasharray: 1000;
      stroke-dashoffset: 0; }
      .svg__rect__shape--pill--has-transition {
        -ms-transform: rotate(0deg);
            transform: rotate(0deg);
        transition: stroke-dasharray 0.3s linear, stroke-dashoffset 0.3s linear, transform 0.3s linear; }
    .svg__rect__shape--loader {
      animation: loaded 0.5s linear 0s 1 normal forwards;
      stroke-dasharray: 282.6px;
      stroke-dashoffset: 141.3px; }

.svg__success {
  -ms-transform-origin: 50% 50% 0;
      transform-origin: 50% 50% 0;
  stroke-width: 2;
  stroke: #fff; }
  .svg__success--center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0); }

.svg__error {
  -ms-transform-origin: 50% 50% 0;
      transform-origin: 50% 50% 0;
  stroke-width: 2;
  stroke: #fff; }
  .svg__error--center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0); }

.animatedbtn__link {
  display: block;
  cursor: pointer; }

.animatedbtn--center {
  position: absolute;
  top: 50%;
  left: 50%;
  text-align: center;
  transform: translate3d(-50%, -50%, 0); }

.animatedbtn--horiz-center {
  position: absolute;
  left: 50%;
  text-align: center;
  transform: translate3d(-50%, 0, 0); }

.animatedbtn__button {
  font-family: 'BlueSkyStandard-Regular', sans-serif;
  width: 100%;
  height: 50px;
  padding: 0;
  color: #13D4C8;
  font-size: 14px;
  text-align: center;
  letter-spacing: 3px;
  text-transform: uppercase;
  border: none;
  cursor: pointer;
  outline: transparent;
  background: none;
  transition: opacity 0.75s ease-in-out 0.1s; }
  .animatedbtn__button__text {
    color: #fff;
    white-space: nowrap;
    padding: 0 40px; }
    .animatedbtn__button__text--black {
      color: #000; }
    .animatedbtn__button__text--has-arrow {
      padding-right: 60px; }

.animatedbtn__hover-arrow__shape {
  stroke: #fff; }

.animatedbtn__hover-arrow--right {
  position: absolute;
  top: 50%;
  right: 35px;
  transform: translate3d(0, -50%, 0); }

.animatedbtn__submit {
  height: 50px; }
  .animatedbtn__submit .svg__rect {
    height: 50px; }
  .animatedbtn__submit .svg__rect__shape--pill {
    transition: stroke 0.35s ease-in-out; }
  .animatedbtn__submit .svg__success, .animatedbtn__submit .svg__error {
    opacity: 0; }
  .animatedbtn__submit .svg__success {
    width: 20px;
    stroke-dasharray: 25;
    stroke-dashoffset: 25; }
  .animatedbtn__submit .svg__error {
    width: 13px;
    transform: translate3d(-50%, -50%, 0) rotate(180deg); }
    .animatedbtn__submit .svg__error__line {
      stroke-dasharray: 25;
      stroke-dashoffset: 25; }
  .animatedbtn__submit .animatedbtn__button__text {
    display: inline-block;
    transition: transform 0.35s ease-in-out; }
  .animatedbtn__submit .animatedbtn__hover-arrow {
    opacity: 0;
    right: 35px;
    transition: all 0.35s ease-in-out; }
  .animatedbtn__submit:hover .animatedbtn__button__text {
    transform: translate3d(-5px, 0, 0); }
  .animatedbtn__submit:hover .animatedbtn__hover-arrow {
    opacity: 1;
    transform: translate3d(10px, -50%, 0); }
  .animatedbtn__submit .js-submitting .svg__rect {
    width: 50px; }
    .animatedbtn__submit .js-submitting .svg__rect__shape--pill {
      stroke-dasharray: 157px;
      stroke-dashoffset: 78.5px;
      -ms-transform: rotate(-450deg);
          transform: rotate(-450deg);
      transition: stroke-dasharray 0.35s cubic-bezier(0.7, 0.6, 0.5, 0.9) 0.1s, stroke-dashoffset 0.35s cubic-bezier(0.7, 0.6, 0.5, 0.9) 0.1s, transform 0.5s cubic-bezier(0.7, 0.6, 0.5, 0.9) 0.38s;
      animation: loader 0.5s linear 0.38s infinite normal forwards; }
  .animatedbtn__submit .js-submitting .animatedbtn__button {
    opacity: 0;
    transition: none; }
  .animatedbtn__submit .js-submitted .svg__rect {
    width: 100%;
    transition-delay: 0.5s; }
  .animatedbtn__submit .js-submitted .svg__rect__shape--pill {
    stroke-dasharray: 1000;
    stroke-dashoffset: 78.5px;
    transition: stroke-dasharray 0.35s cubic-bezier(0.7, 0.6, 0.5, 0.9) 0.5s;
    animation: submitLoaded 0.5s linear 0s 1 normal forwards; }
  .animatedbtn__submit .js-submitted .animatedbtn__button {
    opacity: 0; }
  .animatedbtn__submit .js-submitted--success .svg__success {
    opacity: 1;
    stroke: #4FEB73; }
  .animatedbtn__submit .js-submitted--success .svg__rect__shape--stroke {
    stroke: #4FEB73; }
  .animatedbtn__submit .js-submitted--error .svg__error {
    opacity: 1;
    stroke: #f47734; }
  .animatedbtn__submit .js-submitted--error .svg__rect__shape--stroke {
    stroke: #f47734; }
  .animatedbtn__submit .js-submitted--success .svg__success {
    transition: stroke-dashoffset 0.35s cubic-bezier(0.7, 0.6, 0.5, 0.9) 1s;
    stroke-dashoffset: 0; }
  .animatedbtn__submit .js-submitted--error .svg__error .svg__error__line {
    transition: stroke-dashoffset 0.35s cubic-bezier(0.7, 0.6, 0.5, 0.9) 1s;
    stroke-dashoffset: 0; }
    .animatedbtn__submit .js-submitted--error .svg__error .svg__error__line--second {
      transition-delay: 1.35s; }

.animatedbtn__text {
  height: 50px; }
  .animatedbtn__text .svg__rect {
    height: 50px; }
  .animatedbtn__text:hover .svg__rect {
    width: 50px; }
    .animatedbtn__text:hover .svg__rect__shape--pill {
      stroke-dasharray: 157px;
      stroke-dashoffset: 78.5px;
      -ms-transform: rotate(-450deg);
          transform: rotate(-450deg);
      transition: stroke-dasharray 0.35s cubic-bezier(0.7, 0.6, 0.5, 0.9) 0.1s, stroke-dashoffset 0.35s cubic-bezier(0.7, 0.6, 0.5, 0.9) 0.1s, transform 0.5s cubic-bezier(0.7, 0.6, 0.5, 0.9) 0.38s; }
  .animatedbtn__text:hover .svg__arrow__shape--fadein {
    opacity: 1;
    transition-delay: 0.5s; }
  .animatedbtn__text:hover .animatedbtn__button {
    opacity: 0;
    transition: none; }
  .animatedbtn__text.js-draw-button .svg__rect {
    width: 50px; }
    .animatedbtn__text.js-draw-button .svg__rect__shape--pill {
      animation: spin 0.7s cubic-bezier(0.7, 0.6, 0.5, 0.9) 0s 1 normal forwards; }
  .animatedbtn__text.js-draw-button .animatedbtn__button {
    opacity: 0; }
  .animatedbtn__text.hoverout .svg__rect {
    width: 50px;
    transition-delay: 0.35s; }
    .animatedbtn__text.hoverout .svg__rect__shape--pill {
      stroke-dasharray: 157px;
      stroke-dashoffset: 78.5px;
      -ms-transform: rotate(0deg);
          transform: rotate(0deg); }
  .animatedbtn__text.hoverout .animatedbtn__button, .animatedbtn__text.hoverout .svg__arrow--right {
    opacity: 0; }

.animatedbtn__play {
  display: inline-block;
  position: relative;
  width: 90px;
  height: 90px;
  cursor: pointer; }
  .no-smil .animatedbtn__play:after {
    background-image: url("../images/icon-play-white.svg");
    background-position: 0 0;
    background-repeat: no-repeat;
    background-size: 100% auto;
    content: '';
    height: 100%;
    position: absolute;
    width: 100%; }
  .no-smil .animatedbtn__play svg {
    display: none; }
  .animatedbtn__play .svg__rect {
    width: 90px;
    height: 90px; }
  .animatedbtn__play__loader {
    transition: stroke-dashoffset 0.3s linear;
    stroke-dasharray: 282.6px;
    stroke-dashoffset: 141.3px; }
  .animatedbtn__play.js-loader-loading .animatedbtn__play__loader {
    animation: loader 0.5s linear 0s infinite normal forwards; }
  .animatedbtn__play.js-loader-loading .svg__pause {
    opacity: 0; }
  .animatedbtn__play.js-loader-loaded .animatedbtn__play__loader {
    animation: loaded 0.5s linear 0s 1 normal forwards; }
  .animatedbtn__play.animatedbtn__play--48 {
    height: 48px;
    width: 48px; }
    .animatedbtn__play.animatedbtn__play--48 .animatedbtn__play__loader {
      stroke-dasharray: 150.72px;
      stroke-dashoffset: 75.36px; }
    .animatedbtn__play.animatedbtn__play--48 .svg__rect {
      height: 48px;
      width: 48px; }
  .animatedbtn__play.animatedbtn__play--64 {
    height: 64px;
    width: 64px; }
    .animatedbtn__play.animatedbtn__play--64 .animatedbtn__play__loader {
      stroke-dasharray: 200.96px;
      stroke-dashoffset: 100.48px; }
    .animatedbtn__play.animatedbtn__play--64 .svg__rect {
      height: 64px;
      width: 64px; }
  .animatedbtn__play.animatedbtn__play--128 {
    height: 128px;
    width: 128px; }
    .animatedbtn__play.animatedbtn__play--128 .animatedbtn__play__loader {
      stroke-dasharray: 401.92px;
      stroke-dashoffset: 200.96px; }
    .animatedbtn__play.animatedbtn__play--128 .svg__rect {
      height: 128px;
      width: 128px; }

.no-smil .animatedbtn__zoom:after {
  background-image: url("../images/icon-zoom.svg");
  background-position: 0 0;
  background-repeat: no-repeat;
  background-size: 100% auto;
  content: '';
  height: 100%;
  position: absolute;
  width: 100%; }

.no-smil .animatedbtn__zoom img,
.no-smil .animatedbtn__zoom svg {
  display: none; }

.animatedbtn__play.js-loader-loaded:hover .animatedbtn__play__loader {
  stroke-dashoffset: 0;
  transition: stroke-dashoffset 0.5s linear, stroke-dasharray 0.5s linear 0.5s;
  animation: playHover 0.5s linear 0s 1 normal forwards; }

.js-submitting {
  pointer-events: none; }

body {
  background-color: #000; }

section .index {
  display: block; }

section .about,
section .contactus,
section .teams,
section .coaches,
section .regform {
  display: none; }

section .hero {
  position: relative; }
  section .hero .hero-text {
    position: absolute;
    top: 54%;
    left: 0;
    width: 100%;
    text-align: center;
    text-shadow: 1px 1px 2px #333; }
  section .hero .hero-title {
    font-size: 22px; }
    @media (min-width: 48em) {
      section .hero .hero-title {
        font-size: 42px; } }
    @media (min-width: 64em) {
      section .hero .hero-title {
        font-size: 62px; } }
  section .hero .hero-description {
    font-size: 15px;
    line-height: 15px; }
    @media (min-width: 48em) {
      section .hero .hero-description {
        font-size: 25px; } }
    @media (min-width: 48em) {
      section .hero .hero-description {
        font-size: 35px; } }

section .text {
  border-bottom: 1px solid #ff0000;
  border-top: 1px solid #ff0000;
  font-family: "Helvetica Neue", Arial, sans-serif;
  padding: 25px; }
  section .text .title {
    font-size: 20px;
    line-height: 35px;
    margin-bottom: 10px; }
    @media (min-width: 48em) {
      section .text .title {
        font-size: 30px; } }
  section .text .description {
    font-size: 14px;
    line-height: 25px; }
    @media (min-width: 48em) {
      section .text .description {
        font-size: 20px; } }

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

a {
  color: #ff0000; }

.popup-bg {
  display: none;
  top: 0;
  left: 0;
  position: fixed;
  width: 100%;
  height: 100vh;
  background-color: #000;
  opacity: 0.7;
  z-index: 999; }

.popup-on {
  display: block !important; }

.tryouts-form {
  width: 75%;
  border: 1px solid #fff;
  border-radius: 12px;
  margin: 0 auto;
  background-color: #222;
  z-index: 9991;
  color: #fff;
  padding: 30px;
  text-align: center;
  font-size: 16px; }
  .tryouts-form .tryouts-input {
    background-color: transparent;
    border-bottom: 1px solid #fff;
    color: #fff;
    margin: 10px 0; }
  .tryouts-form .tryouts-check {
    -webkit-appearance: checkbox;
       -moz-appearance: checkbox;
            appearance: checkbox;
    background-color: #fff;
    height: 20px;
    width: 20px; }
  .tryouts-form .tryouts-regform {
    margin: 3% auto;
    max-width: 800px; }
  .tryouts-form .tryouts-terms {
    font-size: 14px;
    height: 100px;
    margin: 5px auto;
    max-width: 540px;
    overflow: auto;
    overflow-x: hidden;
    overflow-y: scroll;
    text-align: left;
    width: 100%; }
  .tryouts-form label[for="g-acknowledge"] {
    display: inline-block;
    max-width: 520px;
    text-align: left;
    vertical-align: top; }

.popup-on {
  display: block; }

.form-error {
  border-bottom: 1px solid #ff0000 !important; }

.form-error--checkbox {
  text-decoration: underline;
  -webkit-text-decoration-color: #ff0000;
          text-decoration-color: #ff0000; }

#tryouts-regform-error {
  background-color: pink;
  border: 1px solid red;
  clear: both;
  color: #333;
  display: none;
  font-family: "Helvetica Neue", Arial, sans-serif;
  padding: 10px;
  border-radius: 8px; }

#tryouts-regform-success {
  background-color: #ccc;
  border: 1px solid #999;
  border-radius: 8px;
  clear: both;
  color: #000;
  display: none;
  font-family: "Helvetica Neue", Arial, sans-serif;
  margin: 20px auto;
  padding: 20px; }

.close-it {
  background-color: gray;
  border-radius: 50%;
  cursor: pointer;
  font-family: "Helvetica Neue", Arial, sans-serif;
  font-size: 20px;
  height: 30px;
  padding: 3px;
  position: absolute;
  right: -15px;
  top: -15px;
  width: 30px; }

footer {
  text-align: center; }

.footer--social {
  display: inline-block;
  margin: 20px auto;
  width: 400px; }
  .footer--social .icon-social {
    cursor: pointer;
    display: inline-block;
    height: 34px;
    width: 44px; }
  .footer--social .icon-social--fb {
    background: url("/kso/so-muchlove/sbs-01/images/icon-social-facebook-white.svg") center no-repeat;
    background-size: contain; }
  .footer--social .icon-social--ig {
    background: url("/kso/so-muchlove/sbs-01/images/icon-social-instagram-white.svg") center no-repeat;
    background-size: contain; }
  .footer--social .icon-social--tw {
    background: url("/kso/so-muchlove/sbs-01/images/icon-social-twitter-white.svg") center no-repeat;
    background-size: contain; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImhlbHBlcnMvX2Z1bmN0aW9ucy5zY3NzIiwiaGVscGVycy9fbWl4aW5zLnNjc3MiLCJiYXNlL192YXJpYWJsZXMuc2NzcyIsImJhc2UvX2dyaWQuc2NzcyIsIi4uL25wbS9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L291dHB1dC9zdXBwb3J0L19yZW0uc2NzcyIsIi4uL25wbS9ib3dlcl9jb21wb25lbnRzL3N1c3kvc2Fzcy9zdXN5L2xhbmd1YWdlL3N1c3kvX2NvbnRhaW5lci5zY3NzIiwiLi4vbnBtL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3N1cHBvcnQvX2NsZWFyZml4LnNjc3MiLCIuLi9ucG0vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19icmVha3BvaW50LXBsdWdpbi5zY3NzIiwiLi4vbnBtL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvbGFuZ3VhZ2Uvc3VzeS9fc3Bhbi5zY3NzIiwiLi4vbnBtL2Jvd2VyX2NvbXBvbmVudHMvc3VzeS9zYXNzL3N1c3kvb3V0cHV0L3NoYXJlZC9fZGlyZWN0aW9uLnNjc3MiLCIuLi9ucG0vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19pc29sYXRlLnNjc3MiLCIuLi9ucG0vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19nYWxsZXJ5LnNjc3MiLCIuLi9ucG0vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9sYW5ndWFnZS9zdXN5L19yb3dzLnNjc3MiLCIuLi9ucG0vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeS9vdXRwdXQvZmxvYXQvX2VuZC5zY3NzIiwiYmFzZS9fcmVzZXQuc2NzcyIsImJhc2UvX2ZvbnRzLnNjc3MiLCJiYXNlL19jb2xvcnMuc2NzcyIsImhlbHBlcnMvX2V4dGVuZHMuc2NzcyIsImxheW91dC9faGVhZGVyLnNjc3MiLCJjb21wb25lbnRzL19idXR0b25zLnNjc3MiLCJzdHlsZXMuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUNBNUIsb0JBQW9CO0FBWXBCLGVBQWU7QUNaZix5Q0FBeUM7QUFFekMscUJBQXFCO0FBQ3JCLGlCQUFpQjtBQUdqQixrQkFBa0I7QUFJbEIsd0JBQXdCO0FBR3hCLDhCQUE4QjtBQXVCOUIsNkJBQTZCO0FBTzdCLG9CQUFvQjtBQU1wQixzQkFBc0I7QUFpQnRCLHNCQUFzQjtBQ2xFdEIsK0JBQStCO0FBa0UvQix5QkFBeUI7O0FBc0J6QjtFQ3JFSSxnQkN1Q2U7RUR2Q2Ysa0JGeUJtQjtFRXpCbkIsbUJGeUJtQixFQzBEdEI7O0VBZEQ7SUc1RU0sYUFBYTtJQUNiLGVBQWU7SUFDZixZQUFZLEVBQ2I7RUNtQ0Q7O0lKc0NKO01DckVJLGdCQ3VDZTtNRHZDZixrQkRTNEI7TUNUNUIsbUJEUzRCLEVBMEUvQjs7TUFkRDtRRzVFTSxhQUFhO1FBQ2IsZUFBZTtRQUNmLFlBQVksRUFDYixFQUFBO0VDbUNEOztJSnNDSjtNQ3JFSSxnQkN1Q2U7TUR2Q2YsbUJEd0I2QjtNQ3hCN0Isb0JEd0I2QixFQTJEaEM7O01BZEQ7UUc1RU0sYUFBYTtRQUNiLGVBQWU7UUFDZixZQUFZLEVBQ2IsRUFBQTtFQ21DRDs7SUpzQ0o7TUNyRUksa0JEc0N1QjtNQ3RDdkIsa0JDcURvQztNRHJEcEMsbUJDcURtRSxFRjhCdEU7O01BZEQ7UUc1RU0sYUFBYTtRQUNiLGVBQWU7UUFDZixZQUFZLEVBQ2IsRUFBQTs7O0FIMEZMO0VDdEZJLGdCQ3VDZTtFRHZDZixrQkZ5Qm1CO0VFekJuQixtQkZ5Qm1CLEVDd0V0Qjs7RUFYRDtJRzdGTSxhQUFhO0lBQ2IsZUFBZTtJQUNmLFlBQVksRUFDYjtFQ21DRDs7SUp1REo7TUFJSSxlQUFlO01BQ2YsaUJBQWlCLEVBTXBCLEVBQUE7RUlsRUc7O0lKdURKO01BU0ksaUJBQWlCLEVBRXBCLEVBQUE7OztBQUdEO0VBQ0UsZUFBZTtFQUNmLGtCQUFrQixFQUNuQjs7QUFFRCx5QkFBeUI7QUkxRXJCO0VKMkVKO0lDMUdJLGlCSXdJb0I7SUp4SXBCLFlLQTRELEVOOEcvRDtJQUpEO01DMUdJLGVNd0RpQjtNTnhEakIsb0JPb0Q2QjtNUHBEN0IsWVFaMEI7TVJZMUIsZVNnQitCLEVGd0Q5QjtJUmtDTDtNQzFHSSx1Qkl3SW9CO01KeElwQixvQk9vRDZCO01QcEQ3QixZUUowQixFRDRFekIsRUFBQTs7QUp6Q0Q7RUppRko7SUNoSEksaUJJd0lvQjtJSnhJcEIsWUtBNEQsRU5vSC9EO0lBSkQ7TUNoSEksZU13RGlCO01OeERqQixvQk9vRDZCO01QcEQ3QixZUVowQjtNUlkxQixlU2dCK0IsRUZ3RDlCO0lSd0NMO01DaEhJLHVCSXdJb0I7TUp4SXBCLG9CT29ENkI7TVBwRDdCLFlRSjBCLEVENEV6QixFQUFBOztBSnpDRDtFSnVGSjtJQ3RISSxpQkl3SW9CO0lKeElwQixZS0E0RCxFTjBIL0Q7SUFKRDtNQ3RISSxlTXdEaUI7TU54RGpCLG9CT29ENkI7TVBwRDdCLFlRWjBCO01SWTFCLGVTZ0IrQixFRndEOUI7SVI4Q0w7TUN0SEksdUJJd0lvQjtNSnhJcEIsb0JPb0Q2QjtNUHBEN0IsWVFKMEIsRUQ0RXpCO0lSOENMO01DdEhJLHVCSXdJb0I7TUp4SXBCLG9CT29ENkI7TVBwRDdCLFlRSjBCLEVENEV6QixFQUFBOztBSnpDRDtFSjZGSjtJQUVJLFlBQVk7SUFDWixXQUFXLEVBRWQsRUFBQTs7QUFFRDs7O0VBR0U7QUl2R0U7RUp5R0Y7SUFDRSxhQUFhLEVBQ2Q7RUFDRDtJQUNFLGlCQUFpQjtJQUNqQiw0QkFBNEI7SUFDNUIscUJBQXFCLEVBQ3RCO0VBQ0Q7SUFDRSxZQUFZO0lBQ1osZUFBZSxFQUNoQjtFQUNEO0lBQ0UsNkNBQTZDO0lBQzdDLGFBQWEsRUFDZCxFQUFBOztBV3hLSDtFQUNFLFVBQVU7RUFDVixXQUFXO0VBQ1gsVUFBVTtFQUNWLHFCQUFxQjtFQUNyQixnQkFBZ0I7RUFDaEIseUJBQXlCO0VBQ3pCLHFCQUFxQjtFQUNyQixnQkFBZ0I7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Qzs7QUFFRDtFQUNFLHVCQUF1QjtFQUN2QixzQkFBc0I7RUFDdEIsWUFBWTtFQUNaLFlBQVk7RUFDWixjQUFjO0VBQ2QsaURBQWlEO0VBQ2pELGNBQWM7RUFDZCxtQkFBbUIsRUFDcEI7O0FBRUQ7RUFDRSx1QkFBdUI7RUFDdkIsdUJBQXVCO0VBQ3ZCLG1CQUFtQjtFQUNuQixZQUFZO0VBQ1osWUFBWTtFQUNaLGNBQWM7RUFDZCxpREFBaUQ7RUFDakQsa0JBQWtCO0VBQ2xCLGNBQWMsRUFDZjs7QUFFRDtFQUNFLHVCQUF1QjtFQUN2QixtQkFBbUI7RUFDbkIsZ0JBQWdCO0VBQ2hCLGlEQUFpRDtFQUNqRCxnQkFBZ0I7RUFDaEIsYUFBYTtFQUNiLGFBQWE7RUFDYixtQkFBbUI7RUFDbkIsYUFBYTtFQUNiLFdBQVc7RUFDWCxZQUFZLEVBQ2I7O0FBRUQ7RUFDRSxtQkFBbUIsRUFDcEI7O0FBRUQ7RUFDRSxzQkFBc0I7RUFDdEIsa0JBQWtCO0VBQ2xCLGFBQWEsRUF1QmQ7RUExQkQ7SUFNSSxnQkFBZ0I7SUFDaEIsc0JBQXNCO0lBQ3RCLGFBQWE7SUFDYixZQUFZLEVBQ2I7RUFWSDtJQWFJLGtHQUFpRztJQUNqRyx5QkFBeUIsRUFDMUI7RUFmSDtJQWtCSSxtR0FBa0c7SUFDbEcseUJBQXlCLEVBQzFCO0VBcEJIO0lBdUJJLGlHQUFnRztJQUNoRyx5QkFBeUIsRUFDMUIiLCJmaWxlIjoic3R5bGVzLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIi8qIENvbnZlcnRzIHBpeGVscyB0byBlbS4gKi9cbkBmdW5jdGlvbiBlbSgkdGFyZ2V0LCAkY29udGV4dDogJGJhc2UtZm9udC1zaXplKSB7XG4gIEBpZiAkdGFyZ2V0ID09IDAge1xuICAgIEByZXR1cm4gMDtcbiAgfVxuICBAcmV0dXJuICR0YXJnZXQgLyAkY29udGV4dCArIDA7XG59XG4iLCIvKiBTdHJpbmcgUmVwbGFjZSAqL1xuXG5AZnVuY3Rpb24gc3RyLXJlcGxhY2UoJHN0cmluZywgJHNlYXJjaCwgJHJlcGxhY2U6IFwiXCIpIHtcbiAgJGluZGV4OiBzdHItaW5kZXgoJHN0cmluZywgJHNlYXJjaCk7XG5cbiAgQGlmICRpbmRleCB7XG4gICAgQHJldHVybiBzdHItc2xpY2UoJHN0cmluZywgMSwgJGluZGV4IC0gMSkgKyAkcmVwbGFjZSArIHN0ci1yZXBsYWNlKHN0ci1zbGljZSgkc3RyaW5nLCAkaW5kZXggKyBzdHItbGVuZ3RoKCRzZWFyY2gpKSwgJHNlYXJjaCwgJHJlcGxhY2UpO1xuICB9XG5cbiAgQHJldHVybiAkc3RyaW5nO1xufVxuXG4vKiBGb250IEZhY2UgKi9cblxuQG1peGluIGZvbnQtZmFjZSgkbmFtZSwgJHBhdGgsICR3ZWlnaHQ6IG51bGwsICRzdHlsZTogbnVsbCwgJGV4dHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcbiAgJHNyYzogbnVsbDtcblxuICAkZXh0bW9kczogKFxuICAgICAgICAgIGVvdDogXCI/XCIsXG4gICAgICAgICAgc3ZnOiBcIiNcIiArIHN0ci1yZXBsYWNlKCRuYW1lLCBcIiBcIiwgXCJfXCIpXG4gICk7XG5cbiAgJGZvcm1hdHM6IChcbiAgICAgICAgICBvdGY6IFwib3BlbnR5cGVcIixcbiAgICAgICAgICB0dGY6IFwidHJ1ZXR5cGVcIlxuICApO1xuXG4gIEBlYWNoICRleHQgaW4gJGV4dHMge1xuICAgICRleHRtb2Q6IGlmKG1hcC1oYXMta2V5KCRleHRtb2RzLCAkZXh0KSwgJGV4dCArIG1hcC1nZXQoJGV4dG1vZHMsICRleHQpLCAkZXh0KTtcbiAgICAkZm9ybWF0OiBpZihtYXAtaGFzLWtleSgkZm9ybWF0cywgJGV4dCksIG1hcC1nZXQoJGZvcm1hdHMsICRleHQpLCAkZXh0KTtcbiAgICAkc3JjOiBhcHBlbmQoJHNyYywgdXJsKHF1b3RlKCRwYXRoICsgXCIuXCIgKyAkZXh0bW9kKSkgZm9ybWF0KHF1b3RlKCRmb3JtYXQpKSwgY29tbWEpO1xuICB9XG5cbiAgQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6IHF1b3RlKCRuYW1lKTtcbiAgICBmb250LXN0eWxlOiAkc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICR3ZWlnaHQ7XG4gICAgc3JjOiAkc3JjO1xuICB9XG59XG5cbi8vIFJldGluYSBpbWFnZXMgbWl4aW4uXG4vLyBVc2FnZTogIEBpbmNsdWRlIGltYWdlLTJ4KFwibG9nbzJ4LnBuZ1wiLCAxMDBweCwgMjVweCk7XG5AbWl4aW4gaW1hZ2UtMngoJGltYWdlLCAkd2lkdGgsICRoZWlnaHQpIHtcbiAgQG1lZGlhIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuMyksXG4gICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAyLjYvMiksXG4gICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDEuMyksXG4gIChtaW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxLjMpLFxuICAobWluLXJlc29sdXRpb246IDEuM2RwcHgpIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJGltYWdlKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6ICR3aWR0aCAkaGVpZ2h0O1xuICB9XG59XG5cbkBtaXhpbiBrZXlmcmFtZXMoJGFuaW1hdGlvbi1uYW1lKSB7XG4gIEAtd2Via2l0LWtleWZyYW1lcyAjeyRhbmltYXRpb24tbmFtZX0ge1xuICAgIEBjb250ZW50O1xuICB9XG4gIEBrZXlmcmFtZXMgI3skYW5pbWF0aW9uLW5hbWV9IHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gYW5pbWF0aW9uKCRzdHIpIHtcbiAgLXdlYmtpdC1hbmltYXRpb246ICN7JHN0cn07XG4gIGFuaW1hdGlvbjogI3skc3RyfTtcbn1cbiIsIi8qIE1haW4gdGhlbWUncyB2YXJpYWJsZXMgZGVmaW5pdGlvbnMuICovXG5cbi8qIFR5cG9ncmFwaHkgdmFycyAqL1xuLyogRm9udCBzdGFja3MgKi9cbiRibHVlc2t5OiAnQmx1ZVNreVN0YW5kYXJkJywgJ01pY3Jvc29mdCBZYWhlaScsIENhbGlicmksIEFyaWFsLCBzYW5zLXNlcmlmO1xuXG4vKiBGb250IHdlaWdodHMgKi9cbiRsaWdodDogMTAwO1xuJGJvbGQ6IDcwMDtcblxuLyogR2VuZXJpYyBmb250IHNpemVzICovXG4kYmFzZS1mb250LXNpemU6IDE2cHg7XG5cbi8qIFRoZW1lIGdlbmVyYWwgY29sb3Igc2V0cyAqL1xuJGFzdHJvbmF1dGJsdWU6ICMwNTYxN2U7XG4kZHVjay1lZ2ctYmx1ZTogI2U2ZmFmYTtcbiRsaWdodC1ibHVlLWdyYXk6ICNiN2U4ZWE7XG4kYXF1YTogIzEzZDRjODtcbiR0dXJxdW9pc2UtYmx1ZTogIzA4YmJjODtcbiRibGl6emFyZC1ibHVlOiAjYjRlYWVlO1xuJGRhcmstbmF2eS1ibHVlOiAjMDAwZjE2O1xuJG1lZC1uYXZ5LWJsdWU6ICMwMDI2M2Q7XG4kbG93LW5hdnktYmx1ZTogIzAwMzE0NTtcbiR1bHRyYS1kYXJrLW5hdnk6ICMwMDFhMjk7XG4kdWx0cmEtbGlnaHQtYmx1ZTogI2U4ZjdmNztcbiRsaWdodC1ibHVlOiAjYjhlOGViO1xuJHByaW1hcnktY29sb3I6ICMwMDA7XG4kYmxhY2s6ICMwMDA7XG4kZHVzdHktZ3JheTogIzliOWI5YjtcbiRsaWdodC1ncmF5OiAjZTNlM2UzO1xuJHVsdHJhLWxpZ2h0LWdyYXk6ICNmN2Y3Zjc7XG4kd2hpdGU6ICNmZmY7XG4kZXJyb3JzOiAjRkYyMzFFO1xuJHJlZDogI2ZmMDAwMDtcblxuXG4vKiBCcmVha3BvaW50cyBkZWZpbml0aW9ucyAqL1xuJG1vYmlsZS1sYW5kc2NhcGU6IDQ4MHB4O1xuJHRhYmxldC1wb3J0cmFpdDogNzY4cHg7XG4kdGFibGV0LWxhbmRzY2FwZTogMTAyNHB4O1xuJGRlc2t0b3A6IDEyMTFweDtcbiRkZXNrdG9wLWxhcmdlOiAxOTIxcHg7XG5cbi8qIEdyaWQgdmFyaWFibGVzICovXG4kY29udGFpbmVyLW1hcmdpbjogMjBweDtcbiRjb2x1bW4tbW9iaWxlOiA0O1xuJGNvbHVtbi10YWJsZXQ6IDg7XG4kY29sdW1uLWRlc2t0b3A6IDEyO1xuXG4vKiBWZW5kb3IgdmFyaWFibGVzICovXG4kYnJhbmRDb2xvcjogIzEzRDRDODtcbiRzdWNjZXNzQ29sb3I6ICM0RkVCNzM7XG4kZXJyb3JDb2xvcjogI2Y0NzczNDtcbiR0ZXh0QnV0dG9uU2l6ZTogNTBweDtcbiRsb2FkZXJTaXplMTI4OiAxMjhweDtcbiRsb2FkZXJTaXplOiA5MHB4O1xuJGxvYWRlclNpemU2NDogNjRweDtcbiRsb2FkZXJTaXplNDg6IDQ4cHg7XG4kYW5pbWF0ZUVhc2U6IGN1YmljLWJlemllcigwLjcsIDAuNiwgMC41LCAwLjkpO1xuJGxvYWRpbmdEdXJhdGlvbkVhc2U6IDAuNXMgbGluZWFyO1xuJHN1Ym1pc3Npb25Db21wbGV0ZWREZWxheTogMC41cztcbiRzdGF0dXNEZWxheTogMXM7XG5cbiRtb2JpbGUtaGVhZGVyLWhlaWdodDogNTBweDtcbiRkZXNrdG9wLWhlYWRlci1oZWlnaHQ6IDYwcHg7XG5cbi8qIFRpbWluZyBmdW5jdGlvbnMgKi9cblxuLy8gQ3ViaWNcbiR0aW1pbmctZnVuY3Rpb24tZWFzZS1vdXQtY3ViaWM6IGN1YmljLWJlemllciguMjE1LCAuNjEsIC4zNTUsIDEpO1xuXG4vLyBFeHBvXG4kdGltaW5nLWZ1bmN0aW9uLWVhc2Utb3V0LWV4cG86IGN1YmljLWJlemllciguMTksIDEsIC4yMiwgMSk7XG5cbi8vIE1hdGVyaWFsIGRlc2lnblxuJHRpbWluZy1mdW5jdGlvbi1mYXN0LW91dC1zbG93LWluOiBjdWJpYy1iZXppZXIoLjQsIDAsIC4yLCAxKSAhZGVmYXVsdDtcblxuLy8gUXVhZFxuJHRpbWluZy1mdW5jdGlvbi1lYXNlLW91dC1xdWFkOiBjdWJpYy1iZXppZXIoLjI1LCAuNDYsIC40NSwgLjk0KTtcbiR0aW1pbmctZnVuY3Rpb24tZWFzZS1pbi1vdXQtcXVhZDogY3ViaWMtYmV6aWVyKC40NTUsIC4wMywgLjUxNSwgLjk1NSk7XG5cbi8vIFF1YXJ0XG4kdGltaW5nLWZ1bmN0aW9uLWVhc2Utb3V0LXF1YXI6IGN1YmljLWJlemllciguMTY1LCAuODQsIC40NCwgMSk7XG5cbi8vIFF1aW50XG4kdGltaW5nLWZ1bmN0aW9uLWVhc2UtaW4tcXVpbnQ6IGN1YmljLWJlemllciguNzU1LCAuMDUsIC44NTUsIC4wNik7XG4kdGltaW5nLWZ1bmN0aW9uLWVhc2UtaW4tb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoLjg2LCAwLCAuMDcsIDEpO1xuXG4vLyBTaW5lXG4kdGltaW5nLWZ1bmN0aW9uLWVhc2UtaW4tb3V0LXNpbmU6IGN1YmljLWJlemllciguNDQ1LCAuMDUsIC41NSwgLjk1KTsiLCIvKiBTdXN5IGdyaWQgc3lzdGVtIHNldHRpbmdzICovXG4kZGVidWc6IGZhbHNlO1xuJHNob3ctaW1hZ2U6ICdoaWRlJztcbiRkZWJ1Zy1pbWFnZS1vdXRwdXQ6ICdiYWNrZ3JvdW5kJztcblxuQGlmICRkZWJ1ZyA9PSBmYWxzZSB7XG4gICRzaG93LWltYWdlOiAnaGlkZSc7XG59IEBlbHNlIHtcbiAgJHNob3ctaW1hZ2U6ICdzaG93Jztcbn1cblxuJHN1c3k6IChcbiAgICAgICAgZmxvdzogbHRyLFxuICAgICAgICBtYXRoOiBmbHVpZCxcbiAgICAgICAgY29udGFpbmVyLXBvc2l0aW9uOiAkY29udGFpbmVyLW1hcmdpbixcbiAgICAgICAgY29udGFpbmVyOiBhdXRvLFxuICAgICAgICBjb2x1bW5zOiAkY29sdW1uLW1vYmlsZSxcbiAgICAgICAgZ3V0dGVyczogMTVweC80MHB4LFxuICAgICAgICBjb2x1bW4td2lkdGg6IGZhbHNlLFxuICAgICAgICBkZWJ1ZzogKFxuICAgICAgICAgICAgICAgIGltYWdlOiAkc2hvdy1pbWFnZSxcbiAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgjNjZmLCAuMjUpLFxuICAgICAgICAgICAgICAgIG91dHB1dDogJGRlYnVnLWltYWdlLW91dHB1dCxcbiAgICAgICAgICAgICAgICB0b2dnbGU6IHRvcCByaWdodCxcbiAgICAgICAgKVxuKTtcblxuJHN1c3lfdGFibGV0X3BvcnRyYWl0OiAoXG4gICAgICAgIGNvbnRhaW5lci1wb3NpdGlvbjogNzRweCxcbiAgICAgICAgY29udGFpbmVyOiBhdXRvLFxuICAgICAgICBjb2x1bW5zOiAkY29sdW1uLXRhYmxldCxcbiAgICAgICAgZ3V0dGVyczogMjBweC82MHB4LFxuICAgICAgICBkZWJ1ZzogKFxuICAgICAgICAgICAgICAgIGltYWdlOiAkc2hvdy1pbWFnZSxcbiAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgjOTk5LCAuMjUpLFxuICAgICAgICAgICAgICAgIG91dHB1dDogJGRlYnVnLWltYWdlLW91dHB1dCxcbiAgICAgICAgICAgICAgICB0b2dnbGU6IHRvcCByaWdodCxcbiAgICAgICAgKSxcbik7XG5cbiRzdXN5X3RhYmxldF9sYW5kc2NhcGU6IChcbiAgICAgICAgY29sdW1uczogJGNvbHVtbi10YWJsZXQsXG4gICAgICAgIGd1dHRlcnM6IDIwcHgvODBweCxcbiAgICAgICAgY29udGFpbmVyLXBvc2l0aW9uOiAxMDJweCxcbiAgICAgICAgY29udGFpbmVyOiBhdXRvLFxuICAgICAgICBkZWJ1ZzogKFxuICAgICAgICAgICAgICAgIGltYWdlOiAkc2hvdy1pbWFnZSxcbiAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgjOTk5LCAuMjUpLFxuICAgICAgICAgICAgICAgIG91dHB1dDogJGRlYnVnLWltYWdlLW91dHB1dCxcbiAgICAgICAgICAgICAgICB0b2dnbGU6IHRvcCByaWdodCxcbiAgICAgICAgKSxcbik7XG5cbiRzdXN5X2Rlc2t0b3A6IChcbiAgICAgICAgY29sdW1uczogJGNvbHVtbi1kZXNrdG9wLFxuICAgICAgICBndXR0ZXJzOiAzMHB4LzcwcHgsXG4gICAgICAgIGNvbnRhaW5lci1wb3NpdGlvbjogY2VudGVyLFxuICAgICAgICBjb250YWluZXI6ICRkZXNrdG9wIC0gJGNvbnRhaW5lci1tYXJnaW4gKiAyLFxuICAgICAgICBkZWJ1ZzogKFxuICAgICAgICAgICAgICAgIGltYWdlOiAkc2hvdy1pbWFnZSxcbiAgICAgICAgICAgICAgICBjb2xvcjogcmdiYSgjMjIyLCAuMjUpLFxuICAgICAgICAgICAgICAgIG91dHB1dDogJGRlYnVnLWltYWdlLW91dHB1dCxcbiAgICAgICAgICAgICAgICB0b2dnbGU6IHRvcCByaWdodCxcbiAgICAgICAgKSxcbik7XG5cbi8qIERlZmluZSBicmVha3BvaW50cy4gKi9cbiRzdXN5LW1lZGlhOiAoXG4gICAgICAgIG1vYmlsZS13aWRlOiBlbSgkbW9iaWxlLWxhbmRzY2FwZSkgKiAxZW0sXG4gICAgICAgIHRhYmxldC1sYW5kc2NhcGUtZG93bjogKFxuICAgICAgICAgICAgICAgIG1lZGlhOiBzY3JlZW4sXG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiBlbSgkdGFibGV0LWxhbmRzY2FwZSAtIDEpICogMWVtXG4gICAgICAgICksXG4gICAgICAgIHRhYmxldC1wb3J0cmFpdC1kb3duOiAoXG4gICAgICAgICAgICAgICAgbWVkaWE6IHNjcmVlbixcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IGVtKCR0YWJsZXQtcG9ydHJhaXQgLSAxKSAqIDFlbVxuICAgICAgICApLFxuICAgICAgICB0YWJsZXQtcG9ydHJhaXQ6IGVtKCR0YWJsZXQtcG9ydHJhaXQpICogMWVtLFxuICAgICAgICB0YWJsZXQtbGFuZHNjYXBlLW9ubHk6IChcbiAgICAgICAgICAgICAgICBtZWRpYTogc2NyZWVuLFxuICAgICAgICAgICAgICAgIG1pbi13aWR0aDogZW0oJHRhYmxldC1sYW5kc2NhcGUpICogMWVtLFxuICAgICAgICAgICAgICAgIG1heC13aWR0aDogZW0oJGRlc2t0b3AgLSAxKSAqIDFlbVxuICAgICAgICApLFxuICAgICAgICB0YWJsZXQtbGFuZHNjYXBlOiBlbSgkdGFibGV0LWxhbmRzY2FwZSkgKiAxZW0sXG4gICAgICAgIGRlc2t0b3A6IGVtKCRkZXNrdG9wKSAqIDFlbSxcbik7XG5cbiVjb250YWluZXIsXG4uY29udGFpbmVyIHtcbiAgQGluY2x1ZGUgY29udGFpbmVyKCk7XG5cbiAgQGluY2x1ZGUgc3VzeS1tZWRpYSh0YWJsZXQtcG9ydHJhaXQpIHtcbiAgICBAaW5jbHVkZSBjb250YWluZXIoJHN1c3lfdGFibGV0X3BvcnRyYWl0KTtcbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktbWVkaWEodGFibGV0LWxhbmRzY2FwZSkge1xuICAgIEBpbmNsdWRlIGNvbnRhaW5lcigkc3VzeV90YWJsZXRfbGFuZHNjYXBlKTtcbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktbWVkaWEoZGVza3RvcCkge1xuICAgIEBpbmNsdWRlIGNvbnRhaW5lcigkc3VzeV9kZXNrdG9wKTtcbiAgfVxufVxuXG4lY29udGFpbmVyLS1uYXJyb3csXG4uY29udGFpbmVyLS1uYXJyb3cge1xuICBAaW5jbHVkZSBjb250YWluZXIoKTtcblxuICBAaW5jbHVkZSBzdXN5LW1lZGlhKHRhYmxldC1wb3J0cmFpdCkge1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIG1heC13aWR0aDogNjIwcHg7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LW1lZGlhKHRhYmxldC1sYW5kc2NhcGUpIHtcbiAgICBtYXgtd2lkdGg6IDc3MHB4O1xuICB9XG59XG5cbiVjb250YWluZXItLTE5MjAsXG4uY29udGFpbmVyLS0xOTIwIHtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1heC13aWR0aDogMTkyMHB4O1xufVxuXG4vKiBDb2x1bW5zIGRlZmluaXRpb25zICovXG4uY29sLXRhYmxldC1wb3J0cmFpdC1vbmUtaGFsZiB7XG4gIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCh0YWJsZXQtcG9ydHJhaXQpIHtcbiAgICBAaW5jbHVkZSBnYWxsZXJ5KDYgb2YgMTIpO1xuICB9XG59XG5cbi5jb2wtdGFibGV0LWxhbmRzY2FwZS1vbmUtaGFsZiB7XG4gIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCh0YWJsZXQtbGFuZHNjYXBlKSB7XG4gICAgQGluY2x1ZGUgZ2FsbGVyeSg2IG9mIDEyKTtcbiAgfVxufVxuXG4uY29sLWRlc2t0b3Atb25lLXRoaXJkIHtcbiAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KGRlc2t0b3ApIHtcbiAgICBAaW5jbHVkZSBnYWxsZXJ5KDQgb2YgMTIpO1xuICB9XG59XG5cbi5jb2wtdGFibGV0LWxhbmRzY2FwZS1xdWFydGVyIHtcbiAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KHRhYmxldC1wb3J0cmFpdCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbn1cblxuLypcbiogc3RpY2t5IGZvb3RlciBhdCBib3R0b21cbiogaHR0cHM6Ly9jc3MtdHJpY2tzLmNvbS9zbmlwcGV0cy9jc3Mvc3RpY2t5LWZvb3Rlci9cbiovXG5AaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQodGFibGV0LWxhbmRzY2FwZSkge1xuICBodG1sLCBib2R5IHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbiAgI3BhZ2Utd3JhcHBlciB7XG4gICAgbWluLWhlaWdodDogMTAwJTtcbiAgICAvKiBlcXVhbCB0byBmb290ZXIgaGVpZ2h0ICovXG4gICAgbWFyZ2luLWJvdHRvbTogLTc4cHg7XG4gIH1cbiAgI3BhZ2Utd3JhcHBlcjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuICAjcGFnZS13cmFwcGVyOmFmdGVyIHtcbiAgICAvKiAucHVzaCBtdXN0IGJlIHRoZSBzYW1lIGhlaWdodCBhcyBmb290ZXIgKi9cbiAgICBoZWlnaHQ6IDc4cHg7XG4gIH1cbn0iLCIvLyByZW0gU3VwcG9ydFxuLy8gPT09PT09PT09PT1cblxuLy8gcmVtXG4vLyAtLS1cbi8vIENoZWNrIGZvciBhbiBleGlzdGluZyBzdXBwb3J0IG1peGluLCBvciBvdXRwdXQgZGlyZWN0bHkuXG4vLyAtICRwcm9wICA6IDxjc3MgcHJvcGVydHk+XG4vLyAtICR2YWwgICA6IDxjc3MgdmFsdWU+XG5AbWl4aW4gc3VzeS1yZW0oXG4gICRwcm9wLFxuICAkdmFsXG4pIHtcbiAgJF9yZXFzOiAoXG4gICAgdmFyaWFibGU6IHJoeXRobS11bml0IHJlbS13aXRoLXB4LWZhbGxiYWNrLFxuICAgIG1peGluOiByZW0sXG4gICk7XG4gIEBpZiBzdXN5LXN1cHBvcnQocmVtLCAkX3JlcXMsICR3YXJuOiBmYWxzZSkgYW5kICRyaHl0aG0tdW5pdCA9PSByZW0ge1xuICAgIEBpbmNsdWRlIHJlbSgkcHJvcCwgJHZhbCk7XG4gIH0gQGVsc2Uge1xuICAgICN7JHByb3B9OiAkdmFsO1xuICB9XG59XG4iLCIvLyBDb250YWluZXIgU3ludGF4XG4vLyA9PT09PT09PT09PT09PT09XG5cbi8vIENvbnRhaW5lciBbbWl4aW5dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gU2V0IGEgY29udGFpbmVyIGVsZW1lbnRcbi8vIC0gWyRsYXlvdXRdICA6IDxzZXR0aW5ncz5cbkBtaXhpbiBjb250YWluZXIoXG4gICRsYXlvdXQ6ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgICAgOiAkbGF5b3V0O1xuICAkbGF5b3V0ICAgICA6IHBhcnNlLWdyaWQoJGxheW91dCk7XG5cbiAgJF93aWR0aCAgICAgOiBnZXQtY29udGFpbmVyLXdpZHRoKCRsYXlvdXQpO1xuICAkX2p1c3RpZnkgICA6IHBhcnNlLWNvbnRhaW5lci1wb3NpdGlvbihzdXN5LWdldChjb250YWluZXItcG9zaXRpb24sICRsYXlvdXQpKTtcbiAgJF9wcm9wZXJ0eSAgOiBpZihzdXN5LWdldChtYXRoLCAkbGF5b3V0KSA9PSBzdGF0aWMsIHdpZHRoLCBtYXgtd2lkdGgpO1xuXG4gICRfYm94ICAgICAgIDogc3VzeS1nZXQoYm94LXNpemluZywgJGxheW91dCk7XG5cbiAgQGlmICRfYm94IHtcbiAgICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRfYm94KSk7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoY29udGFpbmVyLCAkaW5zcGVjdCk7XG4gIEBpbmNsdWRlIGZsb2F0LWNvbnRhaW5lcigkX3dpZHRoLCAkX2p1c3RpZnksICRfcHJvcGVydHkpO1xuICBAaW5jbHVkZSBzaG93LWdyaWQoJGxheW91dCk7XG59XG5cbi8vIENvbnRhaW5lciBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIGNvbnRhaW5lciB3aWR0aFxuLy8gLSBbJGxheW91dF0gIDogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGNvbnRhaW5lcihcbiAgJGxheW91dDogJHN1c3lcbikge1xuICAkbGF5b3V0OiBwYXJzZS1ncmlkKCRsYXlvdXQpO1xuICBAcmV0dXJuIGdldC1jb250YWluZXItd2lkdGgoJGxheW91dCk7XG59XG5cbi8vIEdldCBDb250YWluZXIgV2lkdGhcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS1cbi8vIENhbGN1bGF0ZSB0aGUgY29udGFpbmVyIHdpZHRoXG4vLyAtIFskbGF5b3V0XTogPHNldHRpbmdzPlxuQGZ1bmN0aW9uIGdldC1jb250YWluZXItd2lkdGgoXG4gICRsYXlvdXQ6ICRzdXN5XG4pIHtcbiAgJGxheW91dCAgICAgICAgIDogcGFyc2UtZ3JpZCgkbGF5b3V0KTtcbiAgJF93aWR0aCAgICAgICAgIDogc3VzeS1nZXQoY29udGFpbmVyLCAkbGF5b3V0KTtcbiAgJF9jb2x1bW4td2lkdGggIDogc3VzeS1nZXQoY29sdW1uLXdpZHRoLCAkbGF5b3V0KTtcbiAgJF9tYXRoICAgICAgICAgIDogc3VzeS1nZXQobWF0aCwgJGxheW91dCk7XG5cbiAgQGlmIG5vdCgkX3dpZHRoKSBvciAkX3dpZHRoID09IGF1dG8ge1xuICAgIEBpZiB2YWxpZC1jb2x1bW4tbWF0aCgkX21hdGgsICRfY29sdW1uLXdpZHRoKSB7XG4gICAgICAkX2NvbHVtbnMgICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRsYXlvdXQpO1xuICAgICAgJF9ndXR0ZXJzICAgOiBzdXN5LWdldChndXR0ZXJzLCAkbGF5b3V0KTtcbiAgICAgICRfc3ByZWFkICAgIDogaWYoaXMtc3BsaXQoJGxheW91dCksIHdpZGUsIG5hcnJvdyk7XG4gICAgICAkX3dpZHRoICAgICA6IHN1c3ktc3VtKCRfY29sdW1ucywgJF9ndXR0ZXJzLCAkX3NwcmVhZCkgKiAkX2NvbHVtbi13aWR0aDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRfd2lkdGg6IDEwMCU7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkX3dpZHRoO1xufVxuXG4vLyBQYXJzZSBDb250YWluZXIgUG9zaXRpb25cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gUGFyc2UgdGhlICRjb250YWluZXItcG9zaXRpb24gaW50byBtYXJnaW4gdmFsdWVzLlxuLy8gLSBbJGp1c3RpZnldICAgOiBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgfCA8bGVuZ3RoPiBbPGxlbmd0aD5dXG5AZnVuY3Rpb24gcGFyc2UtY29udGFpbmVyLXBvc2l0aW9uKFxuICAkanVzdGlmeTogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgY29udGFpbmVyLXBvc2l0aW9uKVxuKSB7XG4gICRfcmV0dXJuOiBpZigkanVzdGlmeSA9PSBsZWZ0LCAwLCBhdXRvKSBpZigkanVzdGlmeSA9PSByaWdodCwgMCwgYXV0byk7XG5cbiAgQGlmIG5vdChpbmRleChsZWZ0IHJpZ2h0IGNlbnRlciwgJGp1c3RpZnkpKSB7XG4gICAgJF9yZXR1cm46IG50aCgkanVzdGlmeSwgMSk7XG4gICAgJF9yZXR1cm46ICRfcmV0dXJuIGlmKGxlbmd0aCgkanVzdGlmeSkgPiAxLCBudGgoJGp1c3RpZnksIDIpLCAkX3JldHVybik7XG4gIH1cblxuICBAcmV0dXJuICRfcmV0dXJuO1xufVxuIiwiLy8gU3VzeSBGYWxsYmFjayBDbGVhcmZpeFxuLy8gPT09PT09PT09PT09PT09PT09PT09PVxuXG5cbi8vIENsZWFyZml4XG4vLyAtLS0tLS0tLVxuLy8gQ2hlY2sgZm9yIGFuIGV4aXN0aW5nIHN1cHBvcnQgbWl4aW4sIG9yIHByb3ZpZGUgYSBzaW1wbGUgZmFsbGJhY2suXG5AbWl4aW4gc3VzeS1jbGVhcmZpeCB7XG4gIEBpZiBzdXN5LXN1cHBvcnQoY2xlYXJmaXgsIChtaXhpbjogY2xlYXJmaXgpKSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIH0gQGVsc2Uge1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCIgXCI7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gQnJlYWtwb2ludCBJbnRlZ3JhdGlvblxuLy8gPT09PT09PT09PT09PT09PT09PT09PVxuXG4kc3VzeS1tZWRpYTogKCkgIWRlZmF1bHQ7XG4kc3VzeS1tZWRpYS1mYWxsYmFjazogZmFsc2UgIWRlZmF1bHQ7XG5cbiRfc3VzeS1tZWRpYS1jb250ZXh0OiAoKTtcblxuXG4vLyBTdXN5IEJyZWFrcG9pbnRcbi8vIC0tLS0tLS0tLS0tLS0tLVxuLy8gQ2hhbmdlIGdyaWRzIGF0IGRpZmZlcmVudCBtZWRpYSBxdWVyeSBicmVha3BvaW50cy5cbi8vIC0gJHF1ZXJ5ICAgICA6IDxtaW4td2lkdGg+IFs8bWF4LXdpZHRoPl0gfCA8cHJvcGVydHk+IDx2YWx1ZT4gfCA8bWFwPlxuLy8gLSAkbGF5b3V0ICAgIDogPHNldHRpbmdzPlxuLy8gLSAkbm8tcXVlcnkgIDogPGJvb2xlYW4+IHwgPHNlbGVjdG9yPlxuQG1peGluIHN1c3ktYnJlYWtwb2ludChcbiAgJHF1ZXJ5LFxuICAkbGF5b3V0OiBmYWxzZSxcbiAgJG5vLXF1ZXJ5OiAkc3VzeS1tZWRpYS1mYWxsYmFja1xuKSB7XG4gIEBpbmNsdWRlIHN1c3ktbWVkaWEtcm91dGVyKCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgQGlmICRsYXlvdXQge1xuICAgICAgQGluY2x1ZGUgd2l0aC1sYXlvdXQoJGxheW91dCkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIFN1c3kgTWVkaWFcbi8vIC0tLS0tLS0tLS1cbi8vIC0gJHF1ZXJ5OiA8bWluLXdpZHRoPiBbPG1heC13aWR0aD5dIHwgPHByb3BlcnR5PiA8dmFsdWU+XG4vLyAtICRuby1xdWVyeTogPGJvb2xlYW4+IHwgPHNlbGVjdG9yPlxuQG1peGluIHN1c3ktbWVkaWEoXG4gICRxdWVyeSxcbiAgJG5vLXF1ZXJ5OiAkc3VzeS1tZWRpYS1mYWxsYmFja1xuKSB7XG4gICRvbGQtY29udGV4dDogJF9zdXN5LW1lZGlhLWNvbnRleHQ7XG4gICRuYW1lOiBpZihtYXAtaGFzLWtleSgkc3VzeS1tZWRpYSwgJHF1ZXJ5KSwgJHF1ZXJ5LCBudWxsKTtcbiAgJHF1ZXJ5OiBzdXN5LWdldC1tZWRpYSgkcXVlcnkpO1xuICAkcXVlcnk6IHN1c3ktcGFyc2UtbWVkaWEoJHF1ZXJ5KTtcblxuICBAaW5jbHVkZSBzdXN5LW1lZGlhLWNvbnRleHQoJHF1ZXJ5LCAkbmFtZSk7XG5cbiAgQGlmICRuby1xdWVyeSBhbmQgdHlwZS1vZigkbm8tcXVlcnkpICE9IHN0cmluZyB7XG4gICAgQGNvbnRlbnQ7XG4gIH0gQGVsc2Uge1xuICAgIEBtZWRpYSAje3N1c3ktcmVuZGVyLW1lZGlhKCRxdWVyeSl9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIEBpZiB0eXBlLW9mKCRuby1xdWVyeSkgPT0gc3RyaW5nIHtcbiAgICAgICN7JG5vLXF1ZXJ5fSAmIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1tZWRpYS1jb250ZXh0KCRvbGQtY29udGV4dCwgJGNsZWFuOiB0cnVlKTtcbn1cblxuXG4vLyBNZWRpYSBSb3V0ZXJcbi8vIC0tLS0tLS0tLS0tLVxuLy8gUm91dCBtZWRpYSBhcmd1bWVudHMgdG8gdGhlIGNvcnJlY3QgbWl4aW4uXG5AbWl4aW4gc3VzeS1tZWRpYS1yb3V0ZXIoXG4gICRxdWVyeSxcbiAgJG5vLXF1ZXJ5OiAkc3VzeS1tZWRpYS1mYWxsYmFja1xuKSB7XG4gIEBpZiBzdXN5LXN1cHBvcnQoYnJlYWtwb2ludCwgKG1peGluOiBicmVha3BvaW50KSwgJHdhcm46IGZhbHNlKSB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkcXVlcnksICRuby1xdWVyeSkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBzdXN5LW1lZGlhKCRxdWVyeSwgJG5vLXF1ZXJ5KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuXG4vLyBVcGRhdGUgQ29udGV4dFxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gU2V0IHRoZSBuZXcgbWVkaWEgY29udGV4dFxuQG1peGluIHN1c3ktbWVkaWEtY29udGV4dChcbiAgJHF1ZXJ5LFxuICAkbmFtZTogbnVsbCxcbiAgJGNsZWFuOiBmYWxzZVxuKSB7XG4gICRxdWVyeTogbWFwLW1lcmdlKChuYW1lOiAkbmFtZSksICRxdWVyeSk7XG5cbiAgQGlmICRjbGVhbiB7XG4gICAgJF9zdXN5LW1lZGlhLWNvbnRleHQ6ICRxdWVyeSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICAkX3N1c3ktbWVkaWEtY29udGV4dDogbWFwLW1lcmdlKCRfc3VzeS1tZWRpYS1jb250ZXh0LCAkcXVlcnkpICFnbG9iYWw7XG4gIH1cbn1cblxuXG4vLyBNZWRpYSBDb250ZXh0XG4vLyAtLS0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gdGhlIGZ1bGwgbWVkaWEgY29udGV4dCwgb3IgYSBzaW5nbGUgbWVkaWEgcHJvcGVydHkgKGUuZy4gbWluLXdpZHRoKVxuQGZ1bmN0aW9uIHN1c3ktbWVkaWEtY29udGV4dChcbiAgJHByb3BlcnR5OiBmYWxzZVxuKSB7XG4gIEBpZiAkcHJvcGVydHkge1xuICAgIEByZXR1cm4gbWFwLWdldCgkX3N1c3ktbWVkaWEtY29udGV4dCwgJHByb3BlcnR5KTtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiAkX3N1c3ktbWVkaWEtY29udGV4dDtcbiAgfVxufVxuXG5cbi8vIEdldCBNZWRpYVxuLy8gLS0tLS0tLS0tXG4vLyBSZXR1cm4gYSBuYW1lZCBtZWRpYS1xdWVyeSBmcm9tICRzdXN5LW1lZGlhLlxuLy8gLSAkbmFtZTogPGtleT5cbkBmdW5jdGlvbiBzdXN5LWdldC1tZWRpYShcbiAgJG5hbWVcbikge1xuICBAaWYgbWFwLWhhcy1rZXkoJHN1c3ktbWVkaWEsICRuYW1lKSB7XG4gICAgJG1hcC12YWx1ZTogbWFwLWdldCgkc3VzeS1tZWRpYSwgJG5hbWUpO1xuICAgIEBpZiAoJG5hbWUgPT0gJG1hcC12YWx1ZSkge1xuICAgICAgJG5hbWU6ICRtYXAtdmFsdWU7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkbmFtZTogc3VzeS1nZXQtbWVkaWEoJG1hcC12YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkbmFtZTtcbn1cblxuXG4vLyBSZW5kZXIgTWVkaWFcbi8vIC0tLS0tLS0tLS0tLVxuLy8gQnVpbGQgYSBtZWRpYS1xdWVyeSBzdHJpbmcgZnJvbSB2YXJpb3VzIG1lZGlhIHNldHRpbmdzXG5AZnVuY3Rpb24gc3VzeS1yZW5kZXItbWVkaWEoXG4gICRxdWVyeVxuKSB7XG4gICRvdXRwdXQ6IG51bGw7XG4gIEBlYWNoICRwcm9wZXJ0eSwgJHZhbHVlIGluICRxdWVyeSB7XG4gICAgJHN0cmluZzogbnVsbDtcblxuICAgIEBpZiAkcHJvcGVydHkgPT0gbWVkaWEge1xuICAgICAgJHN0cmluZzogJHZhbHVlO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHN0cmluZzogJygjeyRwcm9wZXJ0eX06ICN7JHZhbHVlfSknO1xuICAgIH1cblxuICAgICRvdXRwdXQ6IGlmKCRvdXRwdXQsICcjeyRvdXRwdXR9IGFuZCAjeyRzdHJpbmd9JywgJHN0cmluZyk7XG4gIH1cblxuICBAcmV0dXJuICRvdXRwdXQ7XG59XG5cblxuLy8gUGFyc2UgTWVkaWFcbi8vIC0tLS0tLS0tLS0tXG4vLyBSZXR1cm4gcGFyc2VkIG1lZGlhLXF1ZXJ5IHNldHRpbmdzIGJhc2VkIG9uIHNob3J0aGFuZFxuQGZ1bmN0aW9uIHN1c3ktcGFyc2UtbWVkaWEoXG4gICRxdWVyeVxuKSB7XG4gICRtcTogbnVsbDtcbiAgQGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSBtYXAge1xuICAgICRtcTogJHF1ZXJ5O1xuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSBudW1iZXIge1xuICAgICRtcTogKG1pbi13aWR0aDogJHF1ZXJ5KTtcbiAgfSBAZWxzZSBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gbGlzdCBhbmQgbGVuZ3RoKCRxdWVyeSkgPT0gMiB7XG4gICAgQGlmIHR5cGUtb2YobnRoKCRxdWVyeSwgMSkpID09IG51bWJlciB7XG4gICAgICAkbXE6IChcbiAgICAgICAgbWluLXdpZHRoOiBtaW4oJHF1ZXJ5Li4uKSxcbiAgICAgICAgbWF4LXdpZHRoOiBtYXgoJHF1ZXJ5Li4uKSxcbiAgICAgICk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkbXE6IChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJG1xOiAobWVkaWE6ICcjeyRxdWVyeX0nKTtcbiAgfVxuXG4gIEByZXR1cm4gJG1xO1xufVxuIiwiLy8gU3BhbiBTeW50YXhcbi8vID09PT09PT09PT09XG5cbi8vIFNwYW4gW21peGluXVxuLy8gLS0tLS0tLS0tLS0tXG4vLyBTZXQgYSBzcGFubmluZyBlbGVtZW50IHVzaW5nIHNob3J0aGFuZCBzeW50YXguXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQG1peGluIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgJGluc3BlY3Q6ICRzcGFuO1xuICAkc3BhbjogcGFyc2Utc3Bhbigkc3Bhbik7XG4gICRvdXRwdXQ6IHNwYW4tbWF0aCgkc3Bhbik7XG4gICRuZXN0aW5nOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRjbGVhcjogc3VzeS1nZXQoY2xlYXIsICRzcGFuKTtcblxuICAkYm94OiBzdXN5LWdldChib3gtc2l6aW5nLCAkc3Bhbik7XG4gICRjb250ZW50LWJveDogaWYoc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpICE9ICdib3JkZXItYm94JywgdHJ1ZSwgZmFsc2UpO1xuICAkYm94OiAkYm94IG9yIGlmKGlzLWluc2lkZSgkc3BhbikgYW5kICRjb250ZW50LWJveCwgYm9yZGVyLWJveCwgbnVsbCk7XG5cbiAgQGlmICRjbGVhciA9PSBicmVhayB7XG4gICAgQGluY2x1ZGUgYnJlYWs7XG4gIH0gQGVsc2UgaWYgJGNsZWFyID09IG5vYnJlYWsge1xuICAgIEBpbmNsdWRlIG5vYnJlYWs7XG4gIH1cblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3Qoc3BhbiwgJGluc3BlY3QpO1xuICBAaW5jbHVkZSBvdXRwdXQoKGJveC1zaXppbmc6ICRib3gpKTtcbiAgQGluY2x1ZGUgZmxvYXQtc3Bhbi1vdXRwdXQoJG91dHB1dC4uLik7XG5cbiAgQGlmIHZhbGlkLWNvbHVtbnMoJG5lc3RpbmcsIHNpbGVudCkge1xuICAgIEBpbmNsdWRlIG5lc3RlZCgkc3BhbikgeyBAY29udGVudDsgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBTcGFuIFtmdW5jdGlvbl1cbi8vIC0tLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSB3aWR0aCBvZiBhIHNwYW4uXG4vLyAtICRzcGFuICA6IDxzcGFuPlxuQGZ1bmN0aW9uIHNwYW4oXG4gICRzcGFuXG4pIHtcbiAgQHJldHVybiBnZXQtc3Bhbi13aWR0aCgkc3Bhbik7XG59XG5cbi8vIFNwYW4gTWF0aFxuLy8gLS0tLS0tLS0tXG4vLyBHZXQgYWxsIHRoZSBzcGFuIHJlc3VsdHMuXG4vLyAtICRzcGFuOiA8bWFwPlxuQGZ1bmN0aW9uIHNwYW4tbWF0aChcbiAgJHNwYW5cbikge1xuICAkbmVzdCAgICAgICAgICAgICA6IGlmKHN1c3ktZ2V0KHJvbGUsICRzcGFuKSA9PSBuZXN0LCB0cnVlLCBmYWxzZSk7XG4gICRzcGxpdC1uZXN0ICAgICAgIDogaWYoaXMtc3BsaXQoJHNwYW4pIGFuZCAkbmVzdCwgdHJ1ZSwgZmFsc2UpO1xuICAkZWRnZSAgICAgICAgICAgICA6IGdldC1lZGdlKCRzcGFuKTtcbiAgJGxvY2F0aW9uICAgICAgICAgOiBnZXQtbG9jYXRpb24oJHNwYW4pO1xuXG4gICRmbG9hdCAgICAgICAgICAgIDogZnJvbTtcbiAgJHBhZGRpbmctYmVmb3JlICAgOiBudWxsO1xuICAkcGFkZGluZy1hZnRlciAgICA6IG51bGw7XG4gICRtYXJnaW4tYmVmb3JlICAgIDogbnVsbDtcbiAgJG1hcmdpbi1hZnRlciAgICAgOiBudWxsO1xuXG4gIC8vIGNhbGN1bGF0ZSB3aWR0aHNcbiAgJHNwcmVhZDogaW5kZXgobWFwLXZhbHVlcygkc3BhbiksIHNwcmVhZCk7XG4gICRzcGFuOiBpZigkc3BsaXQtbmVzdCBhbmQgbm90KCRzcHJlYWQpLCBtYXAtbWVyZ2UoJHNwYW4sIChzcHJlYWQ6IHdpZGUpKSwgJHNwYW4pO1xuICAkd2lkdGg6IGdldC1zcGFuLXdpZHRoKCRzcGFuKTtcbiAgJGd1dHRlcnM6IGdldC1ndXR0ZXJzKCRzcGFuKTtcblxuICAvLyBhcHBseSBndXR0ZXJzXG4gIEBpZiBpcy1pbnNpZGUoJHNwYW4pIHtcbiAgICBAaWYgbm90KHN1c3ktZ2V0KHJvbGUsICRzcGFuKSkge1xuICAgICAgJHBhZGRpbmctYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJHBhZGRpbmctYWZ0ZXI6IG1hcC1nZXQoJGd1dHRlcnMsIGFmdGVyKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBub3QoJHNwbGl0LW5lc3QpIHtcbiAgICAgICRtYXJnaW4tYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpO1xuICAgICAgJG1hcmdpbi1hZnRlcjogbWFwLWdldCgkZ3V0dGVycywgYWZ0ZXIpO1xuICAgIH1cbiAgfVxuXG4gIC8vIHNwZWNpYWwgbWFyZ2luIGhhbmRsaW5nXG4gIEBpZiBzdXN5LWdldChvdXRwdXQsICRzcGFuKSA9PSBpc29sYXRlIGFuZCAkbG9jYXRpb24ge1xuICAgICRtYXJnaW4tYmVmb3JlOiBnZXQtaXNvbGF0aW9uKCRzcGFuKTtcbiAgICAkbWFyZ2luLWFmdGVyOiAtMTAwJTtcbiAgfSBAZWxzZSBpZiAkZWRnZSB7XG4gICAgJGlzLXNwbGl0OiBpcy1zcGxpdCgkc3Bhbik7XG4gICAgJHBvczogc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkc3Bhbik7XG5cbiAgICBAaWYgJGVkZ2UgPT0gbGFzdCB7XG4gICAgICAkZmxvYXQ6IHN1c3ktZ2V0KGxhc3QtZmxvdywgJHNwYW4pO1xuICAgIH1cblxuICAgIEBpZiBub3QoJGlzLXNwbGl0KSB7XG4gICAgICBAaWYgJGVkZ2UgPT0gZnVsbCBvciAoJGVkZ2UgPT0gZmlyc3QgYW5kICRwb3MgPT0gYmVmb3JlKSB7XG4gICAgICAgICRtYXJnaW4tYmVmb3JlOiAwO1xuICAgICAgfVxuICAgICAgQGlmICRlZGdlID09IGZ1bGwgb3IgKCRlZGdlID09IGxhc3QgYW5kICRwb3MgPT0gYWZ0ZXIpIHtcbiAgICAgICAgJG1hcmdpbi1hZnRlcjogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgfVxuXG4gIEByZXR1cm4gKFxuICAgIHdpZHRoICAgICAgICAgICA6ICR3aWR0aCxcbiAgICBmbG9hdCAgICAgICAgICAgOiAkZmxvYXQsXG4gICAgbWFyZ2luLWJlZm9yZSAgIDogJG1hcmdpbi1iZWZvcmUsXG4gICAgbWFyZ2luLWFmdGVyICAgIDogJG1hcmdpbi1hZnRlcixcbiAgICBwYWRkaW5nLWJlZm9yZSAgOiAkcGFkZGluZy1iZWZvcmUsXG4gICAgcGFkZGluZy1hZnRlciAgIDogJHBhZGRpbmctYWZ0ZXIsXG4gICAgZmxvdyAgICAgICAgICAgIDogc3VzeS1nZXQoZmxvdywgJHNwYW4pLFxuICApO1xufVxuXG4vLyBHZXQgU3BhbiBXaWR0aFxuLy8gLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBzcGFuIHdpZHRoLlxuLy8gLSAkc3BhbjogPG1hcD5cbkBmdW5jdGlvbiBnZXQtc3Bhbi13aWR0aChcbiAgJHNwYW5cbikge1xuICAkc3BhbiAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcblxuICAkbiAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRsb2NhdGlvbiA6IGdldC1sb2NhdGlvbigkc3Bhbik7XG4gICRjb2x1bW5zICA6IHN1c3ktZ2V0KGNvbHVtbnMsICRzcGFuKTtcbiAgJGd1dHRlcnMgIDogc3VzeS1nZXQoZ3V0dGVycywgJHNwYW4pO1xuICAkc3ByZWFkICAgOiBzdXN5LWdldChzcHJlYWQsICRzcGFuKTtcblxuICAkY29udGV4dCAgOiBudWxsO1xuICAkc3Bhbi1zdW0gOiBudWxsO1xuICAkd2lkdGggICAgOiBudWxsO1xuXG4gIEBpZiAkbiA9PSAnZnVsbCcge1xuICAgICRwb3M6IHN1c3ktZ2V0KGd1dHRlci1wb3NpdGlvbiwgJHNwYW4pO1xuICAgICRyb2xlOiBzdXN5LWdldChyb2xlLCAkc3Bhbik7XG4gICAgJG46IGlmKCRwb3MgPT0gc3BsaXQgYW5kICRyb2xlICE9IG5lc3QsIHN1c3ktY291bnQoJGNvbHVtbnMpLCAxMDAlKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRuKSAhPSBudW1iZXIge1xuICAgIEB3YXJuIFwiKCN7dHlwZS1vZigkbil9KSAjeyRufSBpcyBub3QgYSB2YWxpZCBzcGFuLlwiO1xuICB9IEBlbHNlIGlmIHVuaXRsZXNzKCRuKSB7XG4gICAgJGNvbnRleHQ6IHN1c3ktc3VtKCRjb2x1bW5zLCAkZ3V0dGVycywgaWYoaXMtc3BsaXQoJHNwYW4pLCB3aWRlLCBuYXJyb3cpKTtcbiAgICAkc3ByZWFkOiBpZihpcy1pbnNpZGUoJHNwYW4pLCAkc3ByZWFkIG9yIHdpZGUsICRzcHJlYWQpO1xuICAgICRzcGFuLXN1bTogc3VzeSgkbiwgJGxvY2F0aW9uLCAkY29sdW1ucywgJGd1dHRlcnMsICRzcHJlYWQpO1xuXG4gICAgJF9tYXRoOiBzdXN5LWdldChtYXRoLCAkc3Bhbik7XG4gICAgJF9jb2x1bW4td2lkdGg6IHN1c3ktZ2V0KGNvbHVtbi13aWR0aCwgJHNwYW4pO1xuICAgIEBpZiAkX21hdGggPT0gc3RhdGljIHtcbiAgICAgICR3aWR0aDogJHNwYW4tc3VtICogdmFsaWQtY29sdW1uLW1hdGgoJF9tYXRoLCAkX2NvbHVtbi13aWR0aCk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2lkdGg6IHBlcmNlbnRhZ2UoJHNwYW4tc3VtIC8gJGNvbnRleHQpO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJHdpZHRoOiAkbjtcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoO1xufVxuIiwiLy8gRGlyZWN0aW9uIEhlbHBlcnNcbi8vID09PT09PT09PT09PT09PT09XG5cbi8vIFN1c3kgRmxvdyBEZWZhdWx0c1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tXG4vLyAtIFBSSVZBVEVcbkBpbmNsdWRlIHN1c3ktZGVmYXVsdHMoKFxuICBmbG93OiBsdHIsXG4pKTtcblxuLy8gR2V0IERpcmVjdGlvblxuLy8gLS0tLS0tLS0tLS0tLVxuLy8gUmV0dXJuIHRoZSAnZnJvbScgb3IgJ3RvJyBkaXJlY3Rpb24gb2YgYSBsdHIgb3IgcnRsIGZsb3cuXG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG4vLyAtIFska2V5XSAgIDogZnJvbSB8IHRvXG5AZnVuY3Rpb24gZ2V0LWRpcmVjdGlvbihcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpLFxuICAka2V5OiBmcm9tXG4pIHtcbiAgJHJldHVybjogaWYoJGZsb3cgPT0gcnRsLCAoZnJvbTogcmlnaHQsIHRvOiBsZWZ0KSwgKGZyb206IGxlZnQsIHRvOiByaWdodCkpO1xuICBAcmV0dXJuIG1hcC1nZXQoJHJldHVybiwgJGtleSk7XG59XG5cbi8vIFRvXG4vLyAtLVxuLy8gUmV0dXJuIHRoZSAndG8nIGRpcmVjdGlvbiBvZiBhIGZsb3dcbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBmdW5jdGlvbiB0byhcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgQHJldHVybiBnZXQtZGlyZWN0aW9uKCRmbG93LCB0byk7XG59XG5cbi8vIEZyb21cbi8vIC0tLS1cbi8vIFJldHVybiB0aGUgJ2Zyb20nIGRpcmVjdGlvbiBvZiBhIGZsb3dcbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBmdW5jdGlvbiBmcm9tKFxuICAkZmxvdzogbWFwLWdldCgkc3VzeS1kZWZhdWx0cywgZmxvdylcbikge1xuICBAcmV0dXJuIGdldC1kaXJlY3Rpb24oJGZsb3csIGZyb20pO1xufVxuIiwiLy8gSXNvbGF0aW9uIFN5bnRheFxuLy8gPT09PT09PT09PT09PT09PVxuXG5cbi8vIElzb2xhdGUgW01peGluXVxuLy8gLS0tLS0tLS0tLS0tLS0tXG4vLyBTZXQgaXNvbGF0aW9uIGFzIGFuIG92ZXJyaWRlLlxuLy8gLSAkbG9jYXRpb246IDxzcGFuPlxuQG1peGluIGlzb2xhdGUoXG4gICRpc29sYXRlOiAxXG4pIHtcbiAgJGluc3BlY3Q6ICRpc29sYXRlO1xuXG4gICRvdXRwdXQ6IChcbiAgICBwdXNoOiBpc29sYXRlKCRpc29sYXRlKSxcbiAgICBmbG93OiBzdXN5LWdldChmbG93LCAkaXNvbGF0ZSksXG4gICk7XG5cbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGlzb2xhdGUsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgaXNvbGF0ZS1vdXRwdXQoJG91dHB1dC4uLik7XG59XG5cblxuLy8gSXNvbGF0ZSBbZnVuY3Rpb25dXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiBhbiBpc29sYXRpb24gb2Zmc2V0IHdpZHRoLlxuLy8gLSAkbG9jYXRpb246IDxzcGFuPlxuQGZ1bmN0aW9uIGlzb2xhdGUoXG4gICRpc29sYXRlOiAxXG4pIHtcbiAgJGlzb2xhdGU6IHBhcnNlLXNwYW4oJGlzb2xhdGUpO1xuICAkaXNvbGF0aW9uOiBzdXN5LWdldChzcGFuLCAkaXNvbGF0ZSk7XG5cbiAgQGlmICRpc29sYXRpb24gYW5kIG5vdChnZXQtbG9jYXRpb24oJGlzb2xhdGUpKSB7XG4gICAgJG5ldzogKFxuICAgICAgc3BhbjogbnVsbCxcbiAgICAgIGxvY2F0aW9uOiAkaXNvbGF0aW9uLFxuICAgICk7XG4gICAgJGlzb2xhdGU6IG1hcC1tZXJnZSgkaXNvbGF0ZSwgJG5ldyk7XG4gIH1cblxuICBAcmV0dXJuIGdldC1pc29sYXRpb24oJGlzb2xhdGUpO1xufVxuXG5cbi8vIEdldCBJc29sYXRpb25cbi8vIC0tLS0tLS0tLS0tLS1cbi8vIFJldHVybiB0aGUgaXNvbGF0aW9uIG9mZnNldCB3aWR0aFxuLy8gLSAkaW5wdXQ6IDxtYXA+XG5AZnVuY3Rpb24gZ2V0LWlzb2xhdGlvbihcbiAgJGlucHV0XG4pIHtcbiAgJGxvY2F0aW9uICAgOiBnZXQtbG9jYXRpb24oJGlucHV0KTtcbiAgJGNvbHVtbnMgICAgOiBzdXN5LWdldChjb2x1bW5zLCAkaW5wdXQpO1xuICAkd2lkdGggICAgICA6IG51bGw7XG5cbiAgQGlmIHR5cGUtb2YoJGxvY2F0aW9uKSA9PSBudW1iZXIgYW5kIG5vdCh1bml0bGVzcygkbG9jYXRpb24pKSB7XG4gICAgJHdpZHRoOiAkbG9jYXRpb247XG4gIH0gQGVsc2UgaWYgJGxvY2F0aW9uIHtcbiAgICAkcHVzaDogJGxvY2F0aW9uIC0gMTtcbiAgICBAaWYgJHB1c2ggPiAwIHtcbiAgICAgICRwdXNoOiBtYXAtbWVyZ2UoJGlucHV0LCAoXG4gICAgICAgIHNwYW46ICRwdXNoLFxuICAgICAgICBsb2NhdGlvbjogMSxcbiAgICAgICAgc3ByZWFkOiB3aWRlLFxuICAgICAgKSk7XG4gICAgICAkd2lkdGg6IGdldC1zcGFuLXdpZHRoKCRwdXNoKTtcbiAgICB9XG4gIH1cblxuICBAaWYgc3VzeS1nZXQoZ3V0dGVyLXBvc2l0aW9uLCAkaW5wdXQpID09IHNwbGl0XG4gICAgICBhbmQgc3VzeS1nZXQoZ3V0dGVycywgJGlucHV0KSA+IDAge1xuICAgICR3aWR0aDogaWYoJHdpZHRoID09IG51bGwsIGd1dHRlcnMoJGlucHV0KSwgJHdpZHRoICsgZ3V0dGVycygkaW5wdXQpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHdpZHRoIG9yIDA7XG59XG4iLCIvLyBHYWxsZXJ5IFN5bnRheFxuLy8gPT09PT09PT09PT09PT1cblxuLy8gR2FsbGVyeVxuLy8gLS0tLS0tLVxuLy8gQ3JlYXRlIGFuIGlzb2xhdGVkIGdhbGxlcnlcbi8vIC0gJHNwYW4gICAgICAgIDogPHNwYW4+XG4vLyAtIFskc2VsZWN0b3JdICA6IGNoaWxkIHwgb2YtdHlwZVxuQG1peGluIGdhbGxlcnkoXG4gICRzcGFuLFxuICAkc2VsZWN0b3I6IGNoaWxkXG4pIHtcbiAgJGluc3BlY3QgICAgOiAkc3BhbjtcbiAgJHNwYW4gICAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcbiAgJHNwYW4gICAgICAgOiBtYXAtbWVyZ2UoJHNwYW4sIChsb2NhdGlvbjogMSkpO1xuXG4gICRuICAgICAgICAgICAgOiBzdXN5LWdldChzcGFuLCAkc3Bhbik7XG4gICRjb2x1bW5zICAgICAgOiBzdXN5LWdldChjb2x1bW5zLCAkc3Bhbik7XG4gICRjb250ZXh0ICAgICAgOiBzdXN5LWNvdW50KCRjb2x1bW5zKTtcbiAgJGZsb3cgICAgICAgICA6IHN1c3ktZ2V0KGZsb3csICRzcGFuKTtcblxuICAkaW5zaWRlICAgICAgIDogaXMtaW5zaWRlKCRzcGFuKTtcbiAgJGZyb20gICAgICAgICA6IGZyb20oJGZsb3cpO1xuICAkbGluZSAgICAgICAgIDogZmxvb3IoJGNvbnRleHQgLyAkbik7XG4gICRzeW1tZXRyaWNhbCAgOiBpcy1zeW1tZXRyaWNhbCgkY29sdW1ucyk7XG5cbiAgJG91dHB1dDogKFxuICAgIHdpZHRoICAgICAgICAgICAgIDogbnVsbCxcbiAgICBmbG9hdCAgICAgICAgICAgICA6IGZyb20sXG4gICAgbWFyZ2luLWJlZm9yZSAgICAgOiBudWxsLFxuICAgIG1hcmdpbi1hZnRlciAgICAgIDogbnVsbCxcbiAgICBwYWRkaW5nLWJlZm9yZSAgICA6IG51bGwsXG4gICAgcGFkZGluZy1hZnRlciAgICAgOiBudWxsLFxuICAgIGZsb3cgICAgICAgICAgICAgIDogJGZsb3csXG4gICk7XG5cbiAgQGlmICRpbnNpZGUge1xuICAgICRndXR0ZXJzOiBnZXQtZ3V0dGVycygkc3Bhbik7XG4gICAgJG91dHB1dDogbWFwLW1lcmdlKCRvdXRwdXQsIChcbiAgICAgIHBhZGRpbmctYmVmb3JlOiBtYXAtZ2V0KCRndXR0ZXJzLCBiZWZvcmUpLFxuICAgICAgcGFkZGluZy1hZnRlcjogbWFwLWdldCgkZ3V0dGVycywgYWZ0ZXIpLFxuICAgICkpO1xuICB9XG5cbiAgQGlmICRzeW1tZXRyaWNhbCB7XG4gICAgJG91dHB1dDogbWFwLW1lcmdlKCRvdXRwdXQsICh3aWR0aDogZ2V0LXNwYW4td2lkdGgoJHNwYW4pKSk7XG4gIH1cblxuICAkYm94ICAgICAgICAgIDogc3VzeS1nZXQoYm94LXNpemluZywgJHNwYW4pO1xuICAkZ2xvYmFsLWJveCAgIDogaWYoc3VzeS1nZXQoZ2xvYmFsLWJveC1zaXppbmcpID09ICdib3JkZXItYm94JywgdHJ1ZSwgZmFsc2UpO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChnYWxsZXJ5LCAkaW5zcGVjdCk7XG5cbiAgLy8gQ29sbGVjdGl2ZSBPdXRwdXRcbiAgQGlmICRib3ggPT0gYm9yZGVyLWJveCBvciAoJGluc2lkZSBhbmQgbm90KCRib3gpIGFuZCBub3QoJGdsb2JhbC1ib3gpKSB7XG4gICAgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiBib3JkZXItYm94KSk7XG4gIH0gQGVsc2UgaWYgJGJveCA9PSBjb250ZW50LWJveCB7XG4gICAgQGluY2x1ZGUgb3V0cHV0KChib3gtc2l6aW5nOiBjb250ZW50LWJveCkpO1xuICB9XG5cbiAgQGluY2x1ZGUgZmxvYXQtc3Bhbi1vdXRwdXQoJG91dHB1dC4uLik7XG5cbiAgLy8gSW5kaXZpZHVhbCBMb29wXG4gIEBmb3IgJGl0ZW0gZnJvbSAxIHRocm91Z2ggJGxpbmUge1xuICAgICRudGg6ICcjeyRsaW5lfW4gKyAjeyRpdGVtfSc7XG4gICAgJjpudGgtI3skc2VsZWN0b3J9KCN7JG50aH0pIHtcbiAgICAgIC8vIEluZGl2aWR1YWwgUHJlcFxuICAgICAgJG91dHB1dDogKFxuICAgICAgICB3aWR0aCAgICAgICAgICAgICA6IGlmKCRzeW1tZXRyaWNhbCwgbnVsbCwgZ2V0LXNwYW4td2lkdGgoJHNwYW4pKSxcbiAgICAgICAgZmxvYXQgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICBtYXJnaW4tYmVmb3JlICAgICA6IGdldC1pc29sYXRpb24oJHNwYW4pLFxuICAgICAgICBtYXJnaW4tYWZ0ZXIgICAgICA6IC0xMDAlLFxuICAgICAgICBwYWRkaW5nLWJlZm9yZSAgICA6IG51bGwsXG4gICAgICAgIHBhZGRpbmctYWZ0ZXIgICAgIDogbnVsbCxcbiAgICAgICAgZmxvdyAgICAgICAgICAgICAgOiAkZmxvdyxcbiAgICAgICk7XG5cbiAgICAgIC8vIEluZGl2aWR1YWwgT3V0cHV0XG4gICAgICBAaW5jbHVkZSBmbG9hdC1zcGFuLW91dHB1dCgkb3V0cHV0Li4uKTtcblxuICAgICAgQGlmIGdldC1lZGdlKCRzcGFuKSA9PSBmaXJzdCB7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrO1xuICAgICAgICBAaW5jbHVkZSBmaXJzdCgkc3Bhbik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgQGluY2x1ZGUgbm9icmVhaztcbiAgICAgIH1cblxuICAgICAgLy8gSW5kaXZpZHVhbCBMb2NhdGlvbiBJbmNyZW1lbnRcbiAgICAgICRsb2NhdGlvbjogZ2V0LWxvY2F0aW9uKCRzcGFuKSArICRuO1xuICAgICAgJGxvY2F0aW9uOiBpZigkbG9jYXRpb24gPiAkY29udGV4dCwgMSwgJGxvY2F0aW9uKTtcbiAgICAgICRzcGFuOiBtYXAtbWVyZ2UoJHNwYW4sIChsb2NhdGlvbjogJGxvY2F0aW9uKSk7XG4gICAgfVxuICB9XG59XG4iLCIvLyBSb3cgU3RhcnQgJiBFbmRcbi8vID09PT09PT09PT09PT09PVxuXG4vLyBCcmVha1xuLy8gLS0tLS1cbi8vIEFwcGx5IHRvIGFueSBlbGVtZW50IHRoYXQgc2hvdWxkIGZvcmNlIGEgbGluZSBicmVhay5cbkBtaXhpbiBicmVhayB7XG4gIEBpbmNsdWRlIG91dHB1dCgoY2xlYXI6IGJvdGgpKTtcbn1cblxuXG4vLyBOb0JyZWFrXG4vLyAtLS0tLS0tXG4vLyBDYW5jZWwgdGhlIGJyZWFrKCkgZWZmZWN0LCBlLmcuIHdoZW4gdXNpbmcgbWVkaWEgcXVlcmllcy5cbkBtaXhpbiBub2JyZWFrIHtcbiAgQGluY2x1ZGUgb3V0cHV0KChjbGVhcjogbm9uZSkpO1xufVxuXG5cbi8vIEZ1bGxcbi8vIC0tLS1cbi8vIC0gWyRjb250ZXh0XTogPGxheW91dCBzaG9ydGhhbmQ+XG5AbWl4aW4gZnVsbChcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgOiAkY29udGV4dDtcbiAgQGluY2x1ZGUgc3VzeS1pbnNwZWN0KGZ1bGwsICRpbnNwZWN0KTtcbiAgQGluY2x1ZGUgc3BhbihmdWxsIG9mIHBhcnNlLWdyaWQoJGNvbnRleHQpIGJyZWFrKTtcbn1cblxuXG4vLyBGaXJzdFxuLy8gLS0tLS1cbi8vIC0gWyRjb250ZXh0XTogPHNldHRpbmdzPlxuQG1peGluIGZpcnN0KFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICAkaW5zcGVjdCAgOiAkY29udGV4dDtcbiAgJGNvbnRleHQgIDogcGFyc2UtZ3JpZCgkY29udGV4dCk7XG4gICRmbG93ICAgICA6IHN1c3ktZ2V0KGZsb3csICRjb250ZXh0KTtcblxuICBAaW5jbHVkZSBzdXN5LWluc3BlY3QoZmlyc3QsICRpbnNwZWN0KTtcbiAgQGlmIG5vdChpcy1zcGxpdCgkY29udGV4dCkpIHtcbiAgICBAaW5jbHVkZSBmbG9hdC1maXJzdCgkZmxvdyk7XG4gIH1cbn1cblxuQG1peGluIGFscGhhKFxuICAkY29udGV4dDogJHN1c3lcbikge1xuICBAaW5jbHVkZSBmaXJzdCgkY29udGV4dCk7XG59XG5cblxuLy8gTGFzdFxuLy8gLS0tLVxuLy8gLSBbJGNvbnRleHRdOiA8c2V0dGluZ3M+XG5AbWl4aW4gbGFzdChcbiAgJGNvbnRleHQ6ICRzdXN5XG4pIHtcbiAgJGluc3BlY3QgIDogJGNvbnRleHQ7XG4gICRjb250ZXh0ICA6IHBhcnNlLWdyaWQoJGNvbnRleHQpO1xuXG4gIEBpbmNsdWRlIHN1c3ktaW5zcGVjdChsYXN0LCAkaW5zcGVjdCk7XG5cbiAgJG91dHB1dDogKFxuICAgIGZsb3c6IHN1c3ktZ2V0KGZsb3csICRjb250ZXh0KSxcbiAgICBsYXN0LWZsb3c6IHN1c3ktZ2V0KGxhc3QtZmxvdywgJGNvbnRleHQpLFxuICAgIG1hcmdpbjogaWYoaXMtc3BsaXQoJGNvbnRleHQpLCBudWxsLCAwKSxcbiAgKTtcblxuICBAaW5jbHVkZSBmbG9hdC1sYXN0KCRvdXRwdXQuLi4pO1xufVxuXG5AbWl4aW4gb21lZ2EoXG4gICRjb250ZXh0OiAkc3VzeVxuKSB7XG4gIEBpbmNsdWRlIGxhc3QoJGNvbnRleHQpO1xufVxuXG5cbi8vIEdldCBFZGdlXG4vLyAtLS0tLS0tLVxuLy8gQ2FsY3VsYXRlIGVkZ2UgdmFsdWUgYmFzZWQgb24gbG9jYXRpb24sIGlmIHBvc3NpYmxlXG5AZnVuY3Rpb24gZ2V0LWVkZ2UoXG4gICRzcGFuXG4pIHtcbiAgJHNwYW4gICAgICAgOiBwYXJzZS1zcGFuKCRzcGFuKTtcbiAgJGVkZ2UgICAgICAgOiBzdXN5LWdldChlZGdlLCAkc3Bhbik7XG5cbiAgQGlmIG5vdCgkZWRnZSkge1xuICAgICRjb3VudDogc3VzeS1jb3VudChzdXN5LWdldChjb2x1bW5zLCAkc3BhbikpO1xuICAgICRsb2NhdGlvbjogc3VzeS1nZXQobG9jYXRpb24sICRzcGFuKTtcbiAgICAkbjogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuXG4gICAgJG51bWJlcjogaWYodHlwZS1vZigkbG9jYXRpb24pID09IG51bWJlciwgdHJ1ZSwgZmFsc2UpO1xuICAgICRpbmRleDogaWYoJG51bWJlciBhbmQgdW5pdGxlc3MoJGxvY2F0aW9uKSwgdHJ1ZSwgZmFsc2UpO1xuXG4gICAgQGlmICRuID09ICRjb3VudCB7XG4gICAgICAkZWRnZTogZnVsbDtcbiAgICB9IEBlbHNlIGlmICRsb2NhdGlvbiBhbmQgJG4gYW5kICRpbmRleCB7XG4gICAgICBAaWYgJGxvY2F0aW9uID09IDEge1xuICAgICAgICAkZWRnZTogaWYoJG4gPT0gJGNvdW50LCBmdWxsLCBmaXJzdCk7XG4gICAgICB9IEBlbHNlIGlmICRsb2NhdGlvbiArICRuIC0gMSA9PSAkY291bnQge1xuICAgICAgICAkZWRnZTogbGFzdDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaWYgJGVkZ2UgPT0gYWxwaGEgb3IgJGVkZ2UgPT0gb21lZ2Ege1xuICAgICRlZGdlOiBpZigkZWRnZSA9PSBhbHBoYSwgZmlyc3QsIGxhc3QpO1xuICB9XG5cbiAgQHJldHVybiAkZWRnZTtcbn1cblxuXG4vLyBHZXQgTG9jYXRpb25cbi8vIC0tLS0tLS0tLS0tLVxuLy8gQ2FsY3VsYXRlIGxvY2F0aW9uIHZhbHVlIGJhc2VkIG9uIGVkZ2UsIGlmIHBvc3NpYmxlXG5AZnVuY3Rpb24gZ2V0LWxvY2F0aW9uKFxuICAkc3BhblxuKSB7XG4gICRzcGFuICAgICAgIDogcGFyc2Utc3Bhbigkc3Bhbik7XG4gICRsb2NhdGlvbiAgIDogc3VzeS1nZXQobG9jYXRpb24sICRzcGFuKTtcbiAgJGVkZ2UgICAgICAgOiBnZXQtZWRnZSgkc3Bhbik7XG4gICRuICAgICAgICAgIDogc3VzeS1nZXQoc3BhbiwgJHNwYW4pO1xuXG4gIEBpZiAkZWRnZSBhbmQgbm90KCRsb2NhdGlvbikgYW5kIHR5cGUtb2YoJG4pID09IG51bWJlciBhbmQgdW5pdGxlc3MoJG4pIHtcbiAgICBAaWYgJGVkZ2UgPT0gZmlyc3Qge1xuICAgICAgJGxvY2F0aW9uOiAxO1xuICAgIH0gQGVsc2UgaWYgJGVkZ2UgPT0gbGFzdCB7XG4gICAgICAkbG9jYXRpb246IHN1c3ktY291bnQoc3VzeS1nZXQoY29sdW1ucywgJHNwYW4pKSAtICRuICsgMTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRsb2NhdGlvblxufVxuIiwiLy8gRmxvYXQgRW5kcyBBUElcbi8vID09PT09PT09PT09PT09XG5cbi8vIFN1c3kgRW5kIERlZmF1bHRzXG4vLyAtLS0tLS0tLS0tLS0tLS0tLVxuLy8gLSBQUklWQVRFXG5AaW5jbHVkZSBzdXN5LWRlZmF1bHRzKChcbiAgbGFzdC1mbG93OiB0byxcbikpO1xuXG4vLyBGbG9hdCBMYXN0XG4vLyAtLS0tLS0tLS0tXG4vLyAtIFskZmxvd10gIDogbHRyIHwgcnRsXG5AbWl4aW4gZmxvYXQtbGFzdChcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpLFxuICAkbGFzdC1mbG93OiBtYXAtZ2V0KCRzdXN5LWRlZmF1bHRzLCBsYXN0LWZsb3cpLFxuICAkbWFyZ2luOiAwXG4pIHtcbiAgJHRvOiB0bygkZmxvdyk7XG5cbiAgJG91dHB1dDogKFxuICAgIGZsb2F0OiBpZigkbGFzdC1mbG93ID09IHRvLCAkdG8sIG51bGwpLFxuICAgIG1hcmdpbi0jeyR0b306ICRtYXJnaW4sXG4gICk7XG5cbiAgQGluY2x1ZGUgb3V0cHV0KCRvdXRwdXQpO1xufVxuXG4vLyBGbG9hdCBGaXJzdFxuLy8gLS0tLS0tLS0tLS1cbi8vIC0gWyRmbG93XSAgOiBsdHIgfCBydGxcbkBtaXhpbiBmbG9hdC1maXJzdChcbiAgJGZsb3c6IG1hcC1nZXQoJHN1c3ktZGVmYXVsdHMsIGZsb3cpXG4pIHtcbiAgJG91dHB1dDogKFxuICAgIG1hcmdpbi0je2Zyb20oJGZsb3cpfTogMCxcbiAgKTtcblxuICBAaW5jbHVkZSBvdXRwdXQoJG91dHB1dCk7XG59XG4iLCIvLyBSZXNldCBzdHlsZXMuXG5cbmh0bWwsIGJvZHksIGRpdiwgc3BhbiwgYXBwbGV0LCBvYmplY3QsIGlmcmFtZSwgaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLCBhLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsIGRlbCwgZGZuLCBlbSwgaW1nLCBpbnMsIGtiZCwgcSwgcywgc2FtcCwgc21hbGwsIHN0cmlrZSwgc3ViLCBzdXAsIHR0LCB2YXIsIGIsIHUsIGksIGNlbnRlciwgZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSwgZmllbGRzZXQsIGZvcm0sIGxhYmVsLCBsZWdlbmQsIHRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLCBhcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCwgZmlndXJlLCBmaWdjYXB0aW9uLCBmb290ZXIsIGhlYWRlciwgaGdyb3VwLCBtZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSwgdGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIG91dGxpbmU6IDAgbm9uZTtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbn1cblxuLy8gT3RoZXIgZWxlbWVudHMgYm94c2l6ZS5cblxuaW5wdXQsIHRleHRhcmVhLCA6YmVmb3JlLCA6YWZ0ZXIge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5pbnB1dCwgdGV4dGFyZWEsIGJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICBhcHBlYXJhbmNlOiBub25lO1xufVxuXG5pbnB1dCwgdGV4dGFyZWEsIGJ1dHRvbiwgc2VsZWN0IHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBmb250LXNpemU6IDEwMCU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIG91dGxpbmU6IDAgbm9uZTtcbn1cblxuYXVkaW8sXG5jYW52YXMsXG52aWRlbyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxudGFibGUge1xuICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICBib3JkZXItc3BhY2luZzogMDtcbn1cblxuY2FwdGlvbiwgdGgsIHRkIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbn1cblxucSwgYmxvY2txdW90ZSB7XG4gIHF1b3Rlczogbm9uZTtcbn1cblxucTpiZWZvcmUsIHE6YWZ0ZXIsIGJsb2NrcXVvdGU6YmVmb3JlLCBibG9ja3F1b3RlOmFmdGVyIHtcbiAgY29udGVudDogXCJcIjtcbiAgY29udGVudDogbm9uZTtcbn1cblxuYSBpbWcge1xuICBib3JkZXI6IG5vbmU7XG59XG5cbmFydGljbGUsIGFzaWRlLCBkZXRhaWxzLCBmaWdjYXB0aW9uLCBmaWd1cmUsIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsIG1lbnUsIG5hdiwgc2VjdGlvbiwgc3VtbWFyeSwgbWFpbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG5pbWcge1xuICBoZWlnaHQ6IGF1dG87XG4gIGZvbnQtc2l6ZTogMDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbmltZywgb2JqZWN0LCBlbWJlZCB7XG4gIG1heC13aWR0aDogMTAwJTtcbn1cblxuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbiIsIi8qIFRoZW1lJ3MgZm9udCBmYW1pbGllcyBpbml0ICovXG5cbkBpbmNsdWRlIGZvbnQtZmFjZShCbHVlU2t5U3RhbmRhcmQsICcuLi9mb250cy9CbHVlU2t5U3RhbmRhcmQtUmVndWxhcicsIG5vcm1hbCwgbnVsbCwgdHRmIGVvdCB3b2ZmMiB3b2ZmKTtcbkBpbmNsdWRlIGZvbnQtZmFjZShCbHVlU2t5U3RhbmRhcmQsICcuLi9mb250cy9CbHVlU2t5U3RhbmRhcmQtUmVndWxhckl0YWxpYycsIG5vcm1hbCwgaXRhbGljLCB0dGYgZW90IHdvZmYyIHdvZmYpO1xuQGluY2x1ZGUgZm9udC1mYWNlKEJsdWVTa3lTdGFuZGFyZCwgJy4uL2ZvbnRzL0JsdWVTa3lTdGFuZGFyZC1MaWdodCcsIDMwMCwgbnVsbCwgdHRmIGVvdCB3b2ZmMiB3b2ZmKTtcbkBpbmNsdWRlIGZvbnQtZmFjZShCbHVlU2t5U3RhbmRhcmQsICcuLi9mb250cy9CbHVlU2t5U3RhbmRhcmQtQm9sZCcsIDcwMCwgbnVsbCwgdHRmIGVvdCB3b2ZmMiB3b2ZmKTtcbiIsIi8qIGJhc2UgY29sb3IgQ1NTIGZvciBmb250cyBhbmQgYmFja2dyb3VuZHMgKi9cblxuLyogdGV4dCBjb2xvcnMgKi9cbi50ZXh0LS1ibGFjayB7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4udGV4dC1hc3Ryb25hdXRibHVlIHtcbiAgY29sb3I6ICRhc3Ryb25hdXRibHVlO1xufVxuXG4ldGV4dC0tbGlnaHQtYmx1ZS1ncmF5LFxuLnRleHQtLWxpZ2h0LWJsdWUtZ3JheSB7XG4gIGNvbG9yOiAkbGlnaHQtYmx1ZS1ncmF5O1xufVxuXG4ldGV4dC0tdHVycXVvaXNlLWJsdWUsXG4udGV4dC0tdHVycXVvaXNlLWJsdWUge1xuICBjb2xvcjogJHR1cnF1b2lzZS1ibHVlO1xufVxuXG4ldGV4dC0tYmxpenphcmQtYmx1ZSxcbi50ZXh0LS1ibGl6emFyZC1ibHVlIHtcbiAgY29sb3I6ICRibGl6emFyZC1ibHVlO1xufVxuXG4ldGV4dC0tZHVjay1lZ2ctYmx1ZSxcbi50ZXh0LS1kdWNrLWVnZy1ibHVlIHtcbiAgY29sb3I6ICRkdWNrLWVnZy1ibHVlO1xufVxuXG4ldGV4dC0tZGFyay1uYXZ5LWJsdWUsXG4udGV4dC0tZGFyay1uYXZ5LWJsdWUge1xuICBjb2xvcjogJGRhcmstbmF2eS1ibHVlO1xufVxuXG4ldGV4dC0tbWVkLW5hdnktYmx1ZSxcbi50ZXh0LS1tZWQtbmF2eS1ibHVlIHtcbiAgY29sb3I6ICRtZWQtbmF2eS1ibHVlO1xufVxuXG4ldGV4dC0tdWx0cmEtbGlnaHQtYmx1ZSxcbi50ZXh0LS11bHRyYS1saWdodC1ibHVlIHtcbiAgY29sb3I6ICR1bHRyYS1saWdodC1ibHVlO1xufVxuXG4ldGV4dC0tbGlnaHQtYmx1ZSxcbi50ZXh0LS1saWdodC1ibHVlIHtcbiAgY29sb3I6ICRsaWdodC1ibHVlO1xufVxuXG4ldGV4dC0tcHJpbWFyeS1jb2xvcixcbi50ZXh0LS1wcmltYXJ5LWNvbG9yIHtcbiAgY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xufVxuXG4ldGV4dC0tZHVzdHktZ3JheSxcbi50ZXh0LS1kdXN0eS1ncmF5IHtcbiAgY29sb3I6ICRkdXN0eS1ncmF5O1xufVxuXG4ldGV4dC0tbGlnaHQtZ3JheSxcbi50ZXh0LS1saWdodC1ncmF5IHtcbiAgY29sb3I6ICRsaWdodC1ncmF5O1xufVxuXG4ldGV4dC0tdGVhbCxcbi50ZXh0LS10ZWFsIHtcbiAgY29sb3I6ICRhcXVhO1xufVxuXG4ldGV4dC0td2hpdGUsXG4udGV4dC0td2hpdGUge1xuICBjb2xvcjogJHdoaXRlO1xufVxuXG4ldGV4dC0tZXJyb3IsXG4udGV4dC0tZXJyb3Ige1xuICBjb2xvcjogJGVycm9ycztcbn1cblxuJXRleHQtLXJlZCxcbi50ZXh0LS1yZWQge1xuICBjb2xvcjogJHJlZDtcbn1cblxuLyogYmFja2dyb3VuZCBjb2xvcnMgKi9cbiViYWNrZ3JvdW5kLS1hcXVhLFxuLmJhY2tncm91bmQtLWFxdWEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXF1YTtcbn1cblxuJWJhY2tncm91bmQtLWxpZ2h0LWJsdWUtZ3JheSxcbi5iYWNrZ3JvdW5kLS1saWdodC1ibHVlLWdyYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtYmx1ZS1ncmF5O1xufVxuXG4lYmFja2dyb3VuZC0tdHVycXVvaXNlLWJsdWUsXG4uYmFja2dyb3VuZC0tdHVycXVvaXNlLWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdHVycXVvaXNlLWJsdWU7XG59XG5cbiViYWNrZ3JvdW5kLS1ibGl6emFyZC1ibHVlLFxuLmJhY2tncm91bmQtLWJsaXp6YXJkLWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmxpenphcmQtYmx1ZTtcbn1cblxuJWJhY2tncm91bmQtLWR1Y2stZWdnLWJsdWUsXG4uYmFja2dyb3VuZC0tZHVjay1lZ2ctYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRkdWNrLWVnZy1ibHVlO1xufVxuXG4lYmFja2dyb3VuZC0tZGFyay1uYXZ5LWJsdWUsXG4uYmFja2dyb3VuZC0tZGFyay1uYXZ5LWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFyay1uYXZ5LWJsdWU7XG59XG5cbiViYWNrZ3JvdW5kLS11bHRyYS1kYXJrLW5hdnksXG4uYmFja2dyb3VuZC0tdWx0cmEtZGFyay1uYXZ5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHVsdHJhLWRhcmstbmF2eTtcbn1cblxuJWJhY2tncm91bmQtLW1lZC1uYXZ5LWJsdWUsXG4uYmFja2dyb3VuZC0tbWVkLW5hdnktYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRtZWQtbmF2eS1ibHVlO1xufVxuXG4lYmFja2dyb3VuZC0tdWx0cmEtbGlnaHQtYmx1ZSxcbi5iYWNrZ3JvdW5kLS11bHRyYS1saWdodC1ibHVlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHVsdHJhLWxpZ2h0LWJsdWU7XG59XG5cbiViYWNrZ3JvdW5kLS1saWdodC1ibHVlLFxuLmJhY2tncm91bmQtLWxpZ2h0LWJsdWUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHQtYmx1ZTtcbn1cblxuJWJhY2tncm91bmQtLXByaW1hcnktY29sb3IsXG4uYmFja2dyb3VuZC0tcHJpbWFyeS1jb2xvciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRwcmltYXJ5LWNvbG9yO1xufVxuXG4lYmFja2dyb3VuZC0tZHVzdHktZ3JheSxcbi5iYWNrZ3JvdW5kLS1kdXN0eS1ncmF5IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGR1c3R5LWdyYXk7XG59XG5cbiViYWNrZ3JvdW5kLS11bHRyYS1saWdodC1ncmF5LFxuLmJhY2tncm91bmQtLXVsdHJhLWxpZ2h0LWdyYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkdWx0cmEtbGlnaHQtZ3JheTtcbn1cblxuJWJhY2tncm91bmQtLWxpZ2h0LWdyYXksXG4uYmFja2dyb3VuZC0tbGlnaHQtZ3JheSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICRsaWdodC1ncmF5O1xufVxuXG4lYmFja2dyb3VuZC0tdGVhbCxcbi5iYWNrZ3JvdW5kLS10ZWFsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGFxdWE7XG59XG5cbiViYWNrZ3JvdW5kLS13aGl0ZSxcbi5iYWNrZ3JvdW5kLS13aGl0ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbn1cblxuLmJhY2tncm91bmQtLWJsYWNrIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDtcbn1cblxuLmJhY2tncm91bmQtLWdyYXkge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNTM1NjVhO1xufSIsIi8qIENsZWFyZml4ICovXG4uY2xlYXJmaXgsXG4lY2xlYXJmaXgge1xuICAmOmJlZm9yZSxcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cblxuICAmOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vKiBDb3ZlciBpbWFnZSwgc2ltdWxhdGVzIGJhY2tncm91bmQtc2l6ZTogY292ZXIgZm9yIHN0YXRpYyBpbWFnZXMuICovXG4lY292ZXItaW1hZ2UsXG4uY292ZXItaW1hZ2Uge1xuICBsZWZ0OiA1MCU7XG4gIG1heC13aWR0aDogaW5oZXJpdDtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgbWluLXdpZHRoOiAxMDAlO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgd2lkdGg6IGluaGVyaXQ7XG4gIHotaW5kZXg6IC0xO1xufVxuXG4lY2VudGVyZWQsXG4uY2VudGVyZWQge1xuICBsZWZ0OiA1MCU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xufVxuXG4vLyBTaW1wbGUgdW5kZXJsaW5lIGVmZmVjdC5cbiV1bmRlcmxpbmUge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2ZmZjtcbiAgcGFkZGluZy1ib3R0b206IDVweDtcbn1cblxuLyogVmlzaWJpbGl0eSBydWxlcyAqL1xuJWhpZGUtbW9iaWxlLFxuLmhpZGUtbW9iaWxlIHtcbiAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KHRhYmxldC1wb3J0cmFpdC1kb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbiVoaWRlLXRhYmxldC1wb3J0cmFpdCxcbi5oaWRlLXRhYmxldC1wb3J0cmFpdCB7XG4gIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCh0YWJsZXQtcG9ydHJhaXQpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuJWhpZGUtdGFibGV0LWxhbmRzY2FwZS1kb3duLFxuLmhpZGUtdGFibGV0LWxhbmRzY2FwZS1kb3duIHtcbiAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KHRhYmxldC1sYW5kc2NhcGUtZG93bikge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuXG4laGlkZS10YWJsZXQtbGFuZHNjYXBlLFxuLmhpZGUtdGFibGV0LWxhbmRzY2FwZSB7XG4gIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCh0YWJsZXQtbGFuZHNjYXBlKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vIFNldHMgdG9wIHBhZGRpbmcgdG8gZ2V0IGNvbnRlbnQgZnJvbSB1bmRlciBmaXhlZCBoZWFkZXIuXG4laGVhZGVyLXBhZGRpbmcsXG4uaGVhZGVyLXBhZGRpbmcge1xuICBwYWRkaW5nLXRvcDogMTAwcHg7XG5cbiAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KHRhYmxldC1wb3J0cmFpdCkge1xuICAgIHBhZGRpbmctdG9wOiAxMjBweDtcbiAgfVxuXG4gIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCh0YWJsZXQtbGFuZHNjYXBlKSB7XG4gICAgcGFkZGluZy10b3A6IDE4MHB4O1xuICB9XG59XG5cbi8vIEhpZGVzIGVsZW1lbnRzIGZvciBFTiBsYW5nLlxuLmhpZGUtZW4ge1xuICBodG1sW2xhbmc9XCJlblwiXSAmIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuLmhpZGUtemgtaGFucyB7XG4gIGh0bWxbbGFuZz1cInpoLWhhbnNcIl0gJiB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vIEFkZCBhIGRvdHRlZCBwYXR0ZXJuIHRvIGFuIGVsZW1lbnQncyBiYWNrZ3JvdW5kLlxuJWhhcy1kb3R0ZWQtYmcsXG4uaGFzLWRvdHRlZC1iZyB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAmOmJlZm9yZSB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1hZ2VzL3BhdHRlcm4tYXF1YS1kb3RlZC1ncmlkLnBuZ1wiKTtcbiAgICBjb250ZW50OiAnJztcbiAgICBoZWlnaHQ6IDE4NXB4O1xuICAgIGxlZnQ6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAtMTtcblxuICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCh0YWJsZXQtcG9ydHJhaXQpIHtcbiAgICAgIGhlaWdodDogMjQ1cHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KHRhYmxldC1sYW5kc2NhcGUpIHtcbiAgICAgIGhlaWdodDogMzQwcHg7XG4gICAgfVxuICB9XG59XG5cbi8qIERlZmF1bHQgbWFyZ2lucy4gKi9cbiVtYXJnaW4tYm90dG9tLFxuLm1hcmdpbi1ib3R0b20ge1xuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuXG4gIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCh0YWJsZXQtcG9ydHJhaXQpIHtcbiAgICBtYXJnaW4tYm90dG9tOiA2MHB4O1xuICB9XG5cbiAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KHRhYmxldC1sYW5kc2NhcGUpIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4MHB4O1xuICB9XG59XG5cbi8vIEludmVydHMgaGVhZGVyIHRleHQgY29sb3IgdG8gYmxhY2tcbi8vIFRlbXBvcmFyeSBzb2x1dGlvblxuJWhlYWRlci1ibGFjayxcbi5oZWFkZXItYmxhY2sge1xuICAmLnRvcC1uYXYtYWN0aXZlIHtcbiAgICAuaGVhZGVyX19sb2dvIHtcbiAgICAgIHN2ZyB7XG4gICAgICAgIGcge1xuICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogI2ZmZiAhaW1wb3J0YW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5oZWFkZXI6bm90KC5oZWFkZXItLWFuaW1hdGVkKSB7XG4gICAgLnJlZ2lvbi10b3AtbmF2aWdhdGlvbiB7XG4gICAgICAuYmxvY2stbGFuZ3VhZ2Uge1xuICAgICAgICBsaSB7XG4gICAgICAgICAgYSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQodGFibGV0LWxhbmRzY2FwZSkge1xuICAgICAgICAgICAgICBjb2xvcjogIzAwMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAgICY6Zm9jdXMsXG4gICAgICAgICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCh0YWJsZXQtbGFuZHNjYXBlKSB7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMwMDA7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGVhZGVyX19sb2dvIHtcbiAgICAgIHN2ZyB7XG4gICAgICAgIGcge1xuICAgICAgICAgIHBhdGgge1xuICAgICAgICAgICAgZmlsbDogIzAwMDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAucmVnaW9uLXRvcC1uYXZpZ2F0aW9uIHtcbiAgICAgIC5tZW51IHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KHRhYmxldC1sYW5kc2NhcGUpIHtcbiAgICAgICAgICAgIGNvbG9yOiAjMDAwO1xuXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyxcbiAgICAgICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAjMDAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKiBHTE9CQUwgQ1VTVE9NIENTUyAqL1xuJW5vLS10cmFja2luZyxcbi5uby0tdHJhY2tpbmcge1xuICBsZXR0ZXItc3BhY2luZzogMDtcbn1cblxuLyogSW1hZ2Ugem9vbSBlZmZlY3QgKi9cbiVpbWFnZS0tem9vbSxcbi5pbWFnZS0tem9vbSB7XG4gIGltZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDJzIGVhc2U7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICBpbWcge1xuICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICB9XG4gIH1cbn1cblxuJXRleHQtLWNlbnRlcixcbi50ZXh0LS1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4iLCIvLyBIZWFkZXIgYW5kIGJvZHkgQ1NTXG5ib2R5IHtcbiAgZm9udC1mYW1pbHk6ICdSb2NrIFNhbHQnLCBjdXJzaXZlO1xufVxuXG4ubG9nbyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMjBweDtcbiAgdG9wOiAtNHB4O1xuICB6LWluZGV4OiA5OTk7XG5cbiAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KHRhYmxldC1sYW5kc2NhcGUpIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBtYXgtaGVpZ2h0OiA4MHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gIH1cblxuICBpbWcge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICB3aWR0aDogNTRweDtcblxuICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCh0YWJsZXQtbGFuZHNjYXBlKSB7XG4gICAgICB3aWR0aDogMTAwcHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KGRlc2t0b3ApIHtcbiAgICAgIHdpZHRoOiAxNDBweDtcbiAgICB9XG4gIH1cblxuICBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIHBhZGRpbmc6IDBweCAwIDAgMHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgIGNvbG9yOiAjOTk5O1xuXG4gICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KHRhYmxldC1sYW5kc2NhcGUpIHtcbiAgICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgICAgIHBhZGRpbmc6IDExcHggMTVweCAwIDEycHg7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KGRlc2t0b3ApIHtcbiAgICAgIGZvbnQtc2l6ZTogMzFweDtcbiAgICB9XG4gIH1cbn1cblxuaGVhZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIC8vbWF4LXdpZHRoOiAxMjExcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHotaW5kZXg6IDk5OTtcblxuICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQodGFibGV0LWxhbmRzY2FwZSkge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgb3BhY2l0eTogMC44O1xuICB9XG5cbiAgLmJ1cmdlciB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgaGVpZ2h0OiA1MHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMTdweDtcbiAgICB0b3A6IDEzcHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHotaW5kZXg6IDk5ODtcblxuICAgIC5idXJnZXItbGluZSB7XG4gICAgICBib3JkZXItdG9wOiAycHggc29saWQgI2ZmZjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgbWFyZ2luLWJvdHRvbTogNXB4O1xuICAgIH1cbiAgfVxuXG4gIC5jbG9zZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDE2cHg7XG4gICAgdG9wOiAxMnB4O1xuICAgIHotaW5kZXg6IDk5OTtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBmb250LWZhbWlseTogSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICAgIGZvbnQtc2l6ZTogMjFweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAubmF2aWdhdGlvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHRvcDogMDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogJGJsYWNrO1xuICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgb3BhY2l0eTogMC45O1xuICAgIHotaW5kZXg6IDk5MDtcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuXG4gICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KHRhYmxldC1sYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDUwcHg7XG4gICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBwYWRkaW5nOiAyMnB4IDM1cHggMCAwO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChkZXNrdG9wKSB7XG4gICAgICBwYWRkaW5nOiAzNXB4IDM1cHggMCAwO1xuICAgIH1cblxuICAgICYuYWN0aXZlIHtcbiAgICAgIGhlaWdodDogMTAwdmg7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgbGlzdC1zdHlsZTogbm9uZTtcblxuICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KHRhYmxldC1sYW5kc2NhcGUpIHtcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIGEge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG5cbiAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCh0YWJsZXQtbGFuZHNjYXBlKSB7XG4gICAgICAgIGNvbG9yOiAjZmYwMDAwO1xuICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludChkZXNrdG9wKSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAubmF2LWl0ZW1zIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICBtYXJnaW4tdG9wOiAyMHB4O1xuXG4gICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQodGFibGV0LWxhbmRzY2FwZSkge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn0iLCIvKiBTaXRlLXdpZGUgYnV0dG9ucyBkZWZpbml0aW9ucyAqL1xuXG4lYnRuLFxuLmJ0biB7XG4gIGNvbG9yOiAjZmZmO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbGV0dGVyLXNwYWNpbmc6IDJweDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgJi5idG4tLWFxdWEge1xuICAgIGNvbG9yOiRhcXVhO1xuICB9XG4gICYuYnRuLS1hcXVhLXJldmVyc2Uge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhcXVhO1xuICB9XG4gICYuYnRuLS1ncmF5IHtcbiAgICBjb2xvcjogJGxpZ2h0LWdyYXk7XG4gICAgYm9yZGVyLWNvbG9yOiAkbGlnaHQtZ3JheTtcbiAgfVxufVxuXG4vKiBCdXR0b24gc2l6ZXMgKi9cbiVidG4tLXNtYWxsZXIsXG4uYnRuLS1zbWFsbGVyIHtcbiAgZm9udC1zaXplOiAxMHB4O1xuICBmb250LXdlaWdodDogJGJvbGQ7XG4gIHBhZGRpbmc6IDExcHggMjNweCA5cHg7XG59XG5cbiVidG4tLXNtYWxsLFxuLmJ0bi0tc21hbGwge1xuICBmb250LXNpemU6IDEycHg7XG4gIGZvbnQtd2VpZ2h0OiAkYm9sZDtcbiAgcGFkZGluZzogMTRweCAyM3B4IDEycHg7XG59XG5cbiVidG4tLW1lZGl1bSxcbi5idG4tLW1lZGl1bSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgcGFkZGluZzogN3B4IDMwcHg7XG59XG5cbi8qIEJ1dHRvbiBzdHlsZXMgKi9cbiVidG4tLWljb24sXG4uYnRuLS1pY29uIHtcbiAgJjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgdmVydGljYWwtYWxpZ246IHN1YjtcbiAgICB3aWR0aDogMTZweDtcbiAgfVxufVxuXG4lYnRuLS1yb3VuZGVkLFxuLmJ0bi0tcm91bmRlZCB7XG4gIGJvcmRlcjogMnB4IHNvbGlkICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDEwMHB4O1xuXG4gICYuYnRuLS1ibGFjayB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDAwO1xuICB9XG5cbiAgJi5idG4tLWFxdWEge1xuICAgIGJvcmRlci1jb2xvcjogJGFxdWE7XG4gIH1cblxuICAmLmJ0bi0tdHVycXVvaXNlIHtcbiAgICBib3JkZXItY29sb3I6ICR0dXJxdW9pc2UtYmx1ZTtcbiAgfVxuXG4gICYuYnRuLS1yZWQge1xuICAgIGJvcmRlci1jb2xvcjogJGVycm9ycztcbiAgfVxuXG4gICYuYnRuLS1tZWQtbmF2eS1ibHVlIHtcbiAgICBib3JkZXItY29sb3I6ICRtZWQtbmF2eS1ibHVlO1xuICB9XG5cbiAgJi5idG4tLXdoaXRlIHtcbiAgICBib3JkZXItY29sb3I6ICR3aGl0ZTtcbiAgfVxufVxuXG4vKiBCdXR0b24gaWNvbnMgKi9cbiVidG4tLWFycm93LXJpZ2h0LFxuLmJ0bi0tYXJyb3ctcmlnaHQge1xuICAmOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbi1hcnJvdy13aGl0ZS5zdmdcIik7XG4gIH1cblxuICAmJWJ0bi0tYmxhY2ssXG4gICYuYnRuLS1ibGFjayB7XG4gICAgJjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbi1hcnJvdy5zdmdcIik7XG4gICAgfVxuICB9XG5cbiAgJi5idG4tLXR1cnF1b2lzZSB7XG4gICAgJjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbi1hcnJvdy10dXJxdW9pc2Uuc3ZnXCIpO1xuICAgIH1cbiAgfVxuXG4gICYuYnRuLS1hcXVhIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29uLWFycm93LWFxdWEuc3ZnXCIpO1xuICAgIH1cbiAgfVxuXG4gICYuYnRuLS1tZWQtbmF2eS1ibHVlIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29uLWFycm93LW1lZC1uYXZ5LnN2Z1wiKTtcbiAgICB9XG4gIH1cbn1cblxuJWJ0bi1zb2NpYWwsXG4uYnRuLXNvY2lhbCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgaGVpZ2h0OiAyMnB4O1xuICB3aWR0aDogMjJweDtcblxuICBzdmcge1xuICAgIHVzZSxcbiAgICBwYXRoIHtcbiAgICAgIHN0cm9rZTogI2ZmZjtcbiAgICB9XG4gIH1cbn1cblxuJWJ0bi0taWNvbi1wbHVzLFxuLmJ0bi0taWNvbi1wbHVzIHtcbiAgJjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb24tcGx1cy13aGl0ZS5zdmdcIik7XG4gIH1cblxuICAmJWJ0bi0tYmxhY2ssXG4gICYuYnRuLS1ibGFjayB7XG4gICAgJjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbi1wbHVzLnN2Z1wiKTtcbiAgICB9XG4gIH1cblxuICAmJWJ0bi0tYXF1YSxcbiAgJi5idG4tLWFxdWEge1xuICAgICY6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb24tcGx1cy1hcXVhLnN2Z1wiKTtcbiAgICB9XG4gIH1cbn1cblxuJWJ0bi0taWNvbi1taW51cyxcbi5idG4tLWljb24tbWludXMge1xuICAmOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbi1taW51cy5zdmdcIik7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogLTJweDtcbiAgfVxuXG4gICYlYnRuLS1ibGFjayxcbiAgJi5idG4tLWJsYWNrIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29uLW1pbnVzLnN2Z1wiKTtcbiAgICB9XG4gIH1cblxuICAmJWJ0bi0tYXF1YSxcbiAgJi5idG4tLWFxdWEge1xuICAgICY6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb24tbWludXMtYXF1YS5zdmdcIik7XG4gICAgfVxuICB9XG59XG5cbiVidG4tLWljb24tdGljayxcbi5idG4tLWljb24tdGljayB7XG4gICY6YWZ0ZXIge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29uLXRpY2std2hpdGUuc3ZnXCIpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0ycHg7XG4gIH1cblxuICAmJWJ0bi0tYmxhY2ssXG4gICYuYnRuLS1ibGFjayB7XG4gICAgJjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbi10aWNrLnN2Z1wiKTtcbiAgICB9XG4gIH1cblxuICAmJWJ0bi0tYXF1YSxcbiAgJi5idG4tLWFxdWEge1xuICAgICY6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzLzE2LWljb24tdGljay5zdmdcIik7XG4gICAgfVxuICB9XG59XG5cbiVidG4tLWljb24tZXJyb3IsXG4uYnRuLS1pY29uLWVycm9yIHtcbiAgJjphZnRlciB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzLzE2LWljb24tY3Jvc3Muc3ZnXCIpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0ycHg7XG4gIH1cbn1cblxuJWJ0bi0taWNvbi1leHRlcm5hbCxcbi5idG4tLWljb24tZXh0ZXJuYWwge1xuICAmOmFmdGVyIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbi1leHRlcm5hbC13aGl0ZS5zdmdcIik7XG4gIH1cblxuICAmLmJ0bi0tYmxhY2sge1xuICAgICY6YWZ0ZXIge1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb24tZXh0ZXJuYWwtYmxhY2suc3ZnXCIpO1xuICAgIH1cbiAgfVxuXG4gICYuYnRuLS1hcXVhIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29uLWV4dGVybmFsLWFxdWEuc3ZnXCIpO1xuICAgIH1cbiAgfVxufVxuXG4vKiBCdXR0b24gY29sb3JzICovXG4lYnRuLS1ibGFjayxcbi5idG4tLWJsYWNrIHtcbiAgY29sb3I6ICMwMDA7XG59XG5cblxuJWJ0bi0tYXF1YSxcbi5idG4tLWFxdWEge1xuICBjb2xvcjogJGFxdWE7XG59XG5cbiVidG4tLW1lZC1uYXZ5LWJsdWUsXG4uYnRuLS1tZWQtbmF2eS1ibHVlIHtcbiAgY29sb3I6ICRtZWQtbmF2eS1ibHVlO1xufVxuXG4lYnRuLS10dXJxdW9pc2UsXG4uYnRuLS10dXJxdW9pc2Uge1xuICBjb2xvcjogJHR1cnF1b2lzZS1ibHVlO1xufVxuXG4lYnRuLS1yZWQsXG4uYnRuLS1yZWQge1xuICBjb2xvcjogJGVycm9ycztcbn1cblxuLy8gVE9ETzogU2FmZWx5IHNwbGl0IGludG8gb3RoZXIgYnV0dG9uIHR5cGVzLlxuJWJ0bi0tZGVmYXVsdCxcbi5idG4tLWRlZmF1bHQge1xuICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICBib3JkZXI6IDJweCBzb2xpZCAjZmZmO1xuICBmb250LXdlaWdodDogJGJvbGQ7XG4gIGxldHRlci1zcGFjaW5nOiAycHg7XG4gIHBhZGRpbmc6IDExcHggMjBweDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4lYnRuLS1ibGFjayxcbi5idG4tLWJsYWNrIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDAwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuJWJ0bi0tcmlnaHQtYXJyb3csXG4uYnRuLS1yaWdodC1hcnJvdyB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltYWdlcy9yaWdodC1hcnJvdy1jaXJjbGUuc3ZnXCIpIGNlbnRlciBjZW50ZXIgbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICBoZWlnaHQ6IDY0cHg7XG4gIHRleHQtaW5kZW50OiAtOTk5OXB4O1xuICB3aWR0aDogNjRweDtcbn1cblxuJWJ0bi0taWNvbi0tYW5pbWF0ZWQsXG4uYnRuLS1pY29uLS1hbmltYXRlZCB7XG4gIC5uby10b3VjaGV2ZW50cyAmIHtcbiAgICBwYWRkaW5nOiAxNHB4IDQwcHggMTJweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNpdGlvbjogcGFkZGluZyAwLjM1cyBlYXNlLWluLW91dDtcblxuICAgICY6YWZ0ZXIge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHJpZ2h0OiAzMHB4O1xuICAgICAgdG9wOiA1MCU7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLCAtNTAlKTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjM1cyBlYXNlLWluLW91dDtcbiAgICB9XG5cbiAgICAmOmZvY3VzLFxuICAgICY6aG92ZXIge1xuICAgICAgcGFkZGluZy1sZWZ0OiAzNXB4O1xuICAgICAgcGFkZGluZy1yaWdodDogNDVweDtcblxuICAgICAgJjphZnRlciB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHJpZ2h0OiAzMHB4O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgxMHB4LCAtNTAlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyogVmVuZG9yIGNvZGUgKi9cbi5idXR0b24tY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgZmxleC13cmFwOiBub3dyYXA7XG59XG5cbi8vIFN2ZyBhcnJvd1xuLnN2Z19fYXJyb3cge1xuICB3aWR0aDogMTFweDtcbiAgaGVpZ2h0OiAxNHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiA1MCU7XG4gIHotaW5kZXg6IDI7XG4gIHBhZGRpbmc6IDFweDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuNHMgZWFzZS1pbi1vdXQsIG9wYWNpdHkgMC43NXMgZWFzZS1pbi1vdXQ7XG5cbiAgLy8gUmlnaHQgYWxpZ25lZFxuICAmLS1yaWdodCB7XG4gICAgcmlnaHQ6IDM1cHg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgwLCAtNTAlLCAwKTtcbiAgfVxuXG4gIC8vIENlbnRlciBhbGlnbmVkXG4gICYtLWNlbnRlciB7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gIH1cblxuICAmX19zaGFwZSB7XG4gICAgLy8gU3Ryb2tlIHdpdGggbm8gZmlsbFxuICAgICYtLXN0cm9rZSB7XG4gICAgICBmaWxsOiB0cmFuc3BhcmVudDtcbiAgICAgIHN0cm9rZS13aWR0aDogMjtcbiAgICAgIHN0cm9rZTogI2ZmZjtcbiAgICB9XG4gICAgLy8gU3Ryb2tlIHdpdGggZmlsbFxuICAgICYtLWZpbGwge1xuICAgICAgZmlsbDogI2ZmZjtcbiAgICAgIHN0cm9rZS13aWR0aDogMjtcbiAgICAgIHN0cm9rZTogI2ZmZjtcbiAgICB9XG4gICAgJi0tZmFkZWluIHtcbiAgICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBlYXNlLWluLW91dCAwLjFzO1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbn1cblxuLy8gU3ZnIHBhdXNlXG4uc3ZnX19wYXVzZSB7XG4gIHdpZHRoOiAyMnB4O1xuICBoZWlnaHQ6IDI4cHg7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB6LWluZGV4OiAyO1xuICBwYWRkaW5nOiAxcHg7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gIHRyYW5zaXRpb246IG9wYWNpdHkgMC41cyBsaW5lYXIgMC4xcztcblxuICAmX19zaGFwZS0tcmlnaHQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoMTRweCwgMCwgMCk7XG4gIH1cblxuICAuYW5pbWF0ZWRidG5fX3BsYXktLTY0ICYge1xuICAgIG1hcmdpbi1sZWZ0OiAycHg7XG4gICAgbWFyZ2luLXRvcDogMnB4O1xuICB9XG5cbiAgLmFuaW1hdGVkYnRuX19wbGF5LS00OCAmIHtcbiAgICBoZWlnaHQ6IDE4cHg7XG4gICAgd2lkdGg6IDEzcHg7XG4gIH1cbn1cblxuLy8gU3ZnIHJvdW5kZWQgcmVjdGFuZ2xlIG9yIGNpcmNsZVxuLnN2Z19fcmVjdCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHdpZHRoOiAxMDAlO1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJSAwO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICB0cmFuc2l0aW9uOiB3aWR0aCAwLjVzIGN1YmljLWJlemllcigwLjgsIDAuMywgMC4xLCAxKTtcblxuICAvLyBUaGUgYWN0dWFsIHNoYXBlXG4gICZfX3NoYXBlIHtcbiAgICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlIDA7XG5cbiAgICAvLyBTdHJva2Ugd2l0aCBubyBmaWxsXG4gICAgJi0tc3Ryb2tlIHtcbiAgICAgIGZpbGw6IHRyYW5zcGFyZW50O1xuICAgICAgc3Ryb2tlLXdpZHRoOiAyO1xuICAgICAgc3Ryb2tlOiAjZmZmO1xuXG4gICAgICAmLS1ibGFjayB7XG4gICAgICAgIHN0cm9rZTogIzAwMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBQaWxsIHNoYXBlXG4gICAgJi0tcGlsbCB7XG4gICAgICBzdHJva2UtZGFzaGFycmF5OiAxMDAwO1xuICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG5cbiAgICAgICYtLWhhcy10cmFuc2l0aW9uIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICAgIHRyYW5zaXRpb246IHN0cm9rZS1kYXNoYXJyYXkgMC4zcyBsaW5lYXIsIHN0cm9rZS1kYXNob2Zmc2V0IDAuM3MgbGluZWFyLCB0cmFuc2Zvcm0gMC4zcyBsaW5lYXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gTG9hZGVyXG4gICAgJi0tbG9hZGVyIHtcbiAgICAgIC8vIGFuaW1hdGlvbiB3aGVuIGxvYWRpbmcgaXMgZmluaXNoZWRcbiAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbihsb2FkZWQgJGxvYWRpbmdEdXJhdGlvbkVhc2UgMHMgMSBub3JtYWwgZm9yd2FyZHMpO1xuICAgICAgc3Ryb2tlLWRhc2hhcnJheTogMy4xNCAqICAkbG9hZGVyU2l6ZTtcbiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwLjUgKiAzLjE0ICogJGxvYWRlclNpemU7XG4gICAgfVxuICB9XG59XG5cbi5zdmdfX3N1Y2Nlc3Mge1xuICB0cmFuc2Zvcm0tb3JpZ2luOiA1MCUgNTAlIDA7XG4gIHN0cm9rZS13aWR0aDogMjtcbiAgc3Ryb2tlOiAjZmZmO1xuXG4gICYtLWNlbnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIC01MCUsIDApO1xuICB9XG59XG5cbi5zdmdfX2Vycm9yIHtcbiAgdHJhbnNmb3JtLW9yaWdpbjogNTAlIDUwJSAwO1xuICBzdHJva2Utd2lkdGg6IDI7XG4gIHN0cm9rZTogI2ZmZjtcblxuICAmLS1jZW50ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgtNTAlLCAtNTAlLCAwKTtcbiAgfVxufVxuXG4uYW5pbWF0ZWRidG4ge1xuICAmX19saW5rIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cblxuICAvLyBDZW50ZXJlZCBwb3NpdGlvblxuICAmLS1jZW50ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDUwJTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCk7XG4gIH1cblxuICAmLS1ob3Jpei1jZW50ZXIge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG4gIH1cblxuICAvLyBCdXR0b24gd2l0aCB0ZXh0XG4gICZfX2J1dHRvbiB7XG4gICAgZm9udC1mYW1pbHk6ICdCbHVlU2t5U3RhbmRhcmQtUmVndWxhcicsIHNhbnMtc2VyaWY7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkdGV4dEJ1dHRvblNpemU7XG4gICAgcGFkZGluZzogMDtcbiAgICBjb2xvcjogJGJyYW5kQ29sb3I7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBsZXR0ZXItc3BhY2luZzogM3B4O1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBvdXRsaW5lOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC43NXMgZWFzZS1pbi1vdXQgMC4xcztcblxuICAgICZfX3RleHQge1xuICAgICAgY29sb3I6ICNmZmY7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgcGFkZGluZzogMCA0MHB4O1xuXG4gICAgICAmLS1ibGFjayB7XG4gICAgICAgIGNvbG9yOiAjMDAwO1xuICAgICAgfVxuXG4gICAgICAmLS1oYXMtYXJyb3cge1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiA2MHB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICZfX2hvdmVyLWFycm93IHtcbiAgICAmX19zaGFwZSB7XG4gICAgICBzdHJva2U6ICNmZmY7XG4gICAgfVxuXG4gICAgLy8gUmlnaHQgYWxpZ25lZFxuICAgICYtLXJpZ2h0IHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHRvcDogNTAlO1xuICAgICAgcmlnaHQ6IDM1cHg7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDAsIC01MCUsIDApO1xuICAgIH1cbiAgfVxufVxuXG4uYW5pbWF0ZWRidG5fX3N1Ym1pdCB7XG4gIGhlaWdodDogJHRleHRCdXR0b25TaXplO1xuXG4gIC5zdmdfX3JlY3Qge1xuICAgIGhlaWdodDogJHRleHRCdXR0b25TaXplO1xuICB9XG5cbiAgLnN2Z19fcmVjdF9fc2hhcGUtLXBpbGwge1xuICAgIHRyYW5zaXRpb246IHN0cm9rZSAwLjM1cyBlYXNlLWluLW91dDtcbiAgfVxuXG4gIC5zdmdfX3N1Y2Nlc3MsIC5zdmdfX2Vycm9yIHtcbiAgICBvcGFjaXR5OiAwOyAvLyBoaWRlIHN0YXR1cyBmaXJzdFxuICB9XG5cbiAgLnN2Z19fc3VjY2VzcyB7XG4gICAgd2lkdGg6IDIwcHg7XG4gICAgc3Ryb2tlLWRhc2hhcnJheTogMjU7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDI1O1xuICB9XG5cbiAgLnN2Z19fZXJyb3Ige1xuICAgIHdpZHRoOiAxM3B4O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgLTUwJSwgMCkgcm90YXRlKDE4MGRlZyk7XG5cbiAgICAmX19saW5lIHtcbiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDI1O1xuICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDI1O1xuICAgIH1cbiAgfVxuXG4gIC5hbmltYXRlZGJ0bl9fYnV0dG9uX190ZXh0IHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMzVzIGVhc2UtaW4tb3V0O1xuICB9XG5cbiAgLmFuaW1hdGVkYnRuX19ob3Zlci1hcnJvdyB7XG4gICAgb3BhY2l0eTogMDtcbiAgICByaWdodDogMzVweDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zNXMgZWFzZS1pbi1vdXQ7XG4gIH1cblxuICAmOmhvdmVyIHtcbiAgICAuYW5pbWF0ZWRidG5fX2J1dHRvbl9fdGV4dCB7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01cHgsIDAsIDApO1xuICAgIH1cbiAgICAuYW5pbWF0ZWRidG5fX2hvdmVyLWFycm93IHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDEwcHgsIC01MCUsIDApO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN1Ym1pdHRpbmcgc3RhdGVcbiAgLmpzLXN1Ym1pdHRpbmcge1xuXG4gICAgLnN2Z19fcmVjdCB7XG4gICAgICB3aWR0aDogJHRleHRCdXR0b25TaXplO1xuICAgICAgJl9fc2hhcGUtLXBpbGwge1xuICAgICAgICBzdHJva2UtZGFzaGFycmF5OiAzLjE0ICogJHRleHRCdXR0b25TaXplO1xuICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMC41ICogMy4xNCAqICR0ZXh0QnV0dG9uU2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoLTQ1MGRlZyk7XG4gICAgICAgIHRyYW5zaXRpb246IHN0cm9rZS1kYXNoYXJyYXkgMC4zNXMgJGFuaW1hdGVFYXNlIDAuMXMsIHN0cm9rZS1kYXNob2Zmc2V0IDAuMzVzICRhbmltYXRlRWFzZSAwLjFzLCB0cmFuc2Zvcm0gMC41cyAkYW5pbWF0ZUVhc2UgMC4zOHM7XG4gICAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbihsb2FkZXIgJGxvYWRpbmdEdXJhdGlvbkVhc2UgMC4zOHMgaW5maW5pdGUgbm9ybWFsIGZvcndhcmRzKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuYW5pbWF0ZWRidG5fX2J1dHRvbiB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgICAgdHJhbnNpdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBTdWJtaXR0ZWQgc3RhdGUuIFNob3cgc3RhdHVzXG4gIC5qcy1zdWJtaXR0ZWQge1xuXG4gICAgLnN2Z19fcmVjdCB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIHRyYW5zaXRpb24tZGVsYXk6ICRzdWJtaXNzaW9uQ29tcGxldGVkRGVsYXk7XG4gICAgfVxuXG4gICAgLnN2Z19fcmVjdF9fc2hhcGUtLXBpbGwge1xuICAgICAgc3Ryb2tlLWRhc2hhcnJheTogMTAwMDtcbiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwLjUgKiAzLjE0ICogJHRleHRCdXR0b25TaXplO1xuICAgICAgdHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hhcnJheSAwLjM1cyAkYW5pbWF0ZUVhc2UgJHN1Ym1pc3Npb25Db21wbGV0ZWREZWxheTsgLy8gbmVlZHMgdG8gZGVsYXkgZGFzaGFycnkgdHJhbnNpdGlvbiB1bnRpbCBzaXplL3NoYXBlIGlzIGNvbXBsZXRlXG4gICAgICBAaW5jbHVkZSBhbmltYXRpb24oc3VibWl0TG9hZGVkIDAuNXMgbGluZWFyIDBzIDEgbm9ybWFsIGZvcndhcmRzKTtcbiAgICB9XG5cbiAgICAuYW5pbWF0ZWRidG5fX2J1dHRvbiB7XG4gICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN1Ym1pc3Npb24gc3RhdHVzZXMuIFN1Y2Nlc3Mgb3IgZXJyb3JcbiAgJHN0YXR1c2VzOiAoc3VjY2VzczogJHN1Y2Nlc3NDb2xvciwgZXJyb3I6ICRlcnJvckNvbG9yKTtcbiAgQGVhY2ggJHN0YXR1cywgJGNvbG9yIGluICRzdGF0dXNlcyB7XG4gICAgLmpzLXN1Ym1pdHRlZC0tI3skc3RhdHVzfSB7XG4gICAgICAuc3ZnX18jeyRzdGF0dXN9IHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgc3Ryb2tlOiAkY29sb3I7XG4gICAgICB9XG4gICAgICAuc3ZnX19yZWN0X19zaGFwZS0tc3Ryb2tlIHtcbiAgICAgICAgc3Ryb2tlOiAkY29sb3I7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIC5qcy1zdWJtaXR0ZWQtLXN1Y2Nlc3MgLnN2Z19fc3VjY2VzcyB7XG4gICAgdHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hvZmZzZXQgMC4zNXMgJGFuaW1hdGVFYXNlICRzdGF0dXNEZWxheTtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgfVxuICAuanMtc3VibWl0dGVkLS1lcnJvciAuc3ZnX19lcnJvciB7XG4gICAgLnN2Z19fZXJyb3JfX2xpbmUge1xuICAgICAgdHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hvZmZzZXQgMC4zNXMgJGFuaW1hdGVFYXNlICRzdGF0dXNEZWxheTtcbiAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuICAgICAgJi0tc2Vjb25kIHtcbiAgICAgICAgdHJhbnNpdGlvbi1kZWxheTogJHN0YXR1c0RlbGF5ICsgMC4zNXM7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi8vIFRoaXMgaXMgYW5pbWF0ZWQgdGV4dCBidXR0b25cbi5hbmltYXRlZGJ0bl9fdGV4dCB7XG4gIGhlaWdodDogJHRleHRCdXR0b25TaXplO1xuXG4gIC5zdmdfX3JlY3Qge1xuICAgIGhlaWdodDogJHRleHRCdXR0b25TaXplO1xuICB9XG5cbiAgLy8gSG92ZXIgc3RhdGVcbiAgJjpob3ZlciB7XG4gICAgLnN2Z19fcmVjdCB7XG4gICAgICB3aWR0aDogJHRleHRCdXR0b25TaXplO1xuICAgICAgJl9fc2hhcGUtLXBpbGwge1xuICAgICAgICBzdHJva2UtZGFzaGFycmF5OiAzLjE0ICogJHRleHRCdXR0b25TaXplO1xuICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMC41KjMuMTQgKiAkdGV4dEJ1dHRvblNpemU7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NTBkZWcpO1xuICAgICAgICB0cmFuc2l0aW9uOiBzdHJva2UtZGFzaGFycmF5IDAuMzVzICRhbmltYXRlRWFzZSAwLjFzLCBzdHJva2UtZGFzaG9mZnNldCAwLjM1cyAkYW5pbWF0ZUVhc2UgMC4xcywgdHJhbnNmb3JtIDAuNXMgJGFuaW1hdGVFYXNlIDAuMzhzO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5zdmdfX2Fycm93X19zaGFwZS0tZmFkZWluIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjVzO1xuICAgIH1cblxuICAgIC5hbmltYXRlZGJ0bl9fYnV0dG9uIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbiAgfVxuXG4gIC8vIExvYWRpbmcgc3RhdGUgZm9yIHBsYXkgYnV0dG9ucyB3aXRoIHRleHRcbiAgJi5qcy1kcmF3LWJ1dHRvbiB7XG4gICAgLnN2Z19fcmVjdCB7XG4gICAgICB3aWR0aDogJHRleHRCdXR0b25TaXplO1xuICAgICAgJl9fc2hhcGUtLXBpbGwge1xuICAgICAgICBAaW5jbHVkZSBhbmltYXRpb24oc3BpbiAwLjdzICRhbmltYXRlRWFzZSAwcyAxIG5vcm1hbCBmb3J3YXJkcyk7XG4gICAgICB9XG4gICAgfVxuICAgIC5hbmltYXRlZGJ0bl9fYnV0dG9uIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gSG92ZXIgb3V0IHN0YXRlLCBjbGFzcyByZW1vdmVkIGFmdGVyIGpzIGRldGVjdHMgYW5pbWF0aW9uIGVuZFxuICAmLmhvdmVyb3V0IHtcbiAgICAuc3ZnX19yZWN0IHtcbiAgICAgIHdpZHRoOiAkdGV4dEJ1dHRvblNpemU7XG4gICAgICB0cmFuc2l0aW9uLWRlbGF5OiAwLjM1czsgLy8gZGVsYXkgdGhlIHJlc2l6aW5nIHVudGlsIHNoYXBlIGlzIGNsb3NlZFxuXG4gICAgICAmX19zaGFwZS0tcGlsbCB7XG4gICAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDMuMTQgKiAkdGV4dEJ1dHRvblNpemU7XG4gICAgICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwLjUqMy4xNCAqICR0ZXh0QnV0dG9uU2l6ZTtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgICB9XG4gICAgfVxuICAgIC5hbmltYXRlZGJ0bl9fYnV0dG9uLCAuc3ZnX19hcnJvdy0tcmlnaHQge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cbn1cblxuLy8gVmlkZW8gcGxheSBidXR0b25cbi5hbmltYXRlZGJ0bl9fcGxheSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogJGxvYWRlclNpemU7XG4gIGhlaWdodDogJGxvYWRlclNpemU7XG4gIGN1cnNvcjogcG9pbnRlcjtcblxuICAubm8tc21pbCAmIHtcbiAgICAmOmFmdGVyIHtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29uLXBsYXktd2hpdGUuc3ZnXCIpO1xuICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAwO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogMTAwJSBhdXRvO1xuICAgICAgY29udGVudDogJyc7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICBzdmcge1xuICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAuc3ZnX19yZWN0IHtcbiAgICB3aWR0aDogJGxvYWRlclNpemU7XG4gICAgaGVpZ2h0OiAkbG9hZGVyU2l6ZTtcbiAgfVxuXG4gICZfX2xvYWRlciB7XG4gICAgdHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hvZmZzZXQgMC4zcyBsaW5lYXI7XG4gICAgc3Ryb2tlLWRhc2hhcnJheTogMy4xNCAqICAkbG9hZGVyU2l6ZTtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogMC41ICogMy4xNCAqICRsb2FkZXJTaXplO1xuICB9XG5cbiAgLy8gTG9hZGVkIHN0YXRlXG4gICYuanMtbG9hZGVyLWxvYWRpbmcge1xuICAgIC5hbmltYXRlZGJ0bl9fcGxheV9fbG9hZGVyIHtcbiAgICAgIC8vIExvYWRpbmcgc3RhdGUgZm9yIHZpZGVvIGJ1dHRvbiBidWZmZXJpbmdcbiAgICAgIEBpbmNsdWRlIGFuaW1hdGlvbihsb2FkZXIgJGxvYWRpbmdEdXJhdGlvbkVhc2UgMHMgaW5maW5pdGUgbm9ybWFsIGZvcndhcmRzKTtcbiAgICB9XG4gICAgLnN2Z19fcGF1c2Uge1xuICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG4gIH1cblxuICAmLmpzLWxvYWRlci1sb2FkZWQge1xuICAgIC8vIGFuaW1hdGlvbiB3aGVuIGxvYWRpbmcgaXMgZmluaXNoZWRcbiAgICAuYW5pbWF0ZWRidG5fX3BsYXlfX2xvYWRlciB7XG4gICAgICBAaW5jbHVkZSBhbmltYXRpb24obG9hZGVkICRsb2FkaW5nRHVyYXRpb25FYXNlIDBzIDEgbm9ybWFsIGZvcndhcmRzKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyIHtcbiAgICAgIEBleHRlbmQgJWhvdmVyLXBsYXktYnV0dG9uO1xuICAgIH1cbiAgfVxuXG4gICYuYW5pbWF0ZWRidG5fX3BsYXktLTQ4IHtcbiAgICBoZWlnaHQ6ICRsb2FkZXJTaXplNDg7XG4gICAgd2lkdGg6ICRsb2FkZXJTaXplNDg7XG5cbiAgICAuYW5pbWF0ZWRidG5fX3BsYXlfX2xvYWRlciB7XG4gICAgICBzdHJva2UtZGFzaGFycmF5OiAzLjE0ICogICRsb2FkZXJTaXplNDg7XG4gICAgICBzdHJva2UtZGFzaG9mZnNldDogMC41ICogMy4xNCAqICRsb2FkZXJTaXplNDg7XG4gICAgfVxuXG4gICAgLnN2Z19fcmVjdCB7XG4gICAgICBoZWlnaHQ6ICRsb2FkZXJTaXplNDg7XG4gICAgICB3aWR0aDogJGxvYWRlclNpemU0ODtcbiAgICB9XG4gIH1cblxuICAmLmFuaW1hdGVkYnRuX19wbGF5LS02NCB7XG4gICAgaGVpZ2h0OiAkbG9hZGVyU2l6ZTY0O1xuICAgIHdpZHRoOiAkbG9hZGVyU2l6ZTY0O1xuXG4gICAgLmFuaW1hdGVkYnRuX19wbGF5X19sb2FkZXIge1xuICAgICAgc3Ryb2tlLWRhc2hhcnJheTogMy4xNCAqICAkbG9hZGVyU2l6ZTY0O1xuICAgICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDAuNSAqIDMuMTQgKiAkbG9hZGVyU2l6ZTY0O1xuICAgIH1cblxuICAgIC5zdmdfX3JlY3Qge1xuICAgICAgaGVpZ2h0OiAkbG9hZGVyU2l6ZTY0O1xuICAgICAgd2lkdGg6ICRsb2FkZXJTaXplNjQ7XG4gICAgfVxuICB9XG5cbiAgJi5hbmltYXRlZGJ0bl9fcGxheS0tMTI4IHtcbiAgICBoZWlnaHQ6ICRsb2FkZXJTaXplMTI4O1xuICAgIHdpZHRoOiAkbG9hZGVyU2l6ZTEyODtcblxuICAgIC5hbmltYXRlZGJ0bl9fcGxheV9fbG9hZGVyIHtcbiAgICAgIHN0cm9rZS1kYXNoYXJyYXk6IDMuMTQgKiAgJGxvYWRlclNpemUxMjg7XG4gICAgICBzdHJva2UtZGFzaG9mZnNldDogMC41ICogMy4xNCAqICRsb2FkZXJTaXplMTI4O1xuICAgIH1cblxuICAgIC5zdmdfX3JlY3Qge1xuICAgICAgaGVpZ2h0OiAkbG9hZGVyU2l6ZTEyODtcbiAgICAgIHdpZHRoOiAkbG9hZGVyU2l6ZTEyODtcbiAgICB9XG4gIH1cbn1cblxuLmFuaW1hdGVkYnRuX196b29tIHtcbiAgLm5vLXNtaWwgJiB7XG4gICAgJjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbi16b29tLnN2Z1wiKTtcbiAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgMDtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IDEwMCUgYXV0bztcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuXG4gICAgaW1nLFxuICAgIHN2ZyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxufVxuXG4laG92ZXItcGxheS1idXR0b24ge1xuICAuYW5pbWF0ZWRidG5fX3BsYXlfX2xvYWRlciB7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IDA7XG4gICAgdHJhbnNpdGlvbjogc3Ryb2tlLWRhc2hvZmZzZXQgMC41cyBsaW5lYXIsIHN0cm9rZS1kYXNoYXJyYXkgMC41cyBsaW5lYXIgMC41cztcbiAgICBAaW5jbHVkZSBhbmltYXRpb24ocGxheUhvdmVyIDAuNXMgbGluZWFyIDBzIDEgbm9ybWFsIGZvcndhcmRzKTtcbiAgfVxufVxuXG4uanMtc3VibWl0dGluZyB7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuIiwiXG4vLyBTdXN5IGZyYW1ld29yayBpbml0XG5AaW1wb3J0ICcuLi9ucG0vYm93ZXJfY29tcG9uZW50cy9zdXN5L3Nhc3Mvc3VzeSc7XG5cbi8vIEhlbHBlcnNcbkBpbXBvcnQgJ2hlbHBlcnMvZnVuY3Rpb25zJztcbkBpbXBvcnQgJ2hlbHBlcnMvbWl4aW5zJztcblxuLy8gQmFzaWMgaW5jbHVkZXNcbkBpbXBvcnQgJ2Jhc2UvdmFyaWFibGVzJztcbkBpbXBvcnQgJ2Jhc2UvZ3JpZCc7XG5AaW1wb3J0ICdiYXNlL3Jlc2V0JztcbkBpbXBvcnQgJ2Jhc2UvZm9udHMnO1xuQGltcG9ydCAnYmFzZS9jb2xvcnMnO1xuQGltcG9ydCAnaGVscGVycy9leHRlbmRzJztcblxuLy8gTGF5b3V0XG5AaW1wb3J0ICdsYXlvdXQvaGVhZGVyJztcblxuLy8gQ29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b25zJztcblxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG59XG5cbnNlY3Rpb24ge1xuXG4gIC5pbmRleCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAuYWJvdXQsXG4gIC5jb250YWN0dXMsXG4gIC50ZWFtcyxcbiAgLmNvYWNoZXMsXG4gIC5yZWdmb3JtIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLmhlcm8ge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgIC5oZXJvLXRleHQge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA1NCU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICB0ZXh0LXNoYWRvdzogMXB4IDFweCAycHggIzMzMztcbiAgICB9XG5cbiAgICAuaGVyby10aXRsZSB7XG4gICAgICBmb250LXNpemU6IDIycHg7XG5cbiAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCh0YWJsZXQtcG9ydHJhaXQpIHtcbiAgICAgICAgZm9udC1zaXplOiA0MnB4O1xuICAgICAgfVxuICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KHRhYmxldC1sYW5kc2NhcGUpIHtcbiAgICAgICAgZm9udC1zaXplOiA2MnB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIC5oZXJvLWRlc2NyaXB0aW9uIHtcbiAgICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxNXB4O1xuXG4gICAgICBAaW5jbHVkZSBzdXN5LWJyZWFrcG9pbnQodGFibGV0LXBvcnRyYWl0KSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjVweDtcbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIHN1c3ktYnJlYWtwb2ludCh0YWJsZXQtcG9ydHJhaXQpIHtcbiAgICAgICAgZm9udC1zaXplOiAzNXB4O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50ZXh0IHtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHJlZDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJHJlZDtcbiAgICBmb250LWZhbWlseTogXCJIZWx2ZXRpY2EgTmV1ZVwiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgICBwYWRkaW5nOiAyNXB4O1xuXG4gICAgLnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAzNXB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcblxuICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KHRhYmxldC1wb3J0cmFpdCkge1xuICAgICAgICBmb250LXNpemU6IDMwcHg7XG4gICAgICB9XG4gICAgfVxuICAgIC5kZXNjcmlwdGlvbiB7XG4gICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICBsaW5lLWhlaWdodDogMjVweDtcblxuICAgICAgQGluY2x1ZGUgc3VzeS1icmVha3BvaW50KHRhYmxldC1wb3J0cmFpdCkge1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi50ZXh0LS1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbmEge1xuICBjb2xvcjogI2ZmMDAwMDtcbn1cblxuLnBvcHVwLWJnIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMHZoO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwO1xuICBvcGFjaXR5OiAwLjc7XG4gIHotaW5kZXg6IDk5OTtcbn1cblxuLnBvcHVwLW9uIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDtcbn1cblxuLnRyeW91dHMtZm9ybSB7XG4gIHdpZHRoOiA3NSU7XG4gIC8vbWluLWhlaWdodDogMzAwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG4gIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gIC8vcG9zaXRpb246IGZpeGVkO1xuICAvL3RvcDogMTAlO1xuICAvL2xlZnQ6IDEyJTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGJhY2tncm91bmQtY29sb3I6ICMyMjI7XG4gIHotaW5kZXg6IDk5OTE7XG4gIGNvbG9yOiAjZmZmO1xuICBwYWRkaW5nOiAzMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtc2l6ZTogMTZweDtcblxuICAudHJ5b3V0cy1pbnB1dCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNmZmY7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgbWFyZ2luOiAxMHB4IDA7XG4gIH1cblxuICAudHJ5b3V0cy1jaGVjayB7XG4gICAgYXBwZWFyYW5jZTogY2hlY2tib3g7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZjtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgd2lkdGg6IDIwcHg7XG4gIH1cblxuICAudHJ5b3V0cy1yZWdmb3JtIHtcbiAgICBtYXJnaW46IDMlIGF1dG87XG4gICAgbWF4LXdpZHRoOiA4MDBweDtcbiAgfVxuXG4gIC50cnlvdXRzLXRlcm1zIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICBtYXJnaW46IDVweCBhdXRvO1xuICAgIG1heC13aWR0aDogNTQwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG5cbiAgbGFiZWxbZm9yPVwiZy1hY2tub3dsZWRnZVwiXSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1heC13aWR0aDogNTIwcHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICB9XG59XG5cbi5wb3B1cC1vbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uZm9ybS1lcnJvciB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZmYwMDAwICFpbXBvcnRhbnQ7XG59XG5cbi5mb3JtLWVycm9yLS1jaGVja2JveCB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0ZXh0LWRlY29yYXRpb24tY29sb3I6ICNmZjAwMDA7XG59XG5cbiN0cnlvdXRzLXJlZ2Zvcm0tZXJyb3Ige1xuICBiYWNrZ3JvdW5kLWNvbG9yOiBwaW5rO1xuICBib3JkZXI6IDFweCBzb2xpZCByZWQ7XG4gIGNsZWFyOiBib3RoO1xuICBjb2xvcjogIzMzMztcbiAgZGlzcGxheTogbm9uZTtcbiAgZm9udC1mYW1pbHk6IFwiSGVsdmV0aWNhIE5ldWVcIiwgQXJpYWwsIHNhbnMtc2VyaWY7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuI3RyeW91dHMtcmVnZm9ybS1zdWNjZXNzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2NjYztcbiAgYm9yZGVyOiAxcHggc29saWQgIzk5OTtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBjbGVhcjogYm90aDtcbiAgY29sb3I6ICMwMDA7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBtYXJnaW46IDIwcHggYXV0bztcbiAgcGFkZGluZzogMjBweDtcbn1cblxuLmNsb3NlLWl0IHtcbiAgYmFja2dyb3VuZC1jb2xvcjogZ3JheTtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZvbnQtZmFtaWx5OiBcIkhlbHZldGljYSBOZXVlXCIsIEFyaWFsLCBzYW5zLXNlcmlmO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgcGFkZGluZzogM3B4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAtMTVweDtcbiAgdG9wOiAtMTVweDtcbiAgd2lkdGg6IDMwcHg7XG59XG5cbmZvb3RlciB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmZvb3Rlci0tc29jaWFsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW46IDIwcHggYXV0bztcbiAgd2lkdGg6IDQwMHB4O1xuXG4gIC5pY29uLXNvY2lhbCB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgd2lkdGg6IDQ0cHg7XG4gIH1cblxuICAuaWNvbi1zb2NpYWwtLWZiIHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIva3NvL3NvLW11Y2hsb3ZlL3Nicy0wMS9pbWFnZXMvaWNvbi1zb2NpYWwtZmFjZWJvb2std2hpdGUuc3ZnXCIpIGNlbnRlciBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICB9XG5cbiAgLmljb24tc29jaWFsLS1pZyB7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiL2tzby9zby1tdWNobG92ZS9zYnMtMDEvaW1hZ2VzL2ljb24tc29jaWFsLWluc3RhZ3JhbS13aGl0ZS5zdmdcIikgY2VudGVyIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIH1cblxuICAuaWNvbi1zb2NpYWwtLXR3IHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoXCIva3NvL3NvLW11Y2hsb3ZlL3Nicy0wMS9pbWFnZXMvaWNvbi1zb2NpYWwtdHdpdHRlci13aGl0ZS5zdmdcIikgY2VudGVyIG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIH1cbn1cbiJdLCJzb3VyY2VSb290IjoiL3NvdXJjZS8ifQ== */
