@charset "UTF-8";
html {
  box-sizing: border-box; }

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

/*
$base-font-family: 'tofino_book', Tahoma, Arial, sans-serif;
$base-font-family__medium: 'tofino_medium', Tahoma, Arial, sans-serif;
$base-font-family__regular: 'tofino_book', Tahoma, Arial, sans-serif;;

$title-font-family: 'tofino_light', Tahoma, Arial, sans-serif;
$normalized-font-family: sans-serif;
*/
/*tofino-----------------------------------*/
/*
@font-face {
  font-family: 'tofino_thin';
  src: url('../fonts/tofino/tofino_thin.woff2') format('woff2'),
  url('../fonts/tofino/tofino_thin.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'tofino_light';
  src: url('../fonts/tofino/tofino_light.woff2') format('woff2'),
  url('../fonts/tofino/tofino_thin.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'tofino_book';
  src: url('../fonts/tofino/tofino_book.woff2') format('woff2'),
  url('../fonts/tofino/tofino_book.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'tofino_medium';
  src: url('../fonts/tofino/tofino_medium.woff2') format('woff2'),
  url('../fonts/tofino/tofino_medium.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'tofino_regular';
  src: url('../fonts/tofino/tofino_regular.woff2') format('woff2'),
  url('../fonts/tofino/tofino_regular.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'tofino_black';
  src: url('../fonts/tofino/tofino_black.woff2') format('woff2'),
  url('../fonts/tofino/tofino_black.woff') format('woff');
  font-weight: normal;
  font-style: normal;
}
*/
/*tofino-----------------------------------*/
@font-face {
  font-family: 'icomoon';
  src: url("../fonts/icomoon.eot?38prwd");
  src: url("../fonts/icomoon.eot?38prwd#iefix") format("embedded-opentype"), url("../fonts/icomoon.woff2?38prwd") format("woff2"), url("../fonts/icomoon.ttf?38prwd") format("truetype"), url("../fonts/icomoon.woff?38prwd") format("woff"), url("../fonts/icomoon.svg?38prwd#icomoon") format("svg");
  font-weight: normal;
  font-style: normal; }

[class^='icon-']:before,
[class*=' icon-']:before, .sb-open-right:after, .plus-link__wrapper a:before, .block-solutions-overview .back:before, .flex-direction-nav li a:before {
  font-family: 'icomoon' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

.icon-menu:before, .sb-open-right:after {
  content: "\e90c"; }

.icon-arrow-left:before, .block-solutions-overview .back:before, .flex-direction-nav li a.flex-prev:before {
  content: "\e90b"; }

.icon-arrow:before, .flex-direction-nav li a.flex-next:before {
  content: "\e900"; }

.icon-bespaartijd:before {
  content: "\e901"; }

.icon-calculatie:before {
  content: "\e902"; }

.icon-calendar:before {
  content: "\e903"; }

.icon-facebook:before {
  content: "\e904"; }

.icon-linkedin:before {
  content: "\e905"; }

.icon-mobielwerken:before {
  content: "\e906"; }

.icon-newsletter:before {
  content: "\e907"; }

.icon-plus:before, .plus-link__wrapper a:before {
  content: "\e908"; }

.icon-samenwerken:before {
  content: "\e909"; }

.icon-twitter:before {
  content: "\e90a"; }

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

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

audio:not([controls]) {
  display: none;
  height: 0; }

[hidden],
template {
  display: none; }

html {
  background: #fff;
  color: #4a4a4a;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%; }

html,
button,
input,
select,
textarea {
  font-family: sans-serif; }

body {
  margin: 0; }

a {
  background: transparent; }
  a:focus {
    outline: thin dotted; }
  a:hover, a:active {
    outline: 0; }

abbr[title] {
  border-bottom: 1px dotted; }

b,
strong {
  font-weight: bold; }

dfn {
  font-style: italic; }

mark {
  background: #ff0;
  color: #000; }

code,
kbd,
pre,
samp {
  font-family: monospace, serif;
  font-size: 1em; }

pre {
  white-space: pre;
  white-space: pre-wrap;
  word-wrap: break-word; }

q {
  quotes: '\201C' '\201D' '\2018' '\2019'; }

q:before,
q:after {
  content: '';
  content: none; }

small {
  font-size: 80%; }

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

sup {
  top: -.5em; }

sub {
  bottom: -.25em; }

img {
  border: 0; }

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

figure {
  margin: 0; }

fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: .35em .625em .75em; }

legend {
  border: 0;
  padding: 0;
  white-space: normal; }

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

button,
input {
  line-height: normal; }

button,
select {
  text-transform: none; }

button,
input[type='button'],
input[type='reset'],
input[type='submit'] {
  -webkit-appearance: button;
  cursor: pointer; }

button[disabled],
input[disabled] {
  cursor: default; }

input[type='checkbox'],
input[type='radio'] {
  box-sizing: border-box;
  padding: 0; }

input[type='search'] {
  -webkit-appearance: textfield;
  -moz-box-sizing: content-box;
  -webkit-box-sizing: content-box;
  box-sizing: content-box; }

input[type='search']::-webkit-search-cancel-button,
input[type='search']::-webkit-search-decoration {
  -webkit-appearance: none; }

button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

textarea {
  overflow: auto;
  vertical-align: top; }

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

/*padding*/
.gl-padding-bottom-30 {
  padding-bottom: 30px !important; }

.clearfix {
  zoom: 1; }
  .clearfix:after {
    clear: both;
    content: ' ';
    display: block;
    font-size: 0;
    height: 0;
    visibility: hidden; }

.banner {
  position: relative;
  /*
  top: 0;
  left: 0;
  */
  width: 100%;
  z-index: 0;
  overflow: hidden;
  /*height: 70px;
  @include media($breakpoint-2, true) {
    height: $height-banner-white;
  }
  */ }
  .path-oplossingen .banner,
  .path-solutions .banner {
    height: 340px; }
    .lt-ie9 .path-oplossingen .banner, .lt-ie9
    .path-solutions .banner {
      height: 540px; }
    @media screen and (min-width: 60em) {
      .path-oplossingen .banner,
      .path-solutions .banner {
        height: 540px; } }
    .lt-ie9 .path-oplossingen .banner, .lt-ie9
    .path-solutions .banner {
      height: 525px; }
    @media screen and (min-width: 70em) {
      .path-oplossingen .banner,
      .path-solutions .banner {
        height: 525px; } }
  .path-frontpage .banner {
    /*height: $height-banner;
    @include media($breakpoint-2, true) {
      height: $height-banner;
    }
    @include media($breakpoint-3, true) {
      height: $height-carousel-tablet-home;
    }
    @include media($breakpoint-4, true) {
      height: $height-carousel;
    }
    */ }
  .page-node-type-product .banner {
    height: 130px; }
  .banner img {
    width: 100%;
    /*
    min-height: $height-carousel-mobile;
    min-width: ((1440/800) * $height-carousel-mobile);
    */ }
    .lt-ie9 .banner img {
      /*
      min-height: $height-carousel-tablet;
      min-width: ((1440/800) * $height-carousel-tablet);
      */ }
    @media screen and (min-width: 60em) {
      .banner img {
        /*
      min-height: $height-carousel-tablet;
      min-width: ((1440/800) * $height-carousel-tablet);
      */ } }
  .banner__img {
    z-index: -1; }
  .banner__text {
    position: absolute;
    z-index: 3;
    bottom: 0px;
    width: 100%;
    padding: 0px 0;
    background: rgba(255, 255, 255, 0.2); }
    .lt-ie9 .banner__text {
      padding: 50px 0; }
    @media screen and (min-width: 70em) {
      .banner__text {
        padding: 50px 0; } }

.js-homeflexslider .banner__img {
  display: none; }
  .lt-ie9 .js-homeflexslider .banner__img {
    display: block; }
  @media screen and (min-width: 48em) {
    .js-homeflexslider .banner__img {
      display: block; } }

.precontent #block-testimonialgallery {
  padding: 30px 0;
  margin: 0; }
  .precontent #block-testimonialgallery .field--name-field-static-gallery-title {
    font-size: 30px;
    text-align: center;
    font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif; }
  .precontent #block-testimonialgallery p {
    margin: 0; }
    .precontent #block-testimonialgallery p img {
      display: block; }
  .precontent #block-testimonialgallery p.text-align-center a {
    margin-top: 30px;
    display: block; }
  .precontent #block-testimonialgallery .container {
    padding-bottom: 0; }

.prefooter .block-block-content {
  margin-bottom: 0px; }

.subcontent {
  padding: 55px 0; }

.container {
  zoom: 1;
  box-sizing: content-box;
  margin-left: auto;
  margin-right: auto;
  max-width: 1200px;
  padding: 0 20px; }
  .container:after {
    clear: both;
    content: ' ';
    display: block;
    font-size: 0;
    height: 0;
    visibility: hidden; }

/*there should only be 1 container, container within container generates unnecessary left/right padding*/
.container .container {
  padding-left: 0px !important;
  padding-right: 0px !important; }

header,
footer,
.main {
  zoom: 1; }
  header:after,
  footer:after,
  .main:after {
    clear: both;
    content: ' ';
    display: block;
    font-size: 0;
    height: 0;
    visibility: hidden; }

.lt-ie9 .column {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 31.62393%; }
  .lt-ie9 .column:last-child {
    margin-right: 0; }

@media screen and (min-width: 30em) {
  .column {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 31.62393%; }
    .column:last-child {
      margin-right: 0; } }

.lt-ie9 .one-sidebar.sidebar-first .main {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 74.35897%;
  margin-right: 0; }
  .lt-ie9 .one-sidebar.sidebar-first .main:last-child {
    margin-right: 0; }

.lt-ie9 .one-sidebar.sidebar-second .main {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 74.35897%; }
  .lt-ie9 .one-sidebar.sidebar-second .main:last-child {
    margin-right: 0; }

.lt-ie9 .one-sidebar aside.sidebar-first {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 23.07692%; }
  .lt-ie9 .one-sidebar aside.sidebar-first:last-child {
    margin-right: 0; }

.lt-ie9 .one-sidebar aside.sidebar-second {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 23.07692%;
  margin-right: 0; }
  .lt-ie9 .one-sidebar aside.sidebar-second:last-child {
    margin-right: 0; }

@media screen and (min-width: 30em) {
  .one-sidebar.sidebar-first .main {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 74.35897%;
    margin-right: 0; }
    .one-sidebar.sidebar-first .main:last-child {
      margin-right: 0; }
  .one-sidebar.sidebar-second .main {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 74.35897%; }
    .one-sidebar.sidebar-second .main:last-child {
      margin-right: 0; }
  .one-sidebar aside.sidebar-first {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 23.07692%; }
    .one-sidebar aside.sidebar-first:last-child {
      margin-right: 0; }
  .one-sidebar aside.sidebar-second {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 23.07692%;
    margin-right: 0; }
    .one-sidebar aside.sidebar-second:last-child {
      margin-right: 0; } }

.lt-ie9 .two-sidebars .main {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 48.71795%; }
  .lt-ie9 .two-sidebars .main:last-child {
    margin-right: 0; }

.lt-ie9 .two-sidebars .sidebar-first {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 23.07692%; }
  .lt-ie9 .two-sidebars .sidebar-first:last-child {
    margin-right: 0; }

.lt-ie9 .two-sidebars .sidebar-second {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 23.07692%;
  margin-right: 0; }
  .lt-ie9 .two-sidebars .sidebar-second:last-child {
    margin-right: 0; }

@media screen and (min-width: 30em) {
  .two-sidebars .main {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 48.71795%; }
    .two-sidebars .main:last-child {
      margin-right: 0; }
  .two-sidebars .sidebar-first {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 23.07692%; }
    .two-sidebars .sidebar-first:last-child {
      margin-right: 0; }
  .two-sidebars .sidebar-second {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 23.07692%;
    margin-right: 0; }
    .two-sidebars .sidebar-second:last-child {
      margin-right: 0; } }

.lt-ie9 .no-sidebars .main {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%;
  margin-right: 0; }
  .lt-ie9 .no-sidebars .main:last-child {
    margin-right: 0; }

@media screen and (min-width: 30em) {
  .no-sidebars .main {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 100%;
    margin-right: 0; }
    .no-sidebars .main:last-child {
      margin-right: 0; } }

.hr-with-caption {
  border-top: 1px dashed lightgrey;
  position: relative;
  margin: 30px 0px; }
  .hr-with-caption span {
    position: absolute;
    font-weight: 500;
    top: -9px;
    left: 0px;
    display: inline-block;
    padding: 1px 5px;
    background: yellow;
    font-size: 11px;
    text-transform: uppercase; }

html {
  font-size: 87.5%;
  -webkit-text-size-adjust: 100%;
  -ms-text-size-adjust: 100%;
  -webkit-font-smoothing: antialiased; }

html,
button,
input,
select,
textarea {
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif; }

body {
  font-size: 14px;
  font-size: 1rem;
  line-height: 1.6; }

h1, .block-solutions-overview h2,
.block-solutions-overview h1 {
  color: #363942;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  line-height: 1.2;
  font-weight: 200;
  font-size: 30px;
  font-size: 2.14286rem;
  margin: 0 0 10px 0;
  padding: 0; }
  .intro h1, .intro .block-solutions-overview h2, .block-solutions-overview .intro h2 {
    color: #fff; }
  .intro .container h1, .intro .container .block-solutions-overview h2, .block-solutions-overview .intro .container h2 {
    font-size: 60px;
    font-size: 4.28571rem; }

h2 {
  color: #363942;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  line-height: 1.2;
  font-weight: 200;
  font-size: 24px;
  font-size: 1.71429rem;
  margin: 0 0 10px 0;
  padding: 0; }
  .intro h2 {
    color: #fff; }
  .intro .container h2 {
    font-size: 30px;
    font-size: 2.14286rem;
    margin: 0 0 21px 0;
    padding: 0; }

h3 {
  color: #363942;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  line-height: 1.2;
  font-weight: 200;
  font-size: 20px;
  font-size: 1.42857rem;
  margin: 0 0 10px 0;
  padding: 0; }
  .intro h3 {
    color: #fff; }

h4, footer h3, form label {
  color: #363942;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  line-height: 1.2;
  font-weight: 200;
  font-size: 18px;
  font-size: 1.28571rem;
  margin: 0;
  padding: 0; }
  .intro h4, .intro footer h3, footer .intro h3, .intro form label, form .intro label {
    color: #fff; }

h5 {
  color: #363942;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  line-height: 1.2;
  font-weight: 200;
  font-size: 16px;
  font-size: 1.14286rem;
  margin: 0;
  padding: 0; }
  .intro h5 {
    color: #fff; }

h6 {
  color: #363942;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  line-height: 1.2;
  font-weight: 200;
  font-size: 12px;
  font-size: 0.85714rem;
  margin: 0;
  padding: 0; }
  .intro h6 {
    color: #fff; }

header {
  padding-top: 10px;
  position: relative;
  /*@include banner-div;*/
  /*height:70px;*/
  z-index: 15; }
  .lt-ie9 header {
    /*height:130px;*/ }
  @media screen and (min-width: 48em) {
    header {
      /*height:130px;*/ } }
  header .container {
    padding: 0; }
  header .block-system-branding-block {
    float: left;
    margin-left: 60px; }
    .lt-ie9 header .block-system-branding-block {
      margin-left: 0; }
    @media screen and (min-width: 48em) {
      header .block-system-branding-block {
        margin-left: 0; } }
  header .site-logo {
    display: block;
    margin-top: -2px;
    margin-left: -8px; }
    header .site-logo img {
      height: auto;
      width: 214px; }
  header .header {
    padding: 0 20px;
    z-index: 12;
    position: relative; }
    .lt-ie9 header .header {
      position: absolute; }
    @media screen and (min-width: 48em) {
      header .header {
        position: absolute; } }

footer {
  background: #343842;
  padding: 50px 0 0 0;
  line-height: 25px; }
  footer ul.menu a {
    display: block;
    margin-bottom: 10px; }
  footer ul.menu ul a {
    display: inline; }
  footer ul.menu a.is-active {
    color: white; }
  footer a {
    color: white; }
  footer h3 {
    margin-bottom: 10px; }
  footer p {
    margin: 5px 0; }
  footer .footer-right,
  footer .footer-bottom {
    margin-right: 0; }
  footer .footer-left,
  footer .footer-middle,
  footer .footer-right {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 100%; }
    footer .footer-left:last-child,
    footer .footer-middle:last-child,
    footer .footer-right:last-child {
      margin-right: 0; }
    .lt-ie9 footer .footer-left, .lt-ie9
    footer .footer-middle, .lt-ie9
    footer .footer-right {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 31.62393%; }
      .lt-ie9 footer .footer-left:last-child, .lt-ie9
      footer .footer-middle:last-child, .lt-ie9
      footer .footer-right:last-child {
        margin-right: 0; }
    @media screen and (min-width: 48em) {
      footer .footer-left,
      footer .footer-middle,
      footer .footer-right {
        float: left;
        display: block;
        margin-right: 2.5641%;
        width: 31.62393%; }
        footer .footer-left:last-child,
        footer .footer-middle:last-child,
        footer .footer-right:last-child {
          margin-right: 0; } }
    footer .footer-left .block-menu,
    footer .footer-middle .block-menu,
    footer .footer-right .block-menu {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 100%; }
      footer .footer-left .block-menu:last-child,
      footer .footer-middle .block-menu:last-child,
      footer .footer-right .block-menu:last-child {
        margin-right: 0; }
      .lt-ie9 footer .footer-left .block-menu, .lt-ie9
      footer .footer-middle .block-menu, .lt-ie9
      footer .footer-right .block-menu {
        float: left;
        display: block;
        margin-right: 2.5641%;
        width: 48.71795%; }
        .lt-ie9 footer .footer-left .block-menu:last-child, .lt-ie9
        footer .footer-middle .block-menu:last-child, .lt-ie9
        footer .footer-right .block-menu:last-child {
          margin-right: 0; }
      @media screen and (min-width: 48em) {
        footer .footer-left .block-menu,
        footer .footer-middle .block-menu,
        footer .footer-right .block-menu {
          float: left;
          display: block;
          margin-right: 2.5641%;
          width: 48.71795%; }
          footer .footer-left .block-menu:last-child,
          footer .footer-middle .block-menu:last-child,
          footer .footer-right .block-menu:last-child {
            margin-right: 0; } }
    footer .footer-left .navigation,
    footer .footer-middle .navigation,
    footer .footer-right .navigation {
      text-align: center; }
      .lt-ie9 footer .footer-left .navigation, .lt-ie9
      footer .footer-middle .navigation, .lt-ie9
      footer .footer-right .navigation {
        text-align: left; }
      @media screen and (min-width: 48em) {
        footer .footer-left .navigation,
        footer .footer-middle .navigation,
        footer .footer-right .navigation {
          text-align: left; } }
      footer .footer-left .navigation h2,
      footer .footer-middle .navigation h2,
      footer .footer-right .navigation h2 {
        text-transform: uppercase;
        font-size: 14px;
        color: #4a4a4a;
        font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif; }
      footer .footer-left .navigation ul.menu,
      footer .footer-middle .navigation ul.menu,
      footer .footer-right .navigation ul.menu {
        margin: 0;
        text-align: left;
        display: inline-block;
        width: 100%;
        text-align: center; }
        .lt-ie9 footer .footer-left .navigation ul.menu, .lt-ie9
        footer .footer-middle .navigation ul.menu, .lt-ie9
        footer .footer-right .navigation ul.menu {
          text-align: left; }
        @media screen and (min-width: 48em) {
          footer .footer-left .navigation ul.menu,
          footer .footer-middle .navigation ul.menu,
          footer .footer-right .navigation ul.menu {
            text-align: left; } }
        footer .footer-left .navigation ul.menu li,
        footer .footer-middle .navigation ul.menu li,
        footer .footer-right .navigation ul.menu li {
          width: 100%; }
          footer .footer-left .navigation ul.menu li a:hover, footer .footer-left .navigation ul.menu li a:focus,
          footer .footer-middle .navigation ul.menu li a:hover,
          footer .footer-middle .navigation ul.menu li a:focus,
          footer .footer-right .navigation ul.menu li a:hover,
          footer .footer-right .navigation ul.menu li a:focus {
            text-decoration: underline; }
          footer .footer-left .navigation ul.menu li a.is-active,
          footer .footer-middle .navigation ul.menu li a.is-active,
          footer .footer-right .navigation ul.menu li a.is-active {
            color: #4a4a4a; }
        footer .footer-left .navigation ul.menu > ul,
        footer .footer-middle .navigation ul.menu > ul,
        footer .footer-right .navigation ul.menu > ul {
          margin-top: 10px; }
          footer .footer-left .navigation ul.menu > ul > li,
          footer .footer-middle .navigation ul.menu > ul > li,
          footer .footer-right .navigation ul.menu > ul > li {
            font-weight: normal; }
  footer .footer-bottom {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 100%; }
    footer .footer-bottom:last-child {
      margin-right: 0; }
    footer .footer-bottom .navigation ul.menu {
      margin: 0;
      text-align: left;
      display: inline-block;
      width: 100%; }
      .lt-ie9 footer .footer-bottom .navigation ul.menu li {
        text-align: left; }
      @media screen and (min-width: 60em) {
        footer .footer-bottom .navigation ul.menu li {
          text-align: left; } }
      footer .footer-bottom .navigation ul.menu li a {
        text-decoration: none; }
        footer .footer-bottom .navigation ul.menu li a:hover, footer .footer-bottom .navigation ul.menu li a:focus {
          color: #00aeef; }
    footer .footer-bottom .navigation > ul > li {
      display: inline-block;
      vertical-align: top;
      text-transform: uppercase;
      font-weight: bold;
      margin-bottom: 30px;
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 31.62393%;
      float: left;
      display: block;
      margin-right: 8.10811%;
      width: 100%; }
      footer .footer-bottom .navigation > ul > li:last-child {
        margin-right: 0; }
      footer .footer-bottom .navigation > ul > li:last-child {
        margin-right: 0; }
      .lt-ie9 footer .footer-bottom .navigation > ul > li {
        margin-bottom: 0px;
        float: left;
        display: block;
        margin-right: 8.10811%;
        width: 18.91892%; }
        .lt-ie9 footer .footer-bottom .navigation > ul > li:last-child {
          margin-right: 0; }
      @media screen and (min-width: 30em) {
        footer .footer-bottom .navigation > ul > li {
          margin-bottom: 0px;
          float: left;
          display: block;
          margin-right: 8.10811%;
          width: 18.91892%; }
          footer .footer-bottom .navigation > ul > li:last-child {
            margin-right: 0; } }
      .lt-ie9 footer .footer-bottom .navigation > ul > li {
        float: left;
        display: block;
        margin-right: 8.10811%;
        width: 18.91892%; }
        .lt-ie9 footer .footer-bottom .navigation > ul > li:last-child {
          margin-right: 0; }
      @media screen and (min-width: 60em) {
        footer .footer-bottom .navigation > ul > li {
          float: left;
          display: block;
          margin-right: 8.10811%;
          width: 18.91892%; }
          footer .footer-bottom .navigation > ul > li:last-child {
            margin-right: 0; } }
      footer .footer-bottom .navigation > ul > li > ul {
        margin-top: 10px; }
        footer .footer-bottom .navigation > ul > li > ul > li {
          font-weight: normal;
          text-transform: none; }
  .lt-ie9 footer {
    /*padding-bottom:65px;*/ }
  @media screen and (min-width: 60em) {
    footer {
      /*padding-bottom:65px;*/ } }
  footer .footer-closing {
    background: #434753;
    color: white;
    font-size: 11px; }
    footer .footer-closing .container {
      padding: 20px; }
    footer .footer-closing nav {
      margin-bottom: 0px !important; }
      footer .footer-closing nav ul {
        margin: 0px; }
      footer .footer-closing nav li {
        display: inline-block; }
        footer .footer-closing nav li:before {
          content: '|';
          display: inline-block;
          padding: 0px 3px; }
      footer .footer-closing nav li:first-child:before {
        display: none; }
      footer .footer-closing nav a {
        display: inline;
        text-decoration: none; }
    .lt-ie9 footer .footer-closing nav {
      float: right; }
    .lt-ie9 footer .footer-closing .block-origin {
      float: left; }
    @media screen and (min-width: 48em) {
      footer .footer-closing nav {
        float: right; }
      footer .footer-closing .block-origin {
        float: left; } }
  footer .block-origins {
    margin-left: -20px;
    margin-right: -20px;
    padding: 20px;
    background: #434753;
    text-align: center;
    color: white;
    font-size: 12px; }
    .lt-ie9 footer .block-origins {
      margin-left: 0px;
      margin-right: 0px;
      position: absolute;
      bottom: 0px;
      left: 0px;
      right: 0px; }
    @media screen and (min-width: 60em) {
      footer .block-origins {
        margin-left: 0px;
        margin-right: 0px;
        position: absolute;
        bottom: 0px;
        left: 0px;
        right: 0px; } }

header .bottom-navigation nav {
  clear: both;
  float: right;
  margin-top: -8px;
  margin-right: -15px;
  display: none; }
  .lt-ie9 header .bottom-navigation nav {
    display: block; }
  @media screen and (min-width: 48em) {
    header .bottom-navigation nav {
      display: block; } }
  header .bottom-navigation nav ul.menu a {
    color: #363942;
    display: inline-block;
    font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
    font-size: 16px;
    padding: 3px 0px;
    margin: 0 15px;
    text-transform: uppercase; }
    .page-node-type-product header .bottom-navigation nav ul.menu a,
    .path-oplossingen header .bottom-navigation nav ul.menu a,
    .path-solutions header .bottom-navigation nav ul.menu a,
    .path-frontpage header .bottom-navigation nav ul.menu a {
      color: #fff; }
    header .bottom-navigation nav ul.menu a.is-active {
      border-bottom: 2px solid #363942; }
      .page-node-type-product header .bottom-navigation nav ul.menu a.is-active,
      .path-oplossingen header .bottom-navigation nav ul.menu a.is-active,
      .path-solutions header .bottom-navigation nav ul.menu a.is-active,
      .path-frontpage header .bottom-navigation nav ul.menu a.is-active {
        border-color: #fff; }
    header .bottom-navigation nav ul.menu a:hover, header .bottom-navigation nav ul.menu a:active {
      color: #00aeef; }

.block-mega-menu-navigation-block {
  display: none; }
  .lt-ie9 .block-mega-menu-navigation-block {
    display: block; }
  @media screen and (min-width: 48em) {
    .block-mega-menu-navigation-block {
      display: block; } }

.bottom-navigation {
  position: fixed;
  float: left;
  width: 100%;
  z-index: 10;
  top: 70px; }
  .toolbar-horizontal .bottom-navigation {
    top: 150px; }
  .toolbar-vertical .bottom-navigation {
    top: 61px; }
    .lt-ie9 .toolbar-vertical .bottom-navigation {
      top: 110px; }
    @media screen and (min-width: 48em) {
      .toolbar-vertical .bottom-navigation {
        top: 110px; } }
  .lt-ie9 .bottom-navigation {
    display: block;
    position: fixed;
    top: 70px;
    width: 100%;
    background: #fff;
    height: 60px;
    padding: 19px; }
  @media screen and (min-width: 48em) {
    .bottom-navigation {
      display: block;
      position: fixed;
      top: 70px;
      width: 100%;
      background: #fff;
      height: 60px;
      padding: 19px; } }
  .bottom-navigation .top-level {
    display: block;
    background: #1c2127; }
    .lt-ie9 .bottom-navigation .top-level {
      display: inline-block;
      background: none;
      width: auto; }
    @media screen and (min-width: 48em) {
      .bottom-navigation .top-level {
        display: inline-block;
        background: none;
        width: auto; } }
    .bottom-navigation .top-level > a {
      color: #fff;
      border-top: 1px solid grey;
      margin-right: 0;
      text-decoration: none;
      font-weight: bold;
      display: block;
      padding: 18px 0 15px 35px;
      font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif; }
      .page-node-type-product .bottom-navigation .top-level > a,
      .path-oplossingen .bottom-navigation .top-level > a,
      .path-solutions .bottom-navigation .top-level > a,
      .path-frontpage .bottom-navigation .top-level > a {
        color: #fff; }
      .lt-ie9 .bottom-navigation .top-level > a {
        color: #363942 !important;
        text-transform: uppercase;
        border-top: 0;
        border-bottom: 0px solid transparent;
        margin-right: 15px;
        padding: 0 0 12px 0;
        font-weight: 500;
        font-size: 14px;
        transition: none; }
        .lt-ie9 .bottom-navigation .top-level > a:hover {
          border-bottom: 5px solid #00aeef; }
          .lt-ie9 .bottom-navigation .top-level > a:hover + .row {
            margin-top: 0px; }
      @media screen and (min-width: 48em) {
        .bottom-navigation .top-level > a {
          color: #363942 !important;
          text-transform: uppercase;
          border-top: 0;
          border-bottom: 0px solid transparent;
          margin-right: 15px;
          padding: 0 0 12px 0;
          font-weight: 500;
          font-size: 14px;
          transition: none; }
          .bottom-navigation .top-level > a:hover {
            border-bottom: 5px solid #00aeef; }
            .bottom-navigation .top-level > a:hover + .row {
              margin-top: 0px; } }
      .lt-ie9 .bottom-navigation .top-level > a {
        margin-right: 20px; }
      @media screen and (min-width: 60em) {
        .bottom-navigation .top-level > a {
          margin-right: 20px; } }
    .bottom-navigation .top-level .row {
      display: none; }
      .bottom-navigation .top-level .row ul {
        list-style: none;
        padding-left: 0px;
        margin: 0px; }
      .bottom-navigation .top-level .row a {
        color: #fff;
        /*voorcalculatie tekst*/
        text-decoration: none;
        display: inline-block;
        padding: 3px 0px;
        font-size: 14px; }
      .bottom-navigation .top-level .row a:hover {
        color: #00aeef; }
    .bottom-navigation .top-level .row.col-2 {
      width: 60%; }
    .bottom-navigation .top-level.open .row {
      display: none; }
      .lt-ie9 .bottom-navigation .top-level.open .row {
        display: table;
        position: absolute; }
      @media screen and (min-width: 48em) {
        .bottom-navigation .top-level.open .row {
          display: table;
          position: absolute; } }
    .bottom-navigation .top-level.open .contextual-panes p {
      position: relative;
      float: left;
      /*integreer alle... tekst*/ }
      .bottom-navigation .top-level.open .contextual-panes p:before {
        content: " ";
        display: table; }
  .bottom-navigation .top-level:last-child > a {
    color: #009fe0 !important; }
  .bottom-navigation .menulink {
    /*font-weight: bold;*/
    white-space: nowrap; }
    .bottom-navigation .menulink a:hover, .bottom-navigation .menulink a:focus {
      color: #00aeef; }
  .bottom-navigation .spacer {
    height: 15px; }
  .bottom-navigation .description {
    color: #fff;
    font-weight: normal;
    display: block;
    float: left;
    margin-bottom: 0;
    text-transform: uppercase;
    padding-bottom: 15px; }
  .bottom-navigation .contextual-columns .col-3 {
    width: 85%; }
    .lt-ie9 .bottom-navigation .contextual-columns .col-3 {
      width: 70%; }
    @media screen and (min-width: 70em) {
      .bottom-navigation .contextual-columns .col-3 {
        width: 70%; } }
    .bottom-navigation .contextual-columns .col-3 .contextual-panes {
      display: block;
      float: left;
      /* .contextual-pane__link a:hover{
            background:rgba(255,255,255,0.2);

        } */ }
      .bottom-navigation .contextual-columns .col-3 .contextual-panes .column {
        border-right: 1px solid rgba(255, 255, 255, 0.3); }
        .bottom-navigation .contextual-columns .col-3 .contextual-panes .column:first-child {
          width: 17%; }
        .bottom-navigation .contextual-columns .col-3 .contextual-panes .column:nth-child(2) {
          width: 31%; }
        .bottom-navigation .contextual-columns .col-3 .contextual-panes .column:nth-child(3) {
          border-right: 0;
          margin-right: 0;
          width: 45%; }
      .bottom-navigation .contextual-columns .col-3 .contextual-panes .contextual-pane__link a {
        font-size: 14px;
        font-weight: bold;
        display: none; }
        .lt-ie9 .bottom-navigation .contextual-columns .col-3 .contextual-panes .contextual-pane__link a {
          display: block;
          /* padding-left:10px;
            margin-right:20px; */ }
        @media screen and (min-width: 48em) {
          .bottom-navigation .contextual-columns .col-3 .contextual-panes .contextual-pane__link a {
            display: block;
            /* padding-left:10px;
            margin-right:20px; */ } }
      .bottom-navigation .contextual-columns .col-3 .contextual-panes .contextual-pane__image {
        width: 35%;
        padding: 0px;
        display: block;
        position: relative;
        float: left;
        vertical-align: middle; }
        .bottom-navigation .contextual-columns .col-3 .contextual-panes .contextual-pane__image img {
          display: none; }
          .bottom-navigation .contextual-columns .col-3 .contextual-panes .contextual-pane__image img.open {
            display: none; }
            .lt-ie9 .bottom-navigation .contextual-columns .col-3 .contextual-panes .contextual-pane__image img.open {
              display: block;
              vertical-align: middle;
              width: auto;
              height: 30px;
              max-width: initial; }
            @media screen and (min-width: 48em) {
              .bottom-navigation .contextual-columns .col-3 .contextual-panes .contextual-pane__image img.open {
                display: block;
                vertical-align: middle;
                width: auto;
                height: 30px;
                max-width: initial; } }
      .bottom-navigation .contextual-columns .col-3 .contextual-panes .contextual-pane__description div {
        display: none;
        padding-right: 3%; }
        .bottom-navigation .contextual-columns .col-3 .contextual-panes .contextual-pane__description div.open {
          display: none; }
          .lt-ie9 .bottom-navigation .contextual-columns .col-3 .contextual-panes .contextual-pane__description div.open {
            position: relative;
            height: 100%;
            display: flex;
            flex-direction: column;
            /*align-items: center;*/
            /*justify-content: center;*/ }
          @media screen and (min-width: 48em) {
            .bottom-navigation .contextual-columns .col-3 .contextual-panes .contextual-pane__description div.open {
              position: relative;
              height: 100%;
              display: flex;
              flex-direction: column;
              /*align-items: center;*/
              /*justify-content: center;*/ } }
      .bottom-navigation .contextual-columns .col-3 .contextual-panes .contextual-pane__description2 {
        position: relative;
        /*
          float: left;
          width: 55%;
          */ }
        .bottom-navigation .contextual-columns .col-3 .contextual-panes .contextual-pane__description2 div {
          float: left;
          width: 50%;
          display: none; }
          .bottom-navigation .contextual-columns .col-3 .contextual-panes .contextual-pane__description2 div.open {
            display: none; }
            .lt-ie9 .bottom-navigation .contextual-columns .col-3 .contextual-panes .contextual-pane__description2 div.open {
              color: #fff;
              /*padding-top: 15%;*/
              position: relative;
              height: 100%;
              width: 100%;
              display: block;
              flex-direction: column;
              align-items: center;
              justify-content: center; }
            @media screen and (min-width: 48em) {
              .bottom-navigation .contextual-columns .col-3 .contextual-panes .contextual-pane__description2 div.open {
                color: #fff;
                /*padding-top: 15%;*/
                position: relative;
                height: 100%;
                width: 100%;
                display: block;
                flex-direction: column;
                align-items: center;
                justify-content: center; } }
  .bottom-navigation .variable-columns .row > a {
    float: left;
    text-transform: uppercase;
    color: #fff;
    display: block;
    margin-bottom: 12px; }
    .bottom-navigation .variable-columns .row > a:hover, .bottom-navigation .variable-columns .row > a:focus {
      color: #00aeef; }
  .bottom-navigation .variable-columns .column:first-of-type {
    clear: left; }
  .bottom-navigation .row {
    background-color: #1c2127;
    padding: 15px 20px;
    width: auto;
    margin-top: 5px;
    /*border-radius: 0 0 3px 3px;*/
    /*box-shadow:0 6px 12px rgba(0, 0, 0, 0.60);*/
    opacity: 0.98;
    /*
    border-bottom-right-radius: 10px;
    border-bottom-left-radius: 10px;
    */ }
    .bottom-navigation .row.col-1 .column {
      width: 97%; }
    .bottom-navigation .row.col-2 .column {
      width: 47%; }
    .bottom-navigation .row.col-3 .column {
      width: 30%; }
    .bottom-navigation .row .column {
      margin-right: 3%; }
  .bottom-navigation .column .menulink {
    width: 100%;
    display: table; }

.sb-open-right {
  color: #363942;
  cursor: pointer;
  display: inline-block;
  float: right;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  font-size: 18px;
  padding: 0;
  text-transform: uppercase;
  position: relative;
  z-index: 10; }
  .page-node-type-product .sb-open-right,
  .path-oplossingen .sb-open-right,
  .path-solutions .sb-open-right,
  .path-frontpage .sb-open-right {
    color: #fff; }
  .lt-ie9 .sb-open-right {
    display: none; }
  @media screen and (min-width: 48em) {
    .sb-open-right {
      display: none; } }
  .sb-open-right:hover, .sb-open-right:active {
    color: #00aeef; }
  .sb-open-right:after {
    position: relative;
    top: 2px;
    margin-left: 5px; }

.sb-slidebar {
  background: #fbfcfc !important;
  border-left: 1px solid #e1e1e1 !important;
  padding-top: 20px !important; }
  .sb-slidebar .contextual {
    display: none; }
  .sb-slidebar ul.links,
  .sb-slidebar ul.menu {
    margin: 0px;
    padding: 0px; }
    .sb-slidebar ul.links li,
    .sb-slidebar ul.menu li {
      float: none !important;
      display: block;
      line-height: 30px; }
      .sb-slidebar ul.links li a,
      .sb-slidebar ul.menu li a {
        display: block;
        color: #363942;
        font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
        font-size: 14px;
        margin: 0 12px;
        text-transform: uppercase; }
        .sb-slidebar ul.links li a:hover, .sb-slidebar ul.links li a.is-active,
        .sb-slidebar ul.menu li a:hover,
        .sb-slidebar ul.menu li a.is-active {
          color: #00aeef; }
  .sb-slidebar ul.links li a {
    font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif; }

.top-navigation {
  position: fixed;
  width: 100%;
  top: 0;
  height: 70px;
  background: #363942;
  padding: 12px 0;
  z-index: 11; }
  .toolbar-horizontal .top-navigation {
    top: 80px; }
  .toolbar-vertical .top-navigation {
    top: 40px; }
  .top-navigation nav {
    float: right;
    display: none; }
    .lt-ie9 .top-navigation nav {
      display: block; }
    @media screen and (min-width: 48em) {
      .top-navigation nav {
        display: block; } }
    .top-navigation nav ul.menu a {
      color: #363942;
      display: inline-block;
      font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
      font-size: 14px;
      padding: 3px 0 2px;
      margin: 0 12px;
      text-transform: uppercase; }
      .page-node-type-product .top-navigation nav ul.menu a,
      .path-oplossingen .top-navigation nav ul.menu a,
      .path-solutions .top-navigation nav ul.menu a,
      .path-frontpage .top-navigation nav ul.menu a {
        color: #fff; }
      .top-navigation nav ul.menu a.is-active {
        border-bottom: 1px solid #363942; }
      .top-navigation nav ul.menu a:hover, .top-navigation nav ul.menu a:active {
        color: #00aeef; }
  .top-navigation .mini-search-form {
    float: right;
    position: relative;
    display: none; }
    .lt-ie9 .top-navigation .mini-search-form {
      display: block; }
    @media screen and (min-width: 60em) {
      .top-navigation .mini-search-form {
        display: block; } }
    .top-navigation .mini-search-form .form-type-textfield {
      margin: 0; }
      .top-navigation .mini-search-form .form-type-textfield input {
        max-width: 250px;
        background: #52565f;
        border: 1px solid #5b5f69;
        text-transform: none;
        font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
        color: #fff;
        font-size: 14px;
        font-size: 1rem;
        -webkit-border-radius: 3px;
        -moz-border-radius: 3px;
        border-radius: 3px;
        margin: 0 20px 0 0;
        padding: 12px 40px 12px 10px; }
    .top-navigation .mini-search-form input.button {
      margin: 0;
      position: absolute;
      top: 0;
      height: 44px;
      overflow: hidden;
      padding: 0;
      right: 20px;
      width: 45px;
      border: 0;
      background: url("../img/search.png") no-repeat center center;
      text-indent: 0;
      color: transparent; }
  .top-navigation #block-contactus {
    float: right;
    display: none; }
    .lt-ie9 .top-navigation #block-contactus {
      display: block; }
    @media screen and (min-width: 530px) {
      .top-navigation #block-contactus {
        display: block; } }
    .top-navigation #block-contactus p {
      padding: 0;
      margin: 0; }
    .top-navigation #block-contactus .button {
      background: #ff650b;
      border: 1px solid #ff650b;
      text-transform: none;
      font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
      font-size: 14px;
      font-size: 1rem;
      -webkit-border-radius: 3px;
      -moz-border-radius: 3px;
      border-radius: 3px;
      margin-right: 17px; }
      .lt-ie9 .top-navigation #block-contactus .button {
        padding: 14px 20px; }
      @media screen and (min-width: 30em) {
        .top-navigation #block-contactus .button {
          padding: 14px 20px; } }
      .top-navigation #block-contactus .button.active, .top-navigation #block-contactus .button:hover, .top-navigation #block-contactus .button:focus {
        background: #ff650b;
        border-color: #fff;
        color: #fff;
        outline: none; }
  .top-navigation .block-language {
    display: none;
    text-align: center;
    float: right;
    margin-right: 5px; }
    .lt-ie9 .top-navigation .block-language {
      display: block; }
    @media screen and (min-width: 48em) {
      .top-navigation .block-language {
        display: block; } }
    .lt-ie9 .top-navigation .block-language {
      margin-right: -5px; }
    @media screen and (min-width: 70em) {
      .top-navigation .block-language {
        margin-right: -5px; } }
    .top-navigation .block-language ul.links {
      margin: 0;
      padding: 0px;
      text-align: center;
      padding-top: 40px;
      height: 0px;
      position: relative;
      overflow: hidden;
      background: #363942; }
      .top-navigation .block-language ul.links:hover {
        height: auto; }
      .top-navigation .block-language ul.links:after {
        content: '';
        position: absolute;
        top: 14px;
        right: 10px;
        width: 8px;
        height: 8px;
        border-bottom: 1px solid white;
        border-left: 1px solid white;
        transform: rotate(-45deg); }
      .top-navigation .block-language ul.links li {
        display: block;
        float: none;
        margin: 0px;
        white-space: nowrap;
        text-align: left;
        padding: 0px;
        background: #363942; }
        .top-navigation .block-language ul.links li.is-active {
          position: absolute;
          top: 0px;
          left: 0px; }
        .top-navigation .block-language ul.links li.is-active a {
          pointer-events: none; }
      .top-navigation .block-language ul.links a {
        color: #fff;
        display: block;
        font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
        font-size: 14px;
        line-height: 40px;
        width: 185px;
        font-weight: 500;
        height: 40px;
        padding: 0px 10px;
        /*text-transform: uppercase;*/
        border: 1px solid transparent; }
        .page-node-type-product .top-navigation .block-language ul.links a,
        .path-oplossingen .top-navigation .block-language ul.links a,
        .path-solutions .top-navigation .block-language ul.links a,
        .path-frontpage .top-navigation .block-language ul.links a {
          color: #fff; }
        .top-navigation .block-language ul.links a:hover {
          color: #00aeef;
          background: #666a76; }
  .top-navigation .phone-button {
    position: relative; }
    .top-navigation .phone-button:hover ul {
      display: block; }
    .top-navigation .phone-button ul {
      position: absolute;
      display: none;
      z-index: 100;
      top: 15px;
      right: 35px;
      background: white;
      margin: 0px;
      padding: 5px 20px;
      text-align: right;
      list-style: none;
      border-radius: 5px;
      overflow: hidden;
      box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.16); }
    .top-navigation .phone-button ul li {
      white-space: nowrap;
      color: black;
      padding: 5px 0px;
      border-top: 1px solid rgba(0, 0, 0, 0.1); }
    .top-navigation .phone-button ul li:first-child {
      border: none; }
    .top-navigation .phone-button ul li.primary {
      font-size: 18px; }
    .top-navigation .phone-button ul li.primary span {
      display: inline-block;
      margin-right: 5px; }
    .top-navigation .phone-button ul li.secondary {
      font-size: 14px;
      font-weight: bold; }

.toggle-mnu {
  position: fixed;
  display: block;
  width: 28px;
  height: 28px;
  margin-top: 19px;
  margin-right: 15px;
  top: 10px;
  cursor: pointer;
  float: left; }
  .lt-ie9 .toggle-mnu {
    display: none; }
  @media screen and (min-width: 48em) {
    .toggle-mnu {
      display: none; } }

.toggle-mnu span:after, .toggle-mnu span:before {
  content: "";
  position: absolute;
  left: 0;
  top: 9px; }

.toggle-mnu span:after {
  top: 18px; }

.toggle-mnu span {
  position: relative;
  display: block; }

.toggle-mnu span, .toggle-mnu span:after, .toggle-mnu span:before {
  width: 100%;
  height: 2px;
  background-color: #fff;
  transition: all 0.3s;
  backface-visibility: hidden;
  border-radius: 2px; }

.toggle-mnu.on span {
  background-color: transparent; }

.toggle-mnu.on span:before {
  transform: rotate(45deg) translate(-1px, 0px); }

.toggle-mnu.on span:after {
  transform: rotate(-45deg) translate(6px, -7px); }

/* temp: spanish language hidden for visitor */
.language-switcher-language-url li[hreflang="es"] {
  display: none !important; }

.toolbar-horizontal .language-switcher-language-url li[hreflang="es"] {
  display: block !important; }

html[lang="es"] .language-switcher-language-url li[hreflang="es"] {
  display: block !important; }

/* temp: spanish language hidden for visitor */
header .navigation ul.links,
header .navigation ul.menu,
header .block-language ul.links,
header .block-language ul.menu {
  position: relative;
  z-index: 5;
  list-style: none;
  margin: 0;
  text-align: center; }
  header .navigation ul.links > li,
  header .navigation ul.menu > li,
  header .block-language ul.links > li,
  header .block-language ul.menu > li {
    margin: 0;
    padding: 0;
    float: left; }
    header .navigation ul.links > li > a,
    header .navigation ul.menu > li > a,
    header .block-language ul.links > li > a,
    header .block-language ul.menu > li > a {
      text-decoration: none;
      display: block; }
      header .navigation ul.links > li > a:hover, header .navigation ul.links > li > a:focus, header .navigation ul.links > li > a.active,
      header .navigation ul.menu > li > a:hover,
      header .navigation ul.menu > li > a:focus,
      header .navigation ul.menu > li > a.active,
      header .block-language ul.links > li > a:hover,
      header .block-language ul.links > li > a:focus,
      header .block-language ul.links > li > a.active,
      header .block-language ul.menu > li > a:hover,
      header .block-language ul.menu > li > a:focus,
      header .block-language ul.menu > li > a.active {
        outline: none; }

.menu--multipress-features {
  display: none;
  float: left;
  width: 25%; }
  .menu--multipress-features ul {
    margin: 0px; }
  .menu--multipress-features .menu-item {
    padding: 0px; }
  .menu--multipress-features .menu-item a {
    background: #f3f3f3;
    display: block;
    padding: 9px 19px;
    text-decoration: none;
    border-bottom: 1px solid white;
    font-size: 14px;
    transition: none; }
    .menu--multipress-features .menu-item a:hover {
      background: #e1e1e1; }
  .menu--multipress-features .menu-item--active-trail a {
    background: #e1e1e1; }
  .menu--multipress-features .menu-item:first-child a {
    border-top-left-radius: 7px;
    border-top-right-radius: 7px; }
  .menu--multipress-features .menu-item:last-child a {
    border-bottom-left-radius: 7px;
    border-bottom-right-radius: 7px; }
  .lt-ie9 .menu--multipress-features {
    display: block; }
  @media screen and (min-width: 48em) {
    .menu--multipress-features {
      display: block; } }

.lt-ie9 .menu--multipress-features + .block-system {
  float: right;
  width: 70%; }

@media screen and (min-width: 48em) {
  .menu--multipress-features + .block-system {
    float: right;
    width: 70%; } }

.menu--quojob-features {
  display: none;
  float: left;
  width: 25%; }
  .menu--quojob-features ul {
    margin: 0px; }
  .menu--quojob-features .menu-item {
    padding: 0px; }
  .menu--quojob-features .menu-item a {
    background: #f3f3f3;
    display: block;
    padding: 9px 19px;
    text-decoration: none;
    border-bottom: 1px solid white;
    font-size: 14px;
    transition: none; }
    .menu--quojob-features .menu-item a:hover {
      background: #e1e1e1; }
  .menu--quojob-features .menu-item--active-trail a {
    background: #e1e1e1; }
  .menu--quojob-features .menu-item:first-child a {
    border-top-left-radius: 7px;
    border-top-right-radius: 7px; }
  .menu--quojob-features .menu-item:last-child a {
    border-bottom-left-radius: 7px;
    border-bottom-right-radius: 7px; }
  .lt-ie9 .menu--quojob-features {
    display: block; }
  @media screen and (min-width: 48em) {
    .menu--quojob-features {
      display: block; } }

.lt-ie9 .menu--quojob-features + .block-system {
  float: right;
  width: 70%; }

@media screen and (min-width: 48em) {
  .menu--quojob-features + .block-system {
    float: right;
    width: 70%; } }

.menu--gripp-features {
  display: none;
  float: left;
  width: 25%; }
  .menu--gripp-features ul {
    margin: 0px; }
  .menu--gripp-features .menu-item {
    padding: 0px; }
  .menu--gripp-features .menu-item a {
    background: #f3f3f3;
    display: block;
    padding: 9px 19px;
    text-decoration: none;
    border-bottom: 1px solid white;
    font-size: 14px;
    transition: none; }
    .menu--gripp-features .menu-item a:hover {
      background: #e1e1e1; }
  .menu--gripp-features .menu-item--active-trail a {
    background: #e1e1e1; }
  .menu--gripp-features .menu-item:first-child a {
    border-top-left-radius: 7px;
    border-top-right-radius: 7px; }
  .menu--gripp-features .menu-item:last-child a {
    border-bottom-left-radius: 7px;
    border-bottom-right-radius: 7px; }
  .lt-ie9 .menu--gripp-features {
    display: block; }
  @media screen and (min-width: 48em) {
    .menu--gripp-features {
      display: block; } }

.lt-ie9 .menu--gripp-features + .block-system {
  float: right;
  width: 70%; }

@media screen and (min-width: 48em) {
  .menu--gripp-features + .block-system {
    float: right;
    width: 70%; } }

.menu--support-menu {
  display: none;
  float: left;
  width: 25%;
  display: block;
  float: none;
  position: static;
  top: 290px;
  z-index: 1;
  left: 50%;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
  background: white;
  padding: 15px;
  width: 100%; }
  .menu--support-menu ul {
    margin: 0px; }
  .menu--support-menu .menu-item {
    padding: 0px; }
  .menu--support-menu .menu-item a {
    background: #f3f3f3;
    display: block;
    padding: 9px 19px;
    text-decoration: none;
    border-bottom: 1px solid white;
    font-size: 14px;
    transition: none; }
    .menu--support-menu .menu-item a:hover {
      background: #e1e1e1; }
  .menu--support-menu .menu-item--active-trail a {
    background: #e1e1e1; }
  .menu--support-menu .menu-item:first-child a {
    border-top-left-radius: 7px;
    border-top-right-radius: 7px; }
  .menu--support-menu .menu-item:last-child a {
    border-bottom-left-radius: 7px;
    border-bottom-right-radius: 7px; }
  .lt-ie9 .menu--support-menu {
    display: block; }
  @media screen and (min-width: 48em) {
    .menu--support-menu {
      display: block; } }
  .menu--support-menu .menu .menu {
    display: none; }
  .menu--support-menu .menu .open + .menu {
    display: block; }
  .menu--support-menu h2 {
    margin-bottom: 20px;
    font-size: 18px; }
  .lt-ie9 .menu--support-menu {
    position: absolute;
    margin-left: 15%;
    width: 33%;
    top: 290px; }
  @media screen and (min-width: 30em) {
    .menu--support-menu {
      position: absolute;
      margin-left: 15%;
      width: 33%;
      top: 290px; } }
  .lt-ie9 .menu--support-menu {
    top: 290px;
    margin-left: 15%;
    width: 33%; }
    .lt-ie9 .menu--support-menu h2 {
      font-size: 24px; }
  @media screen and (min-width: 48em) {
    .menu--support-menu {
      top: 290px;
      margin-left: 15%;
      width: 33%; }
      .menu--support-menu h2 {
        font-size: 24px; } }
  .lt-ie9 .menu--support-menu {
    top: 220px;
    left: 50%;
    margin-left: 250px;
    width: 370px; }
  @media screen and (min-width: 60em) {
    .menu--support-menu {
      top: 220px;
      left: 50%;
      margin-left: 250px;
      width: 370px; } }
  .menu--support-menu .menu-item a {
    padding-top: 5px;
    padding-bottom: 5px; }
  .menu--support-menu .menu-item--expanded {
    font-weight: bold;
    list-style: none; }
  .menu--support-menu .menu-item--expanded .menu-item a {
    background: none;
    font-weight: normal; }
  .menu--support-menu .menu-item--expanded > a:before {
    display: inline-block;
    margin-right: 10px;
    content: '▸'; }
  .menu--support-menu .menu-item--expanded > a.open:before {
    content: '▾'; }

.lt-ie9 .menu--support-menu + .block-system .field__item + .field__item .container > div {
  width: 65%; }

@media screen and (min-width: 30em) {
  .menu--support-menu + .block-system .field__item + .field__item .container > div {
    width: 65%; } }

/* 
.menu--support-menu{
    @include block_menu_modules;
    float:right;

    h2{margin-bottom:20px;}
    .menu-item--expanded{
        font-weight:bold;
        list-style: none;
    }
    .menu-item--expanded .menu-item a{
        background:none;
        font-weight:normal;
    }
  }
  
  .menu--support-menu + .block-system{
  
    @include media($breakpoint-2, true) {
      float:left;
      width:70%;
    }
  
  }  */
button,
input,
select,
textarea {
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif; }

form input[type='text'],
form input[type='datetime-local'],
form input[type='email'],
form input[type='password'],
form input[type='url'],
form input[type='tel'],
form input[type='number'],
form input[type='date'] {
  background: #fff;
  border: 1px solid #e1e1e1;
  box-sizing: border-box;
  padding: 10px;
  width: 100%;
  border-radius: 3px; }
  .lt-ie9 form input[type='text'], .lt-ie9
  form input[type='datetime-local'], .lt-ie9
  form input[type='email'], .lt-ie9
  form input[type='password'], .lt-ie9
  form input[type='url'], .lt-ie9
  form input[type='tel'], .lt-ie9
  form input[type='number'], .lt-ie9
  form input[type='date'] {
    max-width: 65%;
    margin: 10px 0; }
  @media screen and (min-width: 30em) {
    form input[type='text'],
    form input[type='datetime-local'],
    form input[type='email'],
    form input[type='password'],
    form input[type='url'],
    form input[type='tel'],
    form input[type='number'],
    form input[type='date'] {
      max-width: 65%;
      margin: 10px 0; } }
  form input[type='text']:focus,
  form input[type='datetime-local']:focus,
  form input[type='email']:focus,
  form input[type='password']:focus,
  form input[type='url']:focus,
  form input[type='tel']:focus,
  form input[type='number']:focus,
  form input[type='date']:focus {
    border-color: #4a4a4a;
    outline: none; }

form textarea {
  background: #fff;
  border: 1px solid #e1e1e1;
  box-sizing: border-box;
  min-height: 150px;
  padding: 10px;
  width: 100%; }
  .lt-ie9 form textarea {
    max-width: 65%;
    margin: 10px 0; }
  @media screen and (min-width: 30em) {
    form textarea {
      max-width: 65%;
      margin: 10px 0; } }
  form textarea:focus {
    border-color: #4a4a4a;
    outline: none; }
  .lt-ie9 form textarea label {
    float: left;
    min-width: 35%; }
  @media screen and (min-width: 30em) {
    form textarea label {
      float: left;
      min-width: 35%; } }

form .form-radios input[type='radio'],
form .mauticform-radiogrp-row input[type='radio'] {
  margin: 0 3px 0 1px; }
  form .form-radios input[type='radio']:focus,
  form .mauticform-radiogrp-row input[type='radio']:focus {
    border-color: #4a4a4a;
    outline: none; }

form .form-radios label,
form .mauticform-radiogrp-row label {
  color: #4a4a4a;
  font-size: 14px;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  margin: 10px 0; }
  .lt-ie9 form .form-radios label, .lt-ie9
  form .mauticform-radiogrp-row label {
    float: left;
    min-width: 35%; }
  @media screen and (min-width: 30em) {
    form .form-radios label,
    form .mauticform-radiogrp-row label {
      float: left;
      min-width: 35%; } }

form .form-checks input[type='checkbox'],
form .mauticform-checkboxgrp-row input[type='checkbox'] {
  margin: 0 3px 0 1px; }
  form .form-checks input[type='checkbox']:focus,
  form .mauticform-checkboxgrp-row input[type='checkbox']:focus {
    border-color: #4a4a4a;
    outline: none; }

form .form-checks label,
form .mauticform-checkboxgrp-row label {
  color: #4a4a4a;
  font-size: 14px;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  margin: 10px 0; }
  .lt-ie9 form .form-checks label, .lt-ie9
  form .mauticform-checkboxgrp-row label {
    float: left;
    min-width: 35%; }
  @media screen and (min-width: 30em) {
    form .form-checks label,
    form .mauticform-checkboxgrp-row label {
      float: left;
      min-width: 35%; } }

form select {
  background: url(data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgZGF0YS1uYW1lPSJMYXllciAxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Ljk1IDEwIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9LmNscy0ye2ZpbGw6IzQ0NDt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPmFycm93czwvdGl0bGU+PHJlY3QgY2xhc3M9ImNscy0xIiB3aWR0aD0iNC45NSIgaGVpZ2h0PSIxMCIvPjxwb2x5Z29uIGNsYXNzPSJjbHMtMiIgcG9pbnRzPSIxLjQxIDQuNjcgMi40OCAzLjE4IDMuNTQgNC42NyAxLjQxIDQuNjciLz48cG9seWdvbiBjbGFzcz0iY2xzLTIiIHBvaW50cz0iMy41NCA1LjMzIDIuNDggNi44MiAxLjQxIDUuMzMgMy41NCA1LjMzIi8+PC9zdmc+) no-repeat 98% 50%;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  border: 1px solid #e1e1e1;
  box-sizing: border-box;
  height: 40px;
  padding: 10px;
  width: 100%; }
  .lt-ie9 form select {
    width: 65%;
    margin: 10px 0; }
  @media screen and (min-width: 30em) {
    form select {
      width: 65%;
      margin: 10px 0; } }
  form select:focus {
    border-color: #4a4a4a;
    outline: none; }

form label {
  display: block;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  margin: 20px 0 5px;
  font-weight: 400;
  clear: left; }
  .lt-ie9 form label {
    float: left;
    width: 25%; }
  @media screen and (min-width: 30em) {
    form label {
      float: left;
      width: 25%; } }

form button[type='submit'] {
  float: left;
  clear: both; }

input.button,
button {
  font-size: 14px;
  font-size: 1rem;
  background: #ff650b;
  border: 1px solid #ff650b;
  box-shadow: none;
  color: #fff;
  display: inline-block;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  line-height: 1;
  text-shadow: none;
  -webkit-border-radius: 7px;
  -moz-border-radius: 7px;
  text-decoration: none;
  /*
  text-transform: uppercase;
  */
  transition: background 150ms linear, color 150ms linear;
  -o-transition: background 150ms linear, color 150ms linear;
  -ms-transition: background 150ms linear, color 150ms linear;
  -webkit-font-smoothing: antialiased;
  padding: 13px 13px;
  margin: 20px 0 5px; }
  .lt-ie9 input.button, .lt-ie9
  button {
    padding: 13px 20px; }
  @media screen and (min-width: 30em) {
    input.button,
    button {
      padding: 13px 20px; } }
  input.button.active, input.button:hover, input.button:focus,
  button.active,
  button:hover,
  button:focus {
    background: #fff;
    border-color: #ff650b;
    color: #ff650b;
    outline: none; }

.button {
  font-size: 14px;
  font-size: 1rem;
  background: #00aeef;
  border: 1px solid #00aeef;
  box-shadow: none;
  color: #fff;
  display: inline-block;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  line-height: 1;
  text-shadow: none;
  -webkit-border-radius: 7px;
  -moz-border-radius: 7px;
  text-decoration: none;
  /*
  text-transform: uppercase;
  */
  transition: background 150ms linear, color 150ms linear;
  -o-transition: background 150ms linear, color 150ms linear;
  -ms-transition: background 150ms linear, color 150ms linear;
  -webkit-font-smoothing: antialiased;
  padding: 13px 13px; }
  .lt-ie9 .button {
    padding: 13px 20px; }
  @media screen and (min-width: 30em) {
    .button {
      padding: 13px 20px; } }
  .button.active, .button:hover, .button:focus {
    background: #fff;
    border-color: #00aeef;
    color: #00aeef;
    outline: none; }

.button__wrapper a {
  font-size: 14px;
  font-size: 1rem;
  background: #00aeef;
  border: 1px solid #00aeef;
  box-shadow: none;
  color: #fff;
  display: inline-block;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  line-height: 1;
  text-shadow: none;
  -webkit-border-radius: 7px;
  -moz-border-radius: 7px;
  text-decoration: none;
  /*
  text-transform: uppercase;
  */
  transition: background 150ms linear, color 150ms linear;
  -o-transition: background 150ms linear, color 150ms linear;
  -ms-transition: background 150ms linear, color 150ms linear;
  -webkit-font-smoothing: antialiased;
  padding: 13px 13px; }
  .lt-ie9 .button__wrapper a {
    padding: 13px 20px; }
  @media screen and (min-width: 30em) {
    .button__wrapper a {
      padding: 13px 20px; } }
  .button__wrapper a.active, .button__wrapper a:hover, .button__wrapper a:focus {
    background: #fff;
    border-color: #00aeef;
    color: #00aeef;
    outline: none; }

.plus-link__wrapper {
  width: 100%;
  float: left; }
  .plus-link__wrapper a {
    color: #fff;
    font-size: 17px;
    text-transform: uppercase;
    font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
    text-decoration: none;
    transition: all 150ms linear, color 150ms linear;
    -o-transition: all 150ms linear, color 150ms linear;
    -ms-transition: all 150ms linear, color 150ms linear; }
    .plus-link__wrapper a:before {
      font-size: 36px;
      margin-right: 20px;
      position: relative;
      top: 10px; }
    .plus-link__wrapper a:hover {
      color: #00aeef; }

.link__wrapper a {
  font-size: 14px;
  font-size: 1rem;
  color: #00aeef;
  text-transform: uppercase;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  text-decoration: none; }

.mauticform_wrapper {
  /*margin: 50px 0;*/ }
  .mauticform_wrapper .mauticform-checkboxgrp label,
  .mauticform_wrapper .mauticform-radiogrp label {
    float: none;
    width: 100%; }
  .mauticform_wrapper .mauticform-checkboxgrp.inline > div,
  .mauticform_wrapper .mauticform-radiogrp.inline > div {
    display: inline-block; }
  .lt-ie9 .mauticform_wrapper .mauticform-button {
    margin-left: 25%; }
  .lt-ie9 .mauticform_wrapper .btn-align-left {
    margin-left: 0%; }
  @media screen and (min-width: 30em) {
    .mauticform_wrapper .mauticform-button {
      margin-left: 25%; }
    .mauticform_wrapper .btn-align-left {
      margin-left: 0%; } }

.lt-ie9 .pf_contact_me .mauticform-page-wrapper {
  overflow: hidden; }

.lt-ie9 .pf_contact_me .mauticform-row {
  width: 33%;
  float: left; }

.lt-ie9 .pf_contact_me .mauticform-button {
  margin-top: 55px;
  margin-left: 0px;
  width: 90%; }

.lt-ie9 .pf_contact_me label {
  float: none;
  width: auto; }

.lt-ie9 .pf_contact_me input {
  max-width: 90% !important; }

@media screen and (min-width: 60em) {
  .pf_contact_me .mauticform-page-wrapper {
    overflow: hidden; }
  .pf_contact_me .mauticform-row {
    width: 33%;
    float: left; }
  .pf_contact_me .mauticform-button {
    margin-top: 55px;
    margin-left: 0px;
    width: 90%; }
  .pf_contact_me label {
    float: none;
    width: auto; }
  .pf_contact_me input {
    max-width: 90% !important; } }

.pf_product_demo .mauticform-button {
  margin-left: 0px; }

.mauticform-post-success .mauticform-message {
  background: #ff640b;
  color: white;
  padding: 20px;
  border-radius: 7px; }

span.mauticform-errormsg {
  color: red;
  display: block;
  clear: both; }

.search-form input[type=search] {
  padding: 10px;
  border-radius: 3px;
  background: white;
  border: 1px solid #e1e1e1; }

.search-form .search-advanced {
  margin: 0px;
  border: 0px;
  padding-bottom: 10px;
  border-bottom: 1px solid #e1e1e1;
  margin-bottom: 40px; }
  .search-form .search-advanced summary {
    display: none; }
  .search-form .search-advanced label {
    float: none; }
  .search-form .search-advanced .details-wrapper {
    padding: 0px; }
    .search-form .search-advanced .details-wrapper legend {
      display: none; }
    .search-form .search-advanced .details-wrapper fieldset {
      margin: 0px;
      padding: 0px; }
    .search-form .search-advanced .details-wrapper > fieldset[data-drupal-selector=edit-keywords-fieldset] {
      display: none; }
    .search-form .search-advanced .details-wrapper > fieldset[data-drupal-selector=edit-lang-fieldset] {
      display: none; }
    .search-form .search-advanced .details-wrapper > fieldset[data-drupal-selector=edit-types-fieldset] {
      display: none;
      border: none;
      padding: 0px; }
  .search-form .search-advanced .fieldset-wrapper fieldset[data-drupal-selector=edit-type] .form-item {
    display: none; }
  .search-form .search-advanced .fieldset-wrapper fieldset[data-drupal-selector=edit-type] .form-item-type-news {
    display: block; }
  .search-form .search-advanced .action {
    display: none; }

.search-form + h2 {
  display: none; }

html,
body {
  height: 100%; }

body {
  padding-top: 60px !important; }
  .lt-ie9 body {
    padding-top: 120px !important; }
  @media screen and (min-width: 48em) {
    body {
      padding-top: 120px !important; } }

body.toolbar-vertical {
  padding-top: 100px !important; }

.lt-ie9 body.toolbar-fixed {
  padding-top: 160px !important; }

@media screen and (min-width: 48em) {
  body.toolbar-fixed {
    padding-top: 160px !important; } }

.lt-ie9 body.toolbar-fixed {
  padding-top: 200px !important; }

@media screen and (min-width: 60em) {
  body.toolbar-fixed {
    padding-top: 200px !important; } }

/* 100px mobile -> 200px desktop */
.precontent,
.content {
  background: #fff; }

.content {
  border-top: 1px solid #e2e2e1;
  border-bottom: 1px solid #e2e2e1;
  padding: 30px 0 40px 0; }
  .path-oplossingen .content,
  .path-solutions .content {
    display: none; }

.intro {
  background: #363942;
  color: #fff;
  margin-top: -1px;
  padding: 50px 0;
  font-size: 20px; }

.block-block-content {
  margin-bottom: 40px; }

footer .block-menu {
  margin-bottom: 40px !important; }

#block-socialmenu h4, #block-socialmenu footer h3, footer #block-socialmenu h3, #block-socialmenu form label, form #block-socialmenu label {
  float: left;
  width: 160px;
  padding: 8px 0;
  height: 24px; }

#block-socialmenu h4 + p, #block-socialmenu footer h3 + p, footer #block-socialmenu h3 + p, #block-socialmenu form label + p, form #block-socialmenu label + p {
  display: inline-block;
  margin: 0; }

#block-socialmenu .icon-facebook,
#block-socialmenu .icon-twitter,
#block-socialmenu .icon-linkedin {
  background-color: transparent;
  border: 0;
  color: transparent;
  font: 0 / 0 a;
  text-shadow: none; }
  #block-socialmenu .icon-facebook:before,
  #block-socialmenu .icon-twitter:before,
  #block-socialmenu .icon-linkedin:before {
    -webkit-transition: all 150ms linear;
    -moz-transition: all 150ms linear;
    transition: all 150ms linear;
    font-size: 36px;
    font-size: 2.57143rem;
    color: #363942;
    margin-left: 10px; }
  #block-socialmenu .icon-facebook:hover:before,
  #block-socialmenu .icon-twitter:hover:before,
  #block-socialmenu .icon-linkedin:hover:before {
    color: #00aeef; }

#block-socialmenu hr {
  height: 1px;
  background: #e1e1e1;
  border: 0; }

.block-cta_full {
  text-align: center;
  max-width: 830px;
  margin: 0 auto; }
  .block-cta_full img {
    margin-bottom: 30px; }

.path-frontpage .intro {
  background: #e9e9e9;
  color: #4a4a4a; }
  .path-frontpage .intro h2 {
    color: inherit;
    font-size: 24px;
    margin-bottom: 10px; }

.path-frontpage .block-cta_primary img {
  margin-bottom: 20px;
  max-width: 350px; }
  .lt-ie9 .path-frontpage .block-cta_primary img {
    margin: 0 0 0 30px;
    float: right; }
  @media screen and (min-width: 30em) {
    .path-frontpage .block-cta_primary img {
      margin: 0 0 0 30px;
      float: right; } }

.path-frontpage .block-cta_primary a {
  font-size: 18px;
  font-size: 1.28571rem;
  background: none;
  border: 1px solid #009fe0;
  box-shadow: none;
  color: #009fe0;
  display: inline-block;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  line-height: 1;
  text-shadow: none;
  text-decoration: none;
  -webkit-border-radius: 7px;
  -moz-border-radius: 7px;
  border-radius: 7px;
  transition: background 150ms linear, color 150ms linear;
  -o-transition: background 150ms linear, color 150ms linear;
  -ms-transition: background 150ms linear, color 150ms linear;
  -webkit-font-smoothing: antialiased;
  padding: 10px 13px;
  margin-right: 10px; }
  .lt-ie9 .path-frontpage .block-cta_primary a {
    padding: 17px 20px; }
  @media screen and (min-width: 30em) {
    .path-frontpage .block-cta_primary a {
      padding: 17px 20px; } }
  .path-frontpage .block-cta_primary a.active, .path-frontpage .block-cta_primary a:hover, .path-frontpage .block-cta_primary a:focus {
    background: #fff;
    border-color: white;
    color: #009fe0;
    outline: none; }

.path-frontpage .block-cta_primary a + a {
  border: none; }

.block-cta_primary a {
  text-decoration: none; }

.block-cta_primary img {
  margin-bottom: 20px;
  max-width: 170px; }
  .lt-ie9 .block-cta_primary img {
    margin: 0 30px 0 0;
    float: left; }
  @media screen and (min-width: 30em) {
    .block-cta_primary img {
      margin: 0 30px 0 0;
      float: left; } }

.block-cta_primary__body {
  overflow: hidden;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  font-size: 14px;
  font-size: 1rem; }
  .block-cta_primary__body p {
    margin-top: 0; }

.view-product-cta .views-row,
.intro .container .block-block-content {
  margin-bottom: 0;
  /*@include col-2();*/ }

.block-cta_secondary {
  text-align: center; }
  .block-cta_secondary a {
    text-decoration: none; }
  .block-cta_secondary__icon {
    margin-bottom: 20px; }
    .block-cta_secondary__icon img {
      max-height: 88px;
      width: auto; }
  .block-cta_secondary__body {
    text-align: left; }

.block-solutions-overview {
  text-align: center; }
  .block-solutions-overview h2, .block-solutions-overview h2, .block-solutions-overview h1 {
    font-size: 26px;
    font-size: 1.85714rem;
    color: #fff; }
    .lt-ie9 .block-solutions-overview h2, .lt-ie9 .block-solutions-overview h2, .lt-ie9 .block-solutions-overview h1 {
      font-size: 46px;
      font-size: 3.28571rem;
      margin-bottom: 38px; }
    @media screen and (min-width: 60em) {
      .block-solutions-overview h2, .block-solutions-overview h2, .block-solutions-overview h1 {
        font-size: 46px;
        font-size: 3.28571rem;
        margin-bottom: 38px; } }
  .block-solutions-overview .button__wrapper,
  .block-solutions-overview .views-group {
    display: inline; }
  .block-solutions-overview .button__wrapper a {
    cursor: pointer;
    display: inline-block;
    margin: 10px 5px 0 0; }
  .block-solutions-overview h3 {
    font-size: 14px;
    font-size: 1rem;
    background: #00aeef;
    border: 1px solid #00aeef;
    box-shadow: none;
    color: #fff;
    display: inline-block;
    font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
    line-height: 1;
    text-shadow: none;
    -webkit-border-radius: 7px;
    -moz-border-radius: 7px;
    text-decoration: none;
    /*
  text-transform: uppercase;
  */
    transition: background 150ms linear, color 150ms linear;
    -o-transition: background 150ms linear, color 150ms linear;
    -ms-transition: background 150ms linear, color 150ms linear;
    -webkit-font-smoothing: antialiased;
    padding: 13px 13px;
    cursor: pointer;
    display: inline-block;
    margin: 10px 5px 0 0; }
    .lt-ie9 .block-solutions-overview h3 {
      padding: 13px 20px; }
    @media screen and (min-width: 30em) {
      .block-solutions-overview h3 {
        padding: 13px 20px; } }
    .block-solutions-overview h3.active, .block-solutions-overview h3:hover, .block-solutions-overview h3:focus {
      background: #fff;
      border-color: #00aeef;
      color: #00aeef;
      outline: none; }
  .block-solutions-overview .views-rows {
    display: none;
    position: relative; }
  .block-solutions-overview .back {
    position: absolute;
    left: 0px;
    cursor: pointer;
    top: 50%;
    margin-top: -20px; }
    .block-solutions-overview .back:before {
      color: white;
      font-size: 40px; }

.breadcrumb {
  font-size: 12px;
  font-size: 0.85714rem;
  color: #ababab;
  margin: 0 0 20px 0px;
  /*text-transform: uppercase;*/ }
  .breadcrumb a {
    color: #009fe0;
    text-decoration: none; }
  .breadcrumb li:before {
    content: ' | '; }

.component-date {
  font-size: 14px;
  font-size: 1rem;
  color: #ababab;
  margin-bottom: 12px;
  text-transform: uppercase; }

.block-views-blocktestimonials-block-1 h2 {
  text-align: center;
  margin-bottom: 50px; }

.flexslider {
  position: relative;
  float: left;
  width: 100%; }
  .flexslider ul.slides {
    margin: 0px;
    padding: 0px; }

.js-homeflexslider {
  /*background:#009fe0;*/ }
  .js-homeflexslider .banner__text {
    background: none;
    position: static; }
    .lt-ie9 .js-homeflexslider .banner__text {
      position: absolute;
      top: 0px;
      padding: 0px; }
      .lt-ie9 .js-homeflexslider .banner__text .container {
        position: relative; }
    @media screen and (min-width: 48em) {
      .js-homeflexslider .banner__text {
        position: absolute;
        top: 0px;
        padding: 0px; }
        .js-homeflexslider .banner__text .container {
          position: relative; } }
  .js-homeflexslider .field--name-field-body {
    box-sizing: border-box;
    padding: 20px;
    color: white; }
    .lt-ie9 .js-homeflexslider .field--name-field-body {
      padding: 50px 20px;
      width: 50%; }
    @media screen and (min-width: 48em) {
      .js-homeflexslider .field--name-field-body {
        padding: 50px 20px;
        width: 50%; } }
    .js-homeflexslider .field--name-field-body h2 {
      color: white;
      font-size: 25px; }
    .js-homeflexslider .field--name-field-body a {
      margin-top: 20px;
      font-size: 18px;
      font-size: 1.28571rem;
      background: none;
      border: 1px solid white;
      box-shadow: none;
      color: white;
      display: inline-block;
      font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
      line-height: 1;
      text-shadow: none;
      text-decoration: none;
      -webkit-border-radius: 7px;
      -moz-border-radius: 7px;
      border-radius: 7px;
      transition: background 150ms linear, color 150ms linear;
      -o-transition: background 150ms linear, color 150ms linear;
      -ms-transition: background 150ms linear, color 150ms linear;
      -webkit-font-smoothing: antialiased;
      padding: 10px 13px; }
      .lt-ie9 .js-homeflexslider .field--name-field-body a {
        padding: 17px 20px; }
      @media screen and (min-width: 30em) {
        .js-homeflexslider .field--name-field-body a {
          padding: 17px 20px; } }
      .js-homeflexslider .field--name-field-body a.active, .js-homeflexslider .field--name-field-body a:hover, .js-homeflexslider .field--name-field-body a:focus {
        background: #fff;
        border-color: white;
        color: #00aeef;
        outline: none; }
    .lt-ie9 .js-homeflexslider .field--name-field-body {
      padding-top: 10%; }
      .lt-ie9 .js-homeflexslider .field--name-field-body h2 {
        font-size: 40px; }
    @media screen and (min-width: 60em) {
      .js-homeflexslider .field--name-field-body {
        padding-top: 10%; }
        .js-homeflexslider .field--name-field-body h2 {
          font-size: 40px; } }
  .js-homeflexslider .field--name-field-front-image {
    display: none; }
    .lt-ie9 .js-homeflexslider .field--name-field-front-image {
      position: absolute;
      top: 0px;
      bottom: 0px;
      right: 0px;
      width: 50%;
      display: block; }
    @media screen and (min-width: 48em) {
      .js-homeflexslider .field--name-field-front-image {
        position: absolute;
        top: 0px;
        bottom: 0px;
        right: 0px;
        width: 50%;
        display: block; } }

.flex-control-nav {
  position: absolute;
  bottom: 0px;
  text-align: center;
  width: 100%;
  z-index: 100; }
  .flex-control-nav li {
    padding: 0px 3px;
    list-style: none;
    display: inline-block; }
  .flex-control-nav a {
    display: inline-block;
    border-radius: 50px;
    width: 13px;
    height: 13px;
    overflow: hidden;
    text-indent: -600px;
    border: 1px solid white; }
  .flex-control-nav a.flex-active {
    background: white; }

.flex-direction-nav li {
  list-style: none;
  list-style-image: none; }
  .flex-direction-nav li a {
    text-decoration: none;
    font-size: 0px;
    position: absolute;
    top: 20%;
    margin-top: -20px;
    z-index: 10; }
    .flex-direction-nav li a:before {
      color: #363942;
      font-size: 40px; }
    .flex-direction-nav li a.flex-next {
      right: 0px; }
    .flex-direction-nav li a.flex-prev {
      left: 0px; }
    .lt-ie9 .flex-direction-nav li a {
      top: 50%; }
    @media screen and (min-width: 48em) {
      .flex-direction-nav li a {
        top: 50%; } }

/*styles for the CKEditor*/
body.cke_editable, body.cke_ltr {
  padding: 0 !important; }

/*ck_ stijlen - block*/
p.ck_leadparagraph {
  font-size: 16px; }

p.ck_linkgroup a:after {
  content: ' | ';
  display: inline; }

p.ck_linkgroup a:last-child:after {
  display: none; }

p.ck_buttongroup a:first-child, p.ck-buttongroup a:first-child {
  font-size: 14px;
  font-size: 1rem;
  background: #00aeef;
  border: 1px solid #00aeef;
  box-shadow: none;
  color: #fff;
  display: inline-block;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  line-height: 1;
  text-shadow: none;
  -webkit-border-radius: 7px;
  -moz-border-radius: 7px;
  text-decoration: none;
  /*
  text-transform: uppercase;
  */
  transition: background 150ms linear, color 150ms linear;
  -o-transition: background 150ms linear, color 150ms linear;
  -ms-transition: background 150ms linear, color 150ms linear;
  -webkit-font-smoothing: antialiased;
  padding: 13px 13px;
  margin-right: 10px; }
  .lt-ie9 p.ck_buttongroup a:first-child, .lt-ie9 p.ck-buttongroup a:first-child {
    padding: 13px 20px; }
  @media screen and (min-width: 30em) {
    p.ck_buttongroup a:first-child, p.ck-buttongroup a:first-child {
      padding: 13px 20px; } }
  p.ck_buttongroup a:first-child.active, p.ck_buttongroup a:first-child:hover, p.ck_buttongroup a:first-child:focus, p.ck-buttongroup a:first-child.active, p.ck-buttongroup a:first-child:hover, p.ck-buttongroup a:first-child:focus {
    background: #fff;
    border-color: #00aeef;
    color: #00aeef;
    outline: none; }

p.ck_buttongroup a, p.ck-buttongroup a {
  font-size: 14px;
  font-size: 1rem;
  background: none;
  border: 1px solid #009fe0;
  box-shadow: none;
  color: #009fe0;
  display: inline-block;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  line-height: 1;
  text-shadow: none;
  text-decoration: none;
  -webkit-border-radius: 7px;
  -moz-border-radius: 7px;
  border-radius: 7px;
  transition: background 150ms linear, color 150ms linear;
  -o-transition: background 150ms linear, color 150ms linear;
  -ms-transition: background 150ms linear, color 150ms linear;
  -webkit-font-smoothing: antialiased;
  padding: 13px 13px; }
  .lt-ie9 p.ck_buttongroup a, .lt-ie9 p.ck-buttongroup a {
    padding: 13px 20px; }
  @media screen and (min-width: 30em) {
    p.ck_buttongroup a, p.ck-buttongroup a {
      padding: 13px 20px; } }
  p.ck_buttongroup a.active, p.ck_buttongroup a:hover, p.ck_buttongroup a:focus, p.ck-buttongroup a.active, p.ck-buttongroup a:hover, p.ck-buttongroup a:focus {
    background: #fff;
    border-color: white;
    color: #009fe0;
    outline: none; }

p.ck_buttongroup.orange, p.ck-buttongroup.orange {
  background: none; }
  p.ck_buttongroup.orange a:first-child, p.ck-buttongroup.orange a:first-child {
    background: #ff650b;
    border-color: #ff650b;
    font-weight: bold; }
  p.ck_buttongroup.orange a:first-child:hover, p.ck-buttongroup.orange a:first-child:hover {
    color: #ff650b !important;
    background: white; }
  p.ck_buttongroup.orange a + a, p.ck-buttongroup.orange a + a {
    border-color: #ff650b;
    color: #ff650b; }

.component .pacific_blue p.ck_buttongroup a:first-child, .component .pacific_blue p.ck-buttongroup a:first-child, .component .mirage p.ck_buttongroup a:first-child, .component .mirage p.ck-buttongroup a:first-child, .component .orange p.ck_buttongroup a:first-child, .component .orange p.ck-buttongroup a:first-child {
  background: none;
  border: 1px solid white; }

.component .pacific_blue p.ck_buttongroup a + a, .component .pacific_blue p.ck-buttongroup a + a, .component .mirage p.ck_buttongroup a + a, .component .mirage p.ck-buttongroup a + a, .component .orange p.ck_buttongroup a + a, .component .orange p.ck-buttongroup a + a {
  border: 1px solid transparent; }

.component .pacific_blue p.ck_buttongroup a:hover, .component .pacific_blue p.ck-buttongroup a:hover, .component .mirage p.ck_buttongroup a:hover, .component .mirage p.ck-buttongroup a:hover, .component .orange p.ck_buttongroup a:hover, .component .orange p.ck-buttongroup a:hover {
  color: #009fe0 !important;
  background: white; }

/*ck_ stijlen - inline*/
span.ck_pay-off {
  font-size: 40px; }

/*undocumented styles*/
.ck_vertical-center {
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: center; }

.ck_color_palette {
  padding: 50px 0px;
  margin-top: -50px;
  margin-bottom: -50px;
  position: relative; }

.ck_color_palette * {
  color: white; }

.ck_color_palette:before {
  content: '';
  position: absolute;
  top: 0px;
  bottom: 0px;
  right: -100%;
  width: 100%; }

.ck_color_palette:after {
  content: '';
  position: absolute;
  top: 0px;
  bottom: 0px;
  left: -100%;
  width: 100%; }

.ck_color_palette.red, .ck_color_palette.red:before, .ck_color_palette.red:after {
  background: #D9223B; }

.ck_color_palette._ff0099, .ck_color_palette._ff0099:before, .ck_color_palette._ff0099:after {
  background: #ff0099; }

.ck_color_palette._7a1878, .ck_color_palette._7a1878:before, .ck_color_palette._7a1878:after {
  background: #7a1878; }

.ck_color_palette._005984, .ck_color_palette._005984:before, .ck_color_palette._005984:after {
  background: #005984; }

.ck_color_palette._0089d0, .ck_color_palette._0089d0:before, .ck_color_palette._0089d0:after {
  background: #0089d0; }

.ck_color_palette._00aeef, .ck_color_palette._00aeef:before, .ck_color_palette._00aeef:after {
  background: #00aeef; }

.ck_color_palette._0baf4d, .ck_color_palette._0baf4d:before, .ck_color_palette._0baf4d:after {
  background: #0baf4d; }

.ck_color_palette._8dc63f, .ck_color_palette._8dc63f:before, .ck_color_palette._8dc63f:after {
  background: #8dc63f; }

.ck_color_palette._ffd503, .ck_color_palette._ffd503:before, .ck_color_palette._ffd503:after {
  background: #ffd503; }

.ck_color_palette._f2b518, .ck_color_palette._f2b518:before, .ck_color_palette._f2b518:after {
  background: #f2b518; }

.ck_color_palette._f7941d, .ck_color_palette._f7941d:before, .ck_color_palette._f7941d:after {
  background: #f7941d; }

.ck_color_palette._f26522, .ck_color_palette._f26522:before, .ck_color_palette._f26522:after {
  background: #f26522; }

.ck_color_palette._ed1a3b, .ck_color_palette._ed1a3b:before, .ck_color_palette._ed1a3b:after {
  background: #ed1a3b; }

.node-carousel {
  background-color: #009fe0;
  position: relative;
  text-align: center;
  height: 340px; }
  .node-carousel h1, .node-carousel .block-solutions-overview h2, .block-solutions-overview .node-carousel h2 {
    font-size: 26px;
    font-size: 1.85714rem;
    color: #fff; }
    .lt-ie9 .node-carousel h1, .lt-ie9 .node-carousel .block-solutions-overview h2, .block-solutions-overview .lt-ie9 .node-carousel h2 {
      font-size: 46px;
      font-size: 3.28571rem;
      margin-bottom: 38px; }
    @media screen and (min-width: 60em) {
      .node-carousel h1, .node-carousel .block-solutions-overview h2, .block-solutions-overview .node-carousel h2 {
        font-size: 46px;
        font-size: 3.28571rem;
        margin-bottom: 38px; } }
  .lt-ie9 .node-carousel {
    height: 340px; }
  @media screen and (min-width: 48em) {
    .node-carousel {
      height: 340px; } }
  .lt-ie9 .node-carousel {
    height: 540px; }
  @media screen and (min-width: 60em) {
    .node-carousel {
      height: 540px; } }
  .lt-ie9 .node-carousel {
    height: 525px; }
  @media screen and (min-width: 70em) {
    .node-carousel {
      height: 525px; } }
  .path-frontpage .node-carousel {
    /*height: $height-banner;*/ }
    .lt-ie9 .path-frontpage .node-carousel {
      height: 450px; }
    @media screen and (min-width: 60em) {
      .path-frontpage .node-carousel {
        height: 450px; } }
    .lt-ie9 .path-frontpage .node-carousel {
      height: 525px; }
    @media screen and (min-width: 70em) {
      .path-frontpage .node-carousel {
        height: 525px; } }

.page-node-type-news .video-container + .field--name-field-bedrijfsbeeld {
  display: none; }

.node-news__type {
  float: right;
  color: #00aeef; }

.node-news__title {
  background: #00aeef;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  padding: 10px;
  color: #fff;
  text-transform: uppercase;
  display: inline-block;
  position: absolute;
  bottom: 0px;
  left: 0px; }

.view-mode-teaser_video {
  position: relative;
  -webkit-transition: all 150ms linear;
  -moz-transition: all 150ms linear;
  transition: all 150ms linear; }
  .view-mode-teaser_video:hover {
    transform: scale(1.03); }
  .view-mode-teaser_video img {
    display: block; }

.node-news.view-mode-teaser {
  margin-top: 0;
  padding-bottom: 20px; }

.page-node-type-page {
  /*@include small-page;*/ }
  .page-node-type-page header {
    padding-bottom: 0; }

.node-page.view-mode-teaser {
  border-top: 1px solid #e1e1e1;
  padding-top: 20px;
  display: block;
  padding-bottom: 20px; }
  .node-page.view-mode-teaser a {
    color: #4a4a4a;
    display: block;
    text-decoration: none; }
    .node-page.view-mode-teaser a:hover {
      color: #4a4a4a; }

.path-frontpage .content {
  border: none;
  padding: 0; }

.path-frontpage .block-block-content {
  margin: 0; }

.page-node-type-product {
  /*
  .node-product__paragraph:first-child{

    p:first-child{
      font-size:16px; line-height:30px;
    }
  }
  */ }
  .page-node-type-product #block-servicemenu ul.menu a {
    color: white; }
    .page-node-type-product #block-servicemenu ul.menu a.is-active {
      border-color: white; }
  .page-node-type-product #block-languageswitcher ul.links a {
    color: white; }
  .page-node-type-product #block-xtheme-mainnavigation ul.menu a {
    color: white; }
    .page-node-type-product #block-xtheme-mainnavigation ul.menu a.is-active {
      border-color: white; }
  .page-node-type-product .sb-open-right {
    color: white; }

.node-product__cta {
  display: inline-block;
  margin-right: 20px;
  margin-top: 20px; }
  .node-product__cta a {
    font-size: 18px;
    font-size: 1.28571rem;
    background: none;
    border: 1px solid white;
    box-shadow: none;
    color: white;
    display: inline-block;
    font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
    line-height: 1;
    text-shadow: none;
    text-decoration: none;
    -webkit-border-radius: 7px;
    -moz-border-radius: 7px;
    border-radius: 7px;
    transition: background 150ms linear, color 150ms linear;
    -o-transition: background 150ms linear, color 150ms linear;
    -ms-transition: background 150ms linear, color 150ms linear;
    -webkit-font-smoothing: antialiased;
    padding: 10px 13px; }
    .lt-ie9 .node-product__cta a {
      padding: 17px 20px; }
    @media screen and (min-width: 30em) {
      .node-product__cta a {
        padding: 17px 20px; } }
    .node-product__cta a.active, .node-product__cta a:hover, .node-product__cta a:focus {
      background: #fff;
      border-color: white;
      color: #00aeef;
      outline: none; }

.node-product__paragraph + .node-product__paragraph {
  border-top: 1px solid #e1e1e1;
  padding-top: 35px;
  margin-top: 35px; }

.node-product__paragraph .paragraph-imgleft .group-left {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%;
  margin-right: 0; }
  .node-product__paragraph .paragraph-imgleft .group-left:last-child {
    margin-right: 0; }
  .lt-ie9 .node-product__paragraph .paragraph-imgleft .group-left {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 31.62393%; }
    .lt-ie9 .node-product__paragraph .paragraph-imgleft .group-left:last-child {
      margin-right: 0; }
  @media screen and (min-width: 30em) {
    .node-product__paragraph .paragraph-imgleft .group-left {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 31.62393%; }
      .node-product__paragraph .paragraph-imgleft .group-left:last-child {
        margin-right: 0; } }
  .node-product__paragraph .paragraph-imgleft .group-left img {
    width: 100%;
    max-width: 100%;
    height: auto; }

.node-product__paragraph .paragraph-imgleft .group-right {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%;
  margin-right: 0; }
  .node-product__paragraph .paragraph-imgleft .group-right:last-child {
    margin-right: 0; }
  .lt-ie9 .node-product__paragraph .paragraph-imgleft .group-right {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 65.81197%;
    margin-right: 0; }
    .lt-ie9 .node-product__paragraph .paragraph-imgleft .group-right:last-child {
      margin-right: 0; }
  @media screen and (min-width: 30em) {
    .node-product__paragraph .paragraph-imgleft .group-right {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 65.81197%;
      margin-right: 0; }
      .node-product__paragraph .paragraph-imgleft .group-right:last-child {
        margin-right: 0; } }

.node-product__paragraph .paragraph-imgright .group-left {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%;
  margin-right: 0; }
  .node-product__paragraph .paragraph-imgright .group-left:last-child {
    margin-right: 0; }
  .lt-ie9 .node-product__paragraph .paragraph-imgright .group-left {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 65.81197%; }
    .lt-ie9 .node-product__paragraph .paragraph-imgright .group-left:last-child {
      margin-right: 0; }
  @media screen and (min-width: 30em) {
    .node-product__paragraph .paragraph-imgright .group-left {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 65.81197%; }
      .node-product__paragraph .paragraph-imgright .group-left:last-child {
        margin-right: 0; } }

.node-product__paragraph .paragraph-imgright .group-right {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%;
  margin-right: 0; }
  .node-product__paragraph .paragraph-imgright .group-right:last-child {
    margin-right: 0; }
  .lt-ie9 .node-product__paragraph .paragraph-imgright .group-right {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 31.62393%;
    margin-right: 0; }
    .lt-ie9 .node-product__paragraph .paragraph-imgright .group-right:last-child {
      margin-right: 0; }
  @media screen and (min-width: 30em) {
    .node-product__paragraph .paragraph-imgright .group-right {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 31.62393%;
      margin-right: 0; }
      .node-product__paragraph .paragraph-imgright .group-right:last-child {
        margin-right: 0; } }
  .node-product__paragraph .paragraph-imgright .group-right img {
    width: 100%;
    height: auto; }

.node-product__logo {
  margin-bottom: 14px; }
  .node-product__logo img {
    max-width: 180px;
    height: auto; }

.node-product.view-mode-teaser {
  border-top: 1px solid #e1e1e1;
  padding-top: 20px;
  display: block;
  padding-bottom: 20px; }
  .node-product.view-mode-teaser a {
    color: #4a4a4a;
    display: block; }
    .node-product.view-mode-teaser a:hover {
      color: #4a4a4a; }

.page-node-type-product .intro {
  background-color: #009fe0; }
  .page-node-type-product .intro p a {
    color: white;
    text-decoration: underline; }

.page-node-type-standalone header {
  border: 0;
  height: 100px;
  min-height: 0;
  padding: 0;
  position: absolute;
  z-index: 10;
  width: 100%;
  top: 0;
  left: 0; }
  .page-node-type-standalone header .block-system-branding-block {
    left: 20px;
    position: absolute;
    top: 40px; }

.page-node-type-standalone .content {
  background: none;
  height: 100%;
  width: 100%;
  left: 0;
  padding: 0;
  position: absolute;
  top: 0; }

.page-node-type-standalone .page-content {
  height: 100%;
  overflow: visible; }
  .page-node-type-standalone .page-content .block-system-main-block {
    height: 100%; }

.node-standalone__background {
  background-size: cover;
  min-height: 100%;
  padding: 100px 20px 20px; }
  .lt-ie9 .node-standalone__background {
    padding: 100px 10% 20px; }
  @media screen and (min-width: 30em) {
    .node-standalone__background {
      padding: 100px 10% 20px; } }
  .lt-ie9 .node-standalone__background {
    padding: 13% 10% 5%; }
  @media screen and (min-width: 48em) {
    .node-standalone__background {
      padding: 13% 10% 5%; } }

.node-standalone__content {
  background: #fff;
  margin: 0 auto;
  max-width: 790px;
  padding: 30px; }
  .node-standalone__content .text-formatted > *:last-child {
    margin-bottom: 0; }

.node-testimonial .group-left {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%;
  text-align: center; }
  .node-testimonial .group-left:last-child {
    margin-right: 0; }
  .lt-ie9 .node-testimonial .group-left {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 31.62393%; }
    .lt-ie9 .node-testimonial .group-left:last-child {
      margin-right: 0; }
  @media screen and (min-width: 48em) {
    .node-testimonial .group-left {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 31.62393%; }
      .node-testimonial .group-left:last-child {
        margin-right: 0; } }
  .node-testimonial .group-left img {
    border: 14px solid #363942;
    border-radius: 50%;
    max-width: 170px; }

.node-testimonial .group-right {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%; }
  .node-testimonial .group-right:last-child {
    margin-right: 0; }
  .lt-ie9 .node-testimonial .group-right {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 57.26496%; }
    .lt-ie9 .node-testimonial .group-right:last-child {
      margin-right: 0; }
  @media screen and (min-width: 48em) {
    .node-testimonial .group-right {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 57.26496%; }
      .node-testimonial .group-right:last-child {
        margin-right: 0; } }

.node-testimonial__body {
  font-size: 15px;
  font-size: 1.07143rem;
  font-style: italic;
  margin: 20px 0 15px; }
  .node-testimonial__body p {
    margin: 0; }

.node-testimonial__name {
  font-size: 18px;
  font-size: 1.28571rem;
  color: #363942;
  font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
  display: inline; }

.node-testimonial__function {
  font-size: 14px;
  font-size: 1rem;
  display: inline; }

.node-news {
  border-top: 1px solid #e1e1e1;
  padding-top: 35px;
  margin-top: 35px; }
  .node-news__link {
    text-decoration: none;
    display: block;
    cursor: pointer; }
  .node-news__img img {
    max-width: 170px;
    margin-bottom: 20px; }
    .lt-ie9 .node-news__img img {
      float: left;
      margin: 0 30px 0 0;
      height: auto; }
    @media screen and (min-width: 30em) {
      .node-news__img img {
        float: left;
        margin: 0 30px 0 0;
        height: auto; } }
  .node-news__text {
    overflow: hidden; }

.view-homepage-news .views-row:first-child .node-news, .view-recent-news.view-display-id-large_teasers .node-news,
.view-recent-blogs.view-display-id-large_teasers .node-news {
  border-top: 0;
  padding-top: 0;
  margin-top: 0; }

.view-recent-news,
.view-recent-blogs {
  overflow: hidden; }
  .view-recent-news.view-display-id-large_teasers .views-row,
  .view-recent-blogs.view-display-id-large_teasers .views-row {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 100%; }
    .view-recent-news.view-display-id-large_teasers .views-row:last-child,
    .view-recent-blogs.view-display-id-large_teasers .views-row:last-child {
      margin-right: 0; }
    .view-recent-news.view-display-id-large_teasers .views-row img,
    .view-recent-blogs.view-display-id-large_teasers .views-row img {
      margin-bottom: 10px; }
    .view-recent-news.view-display-id-large_teasers .views-row:first-child,
    .view-recent-blogs.view-display-id-large_teasers .views-row:first-child {
      border: 0;
      margin-top: 0;
      padding-top: 0; }
    .view-recent-news.view-display-id-large_teasers .views-row .group-left,
    .view-recent-news.view-display-id-large_teasers .views-row .group-right,
    .view-recent-blogs.view-display-id-large_teasers .views-row .group-left,
    .view-recent-blogs.view-display-id-large_teasers .views-row .group-right {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 100%; }
      .view-recent-news.view-display-id-large_teasers .views-row .group-left:last-child,
      .view-recent-news.view-display-id-large_teasers .views-row .group-right:last-child,
      .view-recent-blogs.view-display-id-large_teasers .views-row .group-left:last-child,
      .view-recent-blogs.view-display-id-large_teasers .views-row .group-right:last-child {
        margin-right: 0; }
    .lt-ie9 .view-recent-news.view-display-id-large_teasers .views-row, .lt-ie9
    .view-recent-blogs.view-display-id-large_teasers .views-row {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 31.62393%;
      border: 0;
      margin-top: 0;
      padding-top: 0; }
      .lt-ie9 .view-recent-news.view-display-id-large_teasers .views-row:last-child, .lt-ie9
      .view-recent-blogs.view-display-id-large_teasers .views-row:last-child {
        margin-right: 0; }
    @media screen and (min-width: 30em) {
      .view-recent-news.view-display-id-large_teasers .views-row,
      .view-recent-blogs.view-display-id-large_teasers .views-row {
        float: left;
        display: block;
        margin-right: 2.5641%;
        width: 31.62393%;
        border: 0;
        margin-top: 0;
        padding-top: 0; }
        .view-recent-news.view-display-id-large_teasers .views-row:last-child,
        .view-recent-blogs.view-display-id-large_teasers .views-row:last-child {
          margin-right: 0; } }
  .view-recent-news.view-display-id-page_1 .views-row,
  .view-recent-blogs.view-display-id-page_1 .views-row {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 100%; }
    .view-recent-news.view-display-id-page_1 .views-row:last-child,
    .view-recent-blogs.view-display-id-page_1 .views-row:last-child {
      margin-right: 0; }
    .view-recent-news.view-display-id-page_1 .views-row .node-news__type,
    .view-recent-blogs.view-display-id-page_1 .views-row .node-news__type {
      display: none; }
  .view-recent-news .pager,
  .view-recent-blogs .pager {
    clear: both; }

.view-customers h2 {
  margin-bottom: 30px; }

.view-customers .views-group:after {
  content: "";
  display: table;
  clear: both; }

.view-customers .views-row {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%;
  margin-bottom: 30px; }
  .view-customers .views-row:last-child {
    margin-right: 0; }
  .lt-ie9 .view-customers .views-row {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 48.71795%; }
    .lt-ie9 .view-customers .views-row:last-child {
      margin-right: 0; }
    .lt-ie9 .view-customers .views-row:nth-child(2n) {
      margin-right: 0; }
    .lt-ie9 .view-customers .views-row:nth-child(2n+1) {
      clear: left; }
  @media screen and (min-width: 30em) {
    .view-customers .views-row {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 48.71795%; }
      .view-customers .views-row:last-child {
        margin-right: 0; }
      .view-customers .views-row:nth-child(2n) {
        margin-right: 0; }
      .view-customers .views-row:nth-child(2n+1) {
        clear: left; } }
  .lt-ie9 .view-customers .views-row {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 31.62393%; }
    .lt-ie9 .view-customers .views-row:last-child {
      margin-right: 0; }
    .lt-ie9 .view-customers .views-row:nth-child(2n) {
      margin-right: 2.5641%; }
    .lt-ie9 .view-customers .views-row:nth-child(2n + 1) {
      clear: none !important;
      margin-right: 2.5641%; }
    .lt-ie9 .view-customers .views-row:nth-child(3n) {
      margin-right: 0; }
    .lt-ie9 .view-customers .views-row:nth-child(3n + 1) {
      clear: both; }
  @media screen and (min-width: 48em) {
    .view-customers .views-row {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 31.62393%; }
      .view-customers .views-row:last-child {
        margin-right: 0; }
      .view-customers .views-row:nth-child(2n) {
        margin-right: 2.5641%; }
      .view-customers .views-row:nth-child(2n + 1) {
        clear: none !important;
        margin-right: 2.5641%; }
      .view-customers .views-row:nth-child(3n) {
        margin-right: 0; }
      .view-customers .views-row:nth-child(3n + 1) {
        clear: both; } }

.dtv-view .dtv-view-rows {
  display: flex;
  flex-wrap: wrap;
  margin-left: -10px;
  margin-right: -10px; }

.dtv-view .dtv-view-row {
  width: 100%;
  margin: 1vw 0;
  padding-left: 10px;
  padding-right: 10px;
  box-sizing: border-box; }

.dtv-view .dtv-view-row:nth-of-type(2) {
  margin-left: 0; }

.dtv-view .dtv-view-row:nth-of-type(5n) {
  margin-right: 0; }

.dtv-view .dtv-view-row:nth-of-type(5n+1) {
  margin-left: 0; }

.dtv-view .dtv-article {
  display: flex;
  flex-direction: column; }

.dtv-view .dtv-article > div {
  flex: 1 auto; }

.dtv-view .dtv-article-link {
  text-decoration: none; }

.dtv-view .dtv-article-left {
  position: relative; }

.dtv-view .dtv-title {
  display: block;
  margin-top: 10px; }

.dtv-view .dtv-image {
  height: 150px;
  width: 100%;
  background-size: cover;
  background-color: white;
  box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.54);
  background-repeat: no-repeat;
  background-position: center center;
  border-radius: 10px;
  margin-bottom: 10px; }

.dtv-view .dtv-body {
  display: block;
  display: -webkit-box;
  max-width: 400px;
  height: 71.4px;
  margin: 0;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis; }

.dtv-view .dtv-button {
  display: none; }

.dtv-view .dtv-play {
  background: rgba(0, 0, 0, 0.55);
  width: 50px;
  height: 34px;
  border-radius: 7px;
  padding-top: 10px;
  position: absolute;
  top: 50%;
  left: 50%;
  margin-left: -25px;
  margin-top: -24px; }

.dtv-view .dtv-play > div {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 7px 0 7px 14px;
  border-color: transparent transparent transparent #ffffff;
  margin: 0 auto; }

.dtv-view .dtv-article-link:hover .dtv-play {
  background: red; }

.vcon-dataline-news {
  /*minor*/ }
  .vcon-dataline-news .item-list ul {
    list-style: none;
    padding: 0px;
    margin: 0px; }
  .vcon-dataline-news .item-list ul li {
    margin: 0px;
    position: relative;
    margin-bottom: 20px; }
  .vcon-dataline-news .item-list ul:after {
    visibility: hidden;
    display: block;
    font-size: 0;
    content: " ";
    clear: both;
    height: 0; }
  .vcon-dataline-news .news-bedrijfsbeeld {
    box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.54);
    border-radius: 10px;
    overflow: hidden; }
  .vcon-dataline-news .news-bedrijfsbeeld img {
    display: block; }
  .vcon-dataline-news .news-type {
    text-transform: uppercase;
    font-weight: 500;
    font-size: 11px;
    position: absolute;
    top: 20px;
    left: -10px;
    display: inline-block;
    background: yellow;
    padding: 1px 5px;
    color: black !important; }
  .vcon-dataline-news .news-title {
    margin-bottom: 10px;
    font-size: 28px;
    font-weight: 200;
    line-height: 1.3; }
  .vcon-dataline-news .news-title a {
    text-decoration: none; }
  .vcon-dataline-news .news-summary {
    font-size: 16px; }
  .vcon-dataline-news .news-button a {
    color: #009fe0;
    font-size: 16px;
    text-decoration: none;
    margin-top: 10px;
    display: inline-block;
    text-indent: -9999px;
    line-height: 0 !important; }
  .vcon-dataline-news .news-button a::after {
    content: 'Read more...';
    text-indent: 0;
    display: block;
    line-height: initial; }
  .vcon-dataline-news .vcon-dataline-news-attachment {
    /*hero*/ }
    .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child {
      padding: 0px 0px 40px 0px; }
      .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-bedrijfsbeeld {
        width: 100%;
        overflow: hidden;
        margin-right: 20px;
        margin-bottom: 10px; }
      .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-title a {
        font-size: 40px;
        font-weight: 100; }
      .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-summary {
        font-size: 18px; }
      .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-button {
        margin-top: 20px; }
      .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-button a {
        font-size: 14px;
        font-size: 1rem;
        background: #00aeef;
        border: 1px solid #00aeef;
        box-shadow: none;
        color: #fff;
        display: inline-block;
        font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
        line-height: 1;
        text-shadow: none;
        -webkit-border-radius: 7px;
        -moz-border-radius: 7px;
        text-decoration: none;
        /*
  text-transform: uppercase;
  */
        transition: background 150ms linear, color 150ms linear;
        -o-transition: background 150ms linear, color 150ms linear;
        -ms-transition: background 150ms linear, color 150ms linear;
        -webkit-font-smoothing: antialiased;
        padding: 13px 13px;
        padding: 17px 20px;
        font-size: 1.28571rem; }
        .lt-ie9 .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-button a {
          padding: 13px 20px; }
        @media screen and (min-width: 30em) {
          .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-button a {
            padding: 13px 20px; } }
        .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-button a.active, .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-button a:hover, .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-button a:focus {
          background: #fff;
          border-color: #00aeef;
          color: #00aeef;
          outline: none; }
  .vcon-dataline-news .vcon-dataline-news-page ul li {
    margin-bottom: 40px !important;
    clear: both; }
  .vcon-dataline-news .vcon-dataline-news-page .news-bedrijfsbeeld {
    margin-top: 10px; }
  .lt-ie9 .vcon-dataline-news {
    /*minor*/ }
    .lt-ie9 .vcon-dataline-news .item-list ul li {
      margin: 0px; }
    .lt-ie9 .vcon-dataline-news .vcon-dataline-news-attachment {
      /*hero*/
      /*primary*/ }
      .lt-ie9 .vcon-dataline-news .vcon-dataline-news-attachment ul {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap; }
      .lt-ie9 .vcon-dataline-news .vcon-dataline-news-attachment ul li {
        flex: 1 0 30%;
        box-sizing: border-box; }
      .lt-ie9 .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child {
        flex: 0 1 100%; }
        .lt-ie9 .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-type {
          top: -30px; }
        .lt-ie9 .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-bedrijfsbeeld {
          width: 50%;
          float: right;
          overflow: hidden;
          margin-left: 20px;
          margin-top: -50px;
          margin-right: 0px; }
        .lt-ie9 .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-title {
          padding-top: 20px; }
        .lt-ie9 .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-title a {
          font-size: 48px; }
        .lt-ie9 .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-type {
          left: 50%;
          margin-left: -10px; }
        .lt-ie9 .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-summary {
          width: 50%; }
      .lt-ie9 .vcon-dataline-news .vcon-dataline-news-attachment ul li:nth-child(2) {
        margin-right: 10px; }
      .lt-ie9 .vcon-dataline-news .vcon-dataline-news-attachment ul li:nth-child(3) {
        margin: 0px 10px; }
      .lt-ie9 .vcon-dataline-news .vcon-dataline-news-attachment ul li:nth-child(4) {
        margin-left: 10px; }
    .lt-ie9 .vcon-dataline-news .vcon-dataline-news-page .news-bedrijfsbeeld {
      width: 20%;
      margin-right: 20px;
      margin-bottom: 40px;
      float: left;
      margin-top: 10px; }
  @media screen and (min-width: 48em) {
    .vcon-dataline-news {
      /*minor*/ }
      .vcon-dataline-news .item-list ul li {
        margin: 0px; }
      .vcon-dataline-news .vcon-dataline-news-attachment {
        /*hero*/
        /*primary*/ }
        .vcon-dataline-news .vcon-dataline-news-attachment ul {
          display: flex;
          flex-direction: row;
          flex-wrap: wrap; }
        .vcon-dataline-news .vcon-dataline-news-attachment ul li {
          flex: 1 0 30%;
          box-sizing: border-box; }
        .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child {
          flex: 0 1 100%; }
          .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-type {
            top: -30px; }
          .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-bedrijfsbeeld {
            width: 50%;
            float: right;
            overflow: hidden;
            margin-left: 20px;
            margin-top: -50px;
            margin-right: 0px; }
          .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-title {
            padding-top: 20px; }
          .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-title a {
            font-size: 48px; }
          .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-type {
            left: 50%;
            margin-left: -10px; }
          .vcon-dataline-news .vcon-dataline-news-attachment ul li:first-child .news-summary {
            width: 50%; }
        .vcon-dataline-news .vcon-dataline-news-attachment ul li:nth-child(2) {
          margin-right: 10px; }
        .vcon-dataline-news .vcon-dataline-news-attachment ul li:nth-child(3) {
          margin: 0px 10px; }
        .vcon-dataline-news .vcon-dataline-news-attachment ul li:nth-child(4) {
          margin-left: 10px; }
      .vcon-dataline-news .vcon-dataline-news-page .news-bedrijfsbeeld {
        width: 20%;
        margin-right: 20px;
        margin-bottom: 40px;
        float: left;
        margin-top: 10px; } }

.group-link {
  text-decoration: none; }

#main-content.page-content {
  position: relative; }

.page-node-type-dl-customer-profile .dl-customer-profile-center-row {
  margin-top: 20px; }

.page-node-type-dl-customer-profile .dl-customer-profile-center-row .group-left {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%; }
  .page-node-type-dl-customer-profile .dl-customer-profile-center-row .group-left:last-child {
    margin-right: 0; }
  .lt-ie9 .page-node-type-dl-customer-profile .dl-customer-profile-center-row .group-left {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 65.81197%; }
    .lt-ie9 .page-node-type-dl-customer-profile .dl-customer-profile-center-row .group-left:last-child {
      margin-right: 0; }
  @media screen and (min-width: 48em) {
    .page-node-type-dl-customer-profile .dl-customer-profile-center-row .group-left {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 65.81197%; }
      .page-node-type-dl-customer-profile .dl-customer-profile-center-row .group-left:last-child {
        margin-right: 0; } }

.page-node-type-dl-customer-profile .dl-customer-profile-center-row .group-right {
  float: left;
  display: block;
  margin-right: 2.5641%;
  width: 100%; }
  .page-node-type-dl-customer-profile .dl-customer-profile-center-row .group-right:last-child {
    margin-right: 0; }
  .lt-ie9 .page-node-type-dl-customer-profile .dl-customer-profile-center-row .group-right {
    float: left;
    display: block;
    margin-right: 2.5641%;
    width: 31.62393%; }
    .lt-ie9 .page-node-type-dl-customer-profile .dl-customer-profile-center-row .group-right:last-child {
      margin-right: 0; }
  @media screen and (min-width: 48em) {
    .page-node-type-dl-customer-profile .dl-customer-profile-center-row .group-right {
      float: left;
      display: block;
      margin-right: 2.5641%;
      width: 31.62393%; }
      .page-node-type-dl-customer-profile .dl-customer-profile-center-row .group-right:last-child {
        margin-right: 0; } }

.academy-detail .academy-detail-title h1:before, .academy-detail .academy-detail-title .block-solutions-overview h2:before, .block-solutions-overview .academy-detail .academy-detail-title h2:before {
  content: 'Academy:';
  font-weight: bold; }

.academy-detail .academy-detail-terug {
  border: 1px solid #373942;
  padding: 10px 15px;
  color: #373942;
  border-radius: 7px;
  text-decoration: none;
  display: none;
  margin-top: 5px; }

.academy-detail .academy-detail-terug.active {
  display: inline-block; }

.academy-detail .academy-detail-group {
  display: flex;
  flex-direction: row; }

.academy-detail .academy-detail-group .group-left {
  flex: 1 0 63%;
  box-sizing: border-box;
  padding-right: 65px; }

.academy-detail .academy-detail-group .group-right {
  flex-basis: 37%;
  box-sizing: border-box; }

.academy-detail .academy-detail-afbeelding {
  position: relative;
  margin-top: -90px; }

.academy-detail .academy-detail-afbeelding .academy-detail-categorie {
  text-transform: uppercase;
  font-weight: 500;
  font-size: 11px;
  position: absolute;
  top: 20px;
  left: -10px;
  display: inline-block;
  background: yellow;
  padding: 1px 5px;
  color: black !important; }

.academy-detail .academy-detail-afbeelding img {
  box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.54);
  border-radius: 10px;
  margin-bottom: 20px; }

.academy-detail .academy-detail-inleiding {
  font-weight: 400;
  border-bottom: 1px solid #D3D3D3;
  padding-bottom: 30px;
  margin-bottom: 30px;
  padding-top: 10px; }

.academy-detail .academy-detail-programma {
  border-bottom: 1px solid #D3D3D3;
  padding-bottom: 30px;
  margin-bottom: 30px; }

.academy-detail .academy-detail-datums .academy-detail-datums-label {
  font-weight: bold; }

.academy-detail .academy-selection {
  margin-bottom: 30px;
  width: 100%; }

.academy-detail .academy-selection .academy-selection-row {
  cursor: pointer; }

.academy-detail .academy-selection .academy-selection-row.rowSelected {
  background: #EBF9FF; }

.academy-detail .academy-selection .academy-selection-row.rowSelected .item-list li.selected {
  font-weight: bold; }

.academy-detail .academy-selection .views-field-title span + span:before {
  content: "- "; }

.academy-detail .academy-selection td {
  padding: 10px 15px;
  border: 1px solid #c1c1c1; }

.academy-detail .academy-selection td:last-child {
  border-left: none; }

.academy-detail .academy-selection td:nth-child(2) {
  border-right: none; }

.academy-detail .academy-selection thead th {
  padding: 5px 10px;
  background: #343942;
  color: white;
  font-weight: 400;
  text-align: left;
  border: 1px solid #343942; }

.academy-detail .academy-selection .item-list {
  position: relative;
  width: 140px;
  height: 27px;
  margin: 0px;
  overflow: hidden;
  z-index: 1; }

.academy-detail .academy-selection .item-list:after {
  content: '〉';
  cursor: pointer;
  transform: rotate(90deg);
  position: absolute;
  top: 1px;
  right: 17px;
  width: 0px; }

.academy-detail .academy-selection .item-list.selected {
  z-index: 100;
  overflow: visible; }

.academy-detail .academy-selection .item-list.selected ul {
  box-shadow: 0px 0px 7px 0px rgba(0, 0, 0, 0.42);
  height: auto; }

.academy-detail .academy-selection .item-list ul {
  list-style: none;
  margin: 0px;
  background: white;
  padding-top: 25px;
  height: 25px;
  border: 1px solid #c5c5c5;
  border-radius: 5px; }

.academy-detail .academy-selection .item-list li {
  margin: 0px;
  width: 138px;
  height: 25px;
  font-size: 13px;
  line-height: 26px;
  padding-left: 10px;
  border-radius: 5px; }

.academy-detail .academy-selection .item-list li.selected {
  position: absolute;
  top: 1px;
  left: 1px; }

.academy-detail .academy-selection .item-list li:hover {
  background: #f2f2f2; }

.academy-detail .academy-locations-item {
  height: 43px;
  position: relative;
  padding: 13px 15px;
  overflow: hidden;
  border: 1px solid #CCCCCC;
  border-bottom: 0px; }

.academy-detail .academy-locations-item:after {
  content: '〉';
  cursor: pointer;
  transform: rotate(90deg);
  position: absolute;
  top: 7px;
  right: 20px;
  width: 0px; }

.academy-detail .academy-locations-item:first-child {
  border-top-left-radius: 10px;
  border-top-right-radius: 10px; }

.academy-detail .academy-locations-item:last-child {
  border-bottom-left-radius: 10px;
  border-bottom-right-radius: 10px;
  border-bottom: 1px solid #CCCCCC; }

.academy-detail .academy-locations-item.open {
  height: auto; }

.academy-detail .academy-locations-item.open h4, .academy-detail .academy-locations-item.open footer h3, footer .academy-detail .academy-locations-item.open h3, .academy-detail .academy-locations-item.open form label, form .academy-detail .academy-locations-item.open label {
  font-weight: bold; }

.academy-detail .academy-locations-item h4, .academy-detail .academy-locations-item footer h3, footer .academy-detail .academy-locations-item h3, .academy-detail .academy-locations-item form label, form .academy-detail .academy-locations-item label {
  font-weight: normal;
  cursor: pointer;
  font-size: 14px;
  height: 30px;
  border-bottom: 1px dashed #CCCCCC; }

.academy-detail .academy-location-select {
  margin-bottom: 30px; }

.finder .finder-main .view-vcon-finder {
  display: flex; }
  .finder .finder-main .view-vcon-finder .view-header {
    flex: 1 0 25%;
    box-sizing: border-box;
    padding-right: 30px;
    margin-top: -62px; }
  .finder .finder-main .view-vcon-finder .view-content {
    flex: 1 0 75%;
    box-sizing: border-box; }

.finder .finder-main .finder-intro {
  border-bottom: 1px solid #D3D3D3;
  padding: 30px 0px 40px 0px;
  margin-bottom: 40px; }
  .finder .finder-main .finder-intro p {
    margin: 0px;
    font-size: 18px; }
  .finder .finder-main .finder-intro .ck_buttongroup {
    margin-top: 20px; }

.finder .finder-main .finder-box {
  border: 1px solid #CCCCCC;
  border-radius: 14px;
  padding: 15px;
  background: white;
  margin-bottom: 30px; }
  .finder .finder-main .finder-box ul {
    list-style: none;
    margin: 0px;
    padding: 0px; }
  .finder .finder-main .finder-box li {
    margin: 0px;
    position: relative; }
  .finder .finder-main .finder-box li input {
    position: absolute;
    top: 5px;
    right: 10px; }
  .finder .finder-main .finder-box li input:checked + label {
    background: #EBF9FF; }
  .finder .finder-main .finder-box li label {
    display: block; }

.finder .finder-main .finder-box h4, .finder .finder-main .finder-box footer h3, footer .finder .finder-main .finder-box h3, .finder .finder-main .finder-box form label, form .finder .finder-main .finder-box label {
  font-weight: bold;
  font-size: 14px;
  padding-bottom: 10px;
  border-bottom: 1px dashed #CCCCCC;
  margin-bottom: 10px; }

.path-search .view-filters .form-type-textfield {
  width: 100%; }

.path-search .pager {
  padding: 0; }
  .path-search .pager .pager__item {
    padding: 0; }

:target:before {
  content: '';
  display: block;
  height: 80px;
  margin-top: -80px; }
  .lt-ie9 :target:before {
    height: 140px;
    margin-top: -140px; }
  @media screen and (min-width: 48em) {
    :target:before {
      height: 140px;
      margin-top: -140px; } }

.page-content .block-system-main-block .contextual {
  top: 45px; }

/* search form op de dataline.eu/nl/search/dataline pagina */
.search-page-form + h2 {
  display: none; }

.search-page-form {
  margin-bottom: 10px;
  padding-bottom: 20px;
  border-bottom: 1px solid #e1e1e1; }
  .search-page-form input.form-search {
    border-radius: 5px;
    padding: 10px;
    border: 1px solid #e1e1e1; }

.search-results {
  padding: 0px;
  margin: 0px; }
  .search-results li {
    margin: 0px;
    border-top: 1px solid #e1e1e1;
    padding: 15px 0px; }
  .search-results li:first-child {
    border-top: 0px; }

.search-page-item .search-page-item-edit {
  float: right; }

.search-page-item .search-page-item-edit a {
  color: #009fe0;
  text-decoration: none; }

.search-page-item .search-page-item-img {
  display: none; }

.lt-ie9 .search-page-item .search-page-item-row {
  display: flex; }
  .lt-ie9 .search-page-item .search-page-item-row .search-page-item-img {
    padding-right: 30px;
    display: block; }
  .lt-ie9 .search-page-item .search-page-item-row .search-page-item-img img {
    width: 170px; }

@media screen and (min-width: 48em) {
  .search-page-item .search-page-item-row {
    display: flex; }
    .search-page-item .search-page-item-row .search-page-item-img {
      padding-right: 30px;
      display: block; }
    .search-page-item .search-page-item-row .search-page-item-img img {
      width: 170px; } }

/* search form op de dataline.eu/nl/search/dataline pagina */
.c2a {
  /*visual links*/
  /*
  .box .flexbox.visual_links .visual{margin:-20px 0 -20px -20px;}
  .box .flexbox.visual_links .visual img{display:block;}
  */
  /*to allow .ck-vertical-center*/
  /*uitlijning kolommen*/
  /*breedste kolom*/
  /*flexbox items*/
  /*cutout*/ }
  .c2a .field--name-field-tekst {
    height: 100%; }
  .c2a .flexbox.visual_top img {
    display: block; }
  .c2a .flexbox.descriptor .descriptor {
    flex: 1 0 66%; }
  .c2a .flexbox.descriptor .visual {
    flex-basis: 34%; }
  .c2a .flexbox.visual .visual {
    flex: 1 0 66%; }
  .c2a .flexbox.evenredig .visual {
    flex: 1; }
  .c2a .flexbox.evenredig .descriptor {
    flex: 1; }
  .c2a .flexbox.descriptor.visual_background .descriptor {
    width: 100%;
    flex: none; }
  .c2a .flexbox.evenredig.visual_background .descriptor {
    width: 100%;
    flex: none; }
  .c2a .flexbox.visual.visual_background .descriptor {
    flex-basis: 100%; }
  .lt-ie9 .c2a .visual_rechts .cutout img, .lt-ie9 .c2a .visual_links .cutout img, .lt-ie9 .c2a .visual_top .cutout img {
    margin-top: -100px;
    position: relative; }
  .lt-ie9 .c2a .visual_bottom .cutout img {
    margin-bottom: -100px;
    position: relative; }
  @media screen and (min-width: 60em) {
    .c2a .visual_rechts .cutout img, .c2a .visual_links .cutout img, .c2a .visual_top .cutout img {
      margin-top: -100px;
      position: relative; }
    .c2a .visual_bottom .cutout img {
      margin-bottom: -100px;
      position: relative; } }
  .lt-ie9 .c2a .flexbox.descriptor.visual_background .descriptor {
    width: 66%;
    flex: none; }
  .lt-ie9 .c2a .flexbox.evenredig.visual_background .descriptor {
    width: 50%;
    flex: none; }
  .lt-ie9 .c2a .flexbox.visual.visual_background .descriptor {
    flex-basis: 34%; }
  @media screen and (min-width: 30em) {
    .c2a .flexbox.descriptor.visual_background .descriptor {
      width: 66%;
      flex: none; }
    .c2a .flexbox.evenredig.visual_background .descriptor {
      width: 50%;
      flex: none; }
    .c2a .flexbox.visual.visual_background .descriptor {
      flex-basis: 34%; } }

.c14a {
  /*tekst*/
  /*
  p{font-size:$h1-font-size; margin:0px; font-family:$title-font-family; line-height:1; }
  */
  /*container*/
  /*buttongroup*/ }
  .c14a .pacific_blue h1, .c14a .pacific_blue .block-solutions-overview h2, .block-solutions-overview .c14a .pacific_blue h2, .c14a .pacific_blue p, .c14a .mirage h1, .c14a .mirage .block-solutions-overview h2, .block-solutions-overview .c14a .mirage h2, .c14a .mirage p, .c14a .orange h1, .c14a .orange .block-solutions-overview h2, .block-solutions-overview .c14a .orange h2, .c14a .orange p {
    color: white; }
  .c14a img {
    display: none; }
  .c14a h1, .c14a .block-solutions-overview h2, .block-solutions-overview .c14a h2 {
    font-size: 60px;
    margin: 0px; }
  .c14a p + p {
    margin-top: 20px; }
  .c14a.component .container {
    padding-top: 50px;
    padding-bottom: 50px; }
  .c14a p.ck_buttongroup a {
    font-size: 18px; }
  .lt-ie9 .c14a img {
    display: inline;
    float: right;
    width: 30%; }
  @media screen and (min-width: 60em) {
    .c14a img {
      display: inline;
      float: right;
      width: 30%; } }

.lt-ie9 .c9a .field--name-field-c9a-grid-item {
  display: flex;
  flex-wrap: wrap;
  margin-left: -10px;
  margin-right: -10px; }

.lt-ie9 .c9a .field--name-field-c9a-grid-item > .field__item {
  padding-left: 10px;
  padding-right: 10px;
  flex: 1 0 25%;
  box-sizing: border-box; }

@media screen and (min-width: 30em) {
  .c9a .field--name-field-c9a-grid-item {
    display: flex;
    flex-wrap: wrap;
    margin-left: -10px;
    margin-right: -10px; }
  .c9a .field--name-field-c9a-grid-item > .field__item {
    padding-left: 10px;
    padding-right: 10px;
    flex: 1 0 25%;
    box-sizing: border-box; } }

.c9a .titel {
  text-align: center;
  margin-bottom: 25px; }

.c9a .link {
  margin-top: 25px;
  text-align: center;
  font-size: 18px; }
  .c9a .link a {
    color: #009fe0;
    text-decoration: none; }

.c5a .field--name-field-c5a-grid-item > .field__item {
  margin-bottom: 20px; }

.lt-ie9 .c5a .field--name-field-c5a-grid-item {
  display: flex;
  flex-wrap: wrap;
  margin-left: -10px;
  margin-right: -10px; }

.lt-ie9 .c5a .field--name-field-c5a-grid-item > .field__item {
  padding-left: 10px;
  padding-right: 10px;
  flex: 1 0 50%;
  box-sizing: border-box; }

@media screen and (min-width: 30em) {
  .c5a .field--name-field-c5a-grid-item {
    display: flex;
    flex-wrap: wrap;
    margin-left: -10px;
    margin-right: -10px; }
  .c5a .field--name-field-c5a-grid-item > .field__item {
    padding-left: 10px;
    padding-right: 10px;
    flex: 1 0 50%;
    box-sizing: border-box; } }

.lt-ie9 .c5a .field--name-field-c5a-grid-item > .field__item {
  flex: 0 0 25%; }

@media screen and (min-width: 48em) {
  .c5a .field--name-field-c5a-grid-item > .field__item {
    flex: 0 0 25%; } }

.c5a .titel {
  text-align: center;
  margin-bottom: 25px; }

.c5a .link {
  margin-top: 25px;
  text-align: center;
  font-size: 18px; }
  .c5a .link a {
    color: #009fe0;
    text-decoration: none; }

.c5b {
  width: 100%;
  max-width: 275px;
  overflow: hidden;
  border-radius: 500px;
  position: relative;
  margin: auto;
  position: relative; }
  .c5b .afbeelding img {
    display: block;
    max-width: 275px;
    width: 100%; }
  .c5b .link:hover a {
    background: none; }
  .c5b .tekst {
    width: 100%;
    height: 100px;
    position: absolute;
    left: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.7);
    text-align: center;
    box-sizing: border-box;
    padding: 20px 20px 0px 20px;
    font-size: 18px;
    line-height: 1.3;
    z-index: 2;
    text-decoration: none; }
  .c5b .tekst:hover {
    color: #4a4a4a; }
  .c5b .tekst:hover + .link a {
    background: none; }
  .lt-ie9 .c5b .tekst {
    font-size: 15px; }
  @media screen and (min-width: 48em) {
    .c5b .tekst {
      font-size: 15px; } }
  .lt-ie9 .c5b .tekst {
    font-size: 16px; }
  @media screen and (min-width: 60em) {
    .c5b .tekst {
      font-size: 16px; } }
  .c5b .link {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: 0;
    z-index: 1; }
    .c5b .link a {
      position: absolute;
      top: 0;
      right: 0;
      bottom: 0;
      left: 0;
      text-indent: -6000px;
      background-color: rgba(0, 158, 240, 0.5);
      border-radius: 500px; }

.c11a {
  /**/ }
  .c11a .video {
    position: relative;
    padding-bottom: 56.25%;
    /* 16:9 */
    padding-top: 25px;
    height: 0; }
  .c11a .video iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%; }

.c3a {
  text-align: center; }
  .c3a .citaat {
    font-size: 40px; }
  .c3a .bron a {
    text-decoration: none;
    font-weight: bold;
    font-size: 16px; }

.lt-ie9 .c15a .views-rows {
  display: flex;
  flex-wrap: wrap;
  margin-left: -10px;
  margin-right: -10px; }

.lt-ie9 .c15a .views-rows > .views-row {
  padding-left: 10px;
  padding-right: 10px;
  flex: 1 0 50%;
  box-sizing: border-box; }

@media screen and (min-width: 30em) {
  .c15a .views-rows {
    display: flex;
    flex-wrap: wrap;
    margin-left: -10px;
    margin-right: -10px; }
  .c15a .views-rows > .views-row {
    padding-left: 10px;
    padding-right: 10px;
    flex: 1 0 50%;
    box-sizing: border-box; } }

.c15a .views-field-field-c3a-citaat {
  font-size: 16px;
  font-weight: bold; }

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

.c13a ul {
  text-align: center; }

.c13a li {
  display: inline-block;
  margin: 0px; }

.c13a li div {
  display: inline; }

.c13a li a {
  text-decoration: none; }

.c13a li:after {
  content: '-';
  display: inline-block;
  padding: 0px 5px; }

.c13a li:last-child:after {
  display: none; }

.c17a .no-caption .dtv-article-right {
  display: none; }

.c17a .no-caption .dtv-view-row {
  margin-bottom: 0px; }

.c17a .has-hero .dtv-view-rows .dtv-view-row:first-child {
  width: 100%; }
  .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-article {
    flex-direction: column; }
  .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-article-left {
    width: 100%; }
  .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-article-right {
    padding-left: 0px;
    box-sizing: border-box; }
  .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-title {
    display: none; }
  .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-button {
    font-size: 14px;
    font-size: 1rem;
    background: #00aeef;
    border: 1px solid #00aeef;
    box-shadow: none;
    color: #fff;
    display: inline-block;
    font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
    line-height: 1;
    text-shadow: none;
    -webkit-border-radius: 7px;
    -moz-border-radius: 7px;
    text-decoration: none;
    /*
  text-transform: uppercase;
  */
    transition: background 150ms linear, color 150ms linear;
    -o-transition: background 150ms linear, color 150ms linear;
    -ms-transition: background 150ms linear, color 150ms linear;
    -webkit-font-smoothing: antialiased;
    padding: 13px 13px;
    margin-top: 20px;
    background: none;
    background: #ff650b;
    border-color: #ff650b;
    font-weight: bold; }
    .lt-ie9 .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-button {
      padding: 13px 20px; }
    @media screen and (min-width: 30em) {
      .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-button {
        padding: 13px 20px; } }
    .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-button.active, .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-button:hover, .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-button:focus {
      background: #fff;
      border-color: #00aeef;
      color: #00aeef;
      outline: none; }
  .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-button:hover {
    color: #ff650b !important;
    background: white;
    border-color: #ff650b; }

.c17a .rijen1.has-hero .dtv-view-row {
  display: none; }

.c17a .rijen1.has-hero .dtv-view-row:first-child {
  display: block; }

.c17a .rijen1.kolommen2:not(.has-hero) .dtv-view-row {
  display: none; }

.c17a .rijen1.kolommen2:not(.has-hero) .dtv-view-row:nth-child(-n+2) {
  display: block; }

.c17a .rijen1.kolommen3:not(.has-hero) .dtv-view-row {
  display: none; }

.c17a .rijen1.kolommen3:not(.has-hero) .dtv-view-row:nth-child(-n+3) {
  display: block; }

.c17a .rijen1.kolommen4:not(.has-hero) .dtv-view-row {
  display: none; }

.c17a .rijen1.kolommen4:not(.has-hero) .dtv-view-row:nth-child(-n+4) {
  display: block; }

.c17a .rijen1.kolommen5:not(.has-hero) .dtv-view-row {
  display: none; }

.c17a .rijen1.kolommen5:not(.has-hero) .dtv-view-row:nth-child(-n+5) {
  display: block; }

.c17a .rijen2.kolommen2.has-hero .dtv-view-row {
  display: none; }

.c17a .rijen2.kolommen2.has-hero .dtv-view-row:nth-child(-n+3) {
  display: block; }

.c17a .rijen2.kolommen3.has-hero .dtv-view-row {
  display: none; }

.c17a .rijen2.kolommen3.has-hero .dtv-view-row:nth-child(-n+4) {
  display: block; }

.c17a .rijen2.kolommen4.has-hero .dtv-view-row {
  display: none; }

.c17a .rijen2.kolommen4.has-hero .dtv-view-row:nth-child(-n+5) {
  display: block; }

.c17a .rijen2.kolommen5.has-hero .dtv-view-row {
  display: none; }

.c17a .rijen2.kolommen5.has-hero .dtv-view-row:nth-child(-n+6) {
  display: block; }

.c17a .rijen2.kolommen2:not(.has-hero) .dtv-view-row {
  display: none; }

.c17a .rijen2.kolommen2:not(.has-hero) .dtv-view-row:nth-child(-n+4) {
  display: block; }

.c17a .rijen2.kolommen3:not(.has-hero) .dtv-view-row {
  display: none; }

.c17a .rijen2.kolommen3:not(.has-hero) .dtv-view-row:nth-child(-n+6) {
  display: block; }

.c17a .rijen2.kolommen4:not(.has-hero) .dtv-view-row {
  display: none; }

.c17a .rijen2.kolommen4:not(.has-hero) .dtv-view-row:nth-child(-n+8) {
  display: block; }

.c17a .rijen2.kolommen5:not(.has-hero) .dtv-view-row {
  display: none; }

.c17a .rijen2.kolommen5:not(.has-hero) .dtv-view-row:nth-child(-n+10) {
  display: block; }

.lt-ie9 .c17a .titel {
  text-align: center; }

.lt-ie9 .c17a .kolommen2 .dtv-view-rows .dtv-view-row {
  width: 50%; }

.lt-ie9 .c17a .kolommen3 .dtv-view-rows .dtv-view-row {
  width: 33%; }

.lt-ie9 .c17a .kolommen4 .dtv-view-rows .dtv-view-row {
  width: 25%; }

.lt-ie9 .c17a .kolommen5 .dtv-view-rows .dtv-view-row {
  width: 20%; }

.lt-ie9 .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-body {
  height: 226.8px;
  -webkit-line-clamp: 6;
  font-weight: 200;
  font-size: 18px; }

.lt-ie9 .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-image {
  height: 300px; }

.lt-ie9 .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-article {
  flex-direction: row; }

.lt-ie9 .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-article-left {
  width: 34%; }

.lt-ie9 .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-article-right {
  padding-left: 20px;
  box-sizing: border-box; }

@media screen and (min-width: 48em) {
  .c17a .titel {
    text-align: center; }
  .c17a .kolommen2 .dtv-view-rows .dtv-view-row {
    width: 50%; }
  .c17a .kolommen3 .dtv-view-rows .dtv-view-row {
    width: 33%; }
  .c17a .kolommen4 .dtv-view-rows .dtv-view-row {
    width: 25%; }
  .c17a .kolommen5 .dtv-view-rows .dtv-view-row {
    width: 20%; }
  .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-body {
    height: 226.8px;
    -webkit-line-clamp: 6;
    font-weight: 200;
    font-size: 18px; }
  .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-image {
    height: 300px; }
  .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-article {
    flex-direction: row; }
  .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-article-left {
    width: 34%; }
  .c17a .has-hero .dtv-view-rows .dtv-view-row:first-child .dtv-article-right {
    padding-left: 20px;
    box-sizing: border-box; } }

.c1a {
  /*new*/ }
  .c1a .flex-direction-nav li a.flex-prev {
    left: -5px; }
  .c1a .flex-direction-nav li a.flex-next {
    right: -5px; }
  .lt-ie9 .c1a .flex-direction-nav li a.flex-prev {
    left: 10px; }
  .lt-ie9 .c1a .flex-direction-nav li a.flex-next {
    right: 10px; }
  @media screen and (min-width: 48em) {
    .c1a .flex-direction-nav li a.flex-prev {
      left: 10px; }
    .c1a .flex-direction-nav li a.flex-next {
      right: 10px; } }
  .lt-ie9 .c1a .flex-direction-nav li a.flex-prev {
    left: 30px; }
  .lt-ie9 .c1a .flex-direction-nav li a.flex-next {
    right: 30px; }
  @media screen and (min-width: 70em) {
    .c1a .flex-direction-nav li a.flex-prev {
      left: 30px; }
    .c1a .flex-direction-nav li a.flex-next {
      right: 30px; } }
  .c1a .slides li {
    overflow: hidden; }
  .c1a .flexslider_paragraph_c1a {
    float: none;
    box-sizing: border-box; }
  .c1a .flex-direction-nav {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0; }
  .c1a .box .flexslider_paragraph_c1a {
    padding-left: 10px;
    padding-right: 10px; }
  .c1a .box .flex-direction-nav li a.flex-prev {
    left: -10px; }
  .c1a .box .flex-direction-nav li a.flex-next {
    right: -10px; }
  .c1a .container .box {
    padding: 0px;
    overflow: hidden; }
  .c1a .container .box .flexslider_paragraph_c1a {
    padding: 0px; }
  .c1a .container .box .c1b .slider-background {
    padding: 20px 50px; }
  .c1a .container .box .flex-direction-nav li a.flex-prev {
    left: 0px; }
  .c1a .container .box .flex-direction-nav li a.flex-next {
    right: 0px; }
  .c1a .titel {
    text-align: center;
    margin-bottom: 25px; }
  .c1a .pacific_blue .flex-direction-nav li a:before, .c1a .mirage .flex-direction-nav li a:before, .c1a .orange .flex-direction-nav li a:before {
    color: white; }

.c1b .slider-background {
  padding-left: 20px;
  padding-right: 20px; }

.lt-ie9 .c1b h1, .lt-ie9 .c1b .block-solutions-overview h2, .block-solutions-overview .lt-ie9 .c1b h2 {
  font-size: 40px; }

.lt-ie9 .c1b .ck_buttongroup a {
  padding: 17px 20px !important;
  font-size: 18px !important; }

.lt-ie9 .c1b .slider-background {
  padding-left: 50px;
  padding-right: 50px; }

.lt-ie9 .c1b .slider-content {
  width: 50%; }

@media screen and (min-width: 48em) {
  .c1b h1, .c1b .block-solutions-overview h2, .block-solutions-overview .c1b h2, .c1b
  .block-solutions-overview h1,
  .block-solutions-overview .c1b h1 {
    font-size: 40px; }
  .c1b .ck_buttongroup a {
    padding: 17px 20px !important;
    font-size: 18px !important; }
  .c1b .slider-background {
    padding-left: 50px;
    padding-right: 50px; }
  .c1b .slider-content {
    width: 50%; } }

.lt-ie9 .c1b .slider-background {
  padding-left: 0px;
  padding-right: 0px; }

@media screen and (min-width: 70em) {
  .c1b .slider-background {
    padding-left: 0px;
    padding-right: 0px; } }

.component.c4a {
  /*https://css-tricks.com/useful-nth-child-recipies/*/
  /*verberg eerste 3 list items bij .offset3 x*/
  /*Indien .hero, verberg alle volgende items vanaf de 2e item bij .offset0*/
  /*Indien .primary, verberg alle volgende items vanaf de 4e item bij .offset0 (omdat de primary layout per 3 wordt weergegeven)*/
  /*Indien .minor, verberg alle volgende items vanaf de 4e item bij .offset0 (omdat de minor layout per 3 wordt weergegeven)*/
  /*alle layouts*/
  /*hero*/
  /*primary*/
  /*minor*/ }
  .component.c4a .offset1 .item-list ul > li:nth-child(-n+1) {
    display: none; }
  .component.c4a .offset2 .item-list ul > li:nth-child(-n+2) {
    display: none; }
  .component.c4a .offset3 .item-list ul > li:nth-child(-n+3) {
    display: none; }
  .component.c4a .offset4 .item-list ul > li:nth-child(-n+4) {
    display: none; }
  .component.c4a .offset0.hero .item-list ul > li:nth-child(n+2) {
    display: none; }
  .component.c4a .offset1.hero .item-list ul > li:nth-child(n+3) {
    display: none; }
  .component.c4a .offset2.hero .item-list ul > li:nth-child(n+4) {
    display: none; }
  .component.c4a .offset3.hero .item-list ul > li:nth-child(n+5) {
    display: none; }
  .component.c4a .offset4.hero .item-list ul > li:nth-child(n+6) {
    display: none; }
  .component.c4a .offset0.primary .item-list ul > li:nth-child(n+4) {
    display: none; }
  .component.c4a .offset1.primary .item-list ul > li:nth-child(n+5) {
    display: none; }
  .component.c4a .offset2.primary .item-list ul > li:nth-child(n+6) {
    display: none; }
  .component.c4a .offset3.primary .item-list ul > li:nth-child(n+7) {
    display: none; }
  .component.c4a .offset4.primary .item-list ul > li:nth-child(n+8) {
    display: none; }
  .component.c4a .offset0.minor .item-list ul > li:nth-child(n+4) {
    display: none; }
  .component.c4a .offset1.minor .item-list ul > li:nth-child(n+5) {
    display: none; }
  .component.c4a .offset2.minor .item-list ul > li:nth-child(n+6) {
    display: none; }
  .component.c4a .offset3.minor .item-list ul > li:nth-child(n+7) {
    display: none; }
  .component.c4a .offset4.minor .item-list ul > li:nth-child(n+8) {
    display: none; }
  .component.c4a .item-list ul {
    list-style: none;
    padding: 0px;
    margin: 0px; }
  .component.c4a .item-list ul li {
    margin: 0px;
    position: relative;
    margin-bottom: 20px; }
  .component.c4a .item-list ul:after {
    visibility: hidden;
    display: block;
    font-size: 0;
    content: " ";
    clear: both;
    height: 0; }
  .component.c4a .news-bedrijfsbeeld {
    box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.54);
    border-radius: 10px;
    overflow: hidden; }
  .component.c4a .news-bedrijfsbeeld img {
    display: block; }
  .component.c4a .news-type {
    text-transform: uppercase;
    font-weight: 500;
    font-size: 11px;
    position: absolute;
    top: 20px;
    left: -10px;
    display: inline-block;
    background: yellow;
    padding: 1px 5px;
    color: black !important; }
  .component.c4a .news-title {
    margin-bottom: 10px;
    font-size: 28px;
    font-weight: 200;
    line-height: 1.3; }
  .component.c4a .news-title a {
    text-decoration: none; }
  .component.c4a .news-summary {
    font-size: 16px; }
  .component.c4a .news-button a {
    color: #009fe0;
    font-size: 16px;
    text-decoration: none;
    margin-top: 10px;
    display: inline-block; }
  .component.c4a .hero .news-bedrijfsbeeld {
    width: 100%;
    overflow: hidden;
    margin-right: 20px; }
  .component.c4a .hero .news-title a {
    font-size: 40px;
    font-weight: 100; }
  .component.c4a .hero .news-summary {
    font-size: 18px; }
  .component.c4a .hero .news-button {
    margin-top: 20px; }
  .component.c4a .hero .news-button a {
    font-size: 14px;
    font-size: 1rem;
    background: #00aeef;
    border: 1px solid #00aeef;
    box-shadow: none;
    color: #fff;
    display: inline-block;
    font-family: "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
    line-height: 1;
    text-shadow: none;
    -webkit-border-radius: 7px;
    -moz-border-radius: 7px;
    text-decoration: none;
    /*
  text-transform: uppercase;
  */
    transition: background 150ms linear, color 150ms linear;
    -o-transition: background 150ms linear, color 150ms linear;
    -ms-transition: background 150ms linear, color 150ms linear;
    -webkit-font-smoothing: antialiased;
    padding: 13px 13px;
    padding: 17px 20px;
    font-size: 1.28571rem; }
    .lt-ie9 .component.c4a .hero .news-button a {
      padding: 13px 20px; }
    @media screen and (min-width: 30em) {
      .component.c4a .hero .news-button a {
        padding: 13px 20px; } }
    .component.c4a .hero .news-button a.active, .component.c4a .hero .news-button a:hover, .component.c4a .hero .news-button a:focus {
      background: #fff;
      border-color: #00aeef;
      color: #00aeef;
      outline: none; }
  .component.c4a .hero .orange .news-button a, .component.c4a .hero .pacific_blue .news-button a {
    background: none;
    border: 1px solid white; }
  .component.c4a .hero .orange .news-button a:hover, .component.c4a .hero .pacific_blue .news-button a:hover {
    color: #009fe0 !important;
    background: white;
    border: 1px solid white; }
  .component.c4a .primary .item-list ul li:first-child {
    margin-left: 0px; }
  .component.c4a .primary .news-bedrijfsbeeld {
    margin-bottom: 10px; }
  .component.c4a .primary.offset1 .item-list ul li:nth-child(2) {
    margin-left: 0px; }
  .component.c4a .primary.offset1 .item-list ul li:nth-child(4) {
    margin-right: 0px; }
  .component.c4a .primary.offset2 .item-list ul li:nth-child(3) {
    margin-left: 0px; }
  .component.c4a .primary.offset2 .item-list ul li:nth-child(5) {
    margin-right: 0px; }
  .component.c4a .primary.offset3 .item-list ul li:nth-child(4) {
    margin-left: 0px; }
  .component.c4a .primary.offset3 .item-list ul li:nth-child(6) {
    margin-right: 0px; }
  .component.c4a .primary.offset4 .item-list ul li:nth-child(5) {
    margin-left: 0px; }
  .component.c4a .primary.offset4 .item-list ul li:nth-child(7) {
    margin-right: 0px; }
  .component.c4a .minor .item-list ul li {
    margin-bottom: 40px;
    clear: both; }
  .component.c4a .minor .news-bedrijfsbeeld {
    margin-top: 10px; }
  .lt-ie9 .component.c4a .item-list ul li {
    margin: 0px; }
  .lt-ie9 .component.c4a .hero .news-type {
    top: -30px; }
  .lt-ie9 .component.c4a .hero .news-bedrijfsbeeld {
    width: 50%;
    float: right;
    overflow: hidden;
    margin-left: 20px;
    margin-top: -50px;
    margin-right: 0px; }
  .lt-ie9 .component.c4a .hero .news-title {
    padding-top: 20px; }
  .lt-ie9 .component.c4a .hero .news-title a {
    font-size: 48px; }
  .lt-ie9 .component.c4a .hero .news-type {
    left: 50%;
    margin-left: -10px; }
  .lt-ie9 .component.c4a .primary .item-list ul {
    display: flex;
    flex-direction: row; }
  .lt-ie9 .component.c4a .primary .item-list ul li {
    margin-left: 10px;
    margin-right: 10px;
    width: 33%; }
  .lt-ie9 .component.c4a .minor .news-bedrijfsbeeld {
    width: 20%;
    margin-right: 20px;
    margin-bottom: 40px;
    float: left;
    margin-top: 10px; }
  @media screen and (min-width: 48em) {
    .component.c4a .item-list ul li {
      margin: 0px; }
    .component.c4a .hero .news-type {
      top: -30px; }
    .component.c4a .hero .news-bedrijfsbeeld {
      width: 50%;
      float: right;
      overflow: hidden;
      margin-left: 20px;
      margin-top: -50px;
      margin-right: 0px; }
    .component.c4a .hero .news-title {
      padding-top: 20px; }
    .component.c4a .hero .news-title a {
      font-size: 48px; }
    .component.c4a .hero .news-type {
      left: 50%;
      margin-left: -10px; }
    .component.c4a .primary .item-list ul {
      display: flex;
      flex-direction: row; }
    .component.c4a .primary .item-list ul li {
      margin-left: 10px;
      margin-right: 10px;
      width: 33%; }
    .component.c4a .minor .news-bedrijfsbeeld {
      width: 20%;
      margin-right: 20px;
      margin-bottom: 40px;
      float: left;
      margin-top: 10px; } }
  .lt-ie9 .component.c4a .hero .news-title a {
    font-size: 48px;
    line-height: 1; }
  @media screen and (min-width: 60em) {
    .component.c4a .hero .news-title a {
      font-size: 48px;
      line-height: 1; } }

.lt-ie9 .c6a .views-rows {
  display: flex;
  flex-wrap: wrap;
  margin-left: -10px;
  margin-right: -10px;
  list-style: none; }

.lt-ie9 .c6a .views-rows > .views-row {
  padding-left: 10px;
  padding-right: 10px;
  box-sizing: border-box;
  width: 50%;
  margin: 0px; }

@media screen and (min-width: 48em) {
  .c6a .views-rows {
    display: flex;
    flex-wrap: wrap;
    margin-left: -10px;
    margin-right: -10px;
    list-style: none; }
  .c6a .views-rows > .views-row {
    padding-left: 10px;
    padding-right: 10px;
    box-sizing: border-box;
    width: 50%;
    margin: 0px; } }

.lt-ie9 .c6a .views-rows {
  display: flex;
  flex-wrap: wrap;
  margin-left: -10px;
  margin-right: -10px;
  list-style: none; }

.lt-ie9 .c6a .views-rows > .views-row {
  padding-left: 10px;
  padding-right: 10px;
  box-sizing: border-box;
  width: 25%;
  margin: 0px; }

@media screen and (min-width: 70em) {
  .c6a .views-rows {
    display: flex;
    flex-wrap: wrap;
    margin-left: -10px;
    margin-right: -10px;
    list-style: none; }
  .c6a .views-rows > .views-row {
    padding-left: 10px;
    padding-right: 10px;
    box-sizing: border-box;
    width: 25%;
    margin: 0px; } }

.c6a .academy-banner {
  border: 1px solid #C7C7C7;
  background: white;
  box-shadow: 0px 0px 3px 0px rgba(0, 0, 0, 0.2);
  margin-bottom: 20px;
  border-radius: 10px;
  padding: 20px;
  position: relative; }

.c6a .academy-banner a {
  text-decoration: none; }

.c6a .academy-banner a:hover {
  color: inherit; }

.c6a .academy-banner .academy-banner-header {
  height: 90px; }

.c6a .academy-banner .academy-banner-title {
  margin: 0px;
  font-weight: 400;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

.c6a .academy-banner .academy-banner-title a {
  font-size: 20px;
  text-decoration: none;
  font-weight: 400; }

.c6a .academy-banner .academy-banner-subtitel {
  font-size: 16px;
  font-weight: 200;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap; }

.c6a .academy-banner .academy-banner-firstDatum {
  font-weight: bold;
  margin-top: 15px; }

.c6a .academy-banner .academy-banner-firstDatum option {
  display: inline;
  font-weight: bold; }

.c6a .academy-banner .academy-banner-image {
  position: relative; }

.c6a .academy-banner .academy-banner-categorie {
  position: absolute;
  top: -10px;
  right: 0px;
  text-transform: uppercase;
  font-weight: 500;
  font-size: 11px;
  display: inline-block;
  background: yellow;
  padding: 1px 5px;
  color: black !important; }

.c6a .academy-banner .academy-banner-bedrijfsbeeld {
  margin: 0px -20px 0px -20px;
  height: 150px; }

.c6a .academy-banner .academy-banner-body {
  padding-top: 15px;
  height: 140px;
  overflow: hidden; }

.c6a .academy-banner .academy-banner-inleiding {
  height: 50px;
  margin-bottom: 10px;
  line-height: 1.2;
  overflow: hidden; }

.c6a .academy-banner .academy-banner-datums-list span {
  display: block; }

.c6a .academy-banner .academy-banner-datums-list span:before {
  content: "● "; }

.c6a .academy-banner .academy-banner-button {
  position: absolute;
  bottom: 20px;
  right: 20px;
  background-color: #00AEEF;
  display: inline-block;
  color: white;
  padding: 10px 15px;
  border-radius: 5px; }

.c6a .academy-banner .academy-url a {
  display: block;
  position: absolute;
  top: 0px;
  right: 0px;
  bottom: 0px;
  left: 0px;
  z-index: 1000;
  text-indent: -4000px;
  overflow: hidden; }

.c6a .titel {
  text-align: center;
  margin-bottom: 25px; }

/*general component declarations*/
.component {
  /*color names*/
  /*box*/
  /*form*/
  /*media queries*/ }
  .component .container {
    padding-top: 20px;
    padding-bottom: 20px; }
  .component .alice_blue {
    background: #ebf9ff; }
  .component .pacific_blue {
    background: #009fe0; }
    .component .pacific_blue * {
      color: white !important; }
  .component .mirage {
    background: #343942; }
    .component .mirage * {
      color: white; }
  .component .white {
    background: #fff; }
  .component .white_smoke {
    background: #f3f3f3; }
  .component .gainsboro {
    background: #e9e9e9; }
  .component .orange {
    background: #ff650b; }
    .component .orange * {
      color: white !important; }
  .component .box {
    padding: 20px;
    border-radius: 20px; }
  .component .pacific_blue input, .component .mirage input, .component .orange input, .component .pacific_blue textarea, .component .mirage textarea, .component .orange textarea {
    color: black !important;
    border-color: white; }
  .component .pacific_blue button, .component .mirage button, .component .orange button, .component .pacific_blue textarea, .component .mirage textarea, .component .orange textarea {
    background: #ff650b;
    border: 1px solid #ff650b; }
    .component .pacific_blue button:hover, .component .mirage button:hover, .component .orange button:hover, .component .pacific_blue textarea:hover, .component .mirage textarea:hover, .component .orange textarea:hover {
      color: #ff650b !important;
      background: white;
      border: 1px solid white; }
  .lt-ie9 .component {
    /*flexbox*/
    /*uitlijning kolommen*/ }
    .lt-ie9 .component .flexbox {
      display: flex;
      flex-direction: row; }
    .lt-ie9 .component .flexbox > div {
      padding-left: 10px;
      padding-right: 10px; }
    .lt-ie9 .component .flexbox > div:first-child {
      padding-left: 0px; }
    .lt-ie9 .component .flexbox > div:last-child {
      padding-right: 0px; }
    .lt-ie9 .component .flexbox.visual_links {
      flex-direction: row; }
    .lt-ie9 .component .flexbox.visual_rechts {
      flex-direction: row-reverse; }
    .lt-ie9 .component .flexbox.visual_rechts > div:first-child {
      padding-right: 0px;
      padding-left: 10px; }
    .lt-ie9 .component .flexbox.visual_rechts > div:last-child {
      padding-left: 0px;
      padding-right: 10px; }
    .lt-ie9 .component .flexbox.visual_top {
      flex-direction: column; }
    .lt-ie9 .component .flexbox.visual_top > div {
      padding: 0; }
    .lt-ie9 .component .flexbox.visual_top > div:first-child {
      padding-bottom: 0px; }
    .lt-ie9 .component .flexbox.visual_bottom {
      flex-direction: column-reverse; }
    .lt-ie9 .component .flexbox.visual_bottom > div {
      padding: 0; }
    .lt-ie9 .component .flexbox.visual_bottom > div:last-child {
      padding-bottom: 10px; }
  @media screen and (min-width: 30em) {
    .component {
      /*flexbox*/
      /*uitlijning kolommen*/ }
      .component .flexbox {
        display: flex;
        flex-direction: row; }
      .component .flexbox > div {
        padding-left: 10px;
        padding-right: 10px; }
      .component .flexbox > div:first-child {
        padding-left: 0px; }
      .component .flexbox > div:last-child {
        padding-right: 0px; }
      .component .flexbox.visual_links {
        flex-direction: row; }
      .component .flexbox.visual_rechts {
        flex-direction: row-reverse; }
      .component .flexbox.visual_rechts > div:first-child {
        padding-right: 0px;
        padding-left: 10px; }
      .component .flexbox.visual_rechts > div:last-child {
        padding-left: 0px;
        padding-right: 10px; }
      .component .flexbox.visual_top {
        flex-direction: column; }
      .component .flexbox.visual_top > div {
        padding: 0; }
      .component .flexbox.visual_top > div:first-child {
        padding-bottom: 0px; }
      .component .flexbox.visual_bottom {
        flex-direction: column-reverse; }
      .component .flexbox.visual_bottom > div {
        padding: 0; }
      .component .flexbox.visual_bottom > div:last-child {
        padding-bottom: 10px; } }

html {
  color: #4a4a4a; }
  html ::selection {
    color: #4a4a4a;
    background: #00aeef; }

img {
  height: auto;
  max-width: 100%; }

a {
  color: #4a4a4a;
  -webkit-transition: all 150ms linear;
  -moz-transition: all 150ms linear;
  transition: all 150ms linear; }
  a:hover, a:focus {
    color: #b5b5b5; }

p a {
  color: #009fe0;
  text-decoration: none; }
  p a:hover {
    color: #52565f; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlcyI6WyJzdHlsZS5zY3NzIiwiYmFzZS9fZ3JpZC1zZXR0aW5ncy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fZGVwcmVjYXRpb24td2FybmluZ3Muc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3ByZWZpeGVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19weC10by1lbS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fYXNzZXQtcGlwZWxpbmUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2JvdXJib24tZGVwcmVjYXRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fYXNzaWduLWlucHV0cy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2NvbnRhaW5zLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fY29udGFpbnMtZmFsc3kuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1sZW5ndGguc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1saWdodC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLW51bWJlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2lzLXNpemUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19weC10by1lbS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3B4LXRvLXJlbS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3NoYWRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fc3RyaXAtdW5pdHMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL190aW50LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdW5wYWNrLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fbW9kdWxhci1zY2FsZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19jb252ZXJ0LXVuaXRzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19mb250LXNvdXJjZS1kZWNsYXJhdGlvbi5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1hbmdsZS1wYXJzZXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1hcmctcGFyc2VyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fcmVuZGVyLWdyYWRpZW50cy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19zaGFwZS1zaXplLXN0cmlwcGVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3N0ci10by1udW0uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYW5pbWF0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2FwcGVhcmFuY2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2ZhY2UtdmlzaWJpbGl0eS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZ3JvdW5kLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tncm91bmQtaW1hZ2Uuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYm9yZGVyLWltYWdlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2NhbGMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fY29sdW1ucy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19maWx0ZXIuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZmxleC1ib3guc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZm9udC1mYWNlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19oaWRwaS1tZWRpYS1xdWVyeS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19oeXBoZW5zLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ltYWdlLXJlbmRlcmluZy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19rZXlmcmFtZXMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fbGluZWFyLWdyYWRpZW50LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3BsYWNlaG9sZGVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3JhZGlhbC1ncmFkaWVudC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19zZWxlY3Rpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdGV4dC1kZWNvcmF0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3VzZXItc2VsZWN0LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLWNvbG9yLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1zdHlsZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci13aWR0aC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2J1dHRvbnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19jbGVhcmZpeC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2VsbGlwc2lzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fZm9udC1zdGFja3Muc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19oaWRlLXRleHQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19tYXJnaW4uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wYWRkaW5nLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcG9zaXRpb24uc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19wcmVmaXhlci5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3JldGluYS1pbWFnZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3NpemUuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190ZXh0LWlucHV0cy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3RpbWluZy1mdW5jdGlvbnMuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190cmlhbmdsZS5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3dvcmQtd3JhcC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX25lYXQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9fbmVhdC1oZWxwZXJzLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19wcml2YXRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19uZXctYnJlYWtwb2ludC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19ncmlkLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX3Zpc3VhbC1ncmlkLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX2Rpc2FibGUtd2FybmluZ3Muc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19wcml2YXRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fYm94LXNpemluZy5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX29tZWdhLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fb3V0ZXItY29udGFpbmVyLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fc3Bhbi1jb2x1bW5zLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fcm93LnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fc2hpZnQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19wYWQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19maWxsLXBhcmVudC5zY3NzIiwiLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX21lZGlhLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fdG8tZGVwcmVjYXRlLnNjc3MiLCIuLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fdmlzdWFsLWdyaWQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19kaXNwbGF5LWNvbnRleHQuc2NzcyIsIi4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19kaXJlY3Rpb24tY29udGV4dC5zY3NzIiwiYmFzZS9fdmFyaWFibGVzLnNjc3MiLCJiYXNlL19mb250cy5zY3NzIiwiYmFzZS9fbm9ybWFsaXplLnNjc3MiLCJiYXNlL19nbG9iYWwuc2NzcyIsImJhc2UvbWl4aW5zL19taXhpbnMuc2NzcyIsImJhc2UvbWl4aW5zL19ncmlkLnNjc3MiLCJiYXNlL21peGlucy9fYnV0dG9ucy5zY3NzIiwiYmFzZS9taXhpbnMvX3RpdGxlcy5zY3NzIiwiYmFzZS9taXhpbnMvX2Zvcm1zLnNjc3MiLCJkZXNpZ24vX2Rlc2lnbi5zY3NzIiwiZGVzaWduL19iYW5uZXIuc2NzcyIsImRlc2lnbi9fcHJlY29udGVudC5zY3NzIiwiZGVzaWduL19wcmVmb290ZXIuc2NzcyIsImRlc2lnbi9fc3ViY29udGVudC5zY3NzIiwiZGVzaWduL19sYXlvdXQuc2NzcyIsImRlc2lnbi9fdHlwb2dyYXBoeS5zY3NzIiwiZGVzaWduL19oZWFkZXIuc2NzcyIsImRlc2lnbi9fZm9vdGVyLnNjc3MiLCJkZXNpZ24vbmF2aWdhdGlvbi9fbmF2aWdhdGlvbi5zY3NzIiwiZGVzaWduL25hdmlnYXRpb24vX2JvdHRvbS1uYXZpZ2F0aW9uLnNjc3MiLCJkZXNpZ24vbmF2aWdhdGlvbi9fc2Iuc2NzcyIsImRlc2lnbi9uYXZpZ2F0aW9uL190b3AtbmF2aWdhdGlvbi5zY3NzIiwiZGVzaWduL25hdmlnYXRpb24vX3RvZ2dsZW1lbnUuc2NzcyIsImRlc2lnbi9fZm9ybXMuc2NzcyIsImRlc2lnbi9fdGFibGVzLnNjc3MiLCJzdHlsZXMvX3N0eWxlcy5zY3NzIiwic3R5bGVzL2Jsb2NrL19ibG9jay5zY3NzIiwic3R5bGVzL2Jsb2NrL19ibG9jay1jb250ZW50LnNjc3MiLCJzdHlsZXMvYmxvY2svX2Jsb2NrLW1lbnUuc2NzcyIsInN0eWxlcy9ibG9jay9fYmxvY2stbmV3c2xldHRlci5zY3NzIiwic3R5bGVzL2Jsb2NrL19ibG9jay1zb2NpYWxtZW51LnNjc3MiLCJzdHlsZXMvYmxvY2svX2Jsb2NrLWN0YV9mdWxsLnNjc3MiLCJzdHlsZXMvYmxvY2svX2Jsb2NrLWN0YV9wcmltYXJ5LnNjc3MiLCJzdHlsZXMvYmxvY2svX2Jsb2NrLWN0YV9zZWNvbmRhcnkuc2NzcyIsInN0eWxlcy9ibG9jay9fYmxvY2stc29sdXRpb25zLW92ZXJ2aWV3LnNjc3MiLCJzdHlsZXMvY29tcG9uZW50L19jb21wb25lbnQuc2NzcyIsInN0eWxlcy9jb21wb25lbnQvX2JyZWFkY3J1bWIuc2NzcyIsInN0eWxlcy9jb21wb25lbnQvX2RhdGUuc2NzcyIsInN0eWxlcy9jb21wb25lbnQvX2Jsb2NrLXZpZXdzLWJsb2NrdGVzdGltb25pYWxzLWJsb2NrLTEuc2NzcyIsInN0eWxlcy9jb21wb25lbnQvX2ZsZXgtZGlyZWN0aW9uLW5hdi5zY3NzIiwic3R5bGVzL2NvbXBvbmVudC9fY2tlZGl0b3Iuc2NzcyIsInN0eWxlcy9ub2RlL19ub2RlLnNjc3MiLCJzdHlsZXMvbm9kZS9fbm9kZS1jYXJvdXNlbC5zY3NzIiwic3R5bGVzL25vZGUvX25vZGUtbmV3cy5zY3NzIiwic3R5bGVzL25vZGUvX25vZGUtcGFnZS5zY3NzIiwic3R5bGVzL25vZGUvX25vZGUtcHJvZHVjdC5zY3NzIiwic3R5bGVzL25vZGUvX25vZGUtc3RhbmRhbG9uZS5zY3NzIiwic3R5bGVzL25vZGUvX25vZGUtdGVzdGltb25pYWwuc2NzcyIsInN0eWxlcy92aWV3L192aWV3LnNjc3MiLCJzdHlsZXMvdmlldy9fdmlldy1uZXdzLnNjc3MiLCJzdHlsZXMvdmlldy9fdmlldy1jdXN0b21lcnMuc2NzcyIsInN0eWxlcy92aWV3L192aWV3LXZjb24tZGF0YWxpbmV0di5zY3NzIiwic3R5bGVzL3ZpZXcvX3ZpZXctdmNvbi1uZXdzLWxhbmRpbmctcGFnZS5zY3NzIiwic3R5bGVzL3BhZ2UvX3BhZ2Uuc2NzcyIsInN0eWxlcy9wYWdlL19wYWdlLWRsLWN1c3RvbWVyLXByb2ZpbGUuc2NzcyIsInN0eWxlcy9wYWdlL19wYWdlLWFjYWRlbXkuc2NzcyIsInN0eWxlcy9wYWdlL19wYWdlLWZpbmRlci5zY3NzIiwic3R5bGVzL3BhcmFncmFwaC9fcGFyYWdyYXBoLnNjc3MiLCJzdHlsZXMvcGFyYWdyYXBoL19jMmEtdmlzdWFsLWRlc2NyaXB0b3Iuc2NzcyIsInN0eWxlcy9wYXJhZ3JhcGgvX2MxNGEtcGFnZS10aXRsZS5zY3NzIiwic3R5bGVzL3BhcmFncmFwaC9fYzlhLWdyaWQuc2NzcyIsInN0eWxlcy9wYXJhZ3JhcGgvX2M1YS1jaXJjbGUtY292ZXItZ3JpZC5zY3NzIiwic3R5bGVzL3BhcmFncmFwaC9fYzExYS12aWRlby5zY3NzIiwic3R5bGVzL3BhcmFncmFwaC9fYzNhLWhlcm8tcXVvdGUuc2NzcyIsInN0eWxlcy9wYXJhZ3JhcGgvX2MxNWEtdGVzdGltb25pYWwtdmlldy5zY3NzIiwic3R5bGVzL3BhcmFncmFwaC9fYzEzYS10YWdjbG91ZC12aWV3LnNjc3MiLCJzdHlsZXMvcGFyYWdyYXBoL19jMTdhLXZpZGVvLXRlc3RpbW9uaWFsLnNjc3MiLCJzdHlsZXMvcGFyYWdyYXBoL19jMWEtc2xpZGVyLnNjc3MiLCJzdHlsZXMvcGFyYWdyYXBoL19jNGEtbmV3cy5zY3NzIiwic3R5bGVzL3BhcmFncmFwaC9fYzZhLWFjYWRlbXkuc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyJAY2hhcnNldCAnVVRGLTgnO1xuXG4vLyBTdHlsZSBmaWxlXG4vLyBUaGlzIGZpbGUgaXMgY29tcGlsZWQgaW50byBzdHlsZS5jc3NcblxuQGltcG9ydCAnYmFzZS9ncmlkLXNldHRpbmdzJztcbkBpbXBvcnQgJ2JvdXJib24nO1xuQGltcG9ydCAnbmVhdCc7XG5cbi8vIC0tLS0tLS0tLS0gSW1wb3J0IGJhc2UgLS0tLS0tLS0tLVxuQGltcG9ydCAnYmFzZS92YXJpYWJsZXMnO1xuQGltcG9ydCAnYmFzZS9mb250cyc7XG5AaW1wb3J0ICdiYXNlL25vcm1hbGl6ZSc7XG5AaW1wb3J0ICdiYXNlL2dsb2JhbCc7XG5AaW1wb3J0ICdiYXNlL21peGlucy9taXhpbnMnO1xuXG4vLyAtLS0tLS0tLS0tIEltcG9ydCBkZXNpZ24gLS0tLS0tLS0tLVxuQGltcG9ydCAnZGVzaWduL2Rlc2lnbic7XG5cbi8vIC0tLS0tLS0tLS0gSW1wb3J0IHN0eWxlcyAtLS0tLS0tLS0tXG5AaW1wb3J0ICdzdHlsZXMvc3R5bGVzJztcbiIsIi8vIEdyaWQgc2V0dGluZ3MgKFBvd2VyZWQgYnkgQm91cmJvbiBOZWF0KS5cbi8vIFNvdXJjZTogaHR0cDovL3Rob3VnaHRib3QuZ2l0aHViLmlvL25lYXQtZG9jcy9sYXRlc3QvI3ZhcmlhYmxlXG5cbi8vIFNldHMgdGhlIHJlbGF0aXZlIHdpZHRoIG9mIGEgc2luZ2xlIGdyaWQgY29sdW1uLiBUaGUgdW5pdCB1c2VkIHNob3VsZCBiZSB0aGUgc2FtZSBvbmUgdXNlZCB0byBkZWZpbmUgYCRndXR0ZXJgLlxuJGNvbHVtbjogNzA7XG5cbi8vIFNldHMgdGhlIHJlbGF0aXZlIHdpZHRoIG9mIGEgc2luZ2xlIGdyaWQgZ3V0dGVyLiBUaGUgdW5pdCB1c2VkIHNob3VsZCBiZSB0aGUgc2FtZSBvbmUgdXNlZCB0byBkZWZpbmUgYCRjb2x1bW5gLlxuJGd1dHRlcjogMzA7XG5cbi8vIFNldHMgdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBncmlkLiBJdHMgdmFsdWUgY2FuIGJlIG92ZXJyaWRkZW4gaW5zaWRlIGEgbWVkaWEgcXVlcnkgdXNpbmcgdGhlIGBtZWRpYSgpYCBtaXhpbi5cbiRncmlkLWNvbHVtbnM6IDEyO1xuXG4vLyBTZXRzIHRoZSBtYXgtd2lkdGggcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQgdGhhdCBpbmNsdWRlcyBgb3V0ZXItY29udGFpbmVyKClgLlxuJG1heC13aWR0aDogMTIwMHB4O1xuXG4vLyBXaGVuIHNldCB0byB0cnVlLCBpdCBzZXRzIHRoZSBib3gtc2l6aW5nIHByb3BlcnR5IG9mIGFsbCBlbGVtZW50cyB0byBgYm9yZGVyLWJveGAuXG4kYm9yZGVyLWJveC1zaXppbmc6IHRydWU7XG5cbi8vIFNldHMgdGhlIGRlZmF1bHQgbWVkaWEgZmVhdHVyZSB0aGF0IGBtZWRpYSgpYCBhbmQgYG5ldy1icmVha3BvaW50KClgIHJldmVydCB0byB3aGVuIG9ubHkgYSBicmVha3BvaW50IHZhbHVlIGlzIHBhc3NlZC5cbiRkZWZhdWx0LWZlYXR1cmU6IG1pbi13aWR0aDtcblxuLy8gU2V0cyB0aGUgZGVmYXVsdCBsYXlvdXQgZGlyZWN0aW9uIG9mIHRoZSBncmlkLiBDYW4gYmUgYExUUmAgb3IgYFJUTGAuXG4kZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uOiBMVFI7XG5cbi8vIERpc3BsYXlzIHRoZSB2aXN1YWwgZ3JpZCB3aGVuIHNldCB0byB0cnVlLlxuLy8gVGhlIG92ZXJsYWlkIGdyaWQgbWF5IGJlIGZldyBwaXhlbHMgb2ZmIGRlcGVuZGluZyBvbiB0aGUgYnJvd3NlcidzIHJlbmRlcmluZyBlbmdpbmUgYW5kIHBpeGVsIHJvdW5kaW5nIGFsZ29yaXRobS5cbiR2aXN1YWwtZ3JpZDogZmFsc2U7XG5cbi8vIFNldHMgdGhlIHZpc3VhbCBncmlkIGNvbG9yLlxuJHZpc3VhbC1ncmlkLWNvbG9yOiAjZWVlO1xuXG4vLyBTZXRzIHRoZSAnei1pbmRleCcgcHJvcGVydHkgb2YgdGhlIHZpc3VhbCBncmlkLiBDYW4gYmUgYGJhY2tgIChiZWhpbmQgY29udGVudCkgb3IgYGZyb250YCAoaW4gZnJvbnQgb2YgY29udGVudCkuXG4kdmlzdWFsLWdyaWQtaW5kZXg6IGZyb250O1xuXG4vLyBTZXRzIHRoZSBvcGFjaXR5IHByb3BlcnR5IG9mIHRoZSB2aXN1YWwgZ3JpZC5cbiR2aXN1YWwtZ3JpZC1vcGFjaXR5OiAuNDtcbiIsIi8vIEJvdXJib24gNC4zLjRcbi8vIGh0dHA6Ly9ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMS0yMDE3IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbkBpbXBvcnQgXCJzZXR0aW5ncy9kZXByZWNhdGlvbi13YXJuaW5nc1wiO1xuQGltcG9ydCBcInNldHRpbmdzL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9hc3NldC1waXBlbGluZVwiO1xuXG5AaW1wb3J0IFwiYm91cmJvbi1kZXByZWNhdGVcIjtcblxuQGltcG9ydCBcImZ1bmN0aW9ucy9hc3NpZ24taW5wdXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zLWZhbHN5XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxlbmd0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1saWdodFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1udW1iZXJcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtc2l6ZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1yZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc2hhZGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5wYWNrXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcblxuQGltcG9ydCBcImhlbHBlcnMvY29udmVydC11bml0c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZGlyZWN0aW9uYWwtdmFsdWVzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9mb250LXNvdXJjZS1kZWNsYXJhdGlvblwiO1xuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWFuZ2xlLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1hcmctcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmVuZGVyLWdyYWRpZW50c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvc3RyLXRvLW51bVwiO1xuXG5AaW1wb3J0IFwiY3NzMy9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tmYWNlLXZpc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmRcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvY2FsY1wiO1xuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJjc3MzL2hpZHBpLW1lZGlhLXF1ZXJ5XCI7XG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9pbWFnZS1yZW5kZXJpbmdcIjtcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImNzczMvcGxhY2Vob2xkZXJcIjtcbkBpbXBvcnQgXCJjc3MzL3JhZGlhbC1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvc2VsZWN0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90ZXh0LWRlY29yYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zZm9ybVwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNpdGlvblwiO1xuQGltcG9ydCBcImNzczMvdXNlci1zZWxlY3RcIjtcblxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItY29sb3JcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItc3R5bGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXdpZHRoXCI7XG5AaW1wb3J0IFwiYWRkb25zL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZWxsaXBzaXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1zdGFja3NcIjtcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XG5AaW1wb3J0IFwiYWRkb25zL21hcmdpblwiO1xuQGltcG9ydCBcImFkZG9ucy9wYWRkaW5nXCI7XG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XG5AaW1wb3J0IFwiYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RleHQtaW5wdXRzXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvd29yZC13cmFwXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEVuYWJsZSBvciBkaXNhYmxlIG91dHB1dCBvZiBCb3VyYm9u4oCZcyBkZXByZWNhdGlvbi1yZWxhdGVkIFNhc3Mgd2FybmluZ3MuXG4vLy8gVGhpcyB2YXJpYWJsZSBtdXN0IGJlIGRlY2xhcmVkIF9iZWZvcmVfIGltcG9ydGluZyBCb3VyYm9uLlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IHRydWUgIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBvciBkaXNhYmxlIHZlbmRvciBwcmVmaXhlc1xuXG4kcHJlZml4LWZvci13ZWJraXQ6ICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1tb3ppbGxhOiAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1taWNyb3NvZnQ6IHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1vcGVyYTogICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1zcGVjOiAgICAgIHRydWUgIWRlZmF1bHQ7XG4iLCIkZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgZ2xvYmFsIHNldHRpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGAkYXNzZXQtcGlwZWxpbmVgIHZhcmlhYmxlIGZvciBhbGwgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGl0LlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kYXNzZXQtcGlwZWxpbmU6IGZhbHNlICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVGhyb3dzIFNhc3Mgd2FybmluZ3MgdG8gYW5ub3VuY2UgbGlicmFyeSBkZXByZWNhdGlvbnMuIFlvdSBjYW4gZGlzYWJsZSB0aGVtXG4vLy8gYnkgc2V0dGluZyB0aGUgYCRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nc2AgdmFyaWFibGUgdG8gYGZhbHNlYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AbWl4aW4gX2JvdXJib24tZGVwcmVjYXRlKCRmZWF0dXJlLCAkbWVzc2FnZTogbnVsbCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYCN7JGZlYXR1cmV9YCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICAgIFwicmVtb3ZlZCBpbiA1LjAuMC4gI3skbWVzc2FnZX1cIjtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoJGZlYXR1cmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlKCRmZWF0dXJlLCBcIldlIHN1Z2dlc3QgdXNpbmcgYW4gYXV0b21hdGVkIFwiICtcbiAgICBcInByZWZpeGluZyB0b29sLCBsaWtlIEF1dG9wcmVmaXhlci5cIik7XG59XG4iLCJAZnVuY3Rpb24gYXNzaWduLWlucHV0cygkaW5wdXRzLCAkcHNldWRvOiBudWxsKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgYXNzaWduLWlucHV0c2AgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJGxpc3Q6ICgpO1xuXG4gIEBlYWNoICRpbnB1dCBpbiAkaW5wdXRzIHtcbiAgICAkaW5wdXQ6IHVucXVvdGUoJGlucHV0KTtcbiAgICAkaW5wdXQ6IGlmKCRwc2V1ZG8sICRpbnB1dCArIFwiOlwiICsgJHBzZXVkbywgJGlucHV0KTtcbiAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkaW5wdXQsIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxpc3Q7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgaWYgYSBsaXN0IGNvbnRhaW5zIGEgdmFsdWUocykuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3Rcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWx1ZXNcbi8vLyAgIEEgc2luZ2xlIHZhbHVlIG9yIGxpc3Qgb2YgdmFsdWVzIHRvIGNoZWNrIGZvci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgY29udGFpbnMoJGxpc3QsICR2YWx1ZSlcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucygkbGlzdCwgJHZhbHVlcy4uLikge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGNvbnRhaW5zYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgQGlmIHR5cGUtb2YoaW5kZXgoJGxpc3QsICR2YWx1ZSkpICE9IFwibnVtYmVyXCIge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgaWYgYSBsaXN0IGRvZXMgbm90IGNvbnRhaW5zIGEgdmFsdWUuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3Rcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMtZmFsc3koJGxpc3QpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBjb250YWlucy1mYWxzeWAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgIEBpZiBub3QgJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIGxlbmd0aC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcblxuQGZ1bmN0aW9uIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBpcy1sZW5ndGhgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpICE9IFwibnVsbFwiIGFuZCAoc3RyLXNsaWNlKCR2YWx1ZSArIFwiXCIsIDEsIDQpID09IFwiY2FsY1wiXG4gICAgICAgb3IgaW5kZXgoYXV0byBpbmhlcml0IGluaXRpYWwgMCwgJHZhbHVlKVxuICAgICAgIG9yICh0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90KHVuaXRsZXNzKCR2YWx1ZSkpKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm9ncmFtYXRpY2FsbHkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgY29sb3IgaXMgbGlnaHQgb3IgZGFyay5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9yb2JvdHMudGhvdWdodGJvdC5jb20vY2xvc2VyLWxvb2stY29sb3ItbGlnaHRuZXNzXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yIChIZXgpfSAkY29sb3Jcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgaXMtbGlnaHQoJGNvbG9yKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBpcy1saWdodGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJC1sb2NhbC1yZWQ6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ncmVlbjogZ3JlZW4ocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtYmx1ZTogYmx1ZShyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1saWdodG5lc3M6ICgkLWxvY2FsLXJlZCAqIDAuMjEyNiArICQtbG9jYWwtZ3JlZW4gKiAwLjcxNTIgKyAkLWxvY2FsLWJsdWUgKiAwLjA3MjIpIC8gMjU1O1xuXG4gIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MgPiAwLjY7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuXG5AZnVuY3Rpb24gaXMtbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGlzLW51bWJlcmAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQHJldHVybiBjb250YWlucyhcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIiAwIDEgMiAzIDQgNSA2IDcgOCA5LCAkdmFsdWUpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBzaXplLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG5cbkBmdW5jdGlvbiBpcy1zaXplKCR2YWx1ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGlzLXNpemVgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gaXMtbGVuZ3RoKCR2YWx1ZSlcbiAgICAgICAgICBvciBjb250YWlucyhcImZpbGxcIiBcImZpdC1jb250ZW50XCIgXCJtaW4tY29udGVudFwiIFwibWF4LWNvbnRlbnRcIiwgJHZhbHVlKTtcblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSBlbSgxMikgd2hlbiB0aGUgcGFyZW50IGlzIDE2cHhcbi8vIGlmIHRoZSBwYXJlbnQgaXMgYW5vdGhlciB2YWx1ZSBzYXkgMjRweCB3cml0ZSBlbSgxMiwgMjQpXG5cbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZW0tYmFzZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGVtYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgcmVtKDEyKVxuLy8gQXNzdW1lcyAkZW0tYmFzZSBpcyB0aGUgZm9udC1zaXplIG9mIDxodG1sPlxuXG5AZnVuY3Rpb24gcmVtKCRweHZhbCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYHJlbWAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cblxuICAkYmFzZTogJGVtLWJhc2U7XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMXJlbTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCBibGFjay5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiBibGFjayB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgjZmZiYjUyLCA2MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY0YTIwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCMwMDAsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU3RyaXBzIHRoZSB1bml0IGZyb20gYSBudW1iZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoV2l0aCBVbml0KX0gJHZhbHVlXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICRkaW1lbnNpb246IHN0cmlwLXVuaXRzKDEwZW0pO1xuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgJGRpbWVuc2lvbjogMTA7XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXIgKFVuaXRsZXNzKX1cblxuQGZ1bmN0aW9uIHN0cmlwLXVuaXRzKCR2YWx1ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYHN0cmlwLXVuaXRzYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAgYW5kIHJlcGxhY2VkIGJ5IHRoZSBgc3RyaXAtdW5pdGAgZnVuY3Rpb24uXCI7XG4gIH1cblxuICBAcmV0dXJuICgkdmFsdWUgLyAoJHZhbHVlICogMCArIDEpKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCB3aGl0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiB3aGl0ZSB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCM2ZWNhYTYsIDQwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNhOGRmYzk7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjZmZmLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIi8vIFJldHVybiB2ZW5kb3ItcHJlZml4ZWQgcHJvcGVydHkgbmFtZXMgaWYgYXBwcm9wcmlhdGVcbi8vIEV4YW1wbGU6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoKHRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmQpLCBtb3opIC0+IC1tb3otdHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BzLCAkdmVuZG9yOiBmYWxzZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXNgIGlzIGRlcHJlY2F0ZWQgXCIgK1xuICAgIFwiYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICRuZXctcHJvcHM6ICgpO1xuXG4gIEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG4gICAgJG5ldy1wcm9wczogYXBwZW5kKCRuZXctcHJvcHMsIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvciksIGNvbW1hKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJG5ldy1wcm9wcztcbn1cblxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvcjogZmFsc2UpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVgIGlzIGRlcHJlY2F0ZWQgXCIgK1xuICAgIFwiYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIC8vIHB1dCBvdGhlciBwcm9wZXJ0aWVzIHRoYXQgbmVlZCB0byBiZSBwcmVmaXhlZCBoZXJlIGFzd2VsbFxuICBAaWYgJHZlbmRvciBhbmQgJHByb3AgPT0gdHJhbnNmb3JtIHtcbiAgICBAcmV0dXJuIHVucXVvdGUoJy0nKyR2ZW5kb3IrJy0nKyRwcm9wKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkcHJvcDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ29udmVydHMgc2hvcnRoYW5kIHRvIHRoZSA0LXZhbHVlIHN5bnRheC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3J0aGFuZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogdW5wYWNrKDFlbSAyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IDFlbSAyZW0gMWVtIDJlbTtcbi8vLyAgIH1cblxuQGZ1bmN0aW9uIHVucGFjaygkc2hvcnRoYW5kKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgdW5wYWNrYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAyIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAzKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcbiAgfVxufVxuIiwiLy8gU2NhbGluZyBWYXJpYWJsZXNcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcbiRtaW5vci10aGlyZDogICAgICAxLjI7XG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xuJG9jdGF2ZTogICAgICAgICAgIDI7XG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XG4kZG91YmxlLW9jdGF2ZTogICAgNDtcblxuJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2U7XG5cbiRtb2R1bGFyLXNjYWxlLXJhdGlvOiAkcGVyZmVjdC1mb3VydGggIWRlZmF1bHQ7XG4kbW9kdWxhci1zY2FsZS1iYXNlOiBlbSgkZW0tYmFzZSkgIWRlZmF1bHQ7XG5cbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc7XG5cbkBmdW5jdGlvbiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZTogJG1vZHVsYXItc2NhbGUtYmFzZSwgJHJhdGlvOiAkbW9kdWxhci1zY2FsZS1yYXRpbykge1xuICAkdjE6IG50aCgkdmFsdWUsIDEpO1xuICAkdjI6IG50aCgkdmFsdWUsIGxlbmd0aCgkdmFsdWUpKTtcbiAgJHZhbHVlOiAkdjE7XG5cbiAgLy8gc2NhbGUgJHYyIHRvIGp1c3QgYWJvdmUgJHYxXG4gIEB3aGlsZSAkdjIgPiAkdjEge1xuICAgICR2MjogKCR2MiAvICRyYXRpbyk7IC8vIHdpbGwgYmUgb2ZmLWJ5LTFcbiAgfVxuICBAd2hpbGUgJHYyIDwgJHYxIHtcbiAgICAkdjI6ICgkdjIgKiAkcmF0aW8pOyAvLyB3aWxsIGZpeCBvZmYtYnktMVxuICB9XG5cbiAgLy8gY2hlY2sgQUZURVIgc2NhbGluZyAkdjIgdG8gcHJldmVudCBkb3VibGUtY291bnRpbmcgY29ybmVyLWNhc2VcbiAgJGRvdWJsZS1zdHJhbmRlZDogJHYyID4gJHYxO1xuXG4gIEBpZiAkaW5jcmVtZW50ID4gMCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkaW5jcmVtZW50IHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxICogJHJhdGlvKSA+ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgKiAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAqICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkaW5jcmVtZW50IDwgMCB7XG4gICAgLy8gYWRqdXN0ICR2MiB0byBqdXN0IGJlbG93ICR2MVxuICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIHtcbiAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tICRpbmNyZW1lbnQgdGhyb3VnaCAtMSB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAvICRyYXRpbykgPCAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgLyAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3Igc3RyLXRvLW51bSBmbi5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfY29udmVydC11bml0cygkbnVtYmVyLCAkdW5pdCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9jb252ZXJ0LXVuaXRzYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIFwiICtcbiAgICBcImJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkc3RyaW5nczogXCJweFwiLCBcImNtXCIsIFwibW1cIiwgXCIlXCIsIFwiY2hcIiwgXCJwaWNhXCIsIFwiaW5cIiwgXCJlbVwiLCBcInJlbVwiLCBcInB0XCIsIFwicGNcIiwgXCJleFwiLCBcInZ3XCIsIFwidmhcIiwgXCJ2bWluXCIsIFwidm1heFwiLCBcImRlZ1wiLCBcInJhZFwiLCBcImdyYWRcIiwgXCJ0dXJuXCI7XG4gICR1bml0czogICAxcHgsIDFjbSwgMW1tLCAxJSwgMWNoLCAxcGljYSwgMWluLCAxZW0sIDFyZW0sIDFwdCwgMXBjLCAxZXgsIDF2dywgMXZoLCAxdm1pbiwgMXZtYXgsIDFkZWcsIDFyYWQsIDFncmFkLCAxdHVybjtcbiAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJHVuaXQpO1xuXG4gIEBpZiBub3QgJGluZGV4IHtcbiAgICBAd2FybiBcIlVua25vd24gdW5pdCBgI3skdW5pdH1gLlwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkbnVtYmVyKSAhPSBcIm51bWJlclwiIHtcbiAgICBAd2FybiBcImAjeyRudW1iZXJ9IGlzIG5vdCBhIG51bWJlcmBcIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQHJldHVybiAkbnVtYmVyICogbnRoKCR1bml0cywgJGluZGV4KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpcmVjdGlvbmFsLXByb3BlcnR5IG1peGlucyBhcmUgc2hvcnRoYW5kcyBmb3Igd3JpdGluZyBwcm9wZXJ0aWVzIGxpa2UgdGhlIGZvbGxvd2luZ1xuLy8vXG4vLy8gQGlnbm9yZSBZb3UgY2FuIGFsc28gdXNlIGBmYWxzZWAgaW5zdGVhZCBvZiBgbnVsbGAuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGRpcmVjdGlvbmFsIHZhbHVlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkb3R0ZWQgbnVsbCk7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgMTBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuLy8vICAgICBtYXJnaW4tbGVmdDogMDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH1cblxuQGZ1bmN0aW9uIGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGNvbGxhcHNlLWRpcmVjdGlvbmFsc2AgaXMgZGVwcmVjYXRlZCBhbmQgXCIgK1xuICAgIFwid2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJG91dHB1dDogbnVsbDtcblxuICAkYTogbnRoKCR2YWxzLCAxKTtcbiAgJGI6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCAyKSk7XG4gICRjOiBpZihsZW5ndGgoJHZhbHMpIDwgMywgJGEsIG50aCgkdmFscywgMykpO1xuICAkZDogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIGlmKGxlbmd0aCgkdmFscykgPCA0LCAyLCA0KSkpO1xuXG4gIEBpZiAkYSA9PSAwIHsgJGE6IDA7IH1cbiAgQGlmICRiID09IDAgeyAkYjogMDsgfVxuICBAaWYgJGMgPT0gMCB7ICRjOiAwOyB9XG4gIEBpZiAkZCA9PSAwIHsgJGQ6IDA7IH1cblxuICBAaWYgJGEgPT0gJGIgYW5kICRhID09ICRjIGFuZCAkYSA9PSAkZCB7ICRvdXRwdXQ6ICRhOyAgICAgICAgICB9XG4gIEBlbHNlIGlmICRhID09ICRjIGFuZCAkYiA9PSAkZCAgICAgICAgIHsgJG91dHB1dDogJGEgJGI7ICAgICAgIH1cbiAgQGVsc2UgaWYgJGIgPT0gJGQgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYzsgICAgfVxuICBAZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjICRkOyB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuXG4vLy8gT3V0cHV0IGRpcmVjdGlvbmFsIHByb3BlcnRpZXMsIGZvciBpbnN0YW5jZSBgbWFyZ2luYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcmVcbi8vLyAgIFByZWZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN1ZlxuLy8vICAgU3VmZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgdmFsdWVzXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbGxhcHNlLWRpcmVjdGlvbmFsc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcblxuQG1peGluIGRpcmVjdGlvbmFsLXByb3BlcnR5KCRwcmUsICRzdWYsICR2YWxzKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZShcImRpcmVjdGlvbmFsLXByb3BlcnR5XCIpO1xuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gIC8vIFByb3BlcnR5IE5hbWVzXG4gICR0b3A6ICAgICRwcmUgKyBcIi10b3BcIiAgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRib3R0b206ICRwcmUgKyBcIi1ib3R0b21cIiArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRsZWZ0OiAgICRwcmUgKyBcIi1sZWZ0XCIgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRyaWdodDogICRwcmUgKyBcIi1yaWdodFwiICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRhbGw6ICAgICRwcmUgKyAgICAgICAgICAgICBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuXG4gICR2YWxzOiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpO1xuXG4gIEBpZiBjb250YWlucy1mYWxzeSgkdmFscykge1xuICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skdG9wfTogbnRoKCR2YWxzLCAxKTsgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAxKTsgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRyaWdodH06IG50aCgkdmFscywgMik7IH1cbiAgICB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAyIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAxKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDMge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gNCB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDQpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCA0KTsgfVxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgI3skYWxsfTogJHZhbHM7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIi8vIFVzZWQgZm9yIGNyZWF0aW5nIHRoZSBzb3VyY2Ugc3RyaW5nIGZvciBmb250cyB1c2luZyBAZm9udC1mYWNlXG4vLyBSZWZlcmVuY2U6IGh0dHA6Ly9nb28uZ2wvUnUxYktQXG5cbkBmdW5jdGlvbiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBmb250LXVybC1wcmVmaXhlcmAgaXMgZGVwcmVjYXRlZCBhbmQgXCIgK1xuICAgIFwid2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICBAcmV0dXJuIGZvbnQtdXJsO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIHVybDtcbiAgfVxufVxuXG5AZnVuY3Rpb24gZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzLFxuICAkZm9udC11cmwpIHtcblxuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGZvbnQtc291cmNlLWRlY2xhcmF0aW9uYCBpcyBkZXByZWNhdGVkIFwiICtcbiAgICBcImFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkc3JjOiAoKTtcblxuICAkZm9ybWF0cy1tYXA6IChcbiAgICBlb3Q6ICAgXCIjeyRmaWxlLXBhdGh9LmVvdD8jaWVmaXhcIiBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcbiAgICB3b2ZmMjogXCIjeyRmaWxlLXBhdGh9LndvZmYyXCIgZm9ybWF0KFwid29mZjJcIiksXG4gICAgd29mZjogIFwiI3skZmlsZS1wYXRofS53b2ZmXCIgZm9ybWF0KFwid29mZlwiKSxcbiAgICB0dGY6ICAgXCIjeyRmaWxlLXBhdGh9LnR0ZlwiIGZvcm1hdChcInRydWV0eXBlXCIpLFxuICAgIHN2ZzogICBcIiN7JGZpbGUtcGF0aH0uc3ZnIyN7JGZvbnQtZmFtaWx5fVwiIGZvcm1hdChcInN2Z1wiKVxuICApO1xuXG4gIEBlYWNoICRrZXksICR2YWx1ZXMgaW4gJGZvcm1hdHMtbWFwIHtcbiAgICBAaWYgY29udGFpbnMoJGZpbGUtZm9ybWF0cywgJGtleSkge1xuICAgICAgJGZpbGUtcGF0aDogbnRoKCR2YWx1ZXMsIDEpO1xuICAgICAgJGZvbnQtZm9ybWF0OiBudGgoJHZhbHVlcywgMik7XG5cbiAgICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCBmb250LXVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHNyYztcbn1cbiIsIkBmdW5jdGlvbiBfZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtdHlwZSwgJGdyYWRpZW50LXBvc2l0aW9ucykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICBAaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IGxpbmVhcilcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJGdyYWRpZW50LXBvc2l0aW9ucztcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfbGluZWFyLWFuZ2xlLXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJG9mZnNldDogbnVsbDtcbiAgJHVuaXQtc2hvcnQ6ICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDIsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdW5pdC1sb25nOiAgIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgQGlmICgkdW5pdC1sb25nID09IFwiZ3JhZFwiKSBvclxuICAgICAgKCR1bml0LWxvbmcgPT0gXCJ0dXJuXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1sb25nID09IFwiZ3JhZFwiLCAtMTAwZ3JhZCAqIDMsIC0wLjc1dHVybik7XG4gIH1cblxuICBAZWxzZSBpZiAoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIikgb3JcbiAgICAgICAgICAgKCR1bml0LXNob3J0ID09IFwicmFkXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1zaG9ydCA9PSBcImRlZ1wiLCAtOTAgKiAzLCAxLjZyYWQpO1xuICB9XG5cbiAgQGlmICRvZmZzZXQge1xuICAgICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgICAkbnVtOiBfc3RyLXRvLW51bSgkZmlyc3QtdmFsKTtcblxuICAgICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICgkb2Zmc2V0IC0gJG51bSkgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9saW5lYXItZ3JhZGllbnQtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRoYXMtbXVsdGlwbGUtdmFsczogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiIFwiKTtcbiAgJGhhcy1zaW5nbGUtcG9zaXRpb246IHVucXVvdGUoX3Bvc2l0aW9uLWZsaXBwZXIoJGZpcnN0LXZhbCkgKyBcIlwiKTtcbiAgJGhhcy1hbmdsZTogaXMtbnVtYmVyKHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAxKSk7XG5cbiAgQGlmICRoYXMtbXVsdGlwbGUtdmFscyB7XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1zaW5nbGUtcG9zaXRpb24gIT0gXCJcIiB7XG4gICAgJHBvczogdW5xdW90ZSgkaGFzLXNpbmdsZS1wb3NpdGlvbiArIFwiXCIpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1hbmdsZSB7XG4gICAgLy8gUm90YXRlIGRlZ3JlZSBmb3Igd2Via2l0XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9saW5lYXItcG9zaXRpb25zLXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgJHR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHNwZWM6IG51bGw7XG4gICRkZWdyZWU6IG51bGw7XG4gICRzaWRlOiBudWxsO1xuICAkY29ybmVyOiBudWxsO1xuICAkbGVuZ3RoOiBsZW5ndGgoJHBvcyk7XG4gIC8vIFBhcnNlIFNpZGUgYW5kIGNvcm5lciBwb3NpdGlvbnNcbiAgQGlmICgkbGVuZ3RoID4gMSkge1xuICAgIEBpZiBudGgoJHBvcywgMSkgPT0gXCJ0b1wiIHsgLy8gTmV3ZXIgc3ludGF4XG4gICAgICAkc2lkZTogbnRoKCRwb3MsIDIpO1xuXG4gICAgICBAaWYgJGxlbmd0aCA9PSAyIHsgLy8gZWcuIHRvIHRvcFxuICAgICAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHsgLy8gZWcuIHRvIHRvcCBsZWZ0XG4gICAgICAgICRjb3JuZXI6IG50aCgkcG9zLCAzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAyIHsgLy8gT2xkZXIgc3ludGF4IChcInRvcCBsZWZ0XCIpXG4gICAgICAkc2lkZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDEpKTtcbiAgICAgICRjb3JuZXI6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgfVxuXG4gICAgQGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgICRzcGVjOiB0byAkc2lkZSAkY29ybmVyO1xuICB9XG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMSB7XG4gICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICBAaWYgJHR5cGUgPT0gc3RyaW5nIHtcbiAgICAgICRkZWdyZWU6ICRwb3M7XG4gICAgICAkc3BlYzogdG8gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRkZWdyZWU6IC0yNzAgLSAkcG9zOyAvL3JvdGF0ZSB0aGUgZ3JhZGllbnQgb3Bwb3NpdGUgZnJvbSBzcGVjXG4gICAgICAkc3BlYzogJHBvcztcbiAgICB9XG4gIH1cbiAgJGRlZ3JlZTogdW5xdW90ZSgkZGVncmVlICsgXCIsXCIpO1xuICAkc3BlYzogICB1bnF1b3RlKCRzcGVjICsgXCIsXCIpO1xuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJGRlZ3JlZSAkc3BlYztcbn1cblxuQGZ1bmN0aW9uIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfcG9zaXRpb24tZmxpcHBlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQHJldHVybiBpZigkcG9zID09IGxlZnQsIHJpZ2h0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSByaWdodCwgbGVmdCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gdG9wLCBib3R0b20sIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IGJvdHRvbSwgdG9wLCBudWxsKTtcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkdmFsLTE6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaGFzLW11bHRpcGxlLXZhbHMgLSAxKTtcbiAgJHZhbC0yOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGhhcy1tdWx0aXBsZS12YWxzICsgMSwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR2YWwtMzogbnVsbDtcbiAgJGhhcy12YWwtMzogc3RyLWluZGV4KCR2YWwtMiwgXCIgXCIpO1xuXG4gIEBpZiAkaGFzLXZhbC0zIHtcbiAgICAkdmFsLTM6IHN0ci1zbGljZSgkdmFsLTIsICRoYXMtdmFsLTMgKyAxLCBzdHItbGVuZ3RoKCR2YWwtMikpO1xuICAgICR2YWwtMjogc3RyLXNsaWNlKCR2YWwtMiwgMSwgJGhhcy12YWwtMyAtIDEpO1xuICB9XG5cbiAgJHBvczogX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0xKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTIpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMyk7XG4gICRwb3M6IHVucXVvdGUoJHBvcyArIFwiXCIpO1xuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIC8vIFVzZSBvbGQgc3BlYyBmb3Igd2Via2l0XG4gIEBpZiAkdmFsLTEgPT0gXCJ0b1wiIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgLy8gQnJpbmcgdGhlIGNvZGUgdXAgdG8gc3BlY1xuICBAZWxzZSB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3JhZGlhbC1hcmctcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAZWFjaCAkdmFsdWUgaW4gJGcxLCAkZzIge1xuICAgICRmaXJzdC12YWw6IG50aCgkdmFsdWUsIDEpO1xuICAgICRwb3MtdHlwZTogIHR5cGUtb2YoJGZpcnN0LXZhbCk7XG4gICAgJHNwZWMtYXQtaW5kZXg6IG51bGw7XG5cbiAgICAvLyBEZXRlcm1pbmUgaWYgc3BlYyB3YXMgcGFzc2VkIHRvIG1peGluXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBsaXN0IHtcbiAgICAgICRzcGVjLWF0LWluZGV4OiBpZihpbmRleCgkdmFsdWUsIGF0KSwgaW5kZXgoJHZhbHVlLCBhdCksIGZhbHNlKTtcbiAgICB9XG4gICAgQGlmICRzcGVjLWF0LWluZGV4IHtcbiAgICAgIEBpZiAkc3BlYy1hdC1pbmRleCA+IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkc3BlYy1hdC1pbmRleCAtIDEpIHtcbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHNoYXBlLXNpemUgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHNwZWMtYXQtaW5kZXggPT0gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJGcxOiBudWxsO1xuICAgIH1cblxuICAgIC8vIElmIG5vdCBzcGVjIGNhbGN1bGF0ZSBjb3JyZWN0IHZhbHVlc1xuICAgIEBlbHNlIHtcbiAgICAgIEBpZiAoJHBvcy10eXBlICE9IGNvbG9yKSBvciAoJGZpcnN0LXZhbCAhPSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAgICAgQGlmICgkcG9zLXR5cGUgPT0gbnVtYmVyKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNlbnRlclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInRvcFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInJpZ2h0XCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiYm90dG9tXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwibGVmdFwiKSB7XG5cbiAgICAgICAgICAkcG9zOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHBvcyA9PSAkZzEge1xuICAgICAgICAgICAgJGcxOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIGlmXG4gICAgICAgICAgICgkZmlyc3QtdmFsID09IFwiZWxsaXBzZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNpcmNsZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvbnRhaW5cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb3ZlclwiKSB7XG5cbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICR2YWx1ZSA9PSAkZzEge1xuICAgICAgICAgICAgJGcxOiBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlbHNlIGlmICR2YWx1ZSA9PSAkZzIge1xuICAgICAgICAgICAgJGcyOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAcmV0dXJuICRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZTtcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvcykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcbiAgICAgICAgICAgICB1bnF1b3RlKGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LFwiLCBudWxsKSk7XG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuXG4gICRzcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skcG9zLXNwZWN9XCI7XG5cbiAgLy8gQWRkIGNvbW1hXG4gIEBpZiAoJHNwZWMgIT0gXCIgIFwiKSB7XG4gICAgJHNwZWM6IFwiI3skc3BlY30sXCI7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaXMtc3BlYy1zeW50YXg6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcImF0XCIpO1xuXG4gIEBpZiAkaXMtc3BlYy1zeW50YXggYW5kICRpcy1zcGVjLXN5bnRheCA+IDEge1xuICAgICRrZXl3b3JkOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGlzLXNwZWMtc3ludGF4IC0gMik7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAgICRwb3M6IGFwcGVuZCgkcG9zLCAka2V5d29yZCwgY29tbWEpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaXMtc3BlYy1zeW50YXggPT0gMSB7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiBzdHItaW5kZXgoJGltYWdlLCBcImNvdmVyXCIpIG9yIHN0ci1pbmRleCgkaW1hZ2UsIFwiY29udGFpblwiKSB7XG4gICAgQHdhcm4gXCJSYWRpYWwtZ3JhZGllbnQgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byBjb25mb3JtIHRvIGxhdGVzdCBzcGVjLlwiO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiBudWxsLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIi8vIFVzZXIgZm9yIGxpbmVhciBhbmQgcmFkaWFsIGdyYWRpZW50cyB3aXRoaW4gYmFja2dyb3VuZC1pbWFnZSBvciBib3JkZXItaW1hZ2UgcHJvcGVydGllc1xuXG5AZnVuY3Rpb24gX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50cywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3I6IGZhbHNlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3JlbmRlci1ncmFkaWVudHNgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRwcmUtc3BlYzogbnVsbDtcbiAgJHNwZWM6IG51bGw7XG4gICR2ZW5kb3ItZ3JhZGllbnRzOiBudWxsO1xuICBAaWYgJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyIHtcbiAgICBAaWYgJGdyYWRpZW50LXBvc2l0aW9ucyB7XG4gICAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwge1xuICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgQGlmICR2ZW5kb3Ige1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiAtI3skdmVuZG9yfS0jeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRwcmUtc3BlY30gJGdyYWRpZW50cyk7XG4gIH1cbiAgQGVsc2UgaWYgJHZlbmRvciA9PSBmYWxzZSB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IFwiI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skc3BlY30gI3skZ3JhZGllbnRzfSlcIjtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogdW5xdW90ZSgkdmVuZG9yLWdyYWRpZW50cyk7XG4gIH1cbiAgQHJldHVybiAkdmVuZG9yLWdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9zaGFwZS1zaXplLXN0cmlwcGVyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkc2hhcGUtc2l6ZS1zcGVjOiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHNoYXBlLXNpemUge1xuICAgIEBpZiAoJHZhbHVlID09IFwiY292ZXJcIikgb3IgKCR2YWx1ZSA9PSBcImNvbnRhaW5cIikge1xuICAgICAgJHZhbHVlOiBudWxsO1xuICAgIH1cbiAgICAkc2hhcGUtc2l6ZS1zcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skdmFsdWV9XCI7XG4gIH1cbiAgQHJldHVybiAkc2hhcGUtc2l6ZS1zcGVjO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBsaW5lYXIvcmFkaWFsLWdyYWRpZW50LXBhcnNlcnMuXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX3N0ci10by1udW0oJHN0cmluZykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9zdHItdG8tbnVtYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAvLyBNYXRyaWNlc1xuICAkc3RyaW5nczogXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCI7XG4gICRudW1iZXJzOiAgMCAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcgICA4ICAgOTtcblxuICAvLyBSZXN1bHRcbiAgJHJlc3VsdDogMDtcbiAgJGRpdmlkZXI6IDA7XG4gICRtaW51czogZmFsc2U7XG5cbiAgLy8gTG9vcGluZyB0aHJvdWdoIGFsbCBjaGFyYWN0ZXJzXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkc3RyaW5nKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSk7XG4gICAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJGNoYXJhY3Rlcik7XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSBcIi1cIiB7XG4gICAgICAkbWludXM6IHRydWU7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGNoYXJhY3RlciA9PSBcIi5cIiB7XG4gICAgICAkZGl2aWRlcjogMTtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgbm90ICRpbmRleCB7XG4gICAgICAgICRyZXN1bHQ6IGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbiAgICAgICAgQHJldHVybiBfY29udmVydC11bml0cygkcmVzdWx0LCBzdHItc2xpY2UoJHN0cmluZywgJGkpKTtcbiAgICAgIH1cblxuICAgICAgJG51bWJlcjogbnRoKCRudW1iZXJzLCAkaW5kZXgpO1xuXG4gICAgICBAaWYgJGRpdmlkZXIgPT0gMCB7XG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMDtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAvLyBNb3ZlIHRoZSBkZWNpbWFsIGRvdCB0byB0aGUgbGVmdFxuICAgICAgICAkZGl2aWRlcjogJGRpdmlkZXIgKiAxMDtcbiAgICAgICAgJG51bWJlcjogJG51bWJlciAvICRkaXZpZGVyO1xuICAgICAgfVxuXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG59XG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXG5cbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb25cIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1uYW1lKCRuYW1lcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1uYW1lXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1uYW1lLCAkbmFtZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLWR1cmF0aW9uXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb25cIik7XG5cbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgkdmFsdWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudFwiKTtcblxuICAvLyBpbmZpbml0ZSB8IDxudW1iZXI+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICR2YWx1ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uKCRkaXJlY3Rpb25zLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLWRpcmVjdGlvblwiKTtcblxuICAvLyBub3JtYWwgfCBhbHRlcm5hdGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRpcmVjdGlvbiwgJGRpcmVjdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tcGxheS1zdGF0ZSgkc3RhdGVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLXBsYXktc3RhdGVcIik7XG5cbiAgLy8gcnVubmluZyB8IHBhdXNlZFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tZGVsYXlcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlKCRtb2Rlcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1maWxsLW1vZGVcIik7XG5cbiAgLy8gbm9uZSB8IGZvcndhcmRzIHwgYmFja3dhcmRzIHwgYm90aFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCAkbW9kZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gYXBwZWFyYW5jZSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhcHBlYXJhbmNlXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFwcGVhcmFuY2UsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJiYWNrZmFjZS12aXNpYmlsaXR5XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZHMgdXNpbmcgc2hvcnRoYW5kXG4vLyBub3RhdGlvbi5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQoJGJhY2tncm91bmRzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYmFja2dyb3VuZFwiKTtcblxuICAkd2Via2l0LWJhY2tncm91bmRzOiAoKTtcbiAgJHNwZWMtYmFja2dyb3VuZHM6ICgpO1xuXG4gIEBlYWNoICRiYWNrZ3JvdW5kIGluICRiYWNrZ3JvdW5kcyB7XG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkYmFja2dyb3VuZC10eXBlOiB0eXBlLW9mKCRiYWNrZ3JvdW5kKTtcblxuICAgIEBpZiAkYmFja2dyb3VuZC10eXBlID09IHN0cmluZyBvciAkYmFja2dyb3VuZC10eXBlID09IGxpc3Qge1xuICAgICAgJGJhY2tncm91bmQtc3RyOiBpZigkYmFja2dyb3VuZC10eXBlID09IGxpc3QsIG50aCgkYmFja2dyb3VuZCwgMSksICRiYWNrZ3JvdW5kKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICR3ZWJraXQtYmFja2dyb3VuZHM6IGFwcGVuZCgkd2Via2l0LWJhY2tncm91bmRzLCAkd2Via2l0LWJhY2tncm91bmQsIGNvbW1hKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kczogICBhcHBlbmQoJHNwZWMtYmFja2dyb3VuZHMsICAgJHNwZWMtYmFja2dyb3VuZCwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kOiAkd2Via2l0LWJhY2tncm91bmRzO1xuICBiYWNrZ3JvdW5kOiAkc3BlYy1iYWNrZ3JvdW5kcztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQtaW1hZ2UgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoXG4vLyBncmFkaWVudHMsIG9yIGZvciBzdHJpbmdpbmcgbXVsdGlwbGUgZ3JhZGllbnRzIHRvZ2V0aGVyLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZSgkaW1hZ2VzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYmFja2dyb3VuZC1pbWFnZVwiKTtcblxuICAkd2Via2l0LWltYWdlczogKCk7XG4gICRzcGVjLWltYWdlczogKCk7XG5cbiAgQGVhY2ggJGltYWdlIGluICRpbWFnZXMge1xuICAgICR3ZWJraXQtaW1hZ2U6ICgpO1xuICAgICRzcGVjLWltYWdlOiAoKTtcblxuICAgIEBpZiAodHlwZS1vZigkaW1hZ2UpID09IHN0cmluZykge1xuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkaW1hZ2UsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkaW1hZ2UsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICRpbWFnZTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgJGltYWdlO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogIG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHdlYmtpdC1pbWFnZXM6IGFwcGVuZCgkd2Via2l0LWltYWdlcywgJHdlYmtpdC1pbWFnZSwgY29tbWEpO1xuICAgICRzcGVjLWltYWdlczogICBhcHBlbmQoJHNwZWMtaW1hZ2VzLCAgICRzcGVjLWltYWdlLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtaW1hZ2U6ICR3ZWJraXQtaW1hZ2VzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAkc3BlYy1pbWFnZXM7XG59XG4iLCJAbWl4aW4gYm9yZGVyLWltYWdlKCRib3JkZXJzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm9yZGVyLWltYWdlXCIpO1xuXG4gICR3ZWJraXQtYm9yZGVyczogKCk7XG4gICRzcGVjLWJvcmRlcnM6ICgpO1xuXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xuICAgICR3ZWJraXQtYm9yZGVyOiAoKTtcbiAgICAkc3BlYy1ib3JkZXI6ICgpO1xuICAgICRib3JkZXItdHlwZTogdHlwZS1vZigkYm9yZGVyKTtcblxuICAgIEBpZiAkYm9yZGVyLXR5cGUgPT0gc3RyaW5nIG9yIGxpc3Qge1xuICAgICAgJGJvcmRlci1zdHI6IGlmKCRib3JkZXItdHlwZSA9PSBsaXN0LCBudGgoJGJvcmRlciwgMSksICRib3JkZXIpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgIH1cblxuICAgICR3ZWJraXQtYm9yZGVyczogYXBwZW5kKCR3ZWJraXQtYm9yZGVycywgJHdlYmtpdC1ib3JkZXIsIGNvbW1hKTtcbiAgICAkc3BlYy1ib3JkZXJzOiAgIGFwcGVuZCgkc3BlYy1ib3JkZXJzLCAgICRzcGVjLWJvcmRlciwgICBjb21tYSk7XG4gIH1cblxuICAtd2Via2l0LWJvcmRlci1pbWFnZTogJHdlYmtpdC1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1pbWFnZTogJHNwZWMtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4vL0V4YW1wbGVzOlxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpIDIwIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSAyMCAzMCA0MCA1MCBzdHJldGNoIHJvdW5kKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShyYWRpYWwtZ3JhZGllbnQodG9wLCBjb3Zlciwgb3JhbmdlLCB5ZWxsb3csIG9yYW5nZSkpO1xuIiwiQG1peGluIGNhbGMoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjYWxjXCIpO1xuXG4gICN7JHByb3BlcnR5fTogLXdlYmtpdC1jYWxjKCN7JHZhbHVlfSk7XG4gICN7JHByb3BlcnR5fTogY2FsYygjeyR2YWx1ZX0pO1xufVxuIiwiQG1peGluIGNvbHVtbnMoJGFyZzogYXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbnNcIik7XG5cbiAgLy8gPGNvbHVtbi1jb3VudD4gfHwgPGNvbHVtbi13aWR0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1ucywgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkaW50OiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLWNvdW50XCIpO1xuXG4gIC8vIGF1dG8gfHwgaW50ZWdlclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tY291bnQsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCRsZW5ndGg6IG5vcm1hbCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1nYXBcIik7XG5cbiAgLy8gbm9ybWFsIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZ2FwLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWZpbGwoJGFyZzogYXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1maWxsXCIpO1xuXG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1maWxsLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUoJGFyZykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1ydWxlXCIpO1xuXG4gIC8vIDxib3JkZXItd2lkdGg+IHx8IDxib3JkZXItc3R5bGU+IHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tcnVsZS1jb2xvclwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1jb2xvciwgJGNvbG9yLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtc3R5bGUoJHN0eWxlOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLXJ1bGUtc3R5bGVcIik7XG5cbiAgLy8gbm9uZSB8IGhpZGRlbiB8IGRhc2hlZCB8IGRvdHRlZCB8IGRvdWJsZSB8IGdyb292ZSB8IGluc2V0IHwgaW5zZXQgfCBvdXRzZXQgfCByaWRnZSB8IHNvbGlkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS13aWR0aCgkd2lkdGg6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tcnVsZS13aWR0aFwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS13aWR0aCwgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXNwYW4oJGFyZzogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1zcGFuXCIpO1xuXG4gIC8vIG5vbmUgfHwgYWxsXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1zcGFuLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXdpZHRoKCRsZW5ndGg6IGF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4td2lkdGhcIik7XG5cbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXdpZHRoLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGZpbHRlcigkZnVuY3Rpb246IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmaWx0ZXJcIik7XG5cbiAgLy8gPGZpbHRlci1mdW5jdGlvbj4gWzxmaWx0ZXItZnVuY3Rpb25dKiB8IG5vbmVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmlsdGVyLCAkZnVuY3Rpb24sIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveFwiKTtcblxuICBAaW5jbHVkZSBkaXNwbGF5LWJveDtcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xuICBAaW5jbHVkZSBib3gtYWxpZ24oJGFsaWduKTtcbn1cblxuQG1peGluIGRpc3BsYXktYm94IHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJkaXNwbGF5LWJveFwiKTtcblxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LW9yaWVudFwiKTtcblxuLy8gaG9yaXpvbnRhbHx2ZXJ0aWNhbHxpbmxpbmUtYXhpc3xibG9jay1heGlzfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJG9yaWVudCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1wYWNrKCRwYWNrOiBzdGFydCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1wYWNrXCIpO1xuXG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtYWxpZ25cIik7XG5cbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LWRpcmVjdGlvblwiKTtcblxuLy8gbm9ybWFsfHJldmVyc2V8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtbGluZXMoJGxpbmVzOiBzaW5nbGUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtbGluZXNcIik7XG5cbi8vIHNpbmdsZXxtdWx0aXBsZVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRsaW5lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtb3JkaW5hbC1ncm91cFwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDApIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtZmxleFwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1mbGV4LWdyb3VwXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcbi8vIFVuaWZpZWQgYXR0cmlidXRlcyBmb3IgMjAwOSwgMjAxMSwgYW5kIDIwMTIgZmxhdm91cnMuXG5cbi8vIDIwMDkgLSBkaXNwbGF5IChib3ggfCBpbmxpbmUtYm94KVxuLy8gMjAxMSAtIGRpc3BsYXkgKGZsZXhib3ggfCBpbmxpbmUtZmxleGJveClcbi8vIDIwMTIgLSBkaXNwbGF5IChmbGV4IHwgaW5saW5lLWZsZXgpXG5AbWl4aW4gZGlzcGxheSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJkaXNwbGF5XCIpO1xuXG4vLyBmbGV4IHwgaW5saW5lLWZsZXhcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgLy8gMjAwOVxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgIGRpc3BsYXk6IGJveDtcblxuICAgIC8vIDIwMTJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWJveDtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIH0gQGVsc2Uge1xuICAgIGRpc3BsYXk6ICR2YWx1ZTtcbiAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleFwiKTtcblxuICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXG4gICRmbGV4LWdyb3c6IG50aCgkdmFsdWUsIDEpO1xuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApLCAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmllbnQgKCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBpbmxpbmUtYXhpcyB8IGJsb2NrLWF4aXMpXG4vLyAgICAgIC0gYm94LWRpcmVjdGlvbiAobm9ybWFsIHwgcmV2ZXJzZSlcbi8vIDIwMTEgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWU6IHJvdykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXgtZGlyZWN0aW9uXCIpO1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICR2YWx1ZS0yMDA5OiAkdmFsdWU7XG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICRkaXJlY3Rpb246IG5vcm1hbDtcblxuICBAaWYgJHZhbHVlID09IHJvdyB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiY29sdW1uLXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtbGluZXMgKHNpbmdsZSB8IG11bHRpcGxlKVxuLy8gMjAxMSAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZTogbm93cmFwKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC13cmFwXCIpO1xuXG4gIC8vIEFsdCB2YWx1ZXNcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IG5vd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogc2luZ2xlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSB3cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJ3cmFwLXJldmVyc2VcIiB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH1cblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDExIC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXgtZmxvd1wiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWZsb3csICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmRpbmFsLWdyb3VwIChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXgtb3JkZXIgKGludGVnZXIpXG4vLyAyMDEyIC0gb3JkZXIgKGludGVnZXIpXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcIm9yZGVyXCIpO1xuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihvcmRlciwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXgtZ3Jvd1wiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWdyb3csICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC1zaHJpbmtcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC1iYXNpc1wiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XG59XG5cbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMiAtIGp1c3RpZnktY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZClcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwianVzdGlmeS1jb250ZW50XCIpO1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJGFsdC12YWx1ZToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1wYWNrOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTEgLSBmbGV4LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1pdGVtcyAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFsaWduLWl0ZW1zXCIpO1xuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcblxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWl0ZW1zLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtYWxpZ246ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWl0ZW0tYWxpZ24gKGF1dG8gfCBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1zZWxmIChhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYWxpZ24tc2VsZlwiKTtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWUtMjAxMTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtbGluZS1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgfCBkaXN0cmlidXRlIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFsaWduLWNvbnRlbnRcIik7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cbiIsIkBtaXhpbiBmb250LWZhY2UoXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJHdlaWdodDogbm9ybWFsLFxuICAkc3R5bGU6IG5vcm1hbCxcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xuXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgICAgICRmb250LWZhbWlseSxcbiAgICAgICRmaWxlLXBhdGgsXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXG4gICAgICAkZmlsZS1mb3JtYXRzLFxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxuICAgICk7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBtaXhpbiBmb250LWZlYXR1cmUtc2V0dGluZ3MoJHNldHRpbmdzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZm9udC1mZWF0dXJlLXNldHRpbmdzXCIpO1xuXG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAwIHsgJHNldHRpbmdzOiBub25lOyB9XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZvbnQtZmVhdHVyZS1zZXR0aW5ncywgJHNldHRpbmdzLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiLy8gSGlEUEkgbWl4aW4uIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxuQG1peGluIGhpZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiaGlkcGlcIik7XG5cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyRyYXRpb30vMSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IHJvdW5kKCRyYXRpbyAqIDk2ZHBpKSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICRyYXRpbyAqIDFkcHB4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIkBtaXhpbiBoeXBoZW5zKCRoeXBoZW5hdGlvbjogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImh5cGhlbnNcIik7XG5cbiAgLy8gbm9uZSB8IG1hbnVhbCB8IGF1dG9cbiAgQGluY2x1ZGUgcHJlZml4ZXIoaHlwaGVucywgJGh5cGhlbmF0aW9uLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQG1peGluIGltYWdlLXJlbmRlcmluZyAoJG1vZGU6YXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImltYWdlLXJlbmRlcmluZ1wiKTtcblxuICBAaWYgKCRtb2RlID09IGNyaXNwLWVkZ2VzKSB7XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogbmVhcmVzdC1uZWlnaGJvcjsgLy8gSUU4K1xuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XG4gIH1cbn1cbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImtleWZyYW1lc1wiKTtcblxuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWUgIWdsb2JhbDtcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci1tb3ppbGxhOiB0cnVlICFnbG9iYWw7XG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0ICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0ICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmEgICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyAgICAgICFnbG9iYWw7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRnMSwgJGcyOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImxpbmVhci1ncmFkaWVudFwiKTtcblxuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkcG9zLXNwZWM6IG51bGw7XG4gICRwb3MtZGVncmVlOiBudWxsO1xuXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XG4gICAgJGcxMDogJGc5OyAkZzk6ICRnODsgJGc4OiAkZzc7ICRnNzogJGc2OyAkZzY6ICRnNTtcbiAgICAkZzU6ICRnNDsgJGc0OiAkZzM7ICRnMzogJGcyOyAkZzI6ICRnMTsgJGcxOiAkcG9zO1xuICAgICRwb3M6IG51bGw7XG4gIH1cblxuICBAaWYgJHBvcyB7XG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGcxLCAxKTtcblxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJwZXJzcGVjdGl2ZVwiKTtcblxuICAvLyBub25lIHwgPGxlbmd0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJwZXJzcGVjdGl2ZS1vcmlnaW5cIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gcGxhY2Vob2xkZXIge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInBsYWNlaG9sZGVyXCIpO1xuXG4gICRwbGFjZWhvbGRlcnM6IFwiOi13ZWJraXQtaW5wdXRcIiBcIjotbW96XCIgXCItbW96XCIgXCItbXMtaW5wdXRcIjtcbiAgQGVhY2ggJHBsYWNlaG9sZGVyIGluICRwbGFjZWhvbGRlcnMge1xuICAgICY6I3skcGxhY2Vob2xkZXJ9LXBsYWNlaG9sZGVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gUmVxdWlyZXMgU2FzcyAzLjErXG5AbWl4aW4gcmFkaWFsLWdyYWRpZW50KCRnMSwgJGcyLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRwb3M6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRzaGFwZS1zaXplOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJyYWRpYWwtZ3JhZGllbnRcIik7XG5cbiAgJGRhdGE6IF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpO1xuICAkZzE6ICBudGgoJGRhdGEsIDEpO1xuICAkZzI6ICBudGgoJGRhdGEsIDIpO1xuICAkcG9zOiBudGgoJGRhdGEsIDMpO1xuICAkc2hhcGUtc2l6ZTogbnRoKCRkYXRhLCA0KTtcblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTdHJpcCBkZXByZWNhdGVkIGNvdmVyL2NvbnRhaW4gZm9yIHNwZWNcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZpcnN0LWNvbG9yOiBudGgoJGZ1bGwsIDEpO1xuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZmlyc3QtY29sb3IsIDEpO1xuXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgLy8gQWRkIENvbW1hcyBhbmQgc3BhY2VzXG4gICRzaGFwZS1zaXplOiBpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSwgXCIsIG51bGwpO1xuICAkcG9zOiAgICAgICAgaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCk7XG4gICRwb3Mtc3BlYzogICBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG4gICRzaGFwZS1zaXplLXNwZWM6IGlmKCgkc2hhcGUtc2l6ZS1zcGVjICE9IFwiIFwiKSBhbmQgKCRwb3MgPT0gbnVsbCksIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSwgXCIsIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSBcIik7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoI3skcG9zfSN7JHNoYXBlLXNpemV9I3skZnVsbH0pO1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoI3skc2hhcGUtc2l6ZS1zcGVjfSN7JHBvcy1zcGVjfSN7JGZ1bGx9KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBPdXRwdXRzIHRoZSBzcGVjIGFuZCBwcmVmaXhlZCB2ZXJzaW9ucyBvZiB0aGUgYDo6c2VsZWN0aW9uYCBwc2V1ZG8tZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0Jvb2x9ICRjdXJyZW50LXNlbGVjdG9yIFtmYWxzZV1cclxuLy8vICAgSWYgc2V0IHRvIGB0cnVlYCwgaXQgdGFrZXMgdGhlIGN1cnJlbnQgZWxlbWVudCBpbnRvIGNvbnNpZGVyYXRpb24uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzZWxlY3Rpb24odHJ1ZSkge1xyXG4vLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgICB9XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjotbW96LXNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQ6OnNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHNlbGVjdGlvbigkY3VycmVudC1zZWxlY3RvcjogZmFsc2UpIHtcclxuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInNlbGVjdGlvblwiKTtcclxuXHJcbiAgQGlmICRjdXJyZW50LXNlbGVjdG9yIHtcclxuICAgICY6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQG1peGluIHRleHQtZGVjb3JhdGlvbigkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0ZXh0LWRlY29yYXRpb25cIik7XG5cbi8vIDx0ZXh0LWRlY29yYXRpb24tbGluZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1zdHlsZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1jb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLCAkdmFsdWUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tbGluZSgkbGluZTogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRleHQtZGVjb3JhdGlvbi1saW5lXCIpO1xuXG4vLyBub25lIHx8IHVuZGVybGluZSB8fCBvdmVybGluZSB8fCBsaW5lLXRocm91Z2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWxpbmUsICRsaW5lLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLXN0eWxlKCRzdHlsZTogc29saWQpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0ZXh0LWRlY29yYXRpb24tc3R5bGVcIik7XG5cbi8vIHNvbGlkIHx8IGRvdWJsZSB8fCBkb3R0ZWQgfHwgZGFzaGVkIHx8IHdhdnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLXN0eWxlLCAkc3R5bGUsIG1veiB3ZWJraXQpO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWNvbG9yKCRjb2xvcjogY3VycmVudENvbG9yKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidGV4dC1kZWNvcmF0aW9uLWNvbG9yXCIpO1xuXG4vLyBjdXJyZW50Q29sb3IgfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tY29sb3IsICRjb2xvciwgbW96KTtcbn1cbiIsIkBtaXhpbiB0cmFuc2Zvcm0oJHByb3BlcnR5OiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNmb3JtXCIpO1xuXG4gIC8vIG5vbmUgfCA8dHJhbnNmb3JtLWZ1bmN0aW9uPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNmb3JtLW9yaWdpblwiKTtcblxuICAvLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxuICAvLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxuICAvLyB6LWF4aXMgLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1vcmlnaW4sICRheGVzLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tc3R5bGUoJHN0eWxlOiBmbGF0KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNmb3JtLXN0eWxlXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNpdGlvblwiKTtcblxuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XG4gICRuZWVkcy1wcmVmaXhlczogZmFsc2U7XG4gICR3ZWJraXQ6ICgpO1xuICAkbW96OiAoKTtcbiAgJHNwZWM6ICgpO1xuXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxuICBAZWFjaCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XG4gICAgQGlmIG50aCgkbGlzdCwgMSkgPT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XG4gICAgICAkbGlzdDE6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAgICAgJGxpc3QyOiAtbW96LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MzogKCk7XG5cbiAgICAgIEBlYWNoICR2YXIgaW4gJGxpc3Qge1xuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcblxuICAgICAgICBAaWYgJHZhciAhPSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcbiAgICAgICAgICAkbGlzdDI6IGpvaW4oJGxpc3QyLCAkdmFyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QxKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0Myk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdCwgY29tbWEpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0LCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkd2Via2l0O1xuICAgICAgIC1tb3otdHJhbnNpdGlvbjogJG1vejtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xuICB9IEBlbHNlIHtcbiAgICBAaWYgbGVuZ3RoKCRwcm9wZXJ0aWVzKSA+PSAxIHtcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHByb3BlcnRpZXM6IGFsbCAwLjE1cyBlYXNlLW91dCAwcztcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSgkcHJvcGVydGllcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zaXRpb24tcHJvcGVydHlcIik7XG5cbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIndlYmtpdFwiKTtcbiAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIm1velwiKTtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zaXRpb24tZHVyYXRpb25cIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvblwiKTtcblxuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoKVxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zaXRpb24tZGVsYXlcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZTogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInVzZXItc2VsZWN0XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKHVzZXItc2VsZWN0LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItY29sb3JgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1jb2xvcigjYTYwYjU1ICM3NmNkOWMgbnVsbCAjZThhZTFhKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNlOGFlMWE7XG4vLy8gICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzc2Y2Q5Yztcbi8vLyAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2E2MGI1NTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1jb2xvcmBcblxuQG1peGluIGJvcmRlci1jb2xvcigkdmFscy4uLikge1xuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBjb2xvciwgJHZhbHMuLi4pO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1yYWRpdXNgIG9uIGJvdGggY29ybmVycyBvbiB0aGUgc2lkZSBvZiBhIGJveC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmFkaWlcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDVweCk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygzcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xuLy8vICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1yYWRpdXNgXG5cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXN0eWxlYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZGFzaGVkIG51bGwgc29saWQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXN0eWxlYFxuXG5AbWl4aW4gYm9yZGVyLXN0eWxlKCR2YWxzLi4uKSB7XG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHN0eWxlLCAkdmFscy4uLik7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXdpZHRoYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItd2lkdGgoMWVtIG51bGwgMjBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIwcHg7XG4vLy8gICAgIGJvcmRlci10b3Atd2lkdGg6IDFlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci13aWR0aGBcblxuQG1peGluIGJvcmRlci13aWR0aCgkdmFscy4uLikge1xuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCB3aWR0aCwgJHZhbHMuLi4pO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCBidXR0b25zLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC1idXR0b25zfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC1idXR0b25zfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWZvY3VzfSxcbi8vLyAgICN7JGFsbC1idXR0b25zLWhvdmVyfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWFjdGl2ZX0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgYnV0dG9uLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1cyxcbi8vLyAgIGJ1dHRvbjpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06YWN0aXZlIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3Rcbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBkb3VibGUgYXNzaWduZWQgdmFyaWFibGVzIChMaW5lcyA1OeKAkzYyKSBpbiB2NS4wLjBcblxuJGJ1dHRvbnMtbGlzdDogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImJ1dHRvblwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInJlc2V0XCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic3VibWl0XCJdJztcblxuJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2U7XG5cbiRhbGwtYnV0dG9uczogICAgICAgIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCk7XG4kYWxsLWJ1dHRvbnMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLWJ1dHRvbnMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGZvY3VzKTtcbiRhbGwtYnV0dG9ucy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgaG92ZXIpO1xuXG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLW91dHB1dC1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nO1xuXG4kYWxsLWJ1dHRvbi1pbnB1dHM6ICAgICAgICAkYWxsLWJ1dHRvbnM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiAkYWxsLWJ1dHRvbnMtYWN0aXZlO1xuJGFsbC1idXR0b24taW5wdXRzLWZvY3VzOiAgJGFsbC1idXR0b25zLWZvY3VzO1xuJGFsbC1idXR0b24taW5wdXRzLWhvdmVyOiAgJGFsbC1idXR0b25zLWhvdmVyO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gaW5jbHVkZSBhIGNsZWFyZml4IGZvciBjb250YWluaW5nIGZsb2F0cy5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9jc3Ntb2pvLmNvbS9sYXRlc3RfbmV3X2NsZWFyZml4X3NvX2Zhci9cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgICBjb250ZW50OiBcIlwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cblxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRydW5jYXRlcyB0ZXh0IGFuZCBhZGRzIGFuIGVsbGlwc2lzIHRvIHJlcHJlc2VudCBvdmVyZmxvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzEwMCVdXG4vLy8gICBNYXgtd2lkdGggZm9yIHRoZSBzdHJpbmcgdG8gcmVzcGVjdCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZWxsaXBzaXM7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgICAgd29yZC13cmFwOiBub3JtYWw7XG4vLy8gICB9XG5cbkBtaXhpbiBlbGxpcHNpcygkd2lkdGg6IDEwMCUpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VvcmdpYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kZ2VvcmdpYTogXCJHZW9yZ2lhXCIsIFwiQ2FtYnJpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIlRpbWVzXCIsIHNlcmlmO1xuXG4vLy8gSGVsdmV0aWNhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRoZWx2ZXRpY2E6IFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJSb2JvdG9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTHVjaWRhIEdyYW5kZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbHVjaWRhLWdyYW5kZTogXCJMdWNpZGEgR3JhbmRlXCIsIFwiVGFob21hXCIsIFwiVmVyZGFuYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBNb25vc3BhY2UgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJG1vbm9zcGFjZTogXCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm9cIiwgXCJDb25zb2xhc1wiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlO1xuXG4vLy8gVmVyZGFuYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdmVyZGFuYTogXCJWZXJkYW5hXCIsIFwiR2VuZXZhXCIsIHNhbnMtc2VyaWY7XG4iLCIvLy8gSGlkZXMgdGhlIHRleHQgaW4gYW4gZWxlbWVudCwgY29tbW9ubHkgdXNlZCB0byBzaG93IGFuIGltYWdlLiBTb21lIGVsZW1lbnRzIHdpbGwgbmVlZCBibG9jay1sZXZlbCBzdHlsZXMgYXBwbGllZC5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly96ZWxkbWFuLmNvbS8yMDEyLzAzLzAxL3JlcGxhY2luZy10aGUtOTk5OXB4LWhhY2stbmV3LWltYWdlLXJlcGxhY2VtZW50XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgaGlkZS10ZXh0O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LWluZGVudDogMTAxJTtcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBoZWlnaHQgYXJndW1lbnQgaW4gdjUuMC4wXG5cbkBtaXhpbiBoaWRlLXRleHQoJGhlaWdodDogbnVsbCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWluZGVudDogMTAxJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaWYgJGhlaWdodCB7XG4gICAgQHdhcm4gXCJUaGUgYGhpZGUtdGV4dGAgbWl4aW4gaGFzIGNoYW5nZWQgYW5kIG5vIGxvbmdlciByZXF1aXJlcyBhIGhlaWdodC4gVGhlIGhlaWdodCBhcmd1bWVudCB3aWxsIG5vIGxvbmdlciBiZSBhY2NlcHRlZCBpbiB2NS4wLjBcIjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgbWFyZ2luYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAxMHB4IDNlbSAyMHZoKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogM2VtO1xuLy8vICAgICBtYXJnaW4tbGVmdDogMjB2aDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgbWFyZ2luYFxuXG5AbWl4aW4gbWFyZ2luKCR2YWxzLi4uKSB7XG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIGZhbHNlLCAkdmFscy4uLik7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgcGFkZGluZ2Agb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcGFkZGluZygxMnZoIG51bGwgMTBweCA1JSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDUlO1xuLy8vICAgICBwYWRkaW5nLXRvcDogMTJ2aDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYHBhZGRpbmdgXG5cbkBtaXhpbiBwYWRkaW5nKCR2YWxzLi4uKSB7XG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShwYWRkaW5nLCBmYWxzZSwgJHZhbHMuLi4pO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciBzZXR0aW5nIGFuIGVsZW1lbnTigJlzIHBvc2l0aW9uLiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge1Bvc2l0aW9ufSAkcG9zaXRpb24gW3JlbGF0aXZlXVxuLy8vICAgQSBDU1MgcG9zaXRpb24gdmFsdWVcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGNvb3JkaW5hdGVzIFtudWxsIG51bGwgbnVsbCBudWxsXVxuLy8vICAgTGlzdCBvZiB2YWx1ZXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSA0LXZhbHVlIHN5bnRheCBmb3IgdGhlIGVkZ2VzIG9mIGEgYm94XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBsZWZ0OiAxMGVtO1xuLy8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLy8gICAgIHRvcDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSB1bnBhY2tcblxuQG1peGluIHBvc2l0aW9uKCRwb3NpdGlvbjogcmVsYXRpdmUsICRjb29yZGluYXRlczogbnVsbCBudWxsIG51bGwgbnVsbCkge1xuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xuICAgICRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcblxuICAkb2Zmc2V0czogKFxuICAgIHRvcDogICAgbnRoKCRjb29yZGluYXRlcywgMSksXG4gICAgcmlnaHQ6ICBudGgoJGNvb3JkaW5hdGVzLCAyKSxcbiAgICBib3R0b206IG50aCgkY29vcmRpbmF0ZXMsIDMpLFxuICAgIGxlZnQ6ICAgbnRoKCRjb29yZGluYXRlcywgNClcbiAgKTtcblxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG4gIEBlYWNoICRvZmZzZXQsICR2YWx1ZSBpbiAkb2Zmc2V0cyB7XG4gICAgQGlmIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICN7JG9mZnNldH06ICR2YWx1ZTtcbiAgICB9XG4gIH1cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIG1peGluIGZvciBnZW5lcmF0aW5nIHZlbmRvciBwcmVmaXhlcyBvbiBub24tc3RhbmRhcmRpemVkIHByb3BlcnRpZXMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5XG4vLy8gICBQcm9wZXJ0eSB0byBwcmVmaXhcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlXG4vLy8gICBWYWx1ZSB0byB1c2Vcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHByZWZpeGVzXG4vLy8gICBQcmVmaXhlcyB0byBkZWZpbmVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci13ZWJraXRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1vemlsbGFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itb3BlcmFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXNwZWNcblxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgIHtcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XG59XG4iLCJAbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsLCAkcmV0aW5hLXN1ZmZpeDogXzJ4LCAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUoXCJyZXRpbmEtaW1hZ2VcIik7XG5cbiAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgIHVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9XG5cbiAgQGluY2x1ZGUgaGlkcGkge1xuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1zaXplOiAkYmFja2dyb3VuZC1zaXplO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTZXRzIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBvZiB0aGUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNpemVcbi8vLyAgIEEgbGlzdCBvZiBhdCBtb3N0IDIgc2l6ZSB2YWx1ZXMuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdmFsdWUgaW4gYCRzaXplYCBpdCBpcyB1c2VkIGZvciBib3RoIHdpZHRoIGFuZCBoZWlnaHQuIEFsbCB1bml0cyBhcmUgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZShhdXRvIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogMmVtO1xuLy8vICAgICBoZWlnaHQ6IDJlbTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IGF1dG87XG4vLy8gICAgIGhlaWdodDogMTBlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlZmFjdG9yIGluIDUuMC4wIHRvIHVzZSBhIGNvbW1hLXNlcGFyYXRlZCBhcmd1bWVudFxuXG5AbWl4aW4gc2l6ZSgkdmFsdWUpIHtcbiAgJHdpZHRoOiBudGgoJHZhbHVlLCAxKTtcbiAgJGhlaWdodDogJHdpZHRoO1xuXG4gIEBpZiBsZW5ndGgoJHZhbHVlKSA+IDEge1xuICAgICRoZWlnaHQ6IG50aCgkdmFsdWUsIDIpO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgQGlmIGlzLXNpemUoJGhlaWdodCkge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skaGVpZ2h0fWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCRoZWlnaHRgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJHdpZHRoKSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skd2lkdGh9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJHdpZHRoYCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIHRleHQtYmFzZWQgaW5wdXRzLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC10ZXh0LWlucHV0c31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHN9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWZvY3VzfSxcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1ob3Zlcn0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl0sXG4vLy8gICB0ZXh0YXJlYSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpmb2N1cyxcbi8vLyAgIHRleHRhcmVhOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmhvdmVyLFxuLy8vICAgdGV4dGFyZWE6aG92ZXIge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmFjdGl2ZSxcbi8vLyAgIHRleHRhcmVhOmFjdGl2ZSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR0ZXh0LWlucHV0cy1saXN0OiAnaW5wdXRbdHlwZT1cImNvbG9yXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZW1haWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInNlYXJjaFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGV4dFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInVybFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ3ZWVrXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXQ6bm90KFt0eXBlXSknLFxuICAgICAgICAgICAgICAgICAgICd0ZXh0YXJlYSc7XG5cbiR1c2VyLW91dHB1dC1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlO1xuXG4kYWxsLXRleHQtaW5wdXRzOiAgICAgICAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCk7XG4kYWxsLXRleHQtaW5wdXRzLWFjdGl2ZTogYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtdGV4dC1pbnB1dHMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBmb2N1cyk7XG4kYWxsLXRleHQtaW5wdXRzLWhvdmVyOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgaG92ZXIpO1xuXG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLW91dHB1dC1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ1NTIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb25zLiBUaW1pbmcgZnVuY3Rpb25zIGNvdXJ0ZXN5IG9mIGpxdWVyeS5lYXNpZSAoZ2l0aHViLmNvbS9qYXVraWEvZWFzaWUpXG4vLy9cbi8vLyBUaW1pbmcgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhcyBkZW1vZWQgaGVyZTogaHR0cDovL2pxdWVyeXVpLmNvbS9yZXNvdXJjZXMvZGVtb3MvZWZmZWN0L2Vhc2luZy5odG1sXG4vLy9cbi8vLyBAdHlwZSBjdWJpYy1iZXppZXJcblxuJGVhc2UtaW4tcXVhZDogICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA4NSwgMC42ODAsIDAuNTMwKTtcbiRlYXNlLWluLWN1YmljOiAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4kZWFzZS1pbi1xdWFydDogICAgIGN1YmljLWJlemllcigwLjg5NSwgIDAuMDMwLCAwLjY4NSwgMC4yMjApO1xuJGVhc2UtaW4tcXVpbnQ6ICAgICBjdWJpYy1iZXppZXIoMC43NTUsICAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiRlYXNlLWluLXNpbmU6ICAgICAgY3ViaWMtYmV6aWVyKDAuNDcwLCAgMC4wMDAsIDAuNzQ1LCAwLjcxNSk7XG4kZWFzZS1pbi1leHBvOiAgICAgIGN1YmljLWJlemllcigwLjk1MCwgIDAuMDUwLCAwLjc5NSwgMC4wMzUpO1xuJGVhc2UtaW4tY2lyYzogICAgICBjdWJpYy1iZXppZXIoMC42MDAsICAwLjA0MCwgMC45ODAsIDAuMzM1KTtcbiRlYXNlLWluLWJhY2s6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAtMC4yODAsIDAuNzM1LCAwLjA0NSk7XG5cbiRlYXNlLW91dC1xdWFkOiAgICAgY3ViaWMtYmV6aWVyKDAuMjUwLCAgMC40NjAsIDAuNDUwLCAwLjk0MCk7XG4kZWFzZS1vdXQtY3ViaWM6ICAgIGN1YmljLWJlemllcigwLjIxNSwgIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuJGVhc2Utb3V0LXF1YXJ0OiAgICBjdWJpYy1iZXppZXIoMC4xNjUsICAwLjg0MCwgMC40NDAsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWludDogICAgY3ViaWMtYmV6aWVyKDAuMjMwLCAgMS4wMDAsIDAuMzIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtc2luZTogICAgIGN1YmljLWJlemllcigwLjM5MCwgIDAuNTc1LCAwLjU2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWV4cG86ICAgICBjdWJpYy1iZXppZXIoMC4xOTAsICAxLjAwMCwgMC4yMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1jaXJjOiAgICAgY3ViaWMtYmV6aWVyKDAuMDc1LCAgMC44MjAsIDAuMTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtYmFjazogICAgIGN1YmljLWJlemllcigwLjE3NSwgIDAuODg1LCAwLjMyMCwgMS4yNzUpO1xuXG4kZWFzZS1pbi1vdXQtcXVhZDogIGN1YmljLWJlemllcigwLjQ1NSwgIDAuMDMwLCAwLjUxNSwgMC45NTUpO1xuJGVhc2UtaW4tb3V0LWN1YmljOiBjdWJpYy1iZXppZXIoMC42NDUsICAwLjA0NSwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcwLCAgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjg2MCwgIDAuMDAwLCAwLjA3MCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXNpbmU6ICBjdWJpYy1iZXppZXIoMC40NDUsICAwLjA1MCwgMC41NTAsIDAuOTUwKTtcbiRlYXNlLWluLW91dC1leHBvOiAgY3ViaWMtYmV6aWVyKDEuMDAwLCAgMC4wMDAsIDAuMDAwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtY2lyYzogIGN1YmljLWJlemllcigwLjc4NSwgIDAuMTM1LCAwLjE1MCwgMC44NjApO1xuJGVhc2UtaW4tb3V0LWJhY2s6ICBjdWJpYy1iZXppZXIoMC42ODAsIC0wLjU1MCwgMC4yNjUsIDEuNTUwKTtcbiIsIkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcbiAgJGhlaWdodDogbnRoKCRzaXplLCBsZW5ndGgoJHNpemUpKTtcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAkYmFja2dyb3VuZC1jb2xvcjogaWYobGVuZ3RoKCRjb2xvcikgPT0gMiwgbnRoKCRjb2xvciwgMiksIHRyYW5zcGFyZW50KTtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gY2hhbmdlIHRoZSBgd29yZC13cmFwYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkd3JhcCBbYnJlYWstd29yZF1cbi8vLyAgIFZhbHVlIGZvciB0aGUgYHdvcmQtYnJlYWtgIHByb3BlcnR5LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIEBpbmNsdWRlIHdvcmQtd3JhcChicmVhay13b3JkKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbi8vLyAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuLy8vICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICB9XG5cbkBtaXhpbiB3b3JkLXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcbiAgb3ZlcmZsb3ctd3JhcDogJHdyYXA7XG4gIHdvcmQtd3JhcDogJHdyYXA7XG5cbiAgQGlmICR3cmFwID09IGJyZWFrLXdvcmQge1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgfSBAZWxzZSB7XG4gICAgd29yZC1icmVhazogJHdyYXA7XG4gIH1cbn1cbiIsIi8vIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBNQUpPUiB2ZXJzaW9uIHJlbGVhc2VcblxuQG1peGluIGlubGluZS1ibG9jayB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZShcImlubGluZS1ibG9ja1wiKTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbkBtaXhpbiBidXR0b24gKCRzdHlsZTogc2ltcGxlLCAkYmFzZS1jb2xvcjogIzQyOTRmMCwgJHRleHQtc2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZShcImJ1dHRvblwiKTtcblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICRiYXNlLWNvbG9yO1xuICAgICR0ZXh0LXNpemU6ICRzdHlsZTtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuXG4vLyBTZWxlY3RvciBTdHlsZSBCdXR0b25cbkBtaXhpbiBidXR0b25zdHlsZSgkdHlwZSwgJGItY29sb3IsICR0LXNpemUsICRwYWQpIHtcbiAgLy8gR3JheXNjYWxlIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHNoaW55IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gcGlsbCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gZmxhdCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICAvLyBDb2xvcmVkIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHNoaW55IHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gcGlsbCB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gZmxhdCB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG59XG5cbi8vIFNpbXBsZSBCdXR0b25cbkBtaXhpbiBzaW1wbGUoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTE0JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtOCUsICAkbGlnaHRuZXNzOiAgMTUlKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xMSUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDE1JSwgJGxpZ2h0bmVzczogLTE4JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA4JSwgJGxpZ2h0bmVzczogLTE0JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogOSUsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA3JSwgJGxpZ2h0bmVzczogLTE3JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmUsIGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFNoaW55IEJ1dHRvblxuQG1peGluIHNoaW55KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExNywgJGdyZWVuOiAtMTExLCAkYmx1ZTogLTgxKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEyNiwgJGdyZWVuOiAtMTI3LCAkYmx1ZTogLTEyMik7XG4gICRmb3VydGgtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC03OSwgICRncmVlbjogLTcwLCAgJGJsdWU6IC00Nik7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6ICAzNywgICRncmVlbjogIDI5LCAgJGJsdWU6ICAxMik7XG4gICRzZWNvbmQtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC01NiwgICRncmVlbjogLTUwLCAgJGJsdWU6IC0zMyk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xNDAsICRncmVlbjogLTE0MSwgJGJsdWU6IC0xMTQpO1xuICAkdGhpcmQtc3RvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICAkZ3JlZW46IC03NSwgICRibHVlOiAtNDgpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGZvdXJ0aC1zdG9wOiAgIGdyYXlzY2FsZSgkZm91cnRoLXN0b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHNlY29uZC1zdG9wOiAgIGdyYXlzY2FsZSgkc2Vjb25kLXN0b3ApO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgICAkdGhpcmQtc3RvcDogICAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRiYXNlLWNvbG9yIDAlLCAkc2Vjb25kLXN0b3AgNTAlLCAkdGhpcmQtc3RvcCA1MCUsICRmb3VydGgtc3RvcCAxMDAlKTtcblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEzLCAkZ3JlZW46IC0xNSwgJGJsdWU6IC0xOCk7XG4gICAgJHNlY29uZC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC02NiwgJGdyZWVuOiAtNjIsICRibHVlOiAtNTEpO1xuICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtOTMsICRncmVlbjogLTg1LCAkYmx1ZTogLTY2KTtcbiAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAkZ3JlZW46IC04MCwgJGJsdWU6IC02Myk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCRmaXJzdC1zdG9wLWhvdmVyKTtcbiAgICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRzZWNvbmQtc3RvcC1ob3Zlcik7XG4gICAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkdGhpcmQtc3RvcC1ob3Zlcik7XG4gICAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkZm91cnRoLXN0b3AtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRmaXJzdC1zdG9wLWhvdmVyICAwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2Vjb25kLXN0b3AtaG92ZXIgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyIDEwMCUpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTExLCAkZ3JlZW46IC0xMTYsICRibHVlOiAtMTIyKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDIwcHggMCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBQaWxsIEJ1dHRvblxuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC0xMSUsICRsaWdodG5lc3M6IC0yNiUpO1xuICAkYm9yZGVyLXNpZGVzOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yMSUsICRsaWdodG5lc3M6IC0yMSUpO1xuICAkYm9yZGVyLXRvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0zMCUsICRsaWdodG5lc3M6IC0xNSUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xJSwgICRsaWdodG5lc3M6ICA3JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDE0JSwgJGxpZ2h0bmVzczogLTEwJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTE5JSwgJGxpZ2h0bmVzczogLTE1JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGJvcmRlci1zaWRlczogIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAkYm9yZGVyLXRvcDogICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpZ2h0bmVzczogLTQuNSUpO1xuICAgICRib3JkZXItYm90dG9tOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDEzLjUlLCAkbGlnaHRuZXNzOiAtMzIlKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yJSwgICAgJGxpZ2h0bmVzczogLTI3JSk7XG4gICAgJGJvcmRlci10b3A6ICAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMTclLCAgICRsaWdodG5lc3M6IC0yMSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAkc2F0dXJhdGlvbjogLTElLCAgICAkbGlnaHRuZXNzOiAgMyUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTQlLCAgICAkbGlnaHRuZXNzOiAtMTUuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTUlLCAgICAkbGlnaHRuZXNzOiAtMjIlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAgICRib3JkZXItc2lkZXM6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgICAkYm9yZGVyLXRvcDogICAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWhvdmVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA0LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNiwgICRzYXR1cmF0aW9uOiAtMi41JSwgJGxpZ2h0bmVzczogLTMwJSk7XG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA5LCAgJHNhdHVyYXRpb246ICAyJSwgICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA1LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGdyYXlzY2FsZSgkYWN0aXZlLWNvbG9yKTtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWNvbG9yO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbS1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCAzcHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBGbGF0IEJ1dHRvblxuQG1peGluIGZsYXQoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCl7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDQlLCAkbGlnaHRuZXNzOiA1JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItYWN0aXZlOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1hY3RpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi8vIEZsZXhpYmxlIGdyaWRcbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZmxleC1ncmlkYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuIEZvciBncmlkIGZ1bmN0aW9ucywgY2hlY2sgb3V0IEJvdXJib24ncyBzaXN0ZXIgbGlicmFyeVwiICtcbiAgICBcIk5lYXQuXCI7XG4gIH1cblxuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkd2lkdGggLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuLy8gRmxleGlibGUgZ3V0dGVyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBmbGV4LWd1dHRlcmAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLiBGb3IgZ3JpZCBmdW5jdGlvbnMsIGNoZWNrIG91dCBCb3VyYm9uJ3Mgc2lzdGVyIGxpYnJhcnlcIiArXG4gICAgXCJOZWF0LlwiO1xuICB9XG5cbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZ3JpZC13aWR0aGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLiBGb3IgZ3JpZCBmdW5jdGlvbnMsIGNoZWNrIG91dCBCb3VyYm9uJ3Mgc2lzdGVyIGxpYnJhcnlcIiArXG4gICAgXCJOZWF0LlwiO1xuICB9XG5cbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XG59XG5cbkBmdW5jdGlvbiBnb2xkZW4tcmF0aW8oJHZhbHVlLCAkaW5jcmVtZW50KSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZ29sZGVuLXJhdGlvYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuIFlvdSBjYW4gdXNlIHRoZSBgbW9kdWxhci1zY2FsZWAgZnVuY3Rpb24gaW5zdGVhZC5cIjtcbiAgfVxuXG4gIEByZXR1cm4gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWUsICRyYXRpbzogJGdvbGRlbik7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRib3gpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtc2l6aW5nXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1zaXppbmcsICRib3gsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCIvLyBOZWF0IDEuNy4yXG4vLyBodHRwOi8vbmVhdC5ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMi0yMDE1IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbi8vIEhlbHBlcnNcbkBpbXBvcnQgXCJuZWF0LWhlbHBlcnNcIjtcblxuLy8gR3JpZFxuQGltcG9ydCBcImdyaWQvcHJpdmF0ZVwiO1xuQGltcG9ydCBcImdyaWQvYm94LXNpemluZ1wiO1xuQGltcG9ydCBcImdyaWQvb21lZ2FcIjtcbkBpbXBvcnQgXCJncmlkL291dGVyLWNvbnRhaW5lclwiO1xuQGltcG9ydCBcImdyaWQvc3Bhbi1jb2x1bW5zXCI7XG5AaW1wb3J0IFwiZ3JpZC9yb3dcIjtcbkBpbXBvcnQgXCJncmlkL3NoaWZ0XCI7XG5AaW1wb3J0IFwiZ3JpZC9wYWRcIjtcbkBpbXBvcnQgXCJncmlkL2ZpbGwtcGFyZW50XCI7XG5AaW1wb3J0IFwiZ3JpZC9tZWRpYVwiO1xuQGltcG9ydCBcImdyaWQvdG8tZGVwcmVjYXRlXCI7XG5AaW1wb3J0IFwiZ3JpZC92aXN1YWwtZ3JpZFwiO1xuQGltcG9ydCBcImdyaWQvZGlzcGxheS1jb250ZXh0XCI7XG5AaW1wb3J0IFwiZ3JpZC9kaXJlY3Rpb24tY29udGV4dFwiO1xuIiwiLy8gRnVuY3Rpb25zXG5AaW1wb3J0IFwiZnVuY3Rpb25zL3ByaXZhdGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvbmV3LWJyZWFrcG9pbnRcIjtcblxuLy8gU2V0dGluZ3NcbkBpbXBvcnQgXCJzZXR0aW5ncy9ncmlkXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvdmlzdWFsLWdyaWRcIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9kaXNhYmxlLXdhcm5pbmdzXCI7XG4iLCIvLyBOb3QgZnVuY3Rpb24gZm9yIExpYnNhc3MgY29tcGF0aWJpbGl0eVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MvbGlic2Fzcy9pc3N1ZXMvMzY4XG5AZnVuY3Rpb24gaXMtbm90KCR2YWx1ZSkge1xuICBAcmV0dXJuIGlmKCR2YWx1ZSwgZmFsc2UsIHRydWUpO1xufVxuXG4vLyBDaGVja3MgaWYgYSBudW1iZXIgaXMgZXZlblxuQGZ1bmN0aW9uIGlzLWV2ZW4oJGludCkge1xuICBAcmV0dXJuICRpbnQgJSAyID09IDA7XG59XG5cbi8vIENoZWNrcyBpZiBhbiBlbGVtZW50IGJlbG9uZ3MgdG8gYSBsaXN0IG9yIG5vdFxuQGZ1bmN0aW9uIGJlbG9uZ3MtdG8oJHRlc3RlZC1pdGVtLCAkbGlzdCkge1xuICBAcmV0dXJuIGlzLW5vdChub3QtYmVsb25ncy10bygkdGVzdGVkLWl0ZW0sICRsaXN0KSk7XG59XG5cbkBmdW5jdGlvbiBub3QtYmVsb25ncy10bygkdGVzdGVkLWl0ZW0sICRsaXN0KSB7XG4gIEByZXR1cm4gaXMtbm90KGluZGV4KCRsaXN0LCAkdGVzdGVkLWl0ZW0pKTtcbn1cblxuLy8gQ29udGFpbnMgZGlzcGxheSB2YWx1ZVxuQGZ1bmN0aW9uIGNvbnRhaW5zLWRpc3BsYXktdmFsdWUoJHF1ZXJ5KSB7XG4gIEByZXR1cm4gYmVsb25ncy10byh0YWJsZSwgJHF1ZXJ5KVxuICAgICAgIG9yIGJlbG9uZ3MtdG8oYmxvY2ssICRxdWVyeSlcbiAgICAgICBvciBiZWxvbmdzLXRvKGlubGluZS1ibG9jaywgJHF1ZXJ5KVxuICAgICAgIG9yIGJlbG9uZ3MtdG8oaW5saW5lLCAkcXVlcnkpO1xufVxuXG4vLyBQYXJzZXMgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHNwYW4tY29sdW1ucygpXG5AZnVuY3Rpb24gY29udGFpbmVyLXNwYW4oJHNwYW46ICRzcGFuKSB7XG4gIEBpZiBsZW5ndGgoJHNwYW4pID09IDMge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzcGFuLCAzKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNwYW4pID09IDIge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzcGFuLCAyKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfVxuXG4gIEByZXR1cm4gJGdyaWQtY29sdW1ucztcbn1cblxuQGZ1bmN0aW9uIGNvbnRhaW5lci1zaGlmdCgkc2hpZnQ6ICRzaGlmdCkge1xuICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWRlZmF1bHQgIWdsb2JhbDtcblxuICBAaWYgbGVuZ3RoKCRzaGlmdCkgPT0gMyB7XG4gICAgJGNvbnRhaW5lci1jb2x1bW5zOiBudGgoJHNoaWZ0LCAzKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNoaWZ0KSA9PSAyIHtcbiAgICAkY29udGFpbmVyLWNvbHVtbnM6IG50aCgkc2hpZnQsIDIpO1xuICAgIEByZXR1cm4gJGNvbnRhaW5lci1jb2x1bW5zO1xuICB9XG5cbiAgQHJldHVybiAkcGFyZW50LWNvbHVtbnM7XG59XG5cbi8vIEdlbmVyYXRlcyBhIHN0cmlwZWQgYmFja2dyb3VuZFxuQGZ1bmN0aW9uIGdyYWRpZW50LXN0b3BzKCRncmlkLWNvbHVtbnMsICRjb2xvcjogJHZpc3VhbC1ncmlkLWNvbG9yKSB7XG4gICR0cmFuc3BhcmVudDogdHJhbnNwYXJlbnQ7XG5cbiAgJGNvbHVtbi13aWR0aDogZmxleC1ncmlkKDEsICRncmlkLWNvbHVtbnMpO1xuICAkZ3V0dGVyLXdpZHRoOiBmbGV4LWd1dHRlcigkZ3JpZC1jb2x1bW5zKTtcbiAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4td2lkdGg7XG5cbiAgJHZhbHVlczogKCR0cmFuc3BhcmVudCAwLCAkY29sb3IgMCk7XG5cbiAgQGZvciAkaSBmcm9tIDEgdG8gJGdyaWQtY29sdW1ucyoyIHtcbiAgICBAaWYgaXMtZXZlbigkaSkge1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICR0cmFuc3BhcmVudCAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJHZhbHVlczogYXBwZW5kKCR2YWx1ZXMsICRjb2xvciAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4tb2Zmc2V0ICsgJGNvbHVtbi13aWR0aDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkY29sb3IgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCAkdHJhbnNwYXJlbnQgJGNvbHVtbi1vZmZzZXQsIGNvbW1hKTtcbiAgICAgICRjb2x1bW4tb2Zmc2V0OiAkY29sdW1uLW9mZnNldCArICRndXR0ZXItd2lkdGg7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWVzO1xufVxuXG4vLyBMYXlvdXQgZGlyZWN0aW9uXG5AZnVuY3Rpb24gZ2V0LWRpcmVjdGlvbigkbGF5b3V0LCAkZGVmYXVsdCkge1xuICAkZGlyZWN0aW9uOiBudWxsO1xuXG4gIEBpZiB0by11cHBlci1jYXNlKCRsYXlvdXQpID09IFwiTFRSXCIgb3IgdG8tdXBwZXItY2FzZSgkbGF5b3V0KSA9PSBcIlJUTFwiIHtcbiAgICAkZGlyZWN0aW9uOiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGxheW91dCk7XG4gIH0gQGVsc2Uge1xuICAgICRkaXJlY3Rpb246IGRpcmVjdGlvbi1mcm9tLWxheW91dCgkZGVmYXVsdCk7XG4gIH1cblxuICBAcmV0dXJuICRkaXJlY3Rpb247XG59XG5cbkBmdW5jdGlvbiBkaXJlY3Rpb24tZnJvbS1sYXlvdXQoJGxheW91dCkge1xuICAkZGlyZWN0aW9uOiBudWxsO1xuXG4gIEBpZiB0by11cHBlci1jYXNlKCRsYXlvdXQpID09IFwiTFRSXCIge1xuICAgICRkaXJlY3Rpb246IHJpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICAkZGlyZWN0aW9uOiBsZWZ0O1xuICB9XG5cbiAgQHJldHVybiAkZGlyZWN0aW9uO1xufVxuXG5AZnVuY3Rpb24gZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKSB7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGxlZnQ7XG5cbiAgQGlmICRkaXJlY3Rpb24gPT0gXCJsZWZ0XCIge1xuICAgICRvcHBvc2l0ZS1kaXJlY3Rpb246IHJpZ2h0O1xuICB9XG5cbiAgQHJldHVybiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUmV0dXJucyBhIG1lZGlhIGNvbnRleHQgKG1lZGlhIHF1ZXJ5IC8gZ3JpZCBjb250ZXh0KSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSB2YXJpYWJsZSBhbmQgcGFzc2VkIHRvIGBtZWRpYSgpYCBhcyBhIHNpbmdsZS1rZXl3b3JkIGFyZ3VtZW50LiBNZWRpYSBjb250ZXh0cyBkZWZpbmVkIHVzaW5nIGBuZXctYnJlYWtwb2ludGAgYXJlIHVzZWQgYnkgdGhlIHZpc3VhbCBncmlkLCBhcyBsb25nIGFzIHRoZXkgYXJlIGRlZmluZWQgYmVmb3JlIGltcG9ydGluZyBOZWF0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcXVlcnlcbi8vLyAgIEEgbGlzdCBvZiBtZWRpYSBxdWVyeSBmZWF0dXJlcyBhbmQgdmFsdWVzLiBFYWNoIGAkZmVhdHVyZWAgc2hvdWxkIGhhdmUgYSBjb3JyZXNwb25kaW5nIGAkdmFsdWVgLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGAkdmFsdWVgIGluIGAkcXVlcnlgLCBgJGRlZmF1bHQtZmVhdHVyZWAgaXMgZ29pbmcgdG8gYmUgdXNlZC5cbi8vL1xuLy8vICAgVGhlIG51bWJlciBvZiB0b3RhbCBjb2x1bW5zIGluIHRoZSBncmlkIGNhbiBiZSBzZXQgYnkgcGFzc2luZyBgJGNvbHVtbnNgIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QgKG92ZXJyaWRlcyBgJHRvdGFsLWNvbHVtbnNgKS4gRm9yIGEgbGlzdCBvZiB2YWxpZCB2YWx1ZXMgZm9yIGAkZmVhdHVyZWAsIGNsaWNrIFtoZXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWExKS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICR0b3RhbC1jb2x1bW5zIFskZ3JpZC1jb2x1bW5zXVxuLy8vICAgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgaW4gdGhlIG5ldyBncmlkIGNvbnRleHQuIENhbiBiZSBzZXQgYXMgYSBzaG9ydGhhbmQgaW4gdGhlIGZpcnN0IHBhcmFtZXRlci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgJG1vYmlsZTogbmV3LWJyZWFrcG9pbnQobWF4LXdpZHRoIDQ4MHB4IDQpO1xuLy8vXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpIHtcbi8vLyAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4vLy8gICAgIC5lbGVtZW50IHtcbi8vLyAgICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgICBtYXJnaW4tcmlnaHQ6IDcuNDIyOTclO1xuLy8vICAgICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgICB9XG4vLy8gICAgIC5lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICAgfVxuLy8vICAgfVxuXG5AZnVuY3Rpb24gbmV3LWJyZWFrcG9pbnQoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICAkcXVlcnk6ICRkZWZhdWx0LWZlYXR1cmUgbnRoKCRxdWVyeSwgMSkgJHRvdGFsLWNvbHVtbnM7XG4gIH0gQGVsc2UgaWYgaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkge1xuICAgICRxdWVyeTogYXBwZW5kKCRxdWVyeSwgJHRvdGFsLWNvbHVtbnMpO1xuICB9XG5cbiAgQGlmIGlzLW5vdChiZWxvbmdzLXRvKCRxdWVyeSwgJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzKSkge1xuICAgICR2aXN1YWwtZ3JpZC1icmVha3BvaW50czogYXBwZW5kKCR2aXN1YWwtZ3JpZC1icmVha3BvaW50cywgJHF1ZXJ5LCBjb21tYSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHF1ZXJ5O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU2V0cyB0aGUgcmVsYXRpdmUgd2lkdGggb2YgYSBzaW5nbGUgZ3JpZCBjb2x1bW4uIFRoZSB1bml0IHVzZWQgc2hvdWxkIGJlIHRoZSBzYW1lIG9uZSB1c2VkIHRvIGRlZmluZSBgJGd1dHRlcmAuIFRvIGxlYXJuIG1vcmUgYWJvdXQgbW9kdWxhci1zY2FsZSgpIHNlZSBbQm91cmJvbiBkb2NzXShodHRwOi8vYm91cmJvbi5pby9kb2NzLyNtb2R1bGFyLXNjYWxlKS4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdClcblxuJGNvbHVtbjogbW9kdWxhci1zY2FsZSgzLCAxZW0sICRnb2xkZW4pICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgcmVsYXRpdmUgd2lkdGggb2YgYSBzaW5nbGUgZ3JpZCBndXR0ZXIuIFRoZSB1bml0IHVzZWQgc2hvdWxkIGJlIHRoZSBzYW1lIG9uZSB1c2VkIHRvIGRlZmluZSBgJGNvbHVtbmAuIFRvIGxlYXJuIG1vcmUgYWJvdXQgbW9kdWxhci1zY2FsZSgpIHNlZSBbQm91cmJvbiBkb2NzXShodHRwOi8vYm91cmJvbi5pby9kb2NzLyNtb2R1bGFyLXNjYWxlKS4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuXG4kZ3V0dGVyOiBtb2R1bGFyLXNjYWxlKDEsIDFlbSwgJGdvbGRlbikgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC4gSXRzIHZhbHVlIGNhbiBiZSBvdmVycmlkZGVuIGluc2lkZSBhIG1lZGlhIHF1ZXJ5IHVzaW5nIHRoZSBgbWVkaWEoKWAgbWl4aW4uIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdGxlc3MpXG5cbiRncmlkLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgbWF4LXdpZHRoIHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IHRoYXQgaW5jbHVkZXMgYG91dGVyLWNvbnRhaW5lcigpYC4gVG8gbGVhcm4gbW9yZSBhYm91dCBgZW0oKWAgc2VlIFtCb3VyYm9uIGRvY3NdKGh0dHA6Ly9ib3VyYm9uLmlvL2RvY3MvI3B4LXRvLWVtKS4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0KVxuLy8vXG4kbWF4LXdpZHRoOiBlbSgxMDg4KSAhZGVmYXVsdDtcblxuLy8vIFdoZW4gc2V0IHRvIHRydWUsIGl0IHNldHMgdGhlIGJveC1zaXppbmcgcHJvcGVydHkgb2YgYWxsIGVsZW1lbnRzIHRvIGBib3JkZXItYm94YC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGh0bWwge1xuLy8vICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4vLy9cbi8vLyAgICosICo6OmFmdGVyLCAqOjpiZWZvcmUge1xuLy8vICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuLy8vICAgfVxuXG4kYm9yZGVyLWJveC1zaXppbmc6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBkZWZhdWx0IFttZWRpYSBmZWF0dXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWEpIHRoYXQgYG1lZGlhKClgIGFuZCBgbmV3LWJyZWFrcG9pbnQoKWAgcmV2ZXJ0IHRvIHdoZW4gb25seSBhIGJyZWFrcG9pbnQgdmFsdWUgaXMgcGFzc2VkLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG5cbiRkZWZhdWx0LWZlYXR1cmU6IG1pbi13aWR0aDsgLy8gRGVmYXVsdCBAbWVkaWEgZmVhdHVyZSBmb3IgdGhlIGJyZWFrcG9pbnQoKSBtaXhpblxuXG4vLy9TZXRzIHRoZSBkZWZhdWx0IGxheW91dCBkaXJlY3Rpb24gb2YgdGhlIGdyaWQuIENhbiBiZSBgTFRSYCBvciBgUlRMYC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vQHR5cGUgU3RyaW5nXG5cbiRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb246IExUUiAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpc3BsYXlzIHRoZSB2aXN1YWwgZ3JpZCB3aGVuIHNldCB0byB0cnVlLiBUaGUgb3ZlcmxhaWQgZ3JpZCBtYXkgYmUgZmV3IHBpeGVscyBvZmYgZGVwZW5kaW5nIG9uIHRoZSBicm93c2VyJ3MgcmVuZGVyaW5nIGVuZ2luZSBhbmQgcGl4ZWwgcm91bmRpbmcgYWxnb3JpdGhtLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiR2aXN1YWwtZ3JpZDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgZ3JpZCBjb2xvci4gU2V0IHdpdGggYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBDb2xvclxuXG4kdmlzdWFsLWdyaWQtY29sb3I6ICNlZWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBgei1pbmRleGAgcHJvcGVydHkgb2YgdGhlIHZpc3VhbCBncmlkLiBDYW4gYmUgYGJhY2tgIChiZWhpbmQgY29udGVudCkgb3IgYGZyb250YCAoaW4gZnJvbnQgb2YgY29udGVudCkuIFNldCB3aXRoIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG5cbiR2aXN1YWwtZ3JpZC1pbmRleDogYmFjayAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIG9wYWNpdHkgcHJvcGVydHkgb2YgdGhlIHZpc3VhbCBncmlkLiBTZXQgd2l0aCBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAodW5pdGxlc3MpXG5cbiR2aXN1YWwtZ3JpZC1vcGFjaXR5OiAwLjQgIWRlZmF1bHQ7XG5cbiR2aXN1YWwtZ3JpZC1icmVha3BvaW50czogKCkgIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEaXNhYmxlIGFsbCBkZXByZWNhdGlvbiB3YXJuaW5ncy4gRGVmYXVsdHMgdG8gYGZhbHNlYC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJGRpc2FibGUtd2FybmluZ3M6IGZhbHNlICFkZWZhdWx0O1xuXG5AbWl4aW4gLW5lYXQtd2FybigkbWVzc2FnZSkge1xuICBAaWYgJGRpc2FibGUtd2FybmluZ3MgPT0gZmFsc2Uge1xuICAgIEB3YXJuIFwiI3skbWVzc2FnZX1cIjtcbiAgfVxufVxuIiwiJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFkZWZhdWx0O1xuJGZnLWNvbHVtbjogJGNvbHVtbjtcbiRmZy1ndXR0ZXI6ICRndXR0ZXI7XG4kZmctbWF4LWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4kY29udGFpbmVyLWRpc3BsYXktdGFibGU6IGZhbHNlICFkZWZhdWx0O1xuJGxheW91dC1kaXJlY3Rpb246IExUUiAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbkBmdW5jdGlvbiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucywgJGd1dHRlcjogJGZnLWd1dHRlcikge1xuICAkY29udGFpbmVyLXdpZHRoOiAkY29udGFpbmVyLWNvbHVtbnMgKiAkZmctY29sdW1uICsgKCRjb250YWluZXItY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgQHJldHVybiBwZXJjZW50YWdlKCRndXR0ZXIgLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuQGZ1bmN0aW9uIGdyaWQtd2lkdGgoJG4pIHtcbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XG59XG5cbkBmdW5jdGlvbiBnZXQtcGFyZW50LWNvbHVtbnMoJGNvbHVtbnMpIHtcbiAgQGlmICRjb2x1bW5zICE9ICRncmlkLWNvbHVtbnMge1xuICAgICRwYXJlbnQtY29sdW1uczogJGNvbHVtbnMgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFnbG9iYWw7XG4gIH1cblxuICBAcmV0dXJuICRwYXJlbnQtY29sdW1ucztcbn1cblxuQGZ1bmN0aW9uIGlzLWRpc3BsYXktdGFibGUoJGNvbnRhaW5lci1pcy1kaXNwbGF5LXRhYmxlLCAkZGlzcGxheSkge1xuICBAcmV0dXJuICRjb250YWluZXItaXMtZGlzcGxheS10YWJsZSA9PSB0cnVlIG9yICRkaXNwbGF5ID09IHRhYmxlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG5AaWYgJGJvcmRlci1ib3gtc2l6aW5nID09IHRydWUge1xuICBodG1sIHsgLy8gaHR0cDovL2JpdC5seS8xcWsydFZSXG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxuXG4gICoge1xuICAgICYsXG4gICAgJjo6YWZ0ZXIsXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGJveC1zaXppbmc6IGluaGVyaXQ7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBSZW1vdmVzIHRoZSBlbGVtZW50J3MgZ3V0dGVyIG1hcmdpbiwgcmVnYXJkbGVzcyBvZiBpdHMgcG9zaXRpb24gaW4gdGhlIGdyaWQgaGllcmFyY2h5IG9yIGRpc3BsYXkgcHJvcGVydHkuIEl0IGNhbiB0YXJnZXQgYSBzcGVjaWZpYyBlbGVtZW50LCBvciBldmVyeSBgbnRoLWNoaWxkYCBvY2N1cnJlbmNlLiBXb3JrcyBvbmx5IHdpdGggYGJsb2NrYCBsYXlvdXRzLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcXVlcnkgW2Jsb2NrXVxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHMuIFN1cHBvcnRlZCBhcmd1bWVudHMgYXJlIGBudGgtY2hpbGRgIHNlbGVjdG9ycyAodGFyZ2V0cyBhIHNwZWNpZmljIHBzZXVkbyBlbGVtZW50KSBhbmQgYGF1dG9gICh0YXJnZXRzIGBsYXN0LWNoaWxkYCkuXG4vLy9cbi8vLyAgIFdoZW4gcGFzc2VkIGFuIGBudGgtY2hpbGRgIGFyZ3VtZW50IG9mIHR5cGUgYCpuYCB3aXRoIGBibG9ja2AgZGlzcGxheSwgdGhlIG9tZWdhIG1peGluIGF1dG9tYXRpY2FsbHkgYWRkcyBhIGNsZWFyIHRvIHRoZSBgKm4rMWAgdGggZWxlbWVudC4gTm90ZSB0aGF0IGNvbXBvc2l0ZSBhcmd1bWVudHMgc3VjaCBhcyBgMm4rMWAgZG8gbm90IHN1cHBvcnQgdGhpcyBmZWF0dXJlLlxuLy8vXG4vLy8gICAqKkRlcHJlY2F0aW9uIHdhcm5pbmcqKjogVGhlIG9tZWdhIG1peGluIHdpbGwgbm8gbG9uZ2VyIHRha2UgYSBgJGRpcmVjdGlvbmAgYXJndW1lbnQuIFRvIGNoYW5nZSB0aGUgbGF5b3V0IGRpcmVjdGlvbiwgdXNlIGByb3coJGRpcmVjdGlvbilgIG9yIHNldCBgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbmAgaW5zdGVhZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBvbWVnYTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLm50aC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgb21lZ2EoNG4pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5udGgtZWxlbWVudDpudGgtY2hpbGQoNG4pIHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAubnRoLWVsZW1lbnQ6bnRoLWNoaWxkKDRuKzEpIHtcbi8vLyAgICAgY2xlYXI6IGxlZnQ7XG4vLy8gICB9XG5cbkBtaXhpbiBvbWVnYSgkcXVlcnk6IGJsb2NrLCAkZGlyZWN0aW9uOiBkZWZhdWx0KSB7XG4gICR0YWJsZTogYmVsb25ncy10byh0YWJsZSwgJHF1ZXJ5KTtcbiAgJGF1dG86IGJlbG9uZ3MtdG8oYXV0bywgJHF1ZXJ5KTtcblxuICBAaWYgJGRpcmVjdGlvbiAhPSBkZWZhdWx0IHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIG9tZWdhIG1peGluIHdpbGwgbm8gbG9uZ2VyIHRha2UgYSAkZGlyZWN0aW9uIGFyZ3VtZW50LiBUbyBjaGFuZ2UgdGhlIGxheW91dCBkaXJlY3Rpb24sIHVzZSB0aGUgZGlyZWN0aW9uKCl7Li4ufSBtaXhpbi5cIik7XG4gIH0gQGVsc2Uge1xuICAgICRkaXJlY3Rpb246IGdldC1kaXJlY3Rpb24oJGxheW91dC1kaXJlY3Rpb24sICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pO1xuICB9XG5cbiAgQGlmICR0YWJsZSB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSBvbWVnYSBtaXhpbiBubyBsb25nZXIgcmVtb3ZlcyBwYWRkaW5nIGluIHRhYmxlIGxheW91dHMuXCIpO1xuICB9XG5cbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgIEBpZiAkYXV0byB7XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSBpZiBjb250YWlucy1kaXNwbGF5LXZhbHVlKCRxdWVyeSkgYW5kICR0YWJsZSA9PSBmYWxzZSB7XG4gICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBudGgtY2hpbGQoJHF1ZXJ5LCAkZGlyZWN0aW9uKTtcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMiB7XG4gICAgQGlmICRhdXRvIHtcbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgbnRoLWNoaWxkKG50aCgkcXVlcnksIDEpLCAkZGlyZWN0aW9uKTtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUb28gbWFueSBhcmd1bWVudHMgcGFzc2VkIHRvIHRoZSBvbWVnYSgpIG1peGluLlwiKTtcbiAgfVxufVxuXG5AbWl4aW4gbnRoLWNoaWxkKCRxdWVyeSwgJGRpcmVjdGlvbikge1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBnZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pO1xuXG4gICY6bnRoLWNoaWxkKCN7JHF1ZXJ5fSkge1xuICAgIG1hcmdpbi0jeyRkaXJlY3Rpb259OiAwO1xuICB9XG5cbiAgQGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSBudW1iZXIgYW5kIHVuaXQoJHF1ZXJ5KSA9PSBcIm5cIiB7XG4gICAgJjpudGgtY2hpbGQoI3skcXVlcnl9KzEpIHtcbiAgICAgIGNsZWFyOiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCBhIG91dGVyIGNvbnRhaW5lciBieSBjZW50cmluZyBpdCBpbiB0aGUgdmlld3BvcnQsIGNsZWFyaW5nIGl0cyBmbG9hdHMsIGFuZCBzZXR0aW5nIGl0cyBgbWF4LXdpZHRoYC5cbi8vLyBBbHRob3VnaCBvcHRpb25hbCwgdXNpbmcgYG91dGVyLWNvbnRhaW5lcmAgaXMgcmVjb21tZW5kZWQuIFRoZSBtaXhpbiBjYW4gYmUgY2FsbGVkIG9uIG1vcmUgdGhhbiBvbmUgZWxlbWVudCBwZXIgcGFnZSwgYXMgbG9uZyBhcyB0aGV5IGFyZSBub3QgbmVzdGVkLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgW3VuaXRdfSAkbG9jYWwtbWF4LXdpZHRoIFskbWF4LXdpZHRoXVxuLy8vICAgTWF4IHdpZHRoIHRvIGJlIGFwcGxpZWQgdG8gdGhlIGVsZW1lbnQuIENhbiBiZSBhIHBlcmNlbnRhZ2Ugb3IgYSBtZWFzdXJlLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigxMDAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgKnpvb206IDE7XG4vLy8gICAgIG1heC13aWR0aDogMTAwJTtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4vLy8gICAgIG1hcmdpbi1yaWdodDogYXV0bztcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQ6YmVmb3JlLCAuZWxlbWVudDphZnRlciB7XG4vLy8gICAgIGNvbnRlbnQ6IFwiIFwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQ6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgIH1cblxuQG1peGluIG91dGVyLWNvbnRhaW5lcigkbG9jYWwtbWF4LXdpZHRoOiAkbWF4LXdpZHRoKSB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXgtd2lkdGg6ICRsb2NhbC1tYXgtd2lkdGg7XG4gIG1hcmdpbjoge1xuICAgIGxlZnQ6IGF1dG87XG4gICAgcmlnaHQ6IGF1dG87XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgYW4gZWxlbWVudCBzaG91bGQgc3Bhbi4gSWYgdGhlIHNlbGVjdG9yIGlzIG5lc3RlZCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgb2YgaXRzIHBhcmVudCBlbGVtZW50IHNob3VsZCBiZSBwYXNzZWQgYXMgYW4gYXJndW1lbnQgYXMgd2VsbC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNwYW5cbi8vLyAgIEEgbGlzdCBjb250YWluaW5nIGAkY29sdW1uc2AsIHRoZSB1bml0bGVzcyBudW1iZXIgb2YgY29sdW1ucyB0aGUgZWxlbWVudCBzcGFucyAocmVxdWlyZWQpLCBhbmQgYCRjb250YWluZXItY29sdW1uc2AsIHRoZSBudW1iZXIgb2YgY29sdW1ucyB0aGUgcGFyZW50IGVsZW1lbnQgc3BhbnMgKG9wdGlvbmFsKS5cbi8vL1xuLy8vICAgSWYgb25seSBvbmUgdmFsdWUgaXMgcGFzc2VkLCBpdCBpcyBhc3N1bWVkIHRoYXQgaXQncyBgJGNvbHVtbnNgIGFuZCB0aGF0IHRoYXQgYCRjb250YWluZXItY29sdW1uc2AgaXMgZXF1YWwgdG8gYCRncmlkLWNvbHVtbnNgLCB0aGUgdG90YWwgbnVtYmVyIG9mIGNvbHVtbnMgaW4gdGhlIGdyaWQuXG4vLy9cbi8vLyAgIFRoZSB2YWx1ZXMgY2FuIGJlIHNlcGFyYXRlZCB3aXRoIGFueSBzdHJpbmcgc3VjaCBhcyBgb2ZgLCBgL2AsIGV0Yy5cbi8vL1xuLy8vICAgYCRjb2x1bW5zYCBhbHNvIGFjY2VwdHMgZGVjaW1hbHMgZm9yIHdoZW4gaXQncyBuZWNlc3NhcnkgdG8gYnJlYWsgb3V0IG9mIHRoZSBzdGFuZGFyZCBncmlkLiBFLmcuIFBhc3NpbmcgYDIuNGAgaW4gYSBzdGFuZGFyZCAxMiBjb2x1bW4gZ3JpZCB3aWxsIGRpdmlkZSB0aGUgcm93IGludG8gNSBjb2x1bW5zLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtibG9ja11cbi8vLyAgIFNldHMgdGhlIGRpc3BsYXkgcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQuIEJ5IGRlZmF1bHQgaXQgc2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0IG9mIHRoZSBlbGVtZW50IHRvIGBibG9ja2AuXG4vLy9cbi8vLyAgIElmIHBhc3NlZCBgYmxvY2stY29sbGFwc2VgLCBpdCBhbHNvIHJlbW92ZXMgdGhlIG1hcmdpbiBndXR0ZXIgYnkgYWRkaW5nIGl0IHRvIHRoZSBlbGVtZW50IHdpZHRoLlxuLy8vXG4vLy8gICBJZiBwYXNzZWQgYHRhYmxlYCwgaXQgc2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSB0byBgdGFibGUtY2VsbGAgYW5kIGNhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIHRoZSBlbGVtZW50IHdpdGhvdXQgdGFraW5nIGd1dHRlcnMgaW50byBjb25zaWRlcmF0aW9uLiBUaGUgcmVzdWx0IGRvZXMgbm90IGFsaWduIHdpdGggdGhlIGJsb2NrLWJhc2VkIGdyaWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vXG4vLy8gICAgLm5lc3RlZC1lbGVtZW50IHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyIG9mIDYpO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4vLy8gICAgIHdpZHRoOiA0OC44MjExNyU7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50IC5uZXN0ZWQtZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbi8vLyAgICAgd2lkdGg6IDMwLjExMzg5JTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQgLm5lc3RlZC1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG5cbkBtaXhpbiBzcGFuLWNvbHVtbnMoJHNwYW46ICRjb2x1bW5zIG9mICRjb250YWluZXItY29sdW1ucywgJGRpc3BsYXk6IGJsb2NrKSB7XG4gICRjb2x1bW5zOiBudGgoJHNwYW4sIDEpO1xuICAkY29udGFpbmVyLWNvbHVtbnM6IGNvbnRhaW5lci1zcGFuKCRzcGFuKTtcblxuICAkcGFyZW50LWNvbHVtbnM6IGdldC1wYXJlbnQtY29sdW1ucygkY29udGFpbmVyLWNvbHVtbnMpICFnbG9iYWw7XG5cbiAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgJGRpc3BsYXktdGFibGU6IGlzLWRpc3BsYXktdGFibGUoJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlLCAkZGlzcGxheSk7XG5cbiAgQGlmICRkaXNwbGF5LXRhYmxlICB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyAvICRjb250YWluZXItY29sdW1ucyk7XG4gIH0gQGVsc2Uge1xuICAgIGZsb2F0OiAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259O1xuXG4gICAgQGlmICRkaXNwbGF5ICE9IG5vLWRpc3BsYXkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRkaXNwbGF5ID09IGNvbGxhcHNlIHtcbiAgICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgJ2NvbGxhcHNlJyBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQuIFVzZSAnYmxvY2stY29sbGFwc2UnIGluc3RlYWQuXCIpO1xuICAgIH1cblxuICAgIEBpZiAkZGlzcGxheSA9PSBjb2xsYXBzZSBvciAkZGlzcGxheSA9PSBibG9jay1jb2xsYXBzZSB7XG4gICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpICsgZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zKTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKTtcbiAgICAgIH1cblxuICAgIH0gQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1ucyk7XG4gICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERlc2lnbmF0ZXMgdGhlIGVsZW1lbnQgYXMgYSByb3cgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZCBsYXlvdXQuIEl0IGNsZWFycyB0aGUgZmxvYXRzIG9uIHRoZSBlbGVtZW50IGFuZCBzZXRzIGl0cyBkaXNwbGF5IHByb3BlcnR5LiBSb3dzIGNhbid0IGJlIG5lc3RlZCwgYnV0IHRoZXJlIGNhbiBiZSBtb3JlIHRoYW4gb25lIHJvdyBlbGVtZW504oCUd2l0aCBkaWZmZXJlbnQgZGlzcGxheSBwcm9wZXJ0aWVz4oCUcGVyIGxheW91dC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSBbZGVmYXVsdF1cbi8vLyAgU2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCBhbmQgdGhlIGRpc3BsYXkgY29udGV4dCB0aGF0IHdpbGwgYmUgdXNlZCBieSBpdHMgY2hpbGRyZW4uIENhbiBiZSBgYmxvY2tgIG9yIGB0YWJsZWAuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpcmVjdGlvbiBbJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbl1cbi8vLyAgU2V0cyB0aGUgbGF5b3V0IGRpcmVjdGlvbi4gQ2FuIGJlIGBMVFJgIChsZWZ0LXRvLXJpZ2h0KSBvciBgUlRMYCAocmlnaHQtdG8tbGVmdCkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgLmVsZW1lbnQge1xuLy8vICAgIEBpbmNsdWRlIHJvdygpO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gIC5lbGVtZW50IHtcbi8vLyAgICAqem9vbTogMTtcbi8vLyAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgfVxuLy8vXG4vLy8gLmVsZW1lbnQ6YmVmb3JlLCAuZWxlbWVudDphZnRlciB7XG4vLy8gICBjb250ZW50OiBcIiBcIjtcbi8vLyAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vIH1cbi8vL1xuLy8vIC5lbGVtZW50OmFmdGVyIHtcbi8vLyAgIGNsZWFyOiBib3RoO1xuLy8vIH1cblxuQG1peGluIHJvdygkZGlzcGxheTogZGVmYXVsdCwgJGRpcmVjdGlvbjogJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbikge1xuICBAaWYgJGRpcmVjdGlvbiAhPSAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlICRkaXJlY3Rpb24gYXJndW1lbnQgd2lsbCBiZSBkZXByZWNhdGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBpbiBmYXZvciBvZiB0aGUgZGlyZWN0aW9uKCl7Li4ufSBtaXhpbi5cIik7XG4gIH1cblxuICAkbGF5b3V0LWRpcmVjdGlvbjogJGRpcmVjdGlvbiAhZ2xvYmFsO1xuXG4gIEBpZiAkZGlzcGxheSAhPSBkZWZhdWx0IHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlICRkaXNwbGF5IGFyZ3VtZW50IHdpbGwgYmUgZGVwcmVjYXRlZCBpbiBmdXR1cmUgdmVyc2lvbnMgaW4gZmF2b3Igb2YgdGhlIGRpc3BsYXkoKXsuLi59IG1peGluLlwiKTtcbiAgfVxuXG4gIEBpZiAkZGlzcGxheSA9PSB0YWJsZSB7XG4gICAgZGlzcGxheTogdGFibGU7XG4gICAgQGluY2x1ZGUgZmlsbC1wYXJlbnQ7XG4gICAgdGFibGUtbGF5b3V0OiBmaXhlZDtcbiAgICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6IHRydWUgIWdsb2JhbDtcbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiBmYWxzZSAhZ2xvYmFsO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBUcmFuc2xhdGVzIGFuIGVsZW1lbnQgaG9yaXpvbnRhbGx5IGJ5IGEgbnVtYmVyIG9mIGNvbHVtbnMuIFBvc2l0aXZlIGFyZ3VtZW50cyBzaGlmdCB0aGUgZWxlbWVudCB0byB0aGUgYWN0aXZlIGxheW91dCBkaXJlY3Rpb24sIHdoaWxlIG5lZ2F0aXZlIG9uZXMgc2hpZnQgaXQgdG8gdGhlIG9wcG9zaXRlIGRpcmVjdGlvbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICRuLWNvbHVtbnMgWzFdXG4vLy8gICBOdW1iZXIgb2YgY29sdW1ucyBieSB3aGljaCB0aGUgZWxlbWVudCBzaGlmdHMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2hpZnQoLTMpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIG91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tbGVmdDogLTI1LjU4OTQxJTtcbi8vLyAgIH1cblxuQG1peGluIHNoaWZ0KCRuLWNvbHVtbnM6IDEpIHtcbiAgQGluY2x1ZGUgc2hpZnQtaW4tY29udGV4dCgkbi1jb2x1bW5zKTtcbn1cblxuLy8vIFRyYW5zbGF0ZXMgYW4gZWxlbWVudCBob3Jpem9udGFsbHkgYnkgYSBudW1iZXIgb2YgY29sdW1ucywgaW4gYSBzcGVjaWZpYyBuZXN0aW5nIGNvbnRleHQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaGlmdFxuLy8vICAgQSBsaXN0IGNvbnRhaW5pbmcgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRvIHNoaWZ0IChgJGNvbHVtbnNgKSBhbmQgdGhlIG51bWJlciBvZiBjb2x1bW5zIG9mIHRoZSBwYXJlbnQgZWxlbWVudCAoYCRjb250YWluZXItY29sdW1uc2ApLlxuLy8vXG4vLy8gICBUaGUgdHdvIHZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIHdpdGggYW55IHN0cmluZyBzdWNoIGFzIGBvZmAsIGAvYCwgZXRjLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNoaWZ0KC0zIG9mIDYpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIG91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW4tbGVmdDogLTUyLjQxNDU4JTtcbi8vLyAgIH1cblxuQG1peGluIHNoaWZ0LWluLWNvbnRleHQoJHNoaWZ0OiAkY29sdW1ucyBvZiAkY29udGFpbmVyLWNvbHVtbnMpIHtcbiAgJG4tY29sdW1uczogbnRoKCRzaGlmdCwgMSk7XG4gICRwYXJlbnQtY29sdW1uczogY29udGFpbmVyLXNoaWZ0KCRzaGlmdCkgIWdsb2JhbDtcblxuICAkZGlyZWN0aW9uOiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQtZGlyZWN0aW9uLCAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKTtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKTtcblxuICBtYXJnaW4tI3skb3Bwb3NpdGUtZGlyZWN0aW9ufTogJG4tY29sdW1ucyAqIGZsZXgtZ3JpZCgxLCAkcGFyZW50LWNvbHVtbnMpICsgJG4tY29sdW1ucyAqIGZsZXgtZ3V0dGVyKCRwYXJlbnQtY29sdW1ucyk7XG5cbiAgLy8gUmVzZXQgbmVzdGluZyBjb250ZXh0XG4gICRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQWRkcyBwYWRkaW5nIHRvIHRoZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcGFkZGluZyBbZmxleC1ndXR0ZXIoKV1cbi8vLyAgIEEgbGlzdCBvZiBwYWRkaW5nIHZhbHVlKHMpIHRvIHVzZS4gUGFzc2luZyBgZGVmYXVsdGAgaW4gdGhlIGxpc3Qgd2lsbCByZXN1bHQgaW4gdXNpbmcgdGhlIGd1dHRlciB3aWR0aCBhcyBhIHBhZGRpbmcgdmFsdWUuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcGFkKDMwcHggLTIwcHggMTBweCBkZWZhdWx0KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgcGFkZGluZzogMzBweCAtMjBweCAxMHB4IDIuMzU3NjUlO1xuLy8vICAgfVxuXG5AbWl4aW4gcGFkKCRwYWRkaW5nOiBmbGV4LWd1dHRlcigpKSB7XG4gICRwYWRkaW5nLWxpc3Q6IG51bGw7XG4gIEBlYWNoICR2YWx1ZSBpbiAkcGFkZGluZyB7XG4gICAgJHZhbHVlOiBpZigkdmFsdWUgPT0gJ2RlZmF1bHQnLCBmbGV4LWd1dHRlcigpLCAkdmFsdWUpO1xuICAgICRwYWRkaW5nLWxpc3Q6IGpvaW4oJHBhZGRpbmctbGlzdCwgJHZhbHVlKTtcbiAgfVxuICBwYWRkaW5nOiAkcGFkZGluZy1saXN0O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRm9yY2VzIHRoZSBlbGVtZW50IHRvIGZpbGwgaXRzIHBhcmVudCBjb250YWluZXIuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZmlsbC1wYXJlbnQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuLy8vICAgfVxuXG5AbWl4aW4gZmlsbC1wYXJlbnQoKSB7XG4gIHdpZHRoOiAxMDAlO1xuXG4gIEBpZiAkYm9yZGVyLWJveC1zaXppbmcgPT0gZmFsc2Uge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE91dHB1dHMgYSBtZWRpYS1xdWVyeSBibG9jayB3aXRoIGFuIG9wdGlvbmFsIGdyaWQgY29udGV4dCAodGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIHVzZWQgaW4gdGhlIGdyaWQpLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcXVlcnlcbi8vLyAgIEEgbGlzdCBvZiBtZWRpYSBxdWVyeSBmZWF0dXJlcyBhbmQgdmFsdWVzLCB3aGVyZSBlYWNoIGAkZmVhdHVyZWAgc2hvdWxkIGhhdmUgYSBjb3JyZXNwb25kaW5nIGAkdmFsdWVgLlxuLy8vICAgRm9yIGEgbGlzdCBvZiB2YWxpZCB2YWx1ZXMgZm9yIGAkZmVhdHVyZWAsIGNsaWNrIFtoZXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWExKS5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSBgJHZhbHVlYCBpbiBgJHF1ZXJ5YCwgYCRkZWZhdWx0LWZlYXR1cmVgIGlzIGdvaW5nIHRvIGJlIHVzZWQuXG4vLy9cbi8vLyAgIFRoZSBudW1iZXIgb2YgdG90YWwgY29sdW1ucyBpbiB0aGUgZ3JpZCBjYW4gYmUgc2V0IGJ5IHBhc3NpbmcgYCRjb2x1bW5zYCBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0IChvdmVycmlkZXMgYCR0b3RhbC1jb2x1bW5zYCkuXG4vLy9cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICR0b3RhbC1jb2x1bW5zIFskZ3JpZC1jb2x1bW5zXVxuLy8vICAgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgaW4gdGhlIG5ldyBncmlkIGNvbnRleHQuIENhbiBiZSBzZXQgYXMgYSBzaG9ydGhhbmQgaW4gdGhlIGZpcnN0IHBhcmFtZXRlci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLnJlc3BvbnNpdmUtZWxlbWVudCB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSg3NjlweCkge1xuLy8vICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyAgLm5ldy1jb250ZXh0LWVsZW1lbnQge1xuLy8vICAgIEBpbmNsdWRlIG1lZGlhKG1pbi13aWR0aCAzMjBweCBtYXgtd2lkdGggNDgwcHgsIDYpIHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzY5cHgpIHtcbi8vLyAgICAucmVzcG9uc2l2ZS1lbGVtZW50IHtcbi8vLyAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgICBtYXJnaW4tcmlnaHQ6IDIuMzU3NjUlO1xuLy8vICAgICAgd2lkdGg6IDQ4LjgyMTE3JTtcbi8vLyAgICB9XG4vLy9cbi8vLyAgICAucmVzcG9uc2l2ZS1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDMyMHB4KSBhbmQgKG1heC13aWR0aDogNDgwcHgpIHtcbi8vLyAgICAubmV3LWNvbnRleHQtZWxlbWVudCB7XG4vLy8gICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgIGZsb2F0OiBsZWZ0O1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbi8vLyAgICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgIH1cbi8vL1xuLy8vICAgIC5uZXctY29udGV4dC1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgIH1cbi8vLyAgfVxuXG5AbWl4aW4gbWVkaWEoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAoJGRlZmF1bHQtZmVhdHVyZTogbnRoKCRxdWVyeSwgMSkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zICFnbG9iYWw7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgJGxvb3AtdG86IGxlbmd0aCgkcXVlcnkpO1xuICAgICRtZWRpYS1xdWVyeTogXCJzY3JlZW4gYW5kIFwiO1xuICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucyAhZ2xvYmFsO1xuXG4gICAgQGlmIGlzLW5vdChpcy1ldmVuKGxlbmd0aCgkcXVlcnkpKSkge1xuICAgICAgJGdyaWQtY29sdW1uczogbnRoKCRxdWVyeSwgJGxvb3AtdG8pICFnbG9iYWw7XG4gICAgICAkbG9vcC10bzogJGxvb3AtdG8gLSAxO1xuICAgIH1cblxuICAgICRpOiAxO1xuICAgIEB3aGlsZSAkaSA8PSAkbG9vcC10byB7XG4gICAgICAkbWVkaWEtcXVlcnk6ICRtZWRpYS1xdWVyeSArIFwiKFwiICsgbnRoKCRxdWVyeSwgJGkpICsgXCI6IFwiICsgbnRoKCRxdWVyeSwgJGkgKyAxKSArIFwiKSBcIjtcblxuICAgICAgQGlmICgkaSArIDEpICE9ICRsb29wLXRvIHtcbiAgICAgICAgJG1lZGlhLXF1ZXJ5OiAkbWVkaWEtcXVlcnkgKyBcImFuZCBcIjtcbiAgICAgIH1cblxuICAgICAgJGk6ICRpICsgMjtcbiAgICB9XG5cbiAgICBAbWVkaWEgI3skbWVkaWEtcXVlcnl9IHtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zICFnbG9iYWw7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbkBtaXhpbiBicmVha3BvaW50KCRxdWVyeTokZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgYnJlYWtwb2ludCgpIG1peGluIHdhcyByZW5hbWVkIHRvIG1lZGlhKCkgaW4gTmVhdCAxLjAuIFBsZWFzZSB1cGRhdGUgeW91ciBwcm9qZWN0IHdpdGggdGhlIG5ldyBzeW50YXggYmVmb3JlIHRoZSBuZXh0IHZlcnNpb24gYnVtcC5cIik7XG5cbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kICgkZGVmYXVsdC1mZWF0dXJlOiBudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnM7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMiB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnM7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMyB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogbnRoKCRxdWVyeSwgMyk7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gNCB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkgYW5kIChudGgoJHF1ZXJ5LCAzKTogbnRoKCRxdWVyeSwgNCkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDUge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChudGgoJHF1ZXJ5LCAxKTogbnRoKCRxdWVyeSwgMikpIGFuZCAobnRoKCRxdWVyeSwgMyk6IG50aCgkcXVlcnksIDQpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiBudGgoJHF1ZXJ5LCA1KTtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIGJyZWFrcG9pbnQoKS4gUmVhZCB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgbW9yZSBkZXRhaWxzLlwiKTtcbiAgfVxufVxuXG5AbWl4aW4gbnRoLW9tZWdhKCRudGgsICRkaXNwbGF5OiBibG9jaywgJGRpcmVjdGlvbjogZGVmYXVsdCkge1xuICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVGhlIG50aC1vbWVnYSgpIG1peGluIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2Ugb21lZ2EoKSBpbnN0ZWFkLlwiKTtcbiAgQGluY2x1ZGUgb21lZ2EoJG50aCAkZGlzcGxheSwgJGRpcmVjdGlvbik7XG59XG5cbi8vLyBSZXNldHMgdGhlIGFjdGl2ZSBkaXNwbGF5IHByb3BlcnR5IHRvIGBibG9ja2AuIFBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBjaGFuZ2luZyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBpbiBhIHNpbmdsZSByb3cuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcm93KHRhYmxlKTtcbi8vLyAgICAgLy8gQ29udGV4dCBjaGFuZ2VkIHRvIHRhYmxlIGRpc3BsYXlcbi8vLyAgIH1cbi8vL1xuLy8vICAgQGluY2x1ZGUgcmVzZXQtZGlzcGxheTtcbi8vLyAgIC8vIENvbnRleHQgaXMgcmVzZXQgdG8gYmxvY2sgZGlzcGxheVxuXG5AbWl4aW4gcmVzZXQtZGlzcGxheSB7XG4gICRjb250YWluZXItZGlzcGxheS10YWJsZTogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlJlc2V0dGluZyAkZGlzcGxheSB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIHZlcnNpb25zIGluIGZhdm9yIG9mIHRoZSBkaXNwbGF5KCl7Li4ufSBtaXhpbi5cIik7XG59XG5cbi8vLyBSZXNldHMgdGhlIGFjdGl2ZSBsYXlvdXQgZGlyZWN0aW9uIHRvIHRoZSBkZWZhdWx0IHZhbHVlIHNldCBpbiBgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbmAuIFBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBjaGFuZ2luZyB0aGUgbGF5b3V0IGRpcmVjdGlvbiBpbiBhIHNpbmdsZSByb3cuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcm93KCRkaXJlY3Rpb246IFJUTCk7XG4vLy8gICAgIC8vIENvbnRleHQgY2hhbmdlZCB0byByaWdodC10by1sZWZ0XG4vLy8gICB9XG4vLy9cbi8vLyAgIEBpbmNsdWRlIHJlc2V0LWxheW91dC1kaXJlY3Rpb247XG4vLy8gICAvLyBDb250ZXh0IGlzIHJlc2V0IHRvIGxlZnQtdG8tcmlnaHRcblxuQG1peGluIHJlc2V0LWxheW91dC1kaXJlY3Rpb24ge1xuICAkbGF5b3V0LWRpcmVjdGlvbjogJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbiAhZ2xvYmFsO1xuICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiUmVzZXR0aW5nICRkaXJlY3Rpb24gd2lsbCBiZSBkZXByZWNhdGVkIGluIGZ1dHVyZSB2ZXJzaW9ucyBpbiBmYXZvciBvZiB0aGUgZGlyZWN0aW9uKCl7Li4ufSBtaXhpbi5cIik7XG59XG5cbi8vLyBSZXNldHMgYm90aCB0aGUgYWN0aXZlIGxheW91dCBkaXJlY3Rpb24gYW5kIHRoZSBhY3RpdmUgZGlzcGxheSBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSByb3codGFibGUsIFJUTCk7XG4vLy8gICAgIC8vIENvbnRleHQgY2hhbmdlZCB0byB0YWJsZSB0YWJsZSBhbmQgcmlnaHQtdG8tbGVmdFxuLy8vICAgfVxuLy8vXG4vLy8gICBAaW5jbHVkZSByZXNldC1hbGw7XG4vLy8gICAvLyBDb250ZXh0IGlzIHJlc2V0IHRvIGJsb2NrIGRpc3BsYXkgYW5kIGxlZnQtdG8tcmlnaHRcblxuQG1peGluIHJlc2V0LWFsbCB7XG4gIEBpbmNsdWRlIHJlc2V0LWRpc3BsYXk7XG4gIEBpbmNsdWRlIHJlc2V0LWxheW91dC1kaXJlY3Rpb247XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbkBtaXhpbiBncmlkLWNvbHVtbi1ncmFkaWVudCgkdmFsdWVzLi4uKSB7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1zLWxpbmVhci1ncmFkaWVudChsZWZ0LCAkdmFsdWVzKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW8tbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KHRvIGxlZnQsICN7JHZhbHVlc30pXCIpO1xufVxuXG5AaWYgJHZpc3VhbC1ncmlkID09IHRydWUgb3IgJHZpc3VhbC1ncmlkID09IHllcyB7XG4gIGJvZHk6YmVmb3JlIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ncmFkaWVudChncmFkaWVudC1zdG9wcygkZ3JpZC1jb2x1bW5zKSk7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgbWF4LXdpZHRoOiAkbWF4LXdpZHRoO1xuICAgIG9wYWNpdHk6ICR2aXN1YWwtZ3JpZC1vcGFjaXR5O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICByaWdodDogMDtcbiAgICB3aWR0aDogMTAwJTtcblxuICAgIEBpZiAkdmlzdWFsLWdyaWQtaW5kZXggPT0gYmFjayB7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICB9XG5cbiAgICBAZWxzZSBpZiAkdmlzdWFsLWdyaWQtaW5kZXggPT0gZnJvbnQge1xuICAgICAgei1pbmRleDogOTk5OTtcbiAgICB9XG5cbiAgICBAZWFjaCAkYnJlYWtwb2ludCBpbiAkdmlzdWFsLWdyaWQtYnJlYWtwb2ludHMge1xuICAgICAgQGlmICRicmVha3BvaW50IHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQpIHtcbiAgICAgICAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1ncmFkaWVudChncmFkaWVudC1zdG9wcygkZ3JpZC1jb2x1bW5zKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoYW5nZXMgdGhlIGRpc3BsYXkgcHJvcGVydHkgdXNlZCBieSBvdGhlciBtaXhpbnMgY2FsbGVkIGluIHRoZSBjb2RlIGJsb2NrIGFyZ3VtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkaXNwbGF5IFtibG9ja11cbi8vLyAgIERpc3BsYXkgdmFsdWUgdG8gYmUgdXNlZCB3aXRoaW4gdGhlIGJsb2NrLiBDYW4gYmUgYHRhYmxlYCBvciBgYmxvY2tgLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2Nzc1xuLy8vICAgQGluY2x1ZGUgZGlzcGxheS1jb250ZXh0KHRhYmxlKSB7XG4vLy8gICAgLmRpc3BsYXktdGFibGUge1xuLy8vICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3Ncbi8vLyAgIC5kaXNwbGF5LXRhYmxlIHtcbi8vLyAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4vLy8gICAgICAuLi5cbi8vLyAgIH1cblxuQG1peGluIGRpc3BsYXktY29udGV4dCgkZGlzcGxheTogYmxvY2spIHtcbiAgJHNjb3BlLWRpc3BsYXk6ICRjb250YWluZXItZGlzcGxheS10YWJsZTtcbiAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiAkZGlzcGxheSA9PSB0YWJsZSAhZ2xvYmFsO1xuXG4gIEBjb250ZW50O1xuXG4gICRjb250YWluZXItZGlzcGxheS10YWJsZTogJHNjb3BlLWRpc3BsYXkgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENoYW5nZXMgdGhlIGRpcmVjdGlvbiBwcm9wZXJ0eSB1c2VkIGJ5IG90aGVyIG1peGlucyBjYWxsZWQgaW4gdGhlIGNvZGUgYmxvY2sgYXJndW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpcmVjdGlvbiBbbGVmdC10by1yaWdodF1cbi8vLyAgIExheW91dCBkaXJlY3Rpb24gdG8gYmUgdXNlZCB3aXRoaW4gdGhlIGJsb2NrLiBDYW4gYmUgYGxlZnQtdG8tcmlnaHRgIG9yIGByaWdodC10by1sZWZ0YC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgQGluY2x1ZGUgZGlyZWN0aW9uLWNvbnRleHQocmlnaHQtdG8tbGVmdCkge1xuLy8vICAgIC5yaWdodC10by1sZWZ0LWJsb2NrIHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICAgfVxuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLnJpZ2h0LXRvLWxlZnQtYmxvY2sge1xuLy8vICAgICBmbG9hdDogcmlnaHQ7XG4vLy8gICAgICAuLi5cbi8vLyAgIH1cblxuQG1peGluIGRpcmVjdGlvbi1jb250ZXh0KCRkaXJlY3Rpb246IGxlZnQtdG8tcmlnaHQpIHtcbiAgJHNjb3BlLWRpcmVjdGlvbjogJGxheW91dC1kaXJlY3Rpb247XG5cbiAgQGlmIHRvLWxvd2VyLWNhc2UoJGRpcmVjdGlvbikgPT0gXCJsZWZ0LXRvLXJpZ2h0XCIge1xuICAgICRsYXlvdXQtZGlyZWN0aW9uOiBMVFIgIWdsb2JhbDtcbiAgfSBAZWxzZSBpZiB0by1sb3dlci1jYXNlKCRkaXJlY3Rpb24pID09IFwicmlnaHQtdG8tbGVmdFwiIHtcbiAgICAkbGF5b3V0LWRpcmVjdGlvbjogUlRMICFnbG9iYWw7XG4gIH1cblxuICBAY29udGVudDtcblxuICAkbGF5b3V0LWRpcmVjdGlvbjogJHNjb3BlLWRpcmVjdGlvbiAhZ2xvYmFsO1xufVxuIiwiLy8gVmFyaWFibGVzLlxuLy8gQWRkIHlvdXIgc2l0ZSB2YXJpYWJsZXMsIHN1Y2ggYXMgY29sb3VycyBhbmQgZm9udCBzaXplcyBpbiB0aGlzIGZpbGUuXG5cbiRsZWdhY3ktc3VwcG9ydC1mb3ItaWU6IGZhbHNlO1xuJG5vcm1hbGl6ZS1oZWFkaW5nczogdHJ1ZTtcblxuLy8gQ29sb3JzLlxuJHdoaXRlOiAjZmZmO1xuJGJsYWNrOiAjMDAwO1xuJGJhY2tncm91bmQ6ICNmZmY7XG4kYmx1ZTogIzAwOWZlMDtcblxuXG4kZ3JleTogI2UyZTJlMTtcbiRkYXJrX2dyZXk6ICM1MjU2NWY7XG4kZGFya19ncmV5LS1ib3JkZXI6ICM1YjVmNjk7XG4kZGFyazogIzM2Mzk0MjtcbiRvcmFuZ2U6ICNmZjY1MGI7XG5cbiRjb2xvcjogIzRhNGE0YTtcbiRjb2xvci10aXRsZTogJGRhcms7XG4kYmFzZS10ZXh0LWNvbG9yOiAkY29sb3I7XG4kYmFzZS1zZWxlY3RlZC10ZXh0LWNvbG9yOiAkYmFzZS10ZXh0LWNvbG9yO1xuJGJhc2Utc2VsZWN0ZWQtdGV4dC1iYWNrZ3JvdW5kLWNvbG9yOiBpbnZlcnQoJGJhc2UtdGV4dC1jb2xvcik7XG4kYmFzZS1saW5rLWNvbG9yOiAkY29sb3I7XG4kYmFzZS1saW5rLWhvdmVyLWNvbG9yOiBpbnZlcnQoJGJhc2UtbGluay1jb2xvcik7XG4kYmFzZS1ib3JkZXItY29sb3I6ICNlMWUxZTE7XG4kYmFzZS1ibHVlOiAjMDBhZWVmO1xuXG4vLyBCYW5uZXIuXG4kaGVpZ2h0LWJhbm5lci13aGl0ZTogMTMwcHg7XG5cbiRoZWlnaHQtYmFubmVyOiAzNDBweDtcbiRoZWlnaHQtYmFubmVyLXByb2R1Y3QtcGFnZTogMTMwcHg7XG5cbiRoZWlnaHQtY2Fyb3VzZWw6IDUyNXB4O1xuJGhlaWdodC1jYXJvdXNlbC10YWJsZXQtaG9tZTogNDUwcHg7XG4kaGVpZ2h0LWNhcm91c2VsLXRhYmxldDogNTQwcHg7XG4kaGVpZ2h0LWNhcm91c2VsLW1vYmlsZTogMzQwcHg7XG5cbi8vIEZvbnQgc2l6ZXMuXG4kYmFzZS1mb250LXNpemU6IDE0cHg7XG4kYmFzZS1saW5lLWhlaWdodDogMS42O1xuXG4vLyBEZWZhdWx0IGhlYWRpbmcgc2l6ZXMgYmFzZWQgb24gXCJQZXJmZWN0IEZvdXJ0aFwiIGFuZCBiYXNlLWZvbnQtc2l6ZTogMTZweDtcbi8vIFNvdXJjZTogaHR0cDovL3R5cGUtc2NhbGUuY29tXG4kaDAtZm9udC1zaXplOiA2MHB4O1xuJGgxLWZvbnQtc2l6ZTogMzBweDtcbiRoMi1mb250LXNpemU6IDI0cHg7XG4kaDMtZm9udC1zaXplOiAyMHB4O1xuJGg0LWZvbnQtc2l6ZTogMThweDtcbiRoNS1mb250LXNpemU6IDE2cHg7XG4kaDYtZm9udC1zaXplOiAxMnB4O1xuXG4kaDEtbWFyZ2luOiAwIDAgMTBweCAwO1xuJGgyLW1hcmdpbjogMCAwIDEwcHggMDtcbiRoMy1tYXJnaW46IDAgMCAxMHB4IDA7XG4kaDQtbWFyZ2luOiAwO1xuJGg1LW1hcmdpbjogMDtcbiRoNi1tYXJnaW46IDA7XG5cbiRoMS1wYWRkaW5nOiAwO1xuJGgyLXBhZGRpbmc6IDA7XG4kaDMtcGFkZGluZzogMDtcbiRoNC1wYWRkaW5nOiAwO1xuJGg1LXBhZGRpbmc6IDA7XG4kaDYtcGFkZGluZzogMDtcblxuLy8gQnJlYWtwb2ludHMuXG4kYnJlYWtwb2ludC0xOiAzMGVtOyAvLzQ4MHB4O1xuJGJyZWFrcG9pbnQtYnV0dG9uOiA1MzBweDtcbiRicmVha3BvaW50LTI6IDQ4ZW07IC8vNzY4cHhcbiRicmVha3BvaW50LTM6IDYwZW07IC8vOTYwcHhcbiRicmVha3BvaW50LTQ6IDcwZW07IC8vMTEyMHB4XG5cbi8vIGNvbG9yIG5hbWVzIHVzZWQgaW4gY29tcG9uZW50cyBsaWtlIGMyYS5cbi8vIGh0dHBzOi8vY29uZmx1ZW5jZS5kYXRhbGluZS5ldS9kaXNwbGF5L01DL0NvbG9yK25hbWVzXG4kYWxpY2UtYmx1ZTojZWJmOWZmO1xuJHBhY2lmaWMtYmx1ZTogIzAwOWZlMDtcbiRtaXJhZ2U6IzM0Mzk0MjtcbiR3aGl0ZS1zbW9rZTojZjNmM2YzO1xuJGdhaW5zYm9ybzojZTllOWU5O1xuIiwiLy8gRm9udHMuXG4vLyBBZGQgeW91ciBmb250IGRlY2xhcmF0aW9ucywgc3VjaCBhcyB3ZWJmb250cyBpbiB0aGlzIGZpbGUuXG4vLyBUaGUgYWN0dWFsIGZvbnQgcmVsYXRlZCB0aGVtaW5nIGdvZXMgaW4gZGVzaWduID4gdHlwb2dyYXBoeS5cblxuJGZvbnR5OlwiSGVsdmV0aWNhIE5ldWVcIiwgQ2FsaWJyaSwgSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgXG5cbiRiYXNlLWZvbnQtZmFtaWx5OiAkZm9udHk7XG4kYmFzZS1mb250LWZhbWlseV9fbWVkaXVtOiAkZm9udHk7XG4kYmFzZS1mb250LWZhbWlseV9fcmVndWxhcjogJGZvbnR5O1xuXG4kdGl0bGUtZm9udC1mYW1pbHk6ICRmb250eTtcbiRub3JtYWxpemVkLWZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmO1xuXG4vKlxuJGJhc2UtZm9udC1mYW1pbHk6ICd0b2Zpbm9fYm9vaycsIFRhaG9tYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kYmFzZS1mb250LWZhbWlseV9fbWVkaXVtOiAndG9maW5vX21lZGl1bScsIFRhaG9tYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kYmFzZS1mb250LWZhbWlseV9fcmVndWxhcjogJ3RvZmlub19ib29rJywgVGFob21hLCBBcmlhbCwgc2Fucy1zZXJpZjs7XG5cbiR0aXRsZS1mb250LWZhbWlseTogJ3RvZmlub19saWdodCcsIFRhaG9tYSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kbm9ybWFsaXplZC1mb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiovXG5cblxuLyp0b2Zpbm8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG4vKlxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAndG9maW5vX3RoaW4nO1xuICBzcmM6IHVybCgnLi4vZm9udHMvdG9maW5vL3RvZmlub190aGluLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICB1cmwoJy4uL2ZvbnRzL3RvZmluby90b2Zpbm9fdGhpbi53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ3RvZmlub19saWdodCc7XG4gIHNyYzogdXJsKCcuLi9mb250cy90b2Zpbm8vdG9maW5vX2xpZ2h0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICB1cmwoJy4uL2ZvbnRzL3RvZmluby90b2Zpbm9fdGhpbi53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ3RvZmlub19ib29rJztcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL3RvZmluby90b2Zpbm9fYm9vay53b2ZmMicpIGZvcm1hdCgnd29mZjInKSxcbiAgdXJsKCcuLi9mb250cy90b2Zpbm8vdG9maW5vX2Jvb2sud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICd0b2Zpbm9fbWVkaXVtJztcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL3RvZmluby90b2Zpbm9fbWVkaXVtLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICB1cmwoJy4uL2ZvbnRzL3RvZmluby90b2Zpbm9fbWVkaXVtLndvZmYnKSBmb3JtYXQoJ3dvZmYnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAndG9maW5vX3JlZ3VsYXInO1xuICBzcmM6IHVybCgnLi4vZm9udHMvdG9maW5vL3RvZmlub19yZWd1bGFyLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICB1cmwoJy4uL2ZvbnRzL3RvZmluby90b2Zpbm9fcmVndWxhci53b2ZmJykgZm9ybWF0KCd3b2ZmJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ3RvZmlub19ibGFjayc7XG4gIHNyYzogdXJsKCcuLi9mb250cy90b2Zpbm8vdG9maW5vX2JsYWNrLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICB1cmwoJy4uL2ZvbnRzL3RvZmluby90b2Zpbm9fYmxhY2sud29mZicpIGZvcm1hdCgnd29mZicpO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG4qL1xuLyp0b2Zpbm8tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXG5cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogJ2ljb21vb24nO1xuICBzcmM6ICAgIHVybCgnLi4vZm9udHMvaWNvbW9vbi5lb3Q/MzhwcndkJyk7XG4gIHNyYzogICAgdXJsKCcuLi9mb250cy9pY29tb29uLmVvdD8zOHByd2QjaWVmaXgnKSBmb3JtYXQoJ2VtYmVkZGVkLW9wZW50eXBlJyksXG4gIHVybCgnLi4vZm9udHMvaWNvbW9vbi53b2ZmMj8zOHByd2QnKSBmb3JtYXQoJ3dvZmYyJyksXG4gIHVybCgnLi4vZm9udHMvaWNvbW9vbi50dGY/MzhwcndkJykgZm9ybWF0KCd0cnVldHlwZScpLFxuICB1cmwoJy4uL2ZvbnRzL2ljb21vb24ud29mZj8zOHByd2QnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgdXJsKCcuLi9mb250cy9pY29tb29uLnN2Zz8zOHByd2QjaWNvbW9vbicpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuJWljb25zIHtcbiAgZm9udC1mYW1pbHk6ICdpY29tb29uJyAhaW1wb3J0YW50O1xuICBzcGVhazogbm9uZTtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuW2NsYXNzXj0naWNvbi0nXTpiZWZvcmUsXG5bY2xhc3MqPScgaWNvbi0nXTpiZWZvcmUge1xuICBAZXh0ZW5kICVpY29ucztcbn1cblxuLmljb24tbWVudTpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwY1wiO1xufVxuLmljb24tYXJyb3ctbGVmdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwYlwiO1xufVxuLmljb24tYXJyb3c6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDBcIjtcbn1cbi5pY29uLWJlc3BhYXJ0aWpkOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAxXCI7XG59XG4uaWNvbi1jYWxjdWxhdGllOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTAyXCI7XG59XG4uaWNvbi1jYWxlbmRhcjpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcZTkwM1wiO1xufVxuLmljb24tZmFjZWJvb2s6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDRcIjtcbn1cbi5pY29uLWxpbmtlZGluOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA1XCI7XG59XG4uaWNvbi1tb2JpZWx3ZXJrZW46YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDZcIjtcbn1cbi5pY29uLW5ld3NsZXR0ZXI6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDdcIjtcbn1cbi5pY29uLXBsdXM6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXGU5MDhcIjtcbn1cbi5pY29uLXNhbWVud2Vya2VuOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTA5XCI7XG59XG4uaWNvbi10d2l0dGVyOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxlOTBhXCI7XG59XG4iLCIvLyBOb3JtYWxpemUuXG4vLyBCYXNlZCBvbiBOaWNvbGFzIEdhbGxhZ2hlciBhbmQgSm9uYXRoYW4gTmVhbCdzIG5vcm1hbGl6ZS5jc3MgdjIuMS4zIHwgTUlUIExpY2Vuc2Vcbi8vIFNvdXJjZTogZ2l0LmlvL25vcm1hbGl6ZVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gQ29ycmVjdHMgYmxvY2sgZGlzcGxheSBub3QgZGVmaW5lZCBpbiBJRTYvNy84LzkgJiBGRjNcbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLy8gQ29ycmVjdHMgaW5saW5lLWJsb2NrIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUU2LzcvOC85ICYgRkYzXG5hdWRpbyxcbmNhbnZhcyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBAaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZSB7XG4gICAgKmRpc3BsYXk6IGlubGluZTtcbiAgICAqem9vbTogMTtcbiAgfVxufVxuXG4vLyAxLiBQcmV2ZW50cyBtb2Rlcm4gYnJvd3NlcnMgZnJvbSBkaXNwbGF5aW5nICdhdWRpbycgd2l0aG91dCBjb250cm9sc1xuLy8gMi4gUmVtb3ZlIGV4Y2VzcyBoZWlnaHQgaW4gaU9TNSBkZXZpY2VzXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lOyAvLyAxXG4gIGhlaWdodDogMDsgLy8gMlxufVxuXG4vLyBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkuXG4vLyBIaWRlIHRoZSBgdGVtcGxhdGVgIGVsZW1lbnQgaW4gSUUsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbltoaWRkZW5dLFxudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gQmFzZVxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gMS4gQ29ycmVjdHMgdGV4dCByZXNpemluZyBvZGRseSBpbiBJRTYvNyB3aGVuIGJvZHkgZm9udC1zaXplIGlzIHNldCB1c2luZyBlbSB1bml0c1xuLy8gICAgaHR0cDovL2NsYWdudXQuY29tL2Jsb2cvMzQ4LyNjNzkwXG4vLyAyLiBQcmV2ZW50cyBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbVxuLy8gICAgd3d3LjQ1NmJlcmVhc3RyZWV0LmNvbS9hcmNoaXZlLzIwMTAxMi9jb250cm9sbGluZ190ZXh0X3NpemVfaW5fc2FmYXJpX2Zvcl9pb3Nfd2l0aG91dF9kaXNhYmxpbmdfdXNlcl96b29tL1xuaHRtbCB7XG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllIHtcbiAgICBmb250LXNpemU6IDEwMCU7IC8vIDFcbiAgfVxuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAyXG4gIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAyXG59XG5cbi8vIEFkZHJlc3NlcyBmb250LWZhbWlseSBpbmNvbnNpc3RlbmN5IGJldHdlZW4gJ3RleHRhcmVhJyBhbmQgb3RoZXIgZm9ybSBlbGVtZW50cy5cbmh0bWwsXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6ICRub3JtYWxpemVkLWZvbnQtZmFtaWx5O1xufVxuXG4vLyBBZGRyZXNzZXMgbWFyZ2lucyBoYW5kbGVkIGluY29ycmVjdGx5IGluIElFNi83XG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gTGlua3Ncbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIDEuIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIGNvbG9yIGZyb20gYWN0aXZlIGxpbmtzIGluIElFIDEwLlxuLy8gMi4gQWRkcmVzc2VzIG91dGxpbmUgZGlzcGxheWVkIG9kZGx5IGluIENocm9tZVxuLy8gMy4gSW1wcm92ZXMgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzXG4vLyAgICBwZW9wbGUub3BlcmEuY29tL3BhdHJpY2tsL2V4cGVyaW1lbnRzL2tleWJvYXJkL3Rlc3RcbmEge1xuICAvLyAxXG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuXG4gIC8vIDJcbiAgJjpmb2N1cyB7XG4gICAgb3V0bGluZTogdGhpbiBkb3R0ZWQ7XG4gIH1cblxuICAvLyAzXG4gICY6aG92ZXIsXG4gICY6YWN0aXZlIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vIEFkZHJlc3NlcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOSwgUzUsIENocm9tZVxuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuXG4vLyBBZGRyZXNzZXMgc3R5bGUgc2V0IHRvICdib2xkZXInIGluIEZGMyssIFM0LzUsIENocm9tZVxuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5AaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZSB7XG4gIGJsb2NrcXVvdGUge1xuICAgIG1hcmdpbjogMWVtIDQwcHg7XG4gIH1cbn1cblxuLy8gQWRkcmVzc2VzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gUzUsIENocm9tZVxuZGZuIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vLyBBZGRyZXNzZXMgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRTYvNy84Lzlcbm1hcmsge1xuICBiYWNrZ3JvdW5kOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLy8gQWRkcmVzc2VzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIElFNi83XG5AaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZSB7XG4gIHAsXG4gIHByZSB7XG4gICAgbWFyZ2luOiAxZW0gMDtcbiAgfVxufVxuXG4vLyBDb3JyZWN0cyBmb250IGZhbWlseSBzZXQgb2RkbHkgaW4gSUU2LCBTNC81LCBDaHJvbWVcbi8vIGVuLndpa2lwZWRpYS5vcmcvd2lraS9Vc2VyOkRhdmlkZ290aGJlcmcvVGVzdDU5XG5jb2RlLFxua2JkLFxucHJlLFxuc2FtcCB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIHNlcmlmO1xuICBAaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZSB7XG4gICAgX2ZvbnQtZmFtaWx5OiAnY291cmllciBuZXcnLCBtb25vc3BhY2U7XG4gIH1cbiAgZm9udC1zaXplOiAxZW07XG59XG5cbi8vIEltcHJvdmVzIHJlYWRhYmlsaXR5IG9mIHByZS1mb3JtYXR0ZWQgdGV4dCBpbiBhbGwgYnJvd3NlcnNcbnByZSB7XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG4gIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xufVxuXG4vLyBTZXQgY29uc2lzdGVudCBxdW90ZSB0eXBlcy5cbnEge1xuICBxdW90ZXM6ICdcXDIwMUMnICdcXDIwMUQnICdcXDIwMTgnICdcXDIwMTknO1xufVxuXG4vLyAxLiBBZGRyZXNzZXMgQ1NTIHF1b3RlcyBub3Qgc3VwcG9ydGVkIGluIElFNi83XG4vLyAyLiBBZGRyZXNzZXMgcXVvdGUgcHJvcGVydHkgbm90IHN1cHBvcnRlZCBpbiBTNFxuXG4vLyAxXG5AaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZSB7XG4gIHEge1xuICAgIHF1b3Rlczogbm9uZTtcbiAgfVxufVxuXG4vLyAyXG5xOmJlZm9yZSxcbnE6YWZ0ZXIge1xuICBjb250ZW50OiAnJztcbiAgY29udGVudDogbm9uZTtcbn1cblxuLy8gQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG5zbWFsbCB7XG4gIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vLyBQcmV2ZW50cyBzdWIgYW5kIHN1cCBhZmZlY3RpbmcgbGluZS1oZWlnaHQgaW4gYWxsIGJyb3dzZXJzXG4vLyBnaXN0LmdpdGh1Yi5jb20vNDEzOTMwXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG5zdXAge1xuICB0b3A6IC0uNWVtO1xufVxuXG5zdWIge1xuICBib3R0b206IC0uMjVlbTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIExpc3RzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBBZGRyZXNzZXMgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gSUU2LzdcbkBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllIHtcbiAgZGwsXG4gIG1lbnUsXG4gIG9sLFxuICB1bCB7XG4gICAgbWFyZ2luOiAxZW0gMDtcbiAgfVxufVxuXG5AaWYgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZSB7XG4gIGRkIHtcbiAgICBtYXJnaW46IDAgMCAwIDQwcHg7XG4gIH1cbn1cblxuLy8gQWRkcmVzc2VzIHBhZGRpbmdzIHNldCBkaWZmZXJlbnRseSBpbiBJRTYvN1xuQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUge1xuICBtZW51LFxuICBvbCxcbiAgdWwge1xuICAgIHBhZGRpbmc6IDAgMCAwIDQwcHg7XG4gIH1cbn1cblxuLy8gQ29ycmVjdHMgbGlzdCBpbWFnZXMgaGFuZGxlZCBpbmNvcnJlY3RseSBpbiBJRTdcbm5hdiB7XG4gIHVsLFxuICBvbCB7XG4gICAgQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUge1xuICAgICAgbGlzdC1zdHlsZS1pbWFnZTogbm9uZTtcbiAgICB9XG4gIH1cbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIEVtYmVkZGVkIGNvbnRlbnRcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIDEuIFJlbW92ZXMgYm9yZGVyIHdoZW4gaW5zaWRlICdhJyBlbGVtZW50IGluIElFNi83LzgvOSwgRkYzXG4vLyAyLiBJbXByb3ZlcyBpbWFnZSBxdWFsaXR5IHdoZW4gc2NhbGVkIGluIElFN1xuLy8gICAgY29kZS5mbGlja3IuY29tL2Jsb2cvMjAwOC8xMS8xMi9vbi11aS1xdWFsaXR5LXRoZS1saXR0bGUtdGhpbmdzLWNsaWVudC1zaWRlLWltYWdlLXJlc2l6aW5nL1xuXG5pbWcge1xuICBib3JkZXI6IDA7IC8vIDFcbiAgQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUge1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IC8vIDJcbiAgfVxufVxuXG4vLyBDb3JyZWN0cyBvdmVyZmxvdyBkaXNwbGF5ZWQgb2RkbHkgaW4gSUU5XG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4vLyBGaWd1cmVzXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4vLyBBZGRyZXNzZXMgbWFyZ2luIG5vdCBwcmVzZW50IGluIElFNi83LzgvOSwgUzUsIE8xMVxuZmlndXJlIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gRm9ybXNcbi8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vIENvcnJlY3RzIG1hcmdpbiBkaXNwbGF5ZWQgb2RkbHkgaW4gSUU2LzdcbkBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllIHtcbiAgZm9ybSB7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbi8vIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZ1xuZmllbGRzZXQge1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xuICBtYXJnaW46IDAgMnB4O1xuICBwYWRkaW5nOiAuMzVlbSAuNjI1ZW0gLjc1ZW07XG59XG5cbi8vIDEuIENvcnJlY3RzIGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUU2LzcvOC85XG4vLyAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4vLyAzLiBDb3JyZWN0cyB0ZXh0IG5vdCB3cmFwcGluZyBpbiBGRjNcbi8vIDQuIENvcnJlY3RzIGFsaWdubWVudCBkaXNwbGF5ZWQgb2RkbHkgaW4gSUU2LzdcbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDsgLy8gMVxuICBwYWRkaW5nOiAwOyAvLyAyXG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8vIDNcbiAgQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUge1xuICAgICptYXJnaW4tbGVmdDogLTdweDsgLy8gNFxuICB9XG59XG5cbi8vIDEuIENvcnJlY3QgZm9udCBmYW1pbHkgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBhbGwgYnJvd3NlcnMuXG4vLyAyLiBDb3JyZWN0cyBmb250IHNpemUgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBhbGwgYnJvd3NlcnNcbi8vIDMuIEFkZHJlc3NlcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBJRTYvNywgRkYzKywgUzUsIENocm9tZVxuLy8gNC4gSW1wcm92ZXMgYXBwZWFyYW5jZSBhbmQgY29uc2lzdGVuY3kgaW4gYWxsIGJyb3dzZXJzXG5idXR0b24sXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8vIDFcbiAgZm9udC1zaXplOiAxMDAlOyAvLyAyXG4gIG1hcmdpbjogMDsgLy8gM1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IC8vIDRcbiAgQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUge1xuICAgICp2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvLyA0XG4gIH1cbn1cblxuLy8gQWRkcmVzc2VzIEZGMy80IHNldHRpbmcgbGluZS1oZWlnaHQgb24gJ2lucHV0JyB1c2luZyAhaW1wb3J0YW50IGluIHRoZSBVQSBzdHlsZXNoZWV0XG5idXR0b24sXG5pbnB1dCB7XG4gIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8vIEFkZHJlc3MgaW5jb25zaXN0ZW50IGB0ZXh0LXRyYW5zZm9ybWAgaW5oZXJpdGFuY2UgZm9yIGBidXR0b25gIGFuZCBgc2VsZWN0YC5cbi8vIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXG4vLyBDb3JyZWN0IGBidXR0b25gIHN0eWxlIGluaGVyaXRhbmNlIGluIENocm9tZSwgU2FmYXJpIDUrLCBhbmQgSUUgOCsuXG4vLyBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3ggNCsgYW5kIE9wZXJhLlxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG59XG5cbi8vIDEuIEF2b2lkIHRoZSBXZWJLaXQgYnVnIGluIEFuZHJvaWQgNC4wLiogd2hlcmUgKDIpIGRlc3Ryb3lzIG5hdGl2ZSBgYXVkaW9gXG4vLyAgICBhbmQgYHZpZGVvYCBjb250cm9sc1xuLy8gMi4gQ29ycmVjdHMgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSAnaW5wdXQnIHR5cGVzIGluIGlPU1xuLy8gMy4gSW1wcm92ZXMgdXNhYmlsaXR5IGFuZCBjb25zaXN0ZW5jeSBvZiBjdXJzb3Igc3R5bGUgYmV0d2VlbiBpbWFnZS10eXBlXG4vLyAgICAnaW5wdXQnIGFuZCBvdGhlcnNcbi8vIDQuIFJlbW92ZXMgaW5uZXIgc3BhY2luZyBpbiBJRTcgd2l0aG91dCBhZmZlY3Rpbmcgbm9ybWFsIHRleHQgaW5wdXRzXG4vLyAgICBLbm93biBpc3N1ZTogaW5uZXIgc3BhY2luZyByZW1haW5zIGluIElFNlxuYnV0dG9uLFxuaW5wdXRbdHlwZT0nYnV0dG9uJ10sXG5pbnB1dFt0eXBlPSdyZXNldCddLFxuaW5wdXRbdHlwZT0nc3VibWl0J10ge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLy8gMlxuICBjdXJzb3I6IHBvaW50ZXI7IC8vIDNcbiAgQGlmICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUge1xuICAgICpvdmVyZmxvdzogdmlzaWJsZTsgIC8vIDRcbiAgfVxufVxuXG4vLyBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzXG5idXR0b25bZGlzYWJsZWRdLFxuaW5wdXRbZGlzYWJsZWRdIHtcbiAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vLyAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuLy8gMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbi8vIDMuIFJlbW92ZXMgZXhjZXNzIHBhZGRpbmcgaW4gSUU3XG4vLyAgICBLbm93biBpc3N1ZTogZXhjZXNzIHBhZGRpbmcgcmVtYWlucyBpbiBJRTZcbmlucHV0W3R5cGU9J2NoZWNrYm94J10sXG5pbnB1dFt0eXBlPSdyYWRpbyddIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICBwYWRkaW5nOiAwOyAvLyAyXG4gIEBpZiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllIHtcbiAgICAqaGVpZ2h0OiAxM3B4OyAvLyAzXG4gICAgKndpZHRoOiAxM3B4OyAvLyAzXG4gIH1cbn1cblxuLy8gMS4gQWRkcmVzc2VzIGFwcGVhcmFuY2Ugc2V0IHRvIHNlYXJjaGZpZWxkIGluIFM1LCBDaHJvbWVcbi8vIDIuIEFkZHJlc3NlcyBib3gtc2l6aW5nIHNldCB0byBib3JkZXItYm94IGluIFM1LCBDaHJvbWUgKGluY2x1ZGUgLW1veiB0byBmdXR1cmUtcHJvb2YpXG5pbnB1dFt0eXBlPSdzZWFyY2gnXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvLyAxXG4gIC1tb3otYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogY29udGVudC1ib3g7IC8vIDJcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi8vIFJlbW92ZSBpbm5lciBwYWRkaW5nIGFuZCBzZWFyY2ggY2FuY2VsIGJ1dHRvbiBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lIG9uIE9TIFguXG5pbnB1dFt0eXBlPSdzZWFyY2gnXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9J3NlYXJjaCddOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vLyBSZW1vdmVzIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGRjMrXG4vLyB3d3cuc2l0ZXBlbi5jb20vYmxvZy8yMDA4LzA1LzE0L3RoZS1kZXZpbHMtaW4tdGhlLWRldGFpbHMtZml4aW5nLWRvam9zLXRvb2xiYXItYnV0dG9ucy9cbmJ1dHRvbixcbmlucHV0IHtcbiAgJjo6LW1vei1mb2N1cy1pbm5lciB7XG4gICAgYm9yZGVyOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cbn1cblxuLy8gMS4gUmVtb3ZlcyBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRTYvNy84Lzlcbi8vIDIuIEltcHJvdmVzIHJlYWRhYmlsaXR5IGFuZCBhbGlnbm1lbnQgaW4gYWxsIGJyb3dzZXJzXG50ZXh0YXJlYSB7XG4gIG92ZXJmbG93OiBhdXRvOyAvLyAxXG4gIHZlcnRpY2FsLWFsaWduOiB0b3A7IC8vIDJcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFRhYmxlc1xuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzXG50YWJsZSB7XG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuIiwiLypwYWRkaW5nKi9cbi5nbC1wYWRkaW5nLWJvdHRvbS0zMHtwYWRkaW5nLWJvdHRvbTozMHB4ICFpbXBvcnRhbnQ7fSIsIi8vIE1peGlucy5cbi8vIFNuaXBwZXRzIG9mIHJldXNhYmxlIENTUyB0byBkZXZlbG9wIGZhc3RlciBhbmQga2VlcCB5b3VyIGNvZGUgcmVhZGFibGUuXG4vLyBBZGQgYWxsIG1peGlucyBpbiB0aGlzIGZpbGUuXG5cbkBpbXBvcnQgJ2dyaWQnO1xuQGltcG9ydCAnYnV0dG9ucyc7XG5AaW1wb3J0ICd0aXRsZXMnO1xuQGltcG9ydCAnZm9ybXMnO1xuXG4vLyBDb21wb25lbnQgbWl4aW5zLlxuQG1peGluIGNsZWFyZml4IHtcbiAgem9vbTogMTtcblxuICAmOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gIH1cbn1cblxuLmNsZWFyZml4IHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG59XG5cbkBtaXhpbiBvdXRlci1jb250YWluZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1heC13aWR0aDogJG1heC13aWR0aDtcbiAgcGFkZGluZzogMCAyMHB4O1xufVxuXG4vLyBDU1MgaW1hZ2UgcmVwbGFjZW1lbnQuXG4vLyBTb3VyY2U6IGh0dHBzOi8vZ2l0aHViLmNvbS9oNWJwL2h0bWw1LWJvaWxlcnBsYXRlL2NvbW1pdC9hYTAzOTZlYWU3NTdcbkBtaXhpbiBoaWRlLXRleHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBjb2xvcjogdHJhbnNwYXJlbnQ7XG4gIGZvbnQ6IDAgLyAwIGE7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuXG4vLyBPdmVyd3JpdGUgdGhlIGRlZmF1bHQgbWVkaWEgbWl4aW4gd2l0aCBhbiBJRTkgZmFsbGJhY2suXG5AbWl4aW4gbWVkaWEoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICRpZTogZmFsc2UsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpZiAkaWUge1xuICAgIC5sdC1pZTkgJiB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucztcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBcblxuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKCRkZWZhdWx0LWZlYXR1cmU6IG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucztcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAyIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucztcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAzIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiBudGgoJHF1ZXJ5LCAzKTtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSA0IHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSBhbmQgKG50aCgkcXVlcnksIDMpOiBudGgoJHF1ZXJ5LCA0KSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnM7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gNSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkgYW5kIChudGgoJHF1ZXJ5LCAzKTogbnRoKCRxdWVyeSwgNCkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6IG50aCgkcXVlcnksIDUpO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAd2FybiAnV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgYnJlYWtwb2ludCgpLiBSZWFkIHRoZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMuJztcbiAgfVxufVxuXG4vLyBDYWxjdWxhdGUgdGhlIHB4IGZhbGxiYWNrIGZvciBhbiByZW0gdmFsdWUuXG4vLyBFLmcuOiBAaW5jbHVkZSByZW1fcHgobGluZS1oZWlnaHQsIDEuNXJlbSk7XG4vLyBSZXR1cm5zIGJvdGggdGhlIHJlbSBhbmQgdGhlIHB4IHZhbHVlcy5cbkBtaXhpbiByZW0tcHgoJHByb3BlcnR5LCAkcmVtLXZhbCkge1xuICBmb250LXNpemU6ICRyZW0tdmFsIC8gMXJlbSAqICRiYXNlLWZvbnQtc2l6ZTtcbiAgZm9udC1zaXplOiAkcmVtLXZhbDtcbn1cblxuLy8gQ2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgYW5kIHB4IGZhbGxiYWNrIGZvciBhIHB4IHZhbHVlLlxuLy8gRS5nLjogQGluY2x1ZGUgcHhfcmVtKGxpbmUtaGVpZ2h0LCAxNnB4KTtcbi8vIFJldHVybnMgYm90aCB0aGUgcmVtIGFuZCB0aGUgcHggdmFsdWVzLlxuQG1peGluIHB4LXJlbSgkcHJvcGVydHksICRweC12YWwpIHtcbiAgZm9udC1zaXplOiAkcHgtdmFsO1xuICBmb250LXNpemU6ICRweC12YWwgLyAkYmFzZS1mb250LXNpemUgKiAxcmVtO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLXJvdGF0ZSgkZGVncmVlKSB7XG4gIC1tcy10cmFuc2Zvcm06IHJvdGF0ZSgkZGVncmVlKTsgLyogSUUgOSAqL1xuICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKCRkZWdyZWUpOyAvKiBDaHJvbWUsIFNhZmFyaSwgT3BlcmEgKi9cbiAgdHJhbnNmb3JtOiByb3RhdGUoJGRlZ3JlZSk7XG59XG5cbkBtaXhpbiBiYW5uZXItZGl2IHtcbiAgLypoZWlnaHQ6IDcwcHg7XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQtYmFubmVyLXdoaXRlO1xuICB9XG4gICovXG4gIC5wYXRoLW9wbG9zc2luZ2VuICYsXG4gIC5wYXRoLXNvbHV0aW9ucyAmIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQtY2Fyb3VzZWwtbW9iaWxlO1xuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTMsIHRydWUpIHtcbiAgICAgIGhlaWdodDogJGhlaWdodC1jYXJvdXNlbC10YWJsZXQ7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTQsIHRydWUpIHtcbiAgICAgIGhlaWdodDogJGhlaWdodC1jYXJvdXNlbDtcbiAgICB9XG4gIH1cbiAgLnBhdGgtZnJvbnRwYWdlICYgeyBcbiAgICAvKmhlaWdodDogJGhlaWdodC1iYW5uZXI7XG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0LWJhbm5lcjtcbiAgICB9XG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMywgdHJ1ZSkge1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0LWNhcm91c2VsLXRhYmxldC1ob21lO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC00LCB0cnVlKSB7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQtY2Fyb3VzZWw7XG4gICAgfVxuICAgICovXG4gIH1cbiAgLnBhZ2Utbm9kZS10eXBlLXByb2R1Y3QgJiB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0LWJhbm5lci1wcm9kdWN0LXBhZ2U7XG4gIH1cbn1cblxuQG1peGluIGJhbm5lci1jb2xvciB7XG4gIC5wYWdlLW5vZGUtdHlwZS1wcm9kdWN0ICYsXG4gIC5wYXRoLW9wbG9zc2luZ2VuICYsXG4gIC5wYXRoLXNvbHV0aW9ucyAmLFxuICAucGF0aC1mcm9udHBhZ2UgJiB7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgfVxufVxuXG5AbWl4aW4gYmFubmVyLWNvbG9yLWFjdGl2ZSB7XG4gIC5wYWdlLW5vZGUtdHlwZS1wcm9kdWN0ICYsXG4gIC5wYXRoLW9wbG9zc2luZ2VuICYsXG4gIC5wYXRoLXNvbHV0aW9ucyAmLFxuICAucGF0aC1mcm9udHBhZ2UgJiB7XG4gICAgYm9yZGVyLWNvbG9yOiAkd2hpdGU7XG4gIH1cbn1cblxuQG1peGluIGNmIHtcbiAgJjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG5AbWl4aW4gYmxvY2tfbWVudV9tb2R1bGVzIHtcbiAgZGlzcGxheTpub25lO1xuICBmbG9hdDpsZWZ0O1xuICB3aWR0aDoyNSU7XG5cbiAgdWx7XG4gICAgbWFyZ2luOjBweDtcbiAgfVxuXG4gIC5tZW51LWl0ZW17XG4gICAgcGFkZGluZzowcHg7XG4gIH1cbiAgLm1lbnUtaXRlbSBhe1xuICAgIGJhY2tncm91bmQ6I2YzZjNmMztcbiAgICBkaXNwbGF5OmJsb2NrO1xuICAgIHBhZGRpbmc6OXB4IDE5cHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7XG4gICAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgd2hpdGU7XG4gICAgZm9udC1zaXplOjE0cHg7XG4gICAgdHJhbnNpdGlvbjpub25lO1xuXG4gICAgJjpob3ZlcntcbiAgICAgIGJhY2tncm91bmQ6I2UxZTFlMTtcbiAgICB9XG4gIH1cblxuICAubWVudS1pdGVtLS1hY3RpdmUtdHJhaWwgYXtcbiAgICBiYWNrZ3JvdW5kOiNlMWUxZTE7XG4gIH1cblxuICAubWVudS1pdGVtOmZpcnN0LWNoaWxkIGF7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogN3B4O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA3cHg7XG4gIH1cblxuICAubWVudS1pdGVtOmxhc3QtY2hpbGQgYXtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA3cHg7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDdweDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICBkaXNwbGF5OmJsb2NrO1xuICB9XG5cbn0iLCIvLyBNaXhpbnMgLSBncmlkLlxuLy8gQWRkIGFsbCBncmlkIHJlbGF0ZWQgbWl4aW5zIGluIHRoaXMgZmlsZS5cblxuLy8gQ3VzdG9tIG1peGlucy5cbkBtaXhpbiBzbWFsbC1wYWdlIHtcbiAgLmNvbnRlbnQgLmNvbnRhaW5lciB7XG4gICAgbWF4LXdpZHRoOiA3OTBweDtcbiAgfVxufVxuXG4vLyBPbWVnYSByZXNldC5cbkBtaXhpbiBvbWVnYS1yZXNldCgkbnRoKSB7XG4gICY6bnRoLWNoaWxkKCN7JG50aH0pIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIH1cbn1cblxuLy8gQ29sdW1uIGxheW91dHMuXG5AbWl4aW4gY29sLTIge1xuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYgb2YgMTIpO1xuICAgIEBpbmNsdWRlIG9tZWdhKDJuKTtcbiAgfVxuXG4gIG1hcmdpbjogMCAwIDI1cHg7XG5cbn1cblxuQG1peGluIGNvbC0zIHtcbiAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyIG9mIDEyKTtcblxuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYgb2YgMTIpO1xuICAgIEBpbmNsdWRlIG9tZWdhKDJuKTtcbiAgfVxuICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQgb2YgMTIpO1xuICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuNTY0MSU7XG4gICAgfVxuICAgICY6bnRoLWNoaWxkKDJuICsgMSkge1xuICAgICAgY2xlYXI6IG5vbmUhaW1wb3J0YW50O1xuICAgICAgbWFyZ2luLXJpZ2h0OiAyLjU2NDElO1xuICAgIH1cbiAgICAmOm50aC1jaGlsZCgzbikge1xuICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgfVxuICAgICY6bnRoLWNoaWxkKDNuICsgMSkge1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBjb2wtNCB7XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNiBvZiAxMik7XG5cbiAgICAmOm50aC1jaGlsZCgybikge1xuICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygzIG9mIDEyKTtcblxuICAgICY6bnRoLWNoaWxkKDJuKSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDIuNTY0MSU7XG4gICAgfVxuXG5cbiAgICAmOm50aC1jaGlsZCgzbiArIDEpIHtcbiAgICAgIGNsZWFyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAvL21hcmdpbi1yaWdodDogMi41NjQxJTtcbiAgICB9XG5cbiAgICAmOm50aC1jaGlsZCg0bikge1xuICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoNG4gKyAxKSB7XG4gICAgICBjbGVhcjogYm90aDtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGNvbC02IHtcbiAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYgb2YgMTIpO1xuICBAaW5jbHVkZSBvbWVnYSgybik7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0IG9mIDEyKTtcbiAgICBAaW5jbHVkZSBvbWVnYS1yZXNldCgybik7XG4gICAgQGluY2x1ZGUgb21lZ2EoM24pO1xuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMywgdHJ1ZSkge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyIG9mIDEyKTtcbiAgICBAaW5jbHVkZSBvbWVnYS1yZXNldCgzbik7XG4gICAgQGluY2x1ZGUgb21lZ2EoNm4pO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cbn1cbiIsIi8vIE1peGlucyAtIGJ1dHRvbnMuXG4vLyBBZGQgYWxsIGJ1dHRvbiByZWxhdGVkIG1peGlucyBpbiB0aGlzIGZpbGUuXG5cbkBtaXhpbiBidXR0b24ge1xuICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAkYmFzZS1mb250LXNpemUpO1xuICBiYWNrZ3JvdW5kOiAkYmFzZS1ibHVlO1xuICBib3JkZXI6IDFweCBzb2xpZCAkYmFzZS1ibHVlO1xuICBib3gtc2hhZG93OiBub25lO1xuICBjb2xvcjogJGJhY2tncm91bmQ7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5X19yZWd1bGFyO1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogN3B4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDdweDtcblxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIC8qXG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICovXG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgbGluZWFyLCBjb2xvciAxNTBtcyBsaW5lYXI7XG4gIC1vLXRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgbGluZWFyLCBjb2xvciAxNTBtcyBsaW5lYXI7XG4gIC1tcy10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE1MG1zIGxpbmVhciwgY29sb3IgMTUwbXMgbGluZWFyO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgcGFkZGluZzogMTNweCAxM3B4O1xuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgcGFkZGluZzogMTNweCAyMHB4O1xuICB9XG5cbiAgJi5hY3RpdmUsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1jb2xvcjogJGJhc2UtYmx1ZTtcbiAgICBjb2xvcjogJGJhc2UtYmx1ZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG59XG5cblxuQG1peGluIGJ1dHRvbl93aGl0ZV9vdWx0aW5lIHtcbiAgQGluY2x1ZGUgcHgtcmVtKGZvbnQtc2l6ZSwgJGg0LWZvbnQtc2l6ZSk7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xuICBib3gtc2hhZG93OiBub25lO1xuICBjb2xvcjogd2hpdGU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA3cHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogN3B4O1xuICBib3JkZXItcmFkaXVzOiA3cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgbGluZWFyLCBjb2xvciAxNTBtcyBsaW5lYXI7XG4gIC1vLXRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgbGluZWFyLCBjb2xvciAxNTBtcyBsaW5lYXI7XG4gIC1tcy10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE1MG1zIGxpbmVhciwgY29sb3IgMTUwbXMgbGluZWFyO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgcGFkZGluZzogMTBweCAxM3B4O1xuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgcGFkZGluZzogMTdweCAyMHB4O1xuICB9XG5cbiAgJi5hY3RpdmUsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1jb2xvcjogd2hpdGU7XG4gICAgY29sb3I6ICRiYXNlLWJsdWU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uX3NlY29uZGFyeSB7XG4gIEBpbmNsdWRlIHB4LXJlbShmb250LXNpemUsICRiYXNlLWZvbnQtc2l6ZSk7XG4gIGJhY2tncm91bmQ6IG5vbmU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRibHVlO1xuICBib3gtc2hhZG93OiBub25lO1xuICBjb2xvcjogJGJsdWU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICBsaW5lLWhlaWdodDogMTtcbiAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA3cHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogN3B4O1xuICBib3JkZXItcmFkaXVzOiA3cHg7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgbGluZWFyLCBjb2xvciAxNTBtcyBsaW5lYXI7XG4gIC1vLXRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgbGluZWFyLCBjb2xvciAxNTBtcyBsaW5lYXI7XG4gIC1tcy10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE1MG1zIGxpbmVhciwgY29sb3IgMTUwbXMgbGluZWFyO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgcGFkZGluZzogMTNweCAxM3B4O1xuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgcGFkZGluZzogMTNweCAyMHB4O1xuICB9XG5cbiAgJi5hY3RpdmUsXG4gICY6aG92ZXIsXG4gICY6Zm9jdXMge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1jb2xvcjogd2hpdGU7XG4gICAgY29sb3I6ICRibHVlO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGJ1dHRvbl9ibHVlX291bHRpbmUge1xuICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAkaDQtZm9udC1zaXplKTtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJsdWU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIGNvbG9yOiAkYmx1ZTtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDdweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA3cHg7XG4gIGJvcmRlci1yYWRpdXM6IDdweDtcbiAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNTBtcyBsaW5lYXIsIGNvbG9yIDE1MG1zIGxpbmVhcjtcbiAgLW8tdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNTBtcyBsaW5lYXIsIGNvbG9yIDE1MG1zIGxpbmVhcjtcbiAgLW1zLXRyYW5zaXRpb246IGJhY2tncm91bmQgMTUwbXMgbGluZWFyLCBjb2xvciAxNTBtcyBsaW5lYXI7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBwYWRkaW5nOiAxMHB4IDEzcHg7XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICBwYWRkaW5nOiAxN3B4IDIwcHg7XG4gIH1cblxuICAmLmFjdGl2ZSxcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbiAgICBjb2xvcjogJGJsdWU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxufVxuXG5AbWl4aW4gYnV0dG9uLS1vcmFuZ2Uge1xuICBiYWNrZ3JvdW5kOiAkb3JhbmdlO1xuICBib3JkZXI6IDFweCBzb2xpZCAkb3JhbmdlO1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5X19tZWRpdW07XG4gIEBpbmNsdWRlIHB4LXJlbShmb250LXNpemUsIDE0cHgpO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcblxuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgcGFkZGluZzogMTRweCAyMHB4O1xuICB9XG4gICYuYWN0aXZlLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkb3JhbmdlO1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQ7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG59XG5cbkBtaXhpbiBmb3JtQnV0dG9uIHtcbiAgQGluY2x1ZGUgcHgtcmVtKGZvbnQtc2l6ZSwgJGJhc2UtZm9udC1zaXplKTtcbiAgYmFja2dyb3VuZDogJG9yYW5nZTtcbiAgYm9yZGVyOiAxcHggc29saWQgJG9yYW5nZTtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgY29sb3I6ICRiYWNrZ3JvdW5kO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseV9fcmVndWxhcjtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDdweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA3cHg7XG5cbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAvKlxuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAqL1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE1MG1zIGxpbmVhciwgY29sb3IgMTUwbXMgbGluZWFyO1xuICAtby10cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDE1MG1zIGxpbmVhciwgY29sb3IgMTUwbXMgbGluZWFyO1xuICAtbXMtdHJhbnNpdGlvbjogYmFja2dyb3VuZCAxNTBtcyBsaW5lYXIsIGNvbG9yIDE1MG1zIGxpbmVhcjtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIHBhZGRpbmc6IDEzcHggMTNweDtcbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgIHBhZGRpbmc6IDEzcHggMjBweDtcbiAgfVxuXG4gICYuYWN0aXZlLFxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICBib3JkZXItY29sb3I6ICRvcmFuZ2U7XG4gICAgY29sb3I6ICRvcmFuZ2U7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxufVxuXG5cbkBtaXhpbiBwbHVzLWxpbmsge1xuICBjb2xvcjogJHdoaXRlO1xuICBmb250LXNpemU6IDE3cHg7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIGZvbnQtZmFtaWx5OiAkdGl0bGUtZm9udC1mYW1pbHk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIDE1MG1zIGxpbmVhciwgY29sb3IgMTUwbXMgbGluZWFyO1xuICAtby10cmFuc2l0aW9uOiBhbGwgMTUwbXMgbGluZWFyLCBjb2xvciAxNTBtcyBsaW5lYXI7XG4gIC1tcy10cmFuc2l0aW9uOiBhbGwgMTUwbXMgbGluZWFyLCBjb2xvciAxNTBtcyBsaW5lYXI7XG4gICY6YmVmb3JlIHtcbiAgICBAZXh0ZW5kICVpY29ucztcbiAgICBAZXh0ZW5kIC5pY29uLXBsdXM6YmVmb3JlO1xuICAgIGZvbnQtc2l6ZTogMzZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRvcDogMTBweDtcbiAgfVxuICAmOmhvdmVyIHtcbiAgICBjb2xvcjogJGJhc2UtYmx1ZTtcbiAgfVxufVxuXG5AbWl4aW4gbGluayB7XG4gIEBpbmNsdWRlIHB4LXJlbShmb250LXNpemUsIDE0cHgpO1xuICBjb2xvcjogJGJhc2UtYmx1ZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5X19yZWd1bGFyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbkBtaXhpbiB3aGl0ZS1tZW51IHtcbiAgI2Jsb2NrLXNlcnZpY2VtZW51IHtcbiAgICB1bC5tZW51IGEge1xuICAgICAgY29sb3I6IHdoaXRlO1xuXG4gICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgIGJvcmRlci1jb2xvcjogd2hpdGU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2Jsb2NrLWxhbmd1YWdlc3dpdGNoZXIge1xuICAgIHVsLmxpbmtzIGEge1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgIH1cbiAgfVxuXG4gICNibG9jay14dGhlbWUtbWFpbm5hdmlnYXRpb24ge1xuICAgIHVsLm1lbnUgYSB7XG4gICAgICBjb2xvcjogd2hpdGU7XG5cbiAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiB3aGl0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAuc2Itb3Blbi1yaWdodCB7XG4gICAgY29sb3I6IHdoaXRlO1xuICB9XG59IiwiLy8gTWl4aW5zIC0gdGl0bGVzLlxuLy8gQWRkIGFsbCB0aXRsZSByZWxhdGVkIG1peGlucyBpbiB0aGlzIGZpbGUuXG5cbkBtaXhpbiB0aXRsZSB7XG4gIGNvbG9yOiAkY29sb3ItdGl0bGU7XG4gIGZvbnQtZmFtaWx5OiAkdGl0bGUtZm9udC1mYW1pbHk7XG4gIGxpbmUtaGVpZ2h0OiAxLjI7XG4gIGZvbnQtd2VpZ2h0OjIwMDtcblxuICAuaW50cm8gJiB7XG4gICAgY29sb3I6ICNmZmY7XG4gIH1cbn1cbiIsIi8vIE1peGlucyAtIGZvcm1zLlxuLy8gQWRkIGFsbCBmb3JtIHJlbGF0ZWQgbWl4aW5zIGluIHRoaXMgZmlsZS5cblxuQG1peGluIGZvcm0tdGV4dGZpZWxkIHtcbiAgYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6M3B4O1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICBtYXgtd2lkdGg6IDY1JTtcbiAgICBtYXJnaW46IDEwcHggMDtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGZvcm0tdGV4dGFyZWEge1xuICBiYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgYm9yZGVyOiAxcHggc29saWQgJGJhc2UtYm9yZGVyLWNvbG9yO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBtaW4taGVpZ2h0OiAxNTBweDtcbiAgcGFkZGluZzogMTBweDtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgIG1heC13aWR0aDogNjUlO1xuICAgIG1hcmdpbjogMTBweCAwO1xuICB9XG5cbiAgJjpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAkY29sb3I7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgfVxuXG4gIGxhYmVsIHtcbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICAgIG1pbi13aWR0aDogMzUlO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZm9ybS1yYWRpbyB7XG4gIGlucHV0W3R5cGU9J3JhZGlvJ10ge1xuICAgIG1hcmdpbjogMCAzcHggMCAxcHg7XG5cbiAgICAmOmZvY3VzIHtcbiAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICBsYWJlbCB7XG4gICAgY29sb3I6ICRjb2xvcjtcbiAgICBmb250LXNpemU6ICRiYXNlLWZvbnQtc2l6ZTtcbiAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgbWFyZ2luOiAxMHB4IDA7XG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBtaW4td2lkdGg6IDM1JTtcbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvcm0tY2hlY2tib3gge1xuICBpbnB1dFt0eXBlPSdjaGVja2JveCddIHtcbiAgICBtYXJnaW46IDAgM3B4IDAgMXB4O1xuXG4gICAgJjpmb2N1cyB7XG4gICAgICBib3JkZXItY29sb3I6ICRjb2xvcjtcbiAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgbGFiZWwge1xuICAgIGNvbG9yOiAkY29sb3I7XG4gICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuICAgIG1hcmdpbjogMTBweCAwO1xuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbWluLXdpZHRoOiAzNSU7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiBmb3JtLXNlbGVjdCB7XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICB3aWR0aDogNjUlO1xuICAgIG1hcmdpbjogMTBweCAwO1xuICB9XG5cbiAgYmFja2dyb3VuZDogdXJsKGRhdGE6aW1hZ2Uvc3ZnK3htbDtiYXNlNjQsUEhOMlp5QnBaRDBpVEdGNVpYSmZNU0lnWkdGMFlTMXVZVzFsUFNKTVlYbGxjaUF4SWlCNGJXeHVjejBpYUhSMGNEb3ZMM2QzZHk1M015NXZjbWN2TWpBd01DOXpkbWNpSUhacFpYZENiM2c5SWpBZ01DQTBMamsxSURFd0lqNDhaR1ZtY3o0OGMzUjViR1UrTG1Oc2N5MHhlMlpwYkd3NkkyWm1aanQ5TG1Oc2N5MHllMlpwYkd3Nkl6UTBORHQ5UEM5emRIbHNaVDQ4TDJSbFpuTStQSFJwZEd4bFBtRnljbTkzY3p3dmRHbDBiR1UrUEhKbFkzUWdZMnhoYzNNOUltTnNjeTB4SWlCM2FXUjBhRDBpTkM0NU5TSWdhR1ZwWjJoMFBTSXhNQ0l2UGp4d2IyeDVaMjl1SUdOc1lYTnpQU0pqYkhNdE1pSWdjRzlwYm5SelBTSXhMalF4SURRdU5qY2dNaTQwT0NBekxqRTRJRE11TlRRZ05DNDJOeUF4TGpReElEUXVOamNpTHo0OGNHOXNlV2R2YmlCamJHRnpjejBpWTJ4ekxUSWlJSEJ2YVc1MGN6MGlNeTQxTkNBMUxqTXpJREl1TkRnZ05pNDRNaUF4TGpReElEVXVNek1nTXk0MU5DQTFMak16SWk4K1BDOXpkbWMrKSBuby1yZXBlYXQgOTglIDUwJTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJhc2UtYm9yZGVyLWNvbG9yO1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBoZWlnaHQ6IDQwcHg7XG4gIHBhZGRpbmc6IDEwcHg7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGNvbG9yO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cbn1cblxuQG1peGluIGZvcm0tbGFiZWwge1xuICBAZXh0ZW5kIGg0O1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5X19tZWRpdW07XG4gIG1hcmdpbjogMjBweCAwIDVweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiAyNSU7XG4gIH1cbn1cblxuQG1peGluIGZvcm0tZGVzY3JpcHRpb24ge1xuICAvL1xufVxuIiwiLy8gRGVzaWduLlxuLy8gSW1wb3J0IGFsbCB5b3VyIGRlc2lnbiBlbGVtZW50IHNhc3MgZmlsZXMgaW4gdGhpcyBmaWxlLlxuXG5AaW1wb3J0ICdiYW5uZXInO1xuQGltcG9ydCAncHJlY29udGVudCc7XG5AaW1wb3J0ICdwcmVmb290ZXInO1xuQGltcG9ydCAnc3ViY29udGVudCc7XG5AaW1wb3J0ICdsYXlvdXQnO1xuQGltcG9ydCAndHlwb2dyYXBoeSc7XG5AaW1wb3J0ICdoZWFkZXInO1xuQGltcG9ydCAnZm9vdGVyJztcbkBpbXBvcnQgJ25hdmlnYXRpb24vbmF2aWdhdGlvbic7XG5AaW1wb3J0ICdmb3Jtcyc7XG5AaW1wb3J0ICd0YWJsZXMnO1xuXG5odG1sLFxuYm9keSB7XG4gIGhlaWdodDogMTAwJTtcbn1cblxuYm9keXtcbiAgcGFkZGluZy10b3A6NjBweCAhaW1wb3J0YW50O1xuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgICAgcGFkZGluZy10b3A6MTIwcHggIWltcG9ydGFudDtcbiAgfVxufVxuXG5ib2R5LnRvb2xiYXItdmVydGljYWx7IFxuICBwYWRkaW5nLXRvcDoxMDBweCAhaW1wb3J0YW50O1xufVxuXG5ib2R5LnRvb2xiYXItZml4ZWR7XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICBwYWRkaW5nLXRvcDoxNjBweCAhaW1wb3J0YW50O1xuICB9XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTMsIHRydWUpIHtcbiAgICBwYWRkaW5nLXRvcDoyMDBweCAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8qIDEwMHB4IG1vYmlsZSAtPiAyMDBweCBkZXNrdG9wICovXG5cbi5wcmVjb250ZW50LFxuLmNvbnRlbnQge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4uY29udGVudCB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZ3JleTtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRncmV5O1xuICBwYWRkaW5nOiAzMHB4IDAgNDBweCAwO1xuICAucGF0aC1vcGxvc3NpbmdlbiAmLFxuICAucGF0aC1zb2x1dGlvbnMgJiB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4uaW50cm8ge1xuICBiYWNrZ3JvdW5kOiAkY29sb3ItdGl0bGU7XG4gIGNvbG9yOiAjZmZmO1xuICBtYXJnaW4tdG9wOiAtMXB4O1xuICBwYWRkaW5nOiA1MHB4IDA7XG4gIGZvbnQtc2l6ZTogMjBweDtcbn1cbiIsIi5iYW5uZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIC8qXG4gIHRvcDogMDtcbiAgbGVmdDogMDtcbiAgKi9cbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDA7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIEBpbmNsdWRlIGJhbm5lci1kaXY7XG4gIGltZyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgLypcbiAgICBtaW4taGVpZ2h0OiAkaGVpZ2h0LWNhcm91c2VsLW1vYmlsZTtcbiAgICBtaW4td2lkdGg6ICgoMTQ0MC84MDApICogJGhlaWdodC1jYXJvdXNlbC1tb2JpbGUpO1xuICAgICovXG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMywgdHJ1ZSkge1xuICAgICAgLypcbiAgICAgIG1pbi1oZWlnaHQ6ICRoZWlnaHQtY2Fyb3VzZWwtdGFibGV0O1xuICAgICAgbWluLXdpZHRoOiAoKDE0NDAvODAwKSAqICRoZWlnaHQtY2Fyb3VzZWwtdGFibGV0KTtcbiAgICAgICovXG4gICAgfVxuICB9XG4gICZfX2ltZyB7XG4gICAgei1pbmRleDogLTE7XG4gIH1cbiAgJl9fdGV4dCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDM7XG4gICAgYm90dG9tOiAwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMHB4IDA7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTQsIHRydWUpIHtcbiAgICAgIHBhZGRpbmc6IDUwcHggMDtcbiAgICB9XG4gIH1cbn1cblxuLmpzLWhvbWVmbGV4c2xpZGVye1xuICAuYmFubmVye1xuICAgICZfX2ltZ3tcbiAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgIH1cblxuICAgIH1cbiAgfVxufSIsIi5wcmVjb250ZW50IHtcblxuICAjYmxvY2stdGVzdGltb25pYWxnYWxsZXJ5e1xuXG4gICAgcGFkZGluZzozMHB4IDA7XG4gICAgbWFyZ2luOjA7XG5cbiAgICAuZmllbGQtLW5hbWUtZmllbGQtc3RhdGljLWdhbGxlcnktdGl0bGV7XG4gICAgICBmb250LXNpemU6JGgxLWZvbnQtc2l6ZTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtZmFtaWx5OiAkdGl0bGUtZm9udC1mYW1pbHk7XG4gICAgfVxuXG4gICAgcHtcbiAgICAgIG1hcmdpbjowO1xuICAgICAgaW1ne1xuICAgICAgICBkaXNwbGF5OmJsb2NrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHAudGV4dC1hbGlnbi1jZW50ZXIgYXttYXJnaW4tdG9wOjMwcHg7IGRpc3BsYXk6YmxvY2s7fVxuXG4gICAgLmNvbnRhaW5lcntcbiAgICAgIHBhZGRpbmctYm90dG9tOjA7XG4gICAgfVxuXG4gIH1cblxufSIsIi5wcmVmb290ZXIgeyBcblxuICAgIC5ibG9jay1ibG9jay1jb250ZW50e21hcmdpbi1ib3R0b206MHB4O31cblxufSIsIi5zdWJjb250ZW50IHtcbiAgcGFkZGluZzogNTVweCAwO1xufVxuIiwiLy8gTGF5LW91dC5cbi8vIEFkZCB5b3VyIGxheS1vdXQgcmVsYXRlZCB0aGVtaW5nIGluIHRoaXMgZmlsZS5cblxuLmNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcjtcbn1cblxuLyp0aGVyZSBzaG91bGQgb25seSBiZSAxIGNvbnRhaW5lciwgY29udGFpbmVyIHdpdGhpbiBjb250YWluZXIgZ2VuZXJhdGVzIHVubmVjZXNzYXJ5IGxlZnQvcmlnaHQgcGFkZGluZyovXG4uY29udGFpbmVyIC5jb250YWluZXJ7cGFkZGluZy1sZWZ0OjBweCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OjBweCAhaW1wb3J0YW50O31cblxuaGVhZGVyLFxuZm9vdGVyLFxuLm1haW4ge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcbn1cblxuLmNvbHVtbiB7XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCAgb2YgMTIpO1xuICB9XG59XG5cbi5vbmUtc2lkZWJhciB7XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICAmLnNpZGViYXItZmlyc3Qge1xuICAgICAgLm1haW4ge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOSBvZiAxMik7XG4gICAgICAgIEBpbmNsdWRlIG9tZWdhO1xuICAgICAgfVxuICAgIH1cblxuICAgICYuc2lkZWJhci1zZWNvbmQge1xuICAgICAgLm1haW4ge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOSBvZiAxMik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYXNpZGUge1xuICAgICAgJi5zaWRlYmFyLWZpcnN0IHtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMgb2YgMTIpO1xuICAgICAgfVxuXG4gICAgICAmLnNpZGViYXItc2Vjb25kIHtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMgb2YgMTIpO1xuICAgICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnR3by1zaWRlYmFycyB7XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICAubWFpbiB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNiBvZiAxMik7XG4gICAgfVxuXG4gICAgLnNpZGViYXItZmlyc3Qge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDMgb2YgMTIpO1xuICAgIH1cblxuICAgIC5zaWRlYmFyLXNlY29uZCB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMyBvZiAxMik7XG4gICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICB9XG4gIH1cbn1cblxuLm5vLXNpZGViYXJzIHtcbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgIC5tYWluIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMiBvZiAxMik7XG4gICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICB9XG4gIH1cbn1cblxuLmhyLXdpdGgtY2FwdGlvbntcbiAgICBib3JkZXItdG9wOjFweCBkYXNoZWQgbGlnaHRncmV5O1xuICAgIHBvc2l0aW9uOnJlbGF0aXZlO1xuICAgIG1hcmdpbjozMHB4IDBweDtcblxuICAgIHNwYW57cG9zaXRpb246YWJzb2x1dGU7IGZvbnQtd2VpZ2h0OjUwMDsgdG9wOi05cHg7IGxlZnQ6MHB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgcGFkZGluZzoxcHggNXB4OyBiYWNrZ3JvdW5kOnllbGxvdzsgZm9udC1zaXplOjExcHg7IHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTt9XG59XG4iLCIvLyBUeXBvZ3JhcGh5XG5cbi8vIDEuIENvcnJlY3RzIHRleHQgcmVzaXppbmcgb2RkbHkgaW4gSUU2Lzcgd2hlbiBib2R5IGZvbnQtc2l6ZSBpcyBzZXQgdXNpbmcgZW0gdW5pdHNcbi8vICAgIFNvdXJjZTogaHR0cDovL2NsYWdudXQuY29tL2Jsb2cvMzQ4LyNjNzkwXG4vLyAyLiBQcmV2ZW50cyBpT1MgdGV4dCBzaXplIGFkanVzdCBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2UsIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbVxuLy8gICAgU291cmNlOiB3d3cuNDU2YmVyZWFzdHJlZXQuY29tL2FyY2hpdmUvMjAxMDEyL2NvbnRyb2xsaW5nX3RleHRfc2l6ZV9pbl9zYWZhcmlfZm9yX2lvc193aXRob3V0X2Rpc2FibGluZ191c2VyX3pvb21cbmh0bWwge1xuICBmb250LXNpemU6IDEwMCUgKiAoJGJhc2UtZm9udC1zaXplIC8gMTZweCk7XG4gIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xufVxuXG4vLyBBZGRyZXNzZXMgZm9udC1mYW1pbHkgaW5jb25zaXN0ZW5jeSBiZXR3ZWVuICd0ZXh0YXJlYScgYW5kIG90aGVyIGZvcm0gZWxlbWVudHMuXG5odG1sLFxuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbn1cblxuLy8gTGluZS1oZWlnaHRzLlxuYm9keSB7XG4gIEBpbmNsdWRlIHB4LXJlbShmb250LXNpemUsICRiYXNlLWZvbnQtc2l6ZSk7XG4gIGxpbmUtaGVpZ2h0OiAkYmFzZS1saW5lLWhlaWdodDtcbn1cblxuaDEge1xuICBAaW5jbHVkZSB0aXRsZTtcbiAgQGluY2x1ZGUgcHgtcmVtKGZvbnQtc2l6ZSwgJGgxLWZvbnQtc2l6ZSk7XG4gIG1hcmdpbjogJGgxLW1hcmdpbjtcbiAgcGFkZGluZzogJGgxLXBhZGRpbmc7XG5cbiAgLmludHJvIC5jb250YWluZXIgJiB7XG4gICAgQGluY2x1ZGUgcHgtcmVtKGZvbnQtc2l6ZSwgJGgwLWZvbnQtc2l6ZSk7XG4gIH1cbn1cblxuaDIge1xuICBAaW5jbHVkZSB0aXRsZTtcbiAgQGluY2x1ZGUgcHgtcmVtKGZvbnQtc2l6ZSwgJGgyLWZvbnQtc2l6ZSk7XG4gIG1hcmdpbjogJGgyLW1hcmdpbjtcbiAgcGFkZGluZzogJGgyLXBhZGRpbmc7XG5cbiAgLmludHJvIC5jb250YWluZXIgJiB7XG4gICAgQGluY2x1ZGUgcHgtcmVtKGZvbnQtc2l6ZSwgJGgxLWZvbnQtc2l6ZSk7XG4gICAgbWFyZ2luOiAwIDAgMjFweCAwO1xuICAgIHBhZGRpbmc6ICRoMS1wYWRkaW5nO1xuICB9XG59XG5cbmgzIHtcbiAgQGluY2x1ZGUgdGl0bGU7XG4gIEBpbmNsdWRlIHB4LXJlbShmb250LXNpemUsICRoMy1mb250LXNpemUpO1xuICBtYXJnaW46ICRoMy1tYXJnaW47XG4gIHBhZGRpbmc6ICRoMy1wYWRkaW5nO1xufVxuXG5oNCB7XG4gIEBpbmNsdWRlIHRpdGxlO1xuICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAkaDQtZm9udC1zaXplKTtcbiAgbWFyZ2luOiAkaDQtbWFyZ2luO1xuICBwYWRkaW5nOiAkaDQtcGFkZGluZztcbn1cblxuaDUge1xuICBAaW5jbHVkZSB0aXRsZTtcbiAgQGluY2x1ZGUgcHgtcmVtKGZvbnQtc2l6ZSwgJGg1LWZvbnQtc2l6ZSk7XG4gIG1hcmdpbjogJGg1LW1hcmdpbjtcbiAgcGFkZGluZzogJGg1LXBhZGRpbmc7XG59XG5cbmg2IHtcbiAgQGluY2x1ZGUgdGl0bGU7XG4gIEBpbmNsdWRlIHB4LXJlbShmb250LXNpemUsICRoNi1mb250LXNpemUpO1xuICBtYXJnaW46ICRoNi1tYXJnaW47XG4gIHBhZGRpbmc6ICRoNi1wYWRkaW5nO1xufVxuIiwiLy8gSGVhZGVyLlxuLy8gQWRkIHlvdXIgaGVhZGVyIHJlbGF0ZWQgdGhlbWluZyBpbiB0aGlzIGZpbGUuXG5cbmhlYWRlciB7XG4gIHBhZGRpbmctdG9wOiAxMHB4O1xuICAvL3BhZGRpbmctYm90dG9tOiAxMjBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAvKkBpbmNsdWRlIGJhbm5lci1kaXY7Ki9cbiAgLypoZWlnaHQ6NzBweDsqL1xuICB6LWluZGV4OiAxNTtcblxuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgLypoZWlnaHQ6MTMwcHg7Ki9cbiAgfVxuXG4gIC5jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDA7XG4gIH1cblxuICAuYmxvY2stc3lzdGVtLWJyYW5kaW5nLWJsb2NrIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBtYXJnaW4tbGVmdDogNjBweDtcbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbiAgXG4gIC5zaXRlLWxvZ28ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG1hcmdpbi10b3A6IC0ycHg7XG4gICAgbWFyZ2luLWxlZnQ6IC04cHg7XG4gICAgXG4gICAgaW1nIHtcbiAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIHdpZHRoOiAyMTRweDtcbiAgICB9XG4gIH1cblxuICAuaGVhZGVyIHtcbiAgICBwYWRkaW5nOiAwIDIwcHg7XG4gICAgei1pbmRleDogMTI7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvb3Rlci5cbi8vIEFkZCB5b3VyIGZvb3Rlci1yZWxhdGVkIHRoZW1pbmcgaW4gdGhpcyBmaWxlLlxuXG5mb290ZXIge1xuICBiYWNrZ3JvdW5kOiAjMzQzODQyO1xuICBwYWRkaW5nOiA1MHB4IDAgMCAwO1xuICBsaW5lLWhlaWdodDogMjVweDtcblxuICB1bC5tZW51IGF7XG4gICAgZGlzcGxheTpibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOjEwcHg7XG4gIH1cblxuICB1bC5tZW51IHVsIGEge1xuICAgIGRpc3BsYXk6aW5saW5lO1xuICB9XG5cbiAgdWwubWVudSBhLmlzLWFjdGl2ZXtcbiAgICBjb2xvcjp3aGl0ZTtcbiAgfVxuXG4gIGF7XG4gICAgY29sb3I6d2hpdGU7XG4gIH1cblxuICBoMyB7XG4gICAgQGV4dGVuZCBoNDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICB9XG4gIHAge1xuICAgIG1hcmdpbjogNXB4IDA7XG4gIH1cblxuICAuZm9vdGVyLXJpZ2h0LFxuICAuZm9vdGVyLWJvdHRvbSB7XG4gICAgQGluY2x1ZGUgb21lZ2E7XG4gIH1cblxuICAuZm9vdGVyLWxlZnQsXG4gIC5mb290ZXItbWlkZGxlLFxuICAuZm9vdGVyLXJpZ2h0IHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIgb2YgMTIpO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQgb2YgMTIpO1xuICAgIH1cbiAgICAuYmxvY2stbWVudSB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIgb2YgMTIpO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2IG9mIDEyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLm5hdmlnYXRpb24ge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgfVxuICAgICAgaDIge1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgICAgIH1cbiAgICAgIHVsLm1lbnUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgICBhIHtcbiAgICAgICAgICAgICY6aG92ZXIsXG4gICAgICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICAgICAgY29sb3I6ICRjb2xvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgPiB1bCB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgICA+IGxpIHtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmZvb3Rlci1ib3R0b20ge1xuICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMik7XG4gICAgLm5hdmlnYXRpb24ge1xuICAgICAgLy8gQWxsIGxldmVscy5cbiAgICAgIHVsLm1lbnUge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGxpIHtcbiAgICAgICAgICAvL3RleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0zLCB0cnVlKSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGEge1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAmOmhvdmVyLFxuICAgICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgIGNvbG9yOiAkYmFzZS1ibHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gRmlyc3QgbGV2ZWwuXG4gICAgICA+IHVsIHtcbiAgICAgICAgPiBsaSB7XG4gICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gICAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgICAgICAgIFxuICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0KTtcbiAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCBvZiA0KTtcblxuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDBweDtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxIG9mIDQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0zLCB0cnVlKSB7XG4gICAgICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMSBvZiA0KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gU2Vjb25kIGxldmVsLlxuICAgICAgICAgID4gdWwge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICAgICAgICAgID4gbGkge1xuICAgICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0zLCB0cnVlKSB7XG4gICAgLypwYWRkaW5nLWJvdHRvbTo2NXB4OyovXG4gIH1cblxuICAuZm9vdGVyLWNsb3Npbmd7XG4gICAgYmFja2dyb3VuZDojNDM0NzUzO1xuICAgIGNvbG9yOndoaXRlO1xuICAgIGZvbnQtc2l6ZToxMXB4O1xuXG4gICAgLmNvbnRhaW5lcntcbiAgICAgIHBhZGRpbmc6MjBweDtcbiAgICB9XG5cbiAgICBuYXYge1xuICAgICAgbWFyZ2luLWJvdHRvbTowcHggIWltcG9ydGFudDtcblxuICAgICAgdWx7XG4gICAgICAgIG1hcmdpbjowcHg7XG4gICAgICB9XG4gICAgICBsaXtcbiAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG5cbiAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgY29udGVudDogJ3wnO1xuICAgICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgICAgICAgIHBhZGRpbmc6MHB4IDNweDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgbGk6Zmlyc3QtY2hpbGR7XG4gICAgICAgICY6YmVmb3Jle1xuICAgICAgICAgIGRpc3BsYXk6bm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgYXtcbiAgICAgICAgZGlzcGxheTppbmxpbmU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjpub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcblxuICAgICAgbmF2e2Zsb2F0OnJpZ2h0fVxuICAgICAgLmJsb2NrLW9yaWdpbntmbG9hdDpsZWZ0O31cblxuICAgIH1cblxuICB9XG5cbiAgLmJsb2NrLW9yaWdpbnMge1xuICAgIG1hcmdpbi1sZWZ0Oi0yMHB4O1xuICAgIG1hcmdpbi1yaWdodDotMjBweDtcbiAgICBwYWRkaW5nOjIwcHg7XG4gICAgYmFja2dyb3VuZDojNDM0NzUzO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjp3aGl0ZTtcbiAgICBmb250LXNpemU6MTJweDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTMsIHRydWUpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OjBweDtcbiAgICAgIG1hcmdpbi1yaWdodDowcHg7XG4gICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgIGJvdHRvbTowcHg7XG4gICAgICBsZWZ0OjBweDtcbiAgICAgIHJpZ2h0OjBweDtcbiAgICB9XG5cbiAgfVxufVxuIiwiLy8gTmF2aWdhdGlvbi5cbi8vIEFkZCB5b3VyIG5hdmlnYXRpb24gcmVsYXRlZCB0aGVtaW5nIGluIHRoaXMgZmlsZS5cbkBpbXBvcnQgJ2JvdHRvbS1uYXZpZ2F0aW9uJztcbkBpbXBvcnQgJ3NiJztcbkBpbXBvcnQgJ3RvcC1uYXZpZ2F0aW9uJztcbkBpbXBvcnQgJ3RvZ2dsZW1lbnUnO1xuXG4vKiB0ZW1wOiBzcGFuaXNoIGxhbmd1YWdlIGhpZGRlbiBmb3IgdmlzaXRvciAqL1xuLmxhbmd1YWdlLXN3aXRjaGVyLWxhbmd1YWdlLXVybCBsaVtocmVmbGFuZz1cImVzXCJde2Rpc3BsYXk6bm9uZSAhaW1wb3J0YW50O31cbi50b29sYmFyLWhvcml6b250YWwgLmxhbmd1YWdlLXN3aXRjaGVyLWxhbmd1YWdlLXVybCBsaVtocmVmbGFuZz1cImVzXCJde2Rpc3BsYXk6YmxvY2sgIWltcG9ydGFudDt9XG5odG1sW2xhbmc9XCJlc1wiXSAubGFuZ3VhZ2Utc3dpdGNoZXItbGFuZ3VhZ2UtdXJsIGxpW2hyZWZsYW5nPVwiZXNcIl17ZGlzcGxheTpibG9jayAhaW1wb3J0YW50O31cbi8qIHRlbXA6IHNwYW5pc2ggbGFuZ3VhZ2UgaGlkZGVuIGZvciB2aXNpdG9yICovXG5cbmhlYWRlciB7XG4gIC5uYXZpZ2F0aW9uLFxuICAuYmxvY2stbGFuZ3VhZ2Uge1xuICAgIHVsLmxpbmtzLFxuICAgIHVsLm1lbnUge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgei1pbmRleDogNTtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAgID4gbGkge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAgID4gYSB7XG4gICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgICAgJjpob3ZlcixcbiAgICAgICAgICAmOmZvY3VzLFxuICAgICAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5tZW51LS1tdWx0aXByZXNzLWZlYXR1cmVze1xuICBAaW5jbHVkZSBibG9ja19tZW51X21vZHVsZXM7XG59XG5cbi5tZW51LS1tdWx0aXByZXNzLWZlYXR1cmVzICsgLmJsb2NrLXN5c3RlbXtcblxuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgZmxvYXQ6cmlnaHQ7XG4gICAgd2lkdGg6NzAlO1xuICB9XG5cblxufVxuXG4ubWVudS0tcXVvam9iLWZlYXR1cmVze1xuICBAaW5jbHVkZSBibG9ja19tZW51X21vZHVsZXM7XG59XG5cbi5tZW51LS1xdW9qb2ItZmVhdHVyZXMgKyAuYmxvY2stc3lzdGVte1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICBmbG9hdDpyaWdodDtcbiAgICB3aWR0aDo3MCU7XG4gIH1cblxufVxuXG4ubWVudS0tZ3JpcHAtZmVhdHVyZXN7XG4gIEBpbmNsdWRlIGJsb2NrX21lbnVfbW9kdWxlcztcbn1cblxuLm1lbnUtLWdyaXBwLWZlYXR1cmVzICsgLmJsb2NrLXN5c3RlbXtcblxuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgZmxvYXQ6cmlnaHQ7XG4gICAgd2lkdGg6NzAlO1xuICB9XG5cbn1cblxuLm1lbnUtLXN1cHBvcnQtbWVudXtcbiAgICBAaW5jbHVkZSBibG9ja19tZW51X21vZHVsZXM7XG5cbiAgICBkaXNwbGF5OmJsb2NrO1xuICAgIGZsb2F0Om5vbmU7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICB0b3A6MjkwcHg7XG4gICAgei1pbmRleDoxO1xuICAgIGxlZnQ6NTAlO1xuXG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTBweDtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogMTBweDtcblxuICAgIGJhY2tncm91bmQ6d2hpdGU7XG4gICAgcGFkZGluZzoxNXB4O1xuXG4gICAgd2lkdGg6MTAwJTtcblxuICAgIC5tZW51IC5tZW51e1xuICAgICAgICBkaXNwbGF5Om5vbmU7XG4gICAgfVxuXG4gICAgLm1lbnUgLm9wZW4gKyAubWVudXtcbiAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICB9XG5cblxuXG4gICAgaDJ7bWFyZ2luLWJvdHRvbToyMHB4OyBmb250LXNpemU6MThweDt9XG4gICAgXG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6MTUlO1xuICAgICAgICB3aWR0aDozMyU7XG4gICAgXG4gICAgICAgIHRvcDoyOTBweDtcbiAgICAgICAgICAgICAgICAgICAgICBcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG5cbiAgICAgICAgaDJ7Zm9udC1zaXplOjI0cHg7fVxuXG4gICAgICAgIHRvcDoyOTBweDtcbiAgICAgICAgbWFyZ2luLWxlZnQ6MTUlO1xuICAgICAgICB3aWR0aDozMyU7XG4gICAgICAgICAgICAgIFxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTMsIHRydWUpIHtcblxuICAgICAgICB0b3A6MjIwcHg7XG4gICAgICAgIGxlZnQ6NTAlO1xuICAgICAgICBtYXJnaW4tbGVmdDoyNTBweDtcbiAgICAgICAgd2lkdGg6MzcwcHg7XG4gICAgICAgICAgXG4gICAgfVxuXG4gICAgLm1lbnUtaXRlbSBhe3BhZGRpbmctdG9wOjVweDsgcGFkZGluZy1ib3R0b206NXB4O31cbiAgICBcbiAgICAubWVudS1pdGVtLS1leHBhbmRlZHtcbiAgICAgICAgZm9udC13ZWlnaHQ6Ym9sZDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG4gICAgLm1lbnUtaXRlbS0tZXhwYW5kZWQgLm1lbnUtaXRlbSBhe1xuICAgICAgICBiYWNrZ3JvdW5kOm5vbmU7XG4gICAgICAgIGZvbnQtd2VpZ2h0Om5vcm1hbDtcbiAgICB9XG4gICAgLm1lbnUtaXRlbS0tZXhwYW5kZWQgPiBhOmJlZm9yZXtcbiAgICAgICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgICAgIG1hcmdpbi1yaWdodDoxMHB4O1xuICAgICAgICBjb250ZW50OiAn4pa4JztcbiAgICB9XG4gICAgLm1lbnUtaXRlbS0tZXhwYW5kZWQgPiBhLm9wZW46YmVmb3Jle1xuICAgICAgICBjb250ZW50Oifilr4nO1xuICAgIH1cbiAgfVxuICBcbiAgLm1lbnUtLXN1cHBvcnQtbWVudSArIC5ibG9jay1zeXN0ZW17XG5cbiAgXG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgICAgICAuZmllbGRfX2l0ZW0gKyAuZmllbGRfX2l0ZW17XG4gICAgICAgICAgICAuY29udGFpbmVyID4gZGl2e1xuICAgICAgICAgICAgICAgIHdpZHRoOjY1JTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgXG4gIH0gXG5cbi8qIFxuLm1lbnUtLXN1cHBvcnQtbWVudXtcbiAgICBAaW5jbHVkZSBibG9ja19tZW51X21vZHVsZXM7XG4gICAgZmxvYXQ6cmlnaHQ7XG5cbiAgICBoMnttYXJnaW4tYm90dG9tOjIwcHg7fVxuICAgIC5tZW51LWl0ZW0tLWV4cGFuZGVke1xuICAgICAgICBmb250LXdlaWdodDpib2xkO1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbiAgICAubWVudS1pdGVtLS1leHBhbmRlZCAubWVudS1pdGVtIGF7XG4gICAgICAgIGJhY2tncm91bmQ6bm9uZTtcbiAgICAgICAgZm9udC13ZWlnaHQ6bm9ybWFsO1xuICAgIH1cbiAgfVxuICBcbiAgLm1lbnUtLXN1cHBvcnQtbWVudSArIC5ibG9jay1zeXN0ZW17XG4gIFxuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICAgIGZsb2F0OmxlZnQ7XG4gICAgICB3aWR0aDo3MCU7XG4gICAgfVxuICBcbiAgfSAgKi8iLCIvLyBNYWluIG5hdmlnYXRpb24sIHRvIGJlIHJlcGxhY2VkIGJ5IE1lZ2EgTWVudS5cbmhlYWRlciB7XG4gIC5ib3R0b20tbmF2aWdhdGlvbiB7XG4gICAgbmF2IHtcbiAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgbWFyZ2luLXRvcDogLThweDtcbiAgICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIH1cbiAgICAgIHVsLm1lbnUgYSB7XG4gICAgICAgIGNvbG9yOiAkY29sb3ItdGl0bGU7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgZm9udC1mYW1pbHk6ICR0aXRsZS1mb250LWZhbWlseTtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiAzcHggMHB4O1xuICAgICAgICBtYXJnaW46IDAgMTVweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgQGluY2x1ZGUgYmFubmVyLWNvbG9yO1xuXG4gICAgICAgICYuaXMtYWN0aXZlIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgJGNvbG9yLXRpdGxlO1xuICAgICAgICAgIEBpbmNsdWRlIGJhbm5lci1jb2xvci1hY3RpdmU7XG4gICAgICAgIH1cblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmFjdGl2ZSB7XG4gICAgICAgICAgY29sb3I6ICRiYXNlLWJsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gVE9QIE1FTlUgKyBSRUdVTEFSIENPTFxuLmJsb2NrLW1lZ2EtbWVudS1uYXZpZ2F0aW9uLWJsb2NrIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbn1cblxuLmJvdHRvbS1uYXZpZ2F0aW9uIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7XG4gIHotaW5kZXg6IDEwO1xuICB0b3A6IDcwcHg7XG5cbiAgLy8gQWRtaW4gdG9vbGJhciBmaXguXG4gIC50b29sYmFyLWhvcml6b250YWwgJiB7XG4gICAgdG9wOiAxNTBweDtcbiAgfVxuICAvLyBBZG1pbiB0b29sYmFyIG1vYmlsZSBmaXguXG4gIC50b29sYmFyLXZlcnRpY2FsICYge1xuICAgIHRvcDogNjFweDtcbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgICB0b3A6IDExMHB4O1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiA3MHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICBoZWlnaHQ6IDYwcHg7XG4gICAgcGFkZGluZzogMTlweDtcbiAgfVxuXG4gIC50b3AtbGV2ZWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQ6ICMxYzIxMjc7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gICAgPiBhIHtcbiAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgZ3JleTtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBwYWRkaW5nOiAxOHB4IDAgMTVweCAzNXB4O1xuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5X19tZWRpdW07XG4gICAgICBAaW5jbHVkZSBiYW5uZXItY29sb3I7XG5cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgICAgICBjb2xvcjogJGRhcmsgIWltcG9ydGFudDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgYm9yZGVyLXRvcDogMDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMHB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gICAgICAgIHBhZGRpbmc6IDAgMCAxMnB4IDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgdHJhbnNpdGlvbjpub25lO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBib3JkZXItYm90dG9tOiA1cHggc29saWQgJGJhc2UtYmx1ZTtcblxuICAgICAgICAgICsgLnJvdyB7bWFyZ2luLXRvcDowcHg7fVxuXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTMsIHRydWUpIHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAyMHB4O1xuICAgICAgfVxuXG4gICAgfVxuXG4gICAgLnJvdyB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICB1bHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OjBweDtcbiAgICAgICAgbWFyZ2luOjBweDtcbiAgICAgIH1cblxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7IC8qdm9vcmNhbGN1bGF0aWUgdGVrc3QqL1xuICAgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICAgICAgICBwYWRkaW5nOjNweCAwcHg7XG4gICAgICAgIGZvbnQtc2l6ZToxNHB4O1xuICAgICAgfVxuXG4gICAgICBhOmhvdmVye1xuICAgICAgICBjb2xvcjojMDBhZWVmO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5yb3cuY29sLTJ7d2lkdGg6NjAlO31cblxuICAgICYub3BlbiB7XG5cbiAgICAgIC5yb3cge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgICAgICAgZGlzcGxheTogdGFibGU7XG4gICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICAuY29udGV4dHVhbC1wYW5lcyB7XG4gICAgICAgIHAge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICBmbG9hdDogbGVmdDsgLyppbnRlZ3JlZXIgYWxsZS4uLiB0ZWtzdCovXG5cbiAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIiBcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC50b3AtbGV2ZWw6bGFzdC1jaGlsZHtcbiAgICA+IGF7Y29sb3I6JGJsdWUgIWltcG9ydGFudDt9XG4gIH1cblxuICAubWVudWxpbmsge1xuICAgIC8qZm9udC13ZWlnaHQ6IGJvbGQ7Ki9cbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICAgYSB7XG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGNvbG9yOiAkYmFzZS1ibHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vJi5kZXNjcmlwdGlvbiB7XG4gICAgLy8gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgLy8gIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIC8vICBmb250LXNpemU6IDE1cHg7XG4gICAgLy99XG5cbiAgfVxuXG4gIC5zcGFjZXIge1xuICAgIGhlaWdodDogMTVweDtcbiAgfVxuXG4gIC5kZXNjcmlwdGlvbiB7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBwYWRkaW5nLWJvdHRvbToxNXB4O1xuICB9XG5cbiAgLy8gQ09OVEVYVFVBTCBNRU5VXG4gIC5jb250ZXh0dWFsLWNvbHVtbnMge1xuICAgIC5jb2wtMyB7XG4gICAgICB3aWR0aDogODUlO1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtNCwgdHJ1ZSkge1xuICAgICAgICB3aWR0aDogNzAlO1xuICAgICAgfVxuICAgICAgLmNvbnRleHR1YWwtcGFuZXMge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICAgICAgLmNvbHVtbiB7XG4gICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuXG4gICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICB3aWR0aDogMTclO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOm50aC1jaGlsZCgyKSB7XG4gICAgICAgICAgICB3aWR0aDogMzElO1xuICAgICAgICAgIH1cbiAgICAgICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgICAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogNDUlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5jb250ZXh0dWFsLXBhbmVfX2xpbmsgYSB7XG4gICAgICAgICAgZm9udC1zaXplOjE0cHg7XG4gICAgICAgICAgZm9udC13ZWlnaHQ6Ym9sZDtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgLyogcGFkZGluZy1sZWZ0OjEwcHg7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6MjBweDsgKi9cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLyogLmNvbnRleHR1YWwtcGFuZV9fbGluayBhOmhvdmVye1xuICAgICAgICAgICAgYmFja2dyb3VuZDpyZ2JhKDI1NSwyNTUsMjU1LDAuMik7XG5cbiAgICAgICAgfSAqL1xuICAgICAgICAuY29udGV4dHVhbC1wYW5lX19pbWFnZSB7XG4gICAgICAgICAgd2lkdGg6IDM1JTtcbiAgICAgICAgICBwYWRkaW5nOiAwcHg7XG4gICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG5cbiAgICAgICAgICBpbWcge1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgICYub3BlbiB7XG4gICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIGhlaWdodDozMHB4O1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDppbml0aWFsO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmNvbnRleHR1YWwtcGFuZV9fZGVzY3JpcHRpb24gZGl2IHtcbiAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDMlO1xuXG4gICAgICAgICAgJi5vcGVuIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICAgICAgICAvKmFsaWduLWl0ZW1zOiBjZW50ZXI7Ki9cbiAgICAgICAgICAgICAgLypqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsqL1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuY29udGV4dHVhbC1wYW5lX19kZXNjcmlwdGlvbjIge1xuICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAvKlxuICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgIHdpZHRoOiA1NSU7XG4gICAgICAgICAgKi9cblxuICAgICAgICAgIGRpdiB7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHdpZHRoOiA1MCU7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuXG4gICAgICAgICAgICAmLm9wZW4ge1xuICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgICAgICAvKnBhZGRpbmctdG9wOiAxNSU7Ki9cbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVkFSSUFCTEUgQ09MVU1OUyBNRU5VIElURU1cbiAgLnZhcmlhYmxlLWNvbHVtbnMge1xuICAgIC5yb3cge1xuICAgICAgPiBhIHtcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICBjb2xvcjogJGJhc2UtYmx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICAuY29sdW1uOmZpcnN0LW9mLXR5cGUge1xuICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgfVxuICB9XG5cbiAgLy8gR0VORVJBTCBTRVRUSU5HU1xuICAucm93IHtcbiAgICAvL2JhY2tncm91bmQtY29sb3I6IHJnYmEoNTQsIDU3LCA2NiwgMSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjojMWMyMTI3O1xuICAgIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBtYXJnaW4tdG9wOjVweDtcbiAgICAvKmJvcmRlci1yYWRpdXM6IDAgMCAzcHggM3B4OyovXG4gICAgLypib3gtc2hhZG93OjAgNnB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjYwKTsqL1xuICAgIG9wYWNpdHk6MC45ODtcblxuICAgIC8qXG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDEwcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMTBweDtcbiAgICAqL1xuXG4gICAgJi5jb2wtMSB7XG4gICAgICAuY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDk3JTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5jb2wtMiB7XG4gICAgICAuY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDQ3JTtcbiAgICAgIH1cbiAgICB9XG4gICAgJi5jb2wtMyB7XG4gICAgICAuY29sdW1uIHtcbiAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgIH1cbiAgICB9XG4gICAgLmNvbHVtbiB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDMlO1xuICAgIH1cbiAgfVxuICAuY29sdW1uIHtcbiAgICAubWVudWxpbmsge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFNsaWRlYmFyIG9wZW4gYnRuLlxuLnNiLW9wZW4tcmlnaHQge1xuICBAaW5jbHVkZSBiYW5uZXItY29sb3I7XG4gIGNvbG9yOiAkY29sb3ItdGl0bGU7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmbG9hdDogcmlnaHQ7XG4gIGZvbnQtZmFtaWx5OiAkdGl0bGUtZm9udC1mYW1pbHk7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgcGFkZGluZzogMDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxMDtcbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cblxuICAmOmhvdmVyLFxuICAmOmFjdGl2ZSB7XG4gICAgY29sb3I6ICRiYXNlLWJsdWU7XG4gIH1cbiAgJjphZnRlciB7XG4gICAgQGV4dGVuZCAlaWNvbnM7XG4gICAgQGV4dGVuZCAuaWNvbi1tZW51OmJlZm9yZTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdG9wOiAycHg7XG4gICAgbWFyZ2luLWxlZnQ6IDVweDtcbiAgfVxufVxuXG4vLyBTbGlkZWJhci5cbi5zYi1zbGlkZWJhciB7XG4gIGJhY2tncm91bmQ6ICNmYmZjZmMgIWltcG9ydGFudDtcbiAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkYmFzZS1ib3JkZXItY29sb3IgIWltcG9ydGFudDtcbiAgcGFkZGluZy10b3A6IDIwcHggIWltcG9ydGFudDtcblxuICAuY29udGV4dHVhbCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIHVsLmxpbmtzLFxuICB1bC5tZW51IHtcbiAgICBtYXJnaW46IDBweDtcbiAgICBwYWRkaW5nOiAwcHg7XG4gICAgbGkge1xuICAgICAgZmxvYXQ6IG5vbmUhaW1wb3J0YW50O1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcblxuICAgICAgYSB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuXG4gICAgICAgIGNvbG9yOiAkY29sb3ItdGl0bGU7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseV9fcmVndWxhcjtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBtYXJnaW46IDAgMTJweDtcbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmLmlzLWFjdGl2ZSB7XG4gICAgICAgICAgY29sb3I6ICRiYXNlLWJsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1bC5saW5rcyBsaSBhIHtcbiAgICBmb250LWZhbWlseTogJHRpdGxlLWZvbnQtZmFtaWx5O1xuICB9XG5cbn0iLCIudG9wLW5hdmlnYXRpb24ge1xuICAvL21hcmdpbjogMCAwIDI0cHggMDtcbiAgLy9mbG9hdDogbGVmdDtcbiAgLy93aWR0aDogMTAwJTtcbiAgLy9wYWRkaW5nLXJpZ2h0OiAyMHB4O1xuXG4gIHBvc2l0aW9uOiBmaXhlZDtcbiAgd2lkdGg6IDEwMCU7XG4gIHRvcDowO1xuICBoZWlnaHQ6IDcwcHg7XG4gIGJhY2tncm91bmQ6ICMzNjM5NDI7XG4gIHBhZGRpbmc6IDEycHggMDtcbiAgei1pbmRleDogMTE7XG5cbiAgLy8gQWRtaW4gdG9vbGJhciBmaXguXG4gIC50b29sYmFyLWhvcml6b250YWwgJiB7XG4gICAgdG9wOiA4MHB4O1xuICB9XG5cbiAgLy8gQWRtaW4gdG9vbGJhciBtb2JpbGUgZml4LlxuICAudG9vbGJhci12ZXJ0aWNhbCAmIHtcbiAgICB0b3A6IDQwcHg7XG4gIH1cblxuICAvLyBTZXJ2aWNlIG1lbnUuXG4gIG5hdiB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIHVsLm1lbnUgYSB7XG4gICAgICBjb2xvcjogJGNvbG9yLXRpdGxlO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5X19yZWd1bGFyO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgcGFkZGluZzogM3B4IDAgMnB4O1xuICAgICAgbWFyZ2luOiAwIDEycHg7XG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgQGluY2x1ZGUgYmFubmVyLWNvbG9yO1xuICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGNvbG9yLXRpdGxlO1xuICAgICAgfVxuICAgICAgJjpob3ZlcixcbiAgICAgICY6YWN0aXZlIHtcbiAgICAgICAgY29sb3I6ICRiYXNlLWJsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGVyIHNlYXJjaC5cbiAgLm1pbmktc2VhcmNoLWZvcm0ge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTMsIHRydWUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cbiAgICAuZm9ybS10eXBlLXRleHRmaWVsZCB7XG4gICAgICBtYXJnaW46IDA7XG5cbiAgICAgIGlucHV0IHtcbiAgICAgICAgbWF4LXdpZHRoOiAyNTBweDtcbiAgICAgICAgYmFja2dyb3VuZDogJGRhcmtfZ3JleTtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGRhcmtfZ3JleS0tYm9yZGVyO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbiAgICAgICAgZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5X19tZWRpdW07XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIEBpbmNsdWRlIHB4LXJlbShmb250LXNpemUsIDE0cHgpO1xuICAgICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgbWFyZ2luOiAwIDIwcHggMCAwO1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDQwcHggMTJweCAxMHB4O1xuICAgICAgfVxuICAgIH1cblxuICAgIGlucHV0LmJ1dHRvbiB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBoZWlnaHQ6IDQ0cHg7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIHJpZ2h0OiAyMHB4O1xuICAgICAgd2lkdGg6IDQ1cHg7XG4gICAgICBib3JkZXI6IDA7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoJy4uL2ltZy9zZWFyY2gucG5nJykgbm8tcmVwZWF0IGNlbnRlciBjZW50ZXI7XG4gICAgICB0ZXh0LWluZGVudDogMDtcbiAgICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB9XG4gIH1cblxuICAvLyBDb250YWN0IGJ1dHRvbi5cbiAgI2Jsb2NrLWNvbnRhY3R1cyB7XG4gICAgZmxvYXQ6IHJpZ2h0O1xuICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC1idXR0b24sIHRydWUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIHAge1xuICAgICAgcGFkZGluZzogMDtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG4gICAgLmJ1dHRvbiB7XG4gICAgICBAaW5jbHVkZSBidXR0b24tLW9yYW5nZTtcbiAgICAgIG1hcmdpbi1yaWdodDogMTdweDtcbiAgICB9XG4gIH1cbiAgLy9MYW5ndWFnZSBibG9jay5cbiAgLmJsb2NrLWxhbmd1YWdlIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA1cHg7XG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTQsIHRydWUpIHtcbiAgICAgIG1hcmdpbi1yaWdodDogLTVweDtcbiAgICB9XG4gICAgdWwubGlua3Mge1xuICAgICAgbWFyZ2luOiAwO1xuICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcGFkZGluZy10b3A6NDBweDtcbiAgICAgIGhlaWdodDowcHg7XG4gICAgICBwb3NpdGlvbjpyZWxhdGl2ZTtcbiAgICAgIG92ZXJmbG93OmhpZGRlbjtcbiAgICAgIGJhY2tncm91bmQ6IzM2Mzk0MjtcblxuICAgICAgJjpob3ZlcntcbiAgICAgICAgaGVpZ2h0OmF1dG87XG4gICAgICB9XG5cbiAgICAgICY6YWZ0ZXJ7XG4gICAgICAgIGNvbnRlbnQ6Jyc7XG4gICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICB0b3A6MTRweDtcbiAgICAgICAgcmlnaHQ6MTBweDtcbiAgICAgICAgd2lkdGg6OHB4O1xuICAgICAgICBoZWlnaHQ6OHB4O1xuICAgICAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCB3aGl0ZTtcbiAgICAgICAgYm9yZGVyLWxlZnQ6MXB4IHNvbGlkIHdoaXRlO1xuICAgICAgICB0cmFuc2Zvcm06cm90YXRlKC00NWRlZyk7XG4gICAgICB9XG5cblxuICAgICAgbGkge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMHB4O1xuICAgICAgICB3aGl0ZS1zcGFjZTpub3dyYXA7XG4gICAgICAgIHRleHQtYWxpZ246bGVmdDtcbiAgICAgICAgcGFkZGluZzowcHg7XG4gICAgICAgIGJhY2tncm91bmQ6IzM2Mzk0MjtcbiAgICAgICAgJi5pcy1hY3RpdmUge1xuICAgICAgICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgICAgICAgIHRvcDowcHg7XG4gICAgICAgICAgbGVmdDowcHg7XG4gICAgICAgIH1cblxuICAgICAgICAmLmlzLWFjdGl2ZSBhIHtwb2ludGVyLWV2ZW50czogbm9uZTt9XG5cblxuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseV9fbWVkaXVtO1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICAgICAgICB3aWR0aDoxODVweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6NTAwO1xuICAgICAgICBoZWlnaHQ6NDBweDtcbiAgICAgICAgcGFkZGluZzowcHggMTBweDtcbiAgICAgICAgLyp0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyovXG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgICBAaW5jbHVkZSBiYW5uZXItY29sb3I7XG5cbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgY29sb3I6ICRiYXNlLWJsdWU7XG4gICAgICAgICAgYmFja2dyb3VuZDojNjY2YTc2O1xuICAgICAgICB9XG5cblxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5waG9uZS1idXR0b257XG5cbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAmOmhvdmVyIHVse2Rpc3BsYXk6YmxvY2s7fVxuXG4gICAgdWx7cG9zaXRpb246YWJzb2x1dGU7IGRpc3BsYXk6bm9uZTsgei1pbmRleDogMTAwOyB0b3A6MTVweDsgcmlnaHQ6MzVweDsgYmFja2dyb3VuZDp3aGl0ZTsgbWFyZ2luOjBweDsgcGFkZGluZzo1cHggMjBweDsgdGV4dC1hbGlnbjogcmlnaHQ7IGxpc3Qtc3R5bGU6IG5vbmU7IGJvcmRlci1yYWRpdXM6IDVweDsgb3ZlcmZsb3c6aGlkZGVuOyBib3gtc2hhZG93OiAwcHggMHB4IDEwcHggcmdiYSgwLDAsMCwwLjE2KTt9XG4gICAgdWwgbGl7d2hpdGUtc3BhY2U6IG5vd3JhcDsgY29sb3I6YmxhY2s7IHBhZGRpbmc6NXB4IDBweDsgYm9yZGVyLXRvcDoxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjEpfVxuICAgIHVsIGxpOmZpcnN0LWNoaWxke2JvcmRlcjpub25lO31cblxuICAgIHVsIGxpLnByaW1hcnl7Zm9udC1zaXplOjE4cHg7fVxuICAgIHVsIGxpLnByaW1hcnkgc3BhbntkaXNwbGF5OmlubGluZS1ibG9jazsgbWFyZ2luLXJpZ2h0OjVweDt9XG4gICAgdWwgbGkuc2Vjb25kYXJ5e2ZvbnQtc2l6ZToxNHB4OyBmb250LXdlaWdodDpib2xkO31cblxuICB9XG5cblxuXG5cblxuXG5cblxuXG59IiwiLnRvZ2dsZS1tbnUge1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMjhweDtcbiAgaGVpZ2h0OiAyOHB4O1xuICBtYXJnaW4tdG9wOiAxOXB4O1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIHRvcDoxMHB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGZsb2F0OiBsZWZ0O1xuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLnRvZ2dsZS1tbnUgc3BhbjphZnRlciwgLnRvZ2dsZS1tbnUgc3BhbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRvcDogOXB4O1xufVxuLnRvZ2dsZS1tbnUgc3BhbjphZnRlciB7XG4gIHRvcDogMThweDtcbn1cbi50b2dnbGUtbW51IHNwYW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLnRvZ2dsZS1tbnUgc3BhbiwgLnRvZ2dsZS1tbnUgc3BhbjphZnRlciwgLnRvZ2dsZS1tbnUgc3BhbjpiZWZvcmUge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAycHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xuICBiYWNrZmFjZS12aXNpYmlsaXR5OiBoaWRkZW47XG4gIGJvcmRlci1yYWRpdXM6IDJweDtcbn1cbi50b2dnbGUtbW51Lm9uIHNwYW4ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi50b2dnbGUtbW51Lm9uIHNwYW46YmVmb3JlIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpIHRyYW5zbGF0ZSgtMXB4LCAwcHgpO1xufVxuLnRvZ2dsZS1tbnUub24gc3BhbjphZnRlciB7XG4gIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZykgdHJhbnNsYXRlKDZweCwgLTdweCk7XG59XG4iLCIvLyBGb3Jtcy5cbi8vIEFkZCB5b3VyIGZvcm0gcmVsYXRlZCB0aGVtaW5nIGluIHRoaXMgZmlsZS5cblxuLy8gUHJldmVudHMgZm9udC1mYW1pbHkgaW5jb25zaXN0ZW5jeSBiZXR3ZWVuIHRleHRhcmVhIGFuZCBvdGhlciBmb3JtIGVsZW1lbnRzLlxuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbn1cblxuZm9ybSB7IFxuICBpbnB1dFt0eXBlPSd0ZXh0J10sXG4gIGlucHV0W3R5cGU9J2RhdGV0aW1lLWxvY2FsJ10sXG4gIGlucHV0W3R5cGU9J2VtYWlsJ10sXG4gIGlucHV0W3R5cGU9J3Bhc3N3b3JkJ10sXG4gIGlucHV0W3R5cGU9J3VybCddLFxuICBpbnB1dFt0eXBlPSd0ZWwnXSxcbiAgaW5wdXRbdHlwZT0nbnVtYmVyJ10sXG4gIGlucHV0W3R5cGU9J2RhdGUnXSB7XG4gICAgQGluY2x1ZGUgZm9ybS10ZXh0ZmllbGQ7XG4gIH1cblxuICB0ZXh0YXJlYSB7XG4gICAgQGluY2x1ZGUgZm9ybS10ZXh0YXJlYTtcbiAgfVxuXG4gIC5mb3JtLXJhZGlvcyxcbiAgLm1hdXRpY2Zvcm0tcmFkaW9ncnAtcm93IHtcbiAgICBAaW5jbHVkZSBmb3JtLXJhZGlvO1xuICB9XG5cbiAgLmZvcm0tY2hlY2tzLFxuICAubWF1dGljZm9ybS1jaGVja2JveGdycC1yb3cge1xuICAgIEBpbmNsdWRlIGZvcm0tY2hlY2tib3g7XG4gIH1cblxuICBzZWxlY3Qge1xuICAgIEBpbmNsdWRlIGZvcm0tc2VsZWN0O1xuICB9XG5cbiAgbGFiZWwge1xuICAgIEBpbmNsdWRlIGZvcm0tbGFiZWw7XG4gICAgY2xlYXI6IGxlZnQ7XG4gIH1cblxuICBkaXYuZGVzY3JpcHRpb24ge1xuICAgIEBpbmNsdWRlIGZvcm0tZGVzY3JpcHRpb247XG4gIH1cblxuICBidXR0b25bdHlwZT0nc3VibWl0J10ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBib3RoO1xuICB9XG59XG5cbi8vIEJ1dHRvbnMuXG5pbnB1dC5idXR0b24sXG5idXR0b24ge1xuICBAaW5jbHVkZSBmb3JtQnV0dG9uO1xuICBtYXJnaW46IDIwcHggMCA1cHg7XG59XG5cbi5idXR0b24ge1xuICBAaW5jbHVkZSBidXR0b247XG59XG5cbi5idXR0b25fX3dyYXBwZXIgYSB7XG4gIEBpbmNsdWRlIGJ1dHRvbjtcbn1cblxuLnBsdXMtbGlua19fd3JhcHBlciB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbGVmdDtcbiAgYSB7XG4gICAgQGluY2x1ZGUgcGx1cy1saW5rO1xuICB9XG59XG5cbi5saW5rX193cmFwcGVyIHtcbiAgYSB7XG4gICAgQGluY2x1ZGUgbGluaztcbiAgfVxufVxuXG4ubWF1dGljZm9ybV93cmFwcGVyIHtcbiAgLyptYXJnaW46IDUwcHggMDsqL1xuXG4gIC5tYXV0aWNmb3JtLWNoZWNrYm94Z3JwLFxuICAubWF1dGljZm9ybS1yYWRpb2dycCB7XG4gICAgbGFiZWwge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICB3aWR0aDoxMDAlO1xuICAgIH1cbiAgICAmLmlubGluZSA+IGRpdntkaXNwbGF5OmlubGluZS1ibG9jazt9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgLm1hdXRpY2Zvcm0tYnV0dG9ue21hcmdpbi1sZWZ0OjI1JTt9XG4gICAgLmJ0bi1hbGlnbi1sZWZ0e21hcmdpbi1sZWZ0OjAlO30gLy9idXR0b24gYWxpZ25tZW50IGxlZnQgYWxpZ24gYnV0dG9uIGxlZnRcbiAgfVxuXG59XG5cblxuLnBmX2NvbnRhY3RfbWV7IFxuXG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTMsIHRydWUpIHtcbiAgICAubWF1dGljZm9ybS1wYWdlLXdyYXBwZXJ7b3ZlcmZsb3c6aGlkZGVuO31cbiAgICAubWF1dGljZm9ybS1yb3d7d2lkdGg6MzMlOyBmbG9hdDpsZWZ0O31cbiAgICAubWF1dGljZm9ybS1idXR0b257bWFyZ2luLXRvcDo1NXB4OyBtYXJnaW4tbGVmdDowcHg7IHdpZHRoOjkwJTt9XG4gICAgbGFiZWx7ZmxvYXQ6bm9uZTsgd2lkdGg6YXV0bzt9XG4gICAgaW5wdXR7bWF4LXdpZHRoOjkwJSAhaW1wb3J0YW50O31cbiAgfVxuICBcbn1cblxuLnBmX3Byb2R1Y3RfZGVtb3tcbiAgLm1hdXRpY2Zvcm0tYnV0dG9ue21hcmdpbi1sZWZ0OjBweDt9XG59XG5cbi5tYXV0aWNmb3JtLXBvc3Qtc3VjY2VzcyAubWF1dGljZm9ybS1tZXNzYWdle2JhY2tncm91bmQ6I2ZmNjQwYjsgY29sb3I6d2hpdGU7IHBhZGRpbmc6MjBweDsgYm9yZGVyLXJhZGl1czo3cHg7fVxuc3Bhbi5tYXV0aWNmb3JtLWVycm9ybXNne2NvbG9yOnJlZDsgZGlzcGxheTpibG9jazsgY2xlYXI6Ym90aDt9IFxuXG4uc2VhcmNoLWZvcm17XG5cbiAgICBpbnB1dFt0eXBlPXNlYXJjaF17cGFkZGluZzoxMHB4OyBib3JkZXItcmFkaXVzOjNweDsgYmFja2dyb3VuZDp3aGl0ZTsgYm9yZGVyOjFweCBzb2xpZCAjZTFlMWUxO31cblxuICAgIC5zZWFyY2gtYWR2YW5jZWR7XG5cbiAgICAgICAgbWFyZ2luOjBweDtcbiAgICAgICAgYm9yZGVyOjBweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206MTBweDtcbiAgICAgICAgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI2UxZTFlMTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTo0MHB4O1xuXG4gICAgICAgIHN1bW1hcnl7ZGlzcGxheTpub25lO31cbiAgICAgICAgbGFiZWx7ZmxvYXQ6bm9uZTt9XG4gICAgXG4gICAgICAgIC5kZXRhaWxzLXdyYXBwZXJ7XG5cbiAgICAgICAgICAgIHBhZGRpbmc6MHB4O1xuXG4gICAgICAgICAgICBsZWdlbmR7ZGlzcGxheTpub25lO31cbiAgICAgICAgICAgIGZpZWxkc2V0e21hcmdpbjowcHg7IHBhZGRpbmc6MHB4O31cblxuICAgICAgICAgICAgPiBmaWVsZHNldFtkYXRhLWRydXBhbC1zZWxlY3Rvcj1lZGl0LWtleXdvcmRzLWZpZWxkc2V0XXtkaXNwbGF5Om5vbmU7fVxuICAgICAgICAgICAgPiBmaWVsZHNldFtkYXRhLWRydXBhbC1zZWxlY3Rvcj1lZGl0LWxhbmctZmllbGRzZXRde2Rpc3BsYXk6bm9uZTt9XG4gICAgICAgICAgICA+IGZpZWxkc2V0W2RhdGEtZHJ1cGFsLXNlbGVjdG9yPWVkaXQtdHlwZXMtZmllbGRzZXRde2Rpc3BsYXk6bm9uZTsgYm9yZGVyOm5vbmU7IHBhZGRpbmc6MHB4O31cbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgLmZpZWxkc2V0LXdyYXBwZXJ7XG4gICAgICAgICAgICBmaWVsZHNldFtkYXRhLWRydXBhbC1zZWxlY3Rvcj1lZGl0LXR5cGVdIC5mb3JtLWl0ZW17ZGlzcGxheTpub25lfVxuICAgICAgICAgICAgZmllbGRzZXRbZGF0YS1kcnVwYWwtc2VsZWN0b3I9ZWRpdC10eXBlXSAuZm9ybS1pdGVtLXR5cGUtbmV3c3tkaXNwbGF5OmJsb2NrfVxuICAgICAgICAgICAgXG4gICAgICAgIH1cbiAgICBcbiAgICAgICAgLmFjdGlvbntkaXNwbGF5Om5vbmU7fVxuICAgIFxuICAgIH1cbiAgICBcbn1cblxuLnNlYXJjaC1mb3JtICsgaDJ7ZGlzcGxheTpub25lO31cblxuXG4iLCIvLyBUYWJsZXMuXG4vLyBBZGQgeW91ciB0YWJsZSByZWxhdGVkIHRoZW1pbmcgaW4gdGhpcyBmaWxlLlxuXG50YWJsZSB7XG4gIHRyIHtcbiAgICB0aCB7XG4gICAgICAvL1xuICAgIH1cblxuICAgIHRkIHtcbiAgICAgIC8vXG4gICAgfVxuICB9XG59XG4iLCIvLyBTdHlsZXMuXG4vLyBBZGQgeW91ciBjb250ZW50LXNwZWNpZmljIHRoZW1pbmcgaW4gdGhpcyBmaWxlLlxuLy8gQWxsIGdlbmVyYWwgdGhlbWluZyBzaG91bGQgZ28gaW4gdGhlIGRlc2lnbiBmb2xkZXIuXG5cbkBpbXBvcnQgJ2Jsb2NrL2Jsb2NrJztcbkBpbXBvcnQgJ2NvbXBvbmVudC9jb21wb25lbnQnO1xuQGltcG9ydCAnbm9kZS9ub2RlJztcbkBpbXBvcnQgJ3ZpZXcvdmlldyc7XG5AaW1wb3J0ICdwYWdlL3BhZ2UnO1xuQGltcG9ydCAncGFyYWdyYXBoL3BhcmFncmFwaCc7XG5cbmh0bWwge1xuICBjb2xvcjogJGJhc2UtdGV4dC1jb2xvcjtcblxuICA6OnNlbGVjdGlvbiB7XG4gICAgY29sb3I6ICRiYXNlLXNlbGVjdGVkLXRleHQtY29sb3I7XG4gICAgYmFja2dyb3VuZDogJGJhc2UtYmx1ZTtcbiAgfVxufVxuXG4vLyBCYXNlIHJlc3BvbnNpdmUgaW1hZ2VzLlxuaW1nIHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG5cbi8vIEJhc2UgbGluayBzZXR0aW5ncy5cbmEge1xuICBjb2xvcjogJGJhc2UtbGluay1jb2xvcjtcbiAgQGluY2x1ZGUgdHJhbnNpdGlvbihhbGwgMTUwbXMgbGluZWFyKTtcbiAgJjpob3ZlcixcbiAgJjpmb2N1cyB7XG4gICAgY29sb3I6ICRiYXNlLWxpbmstaG92ZXItY29sb3I7XG4gIH1cbn1cblxucCBhe1xuICBjb2xvcjokYmx1ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAmOmhvdmVye1xuICAgIGNvbG9yOiRkYXJrX2dyZXk7XG4gIH1cbn1cblxuIiwiLy8gU3R5bGVzID4gQmxvY2suXG4vLyBTbmlwcGV0cyBvZiByZXVzYWJsZSBDU1MgY29uY2VybmluZyBzcGVjaWZpYyBibG9ja3MuXG4vLyBJbXBvcnQgYWxsIHlvdXIgYmxvY2sgc2FzcyBmaWxlcyBpbiB0aGlzIGZpbGUuXG5cbkBpbXBvcnQgJ2Jsb2NrLWNvbnRlbnQnO1xuQGltcG9ydCAnYmxvY2stbWVudSc7XG5AaW1wb3J0ICdibG9jay1uZXdzbGV0dGVyJztcbkBpbXBvcnQgJ2Jsb2NrLXNvY2lhbG1lbnUnO1xuQGltcG9ydCAnYmxvY2stY3RhX2Z1bGwnO1xuQGltcG9ydCAnYmxvY2stY3RhX3ByaW1hcnknO1xuQGltcG9ydCAnYmxvY2stY3RhX3NlY29uZGFyeSc7XG5AaW1wb3J0ICdibG9jay1zb2x1dGlvbnMtb3ZlcnZpZXcnO1xuXG4iLCIuYmxvY2stYmxvY2stY29udGVudCB7XG4gIG1hcmdpbi1ib3R0b206IDQwcHg7XG5cblxufVxuIiwiLmJsb2NrLW1lbnUge1xuICBmb290ZXIgJiB7XG4gICAgbWFyZ2luLWJvdHRvbTogNDBweCAhaW1wb3J0YW50O1xuICB9XG59XG4iLCIjYmxvY2stbmV3c2xldHRlciB7XG4gIC8vXG59XG4iLCIjYmxvY2stc29jaWFsbWVudSB7XG4gIGg0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMTYwcHg7XG4gICAgcGFkZGluZzogOHB4IDA7XG4gICAgaGVpZ2h0OiAyNHB4O1xuICB9XG5cbiAgaDQgKyBwIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAwO1xuICB9XG5cbiAgLmljb24tZmFjZWJvb2ssXG4gIC5pY29uLXR3aXR0ZXIsXG4gIC5pY29uLWxpbmtlZGluIHtcbiAgICBAaW5jbHVkZSBoaWRlLXRleHQ7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uKGFsbCAxNTBtcyBsaW5lYXIpO1xuICAgICAgQGluY2x1ZGUgcHgtcmVtKGZvbnQtc2l6ZSwgMzZweCk7XG4gICAgICBjb2xvcjogJGNvbG9yLXRpdGxlO1xuICAgICAgbWFyZ2luLWxlZnQ6IDEwcHg7XG4gICAgfVxuXG4gICAgJjpob3ZlcjpiZWZvcmUge1xuICAgICAgY29sb3I6ICRiYXNlLWJsdWU7XG4gICAgfVxuICB9XG5cbiAgaHIge1xuICAgIGhlaWdodDogMXB4O1xuICAgIGJhY2tncm91bmQ6ICRiYXNlLWJvcmRlci1jb2xvcjtcbiAgICBib3JkZXI6IDA7XG4gIH1cbn1cbiIsIi5ibG9jay1jdGFfZnVsbCB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiA4MzBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGltZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgfVxufSIsIlxuLnBhdGgtZnJvbnRwYWdle1xuICAgLmludHJve1xuICAgICAgYmFja2dyb3VuZDojZTllOWU5O1xuICAgICAgY29sb3I6JGNvbG9yO1xuXG4gICAgICBoMntcbiAgICAgICAgIGNvbG9yOmluaGVyaXQ7XG4gICAgICAgICBmb250LXNpemU6MjRweDtcbiAgICAgICAgIG1hcmdpbi1ib3R0b206MTBweDtcbiAgICAgIH1cbiAgIH1cbn1cblxuLnBhdGgtZnJvbnRwYWdlIC5ibG9jay1jdGFfcHJpbWFyeXtcbiAgIGltZyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgICAgbWF4LXdpZHRoOiAzNTBweDtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICAgICAgIG1hcmdpbjogMCAwIDAgMzBweDtcbiAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIH1cbiAgIH1cbiAgIGEge1xuICAgICAgQGluY2x1ZGUgYnV0dG9uX2JsdWVfb3VsdGluZTtcbiAgICAgIG1hcmdpbi1yaWdodDoxMHB4O1xuICAgfVxuICAgYSArIGF7XG4gICAgICBib3JkZXI6bm9uZTtcbiAgIH1cblxufVxuXG4uYmxvY2stY3RhX3ByaW1hcnkge1xuXG4gICBhe3RleHQtZGVjb3JhdGlvbjpub25lO31cblxuICAgaW1nIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgICBtYXgtd2lkdGg6IDE3MHB4O1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgICAgICAgbWFyZ2luOiAwIDMwcHggMCAwO1xuICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICB9XG4gICB9XG4gICAmX19ib2R5IHtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICBmb250LWZhbWlseTogJGJhc2UtZm9udC1mYW1pbHk7XG4gICAgICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAxNHB4KTtcbiAgICAgIHAge1xuICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgIH1cbiAgIH1cbn1cblxuLnZpZXctcHJvZHVjdC1jdGEgLnZpZXdzLXJvdyxcbi5pbnRybyAuY29udGFpbmVyIC5ibG9jay1ibG9jay1jb250ZW50IHtcbiAgIG1hcmdpbi1ib3R0b206MDtcbiAgIC8qQGluY2x1ZGUgY29sLTIoKTsqL1xufVxuXG4iLCIuYmxvY2stY3RhX3NlY29uZGFyeSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYSB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG4gICZfX2ljb24ge1xuICAgIGltZyB7XG4gICAgICBtYXgtaGVpZ2h0OiA4OHB4O1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gIH1cbiAgJl9fYm9keSB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuIiwiLmJsb2NrLXNvbHV0aW9ucy1vdmVydmlldyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgaDIsXG4gIGgxIHtcbiAgICBAZXh0ZW5kIGgxO1xuICAgIEBpbmNsdWRlIHB4LXJlbShmb250LXNpemUsIDI2cHgpO1xuICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMywgdHJ1ZSkge1xuICAgICAgQGluY2x1ZGUgcHgtcmVtKGZvbnQtc2l6ZSwgNDZweCk7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzOHB4O1xuICAgIH1cblxuICB9XG4gIC5idXR0b25fX3dyYXBwZXIsXG4gIC52aWV3cy1ncm91cCB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICB9XG4gIC5idXR0b25fX3dyYXBwZXIgYSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDEwcHggNXB4IDAgMDtcbiAgfVxuICBoMyB7XG4gICAgQGluY2x1ZGUgYnV0dG9uO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luOiAxMHB4IDVweCAwIDA7XG4gIH1cbiAgLnZpZXdzLXJvd3Mge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB9XG4gIC5iYWNrIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgbGVmdDogMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0b3A6IDUwJTtcbiAgICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBAZXh0ZW5kICVpY29ucztcbiAgICAgIEBleHRlbmQgLmljb24tYXJyb3ctbGVmdDpiZWZvcmU7XG4gICAgICBjb2xvcjogd2hpdGU7XG4gICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgfVxuICB9XG59IiwiLy8gU3R5bGVzID4gQ29tcG9uZW50cy5cbi8vIFNuaXBwZXRzIG9mIHJldXNhYmxlIENTUyBjb25jZXJuaW5nIHNwZWNpZmljIGNvbXBvbmVudHMsIGUuZy4gJ3NvY2lhbC1zaGFyZSdcbi8vIEltcG9ydCBhbGwgeW91ciBjb21wb25lbnQgc2FzcyBmaWxlcyBpbiB0aGlzIGZpbGUuXG5cbkBpbXBvcnQgJ2JyZWFkY3J1bWInO1xuQGltcG9ydCAnZGF0ZSc7XG5AaW1wb3J0ICdibG9jay12aWV3cy1ibG9ja3Rlc3RpbW9uaWFscy1ibG9jay0xJztcbkBpbXBvcnQgJ2ZsZXgtZGlyZWN0aW9uLW5hdic7XG5AaW1wb3J0ICdja2VkaXRvcic7XG4iLCIuYnJlYWRjcnVtYiB7XG4gIEBpbmNsdWRlIHB4LXJlbShmb250LXNpemUsICRoNi1mb250LXNpemUpO1xuICBjb2xvcjogI2FiYWJhYjtcbiAgbWFyZ2luOiAwIDAgMjBweCAwcHg7XG4gIC8qdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsqLyBcblxuICBhIHtcbiAgICBjb2xvcjogIzAwOWZlMDtcbiAgICB0ZXh0LWRlY29yYXRpb246bm9uZTtcbiAgfVxuXG4gIGxpOmJlZm9yZSB7XG4gICAgY29udGVudDogJyB8ICc7XG4gIH1cblxufVxuIiwiLmNvbXBvbmVudC1kYXRlIHtcbiAgQGluY2x1ZGUgcHgtcmVtKGZvbnQtc2l6ZSwgMTRweCk7XG4gIGNvbG9yOiAjYWJhYmFiO1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuIiwiLmJsb2NrLXZpZXdzLWJsb2NrdGVzdGltb25pYWxzLWJsb2NrLTEge1xuICBoMiB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gIH1cbn1cbiIsIi5mbGV4c2xpZGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBmbG9hdDogbGVmdDtcbiAgd2lkdGg6IDEwMCU7XG4gIHVsLnNsaWRlcyB7XG4gICAgbWFyZ2luOiAwcHg7XG4gICAgcGFkZGluZzogMHB4O1xuICB9XG5cbn1cblxuLmpzLWhvbWVmbGV4c2xpZGVye1xuICAvKmJhY2tncm91bmQ6IzAwOWZlMDsqL1xuXG4gIC5iYW5uZXJfX3RleHR7XG5cbiAgICBiYWNrZ3JvdW5kOm5vbmU7XG4gICAgcG9zaXRpb246c3RhdGljO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuXG4gICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgIHRvcDowcHg7XG4gICAgICBwYWRkaW5nOjBweDtcblxuICAgICAgLmNvbnRhaW5lcntcbiAgICAgICAgcG9zaXRpb246cmVsYXRpdmU7XG4gICAgICB9XG5cbiAgICB9XG5cbiAgfVxuXG4gIC5maWVsZC0tbmFtZS1maWVsZC1ib2R5e1xuICAgIGJveC1zaXppbmc6Ym9yZGVyLWJveDtcbiAgICBwYWRkaW5nOjIwcHg7XG4gICAgY29sb3I6d2hpdGU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgICBwYWRkaW5nOjUwcHggMjBweDtcbiAgICAgIHdpZHRoOjUwJTtcbiAgICB9XG5cblxuICAgIGgye1xuICAgICAgY29sb3I6d2hpdGU7XG4gICAgICBmb250LXNpemU6MjVweDtcbiAgICB9XG5cbiAgICBhe1xuICAgICAgbWFyZ2luLXRvcDoyMHB4O1xuICAgICAgQGluY2x1ZGUgYnV0dG9uX3doaXRlX291bHRpbmU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMywgdHJ1ZSkge1xuXG4gICAgICBwYWRkaW5nLXRvcDoxMCU7XG5cbiAgICAgIGgye1xuICAgICAgICBmb250LXNpemU6NDBweDtcbiAgICAgIH1cblxuICAgIH1cblxuICB9XG5cbiAgLmZpZWxkLS1uYW1lLWZpZWxkLWZyb250LWltYWdle1xuXG4gICAgZGlzcGxheTpub25lO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuXG4gICAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICAgIHRvcDowcHg7XG4gICAgICBib3R0b206MHB4O1xuICAgICAgcmlnaHQ6MHB4O1xuICAgICAgd2lkdGg6NTAlO1xuICAgICAgZGlzcGxheTpibG9jaztcblxuICAgIH1cblxuICB9XG5cbn1cblxuLmZsZXgtY29udHJvbC1uYXZ7XG5cbiAgcG9zaXRpb246YWJzb2x1dGU7XG4gIGJvdHRvbTowcHg7XG4gIHRleHQtYWxpZ246Y2VudGVyO1xuICB3aWR0aDoxMDAlO1xuICB6LWluZGV4OjEwMDtcblxuICBsaXtcbiAgICBwYWRkaW5nOjBweCAzcHg7XG4gICAgbGlzdC1zdHlsZTpub25lO1xuICAgIGRpc3BsYXk6aW5saW5lLWJsb2NrO1xuICB9XG4gIGF7XG4gICAgZGlzcGxheTppbmxpbmUtYmxvY2s7XG4gICAgYm9yZGVyLXJhZGl1czo1MHB4O1xuICAgIHdpZHRoOjEzcHg7XG4gICAgaGVpZ2h0OjEzcHg7XG4gICAgb3ZlcmZsb3c6aGlkZGVuO1xuICAgIHRleHQtaW5kZW50Oi02MDBweDtcbiAgICBib3JkZXI6MXB4IHNvbGlkIHdoaXRlO1xuICB9XG4gIGEuZmxleC1hY3RpdmV7XG4gICAgYmFja2dyb3VuZDp3aGl0ZTtcbiAgfVxufVxuXG4uZmxleC1kaXJlY3Rpb24tbmF2IHtcbiAgbGkge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbGlzdC1zdHlsZS1pbWFnZTogbm9uZTtcbiAgICBhIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIGZvbnQtc2l6ZTogMHB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAyMCU7XG4gICAgICBtYXJnaW4tdG9wOiAtMjBweDtcbiAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICBAZXh0ZW5kICVpY29ucztcbiAgICAgICAgY29sb3I6ICRkYXJrO1xuICAgICAgICBmb250LXNpemU6IDQwcHg7XG4gICAgICB9XG4gICAgICAmLmZsZXgtbmV4dCB7XG4gICAgICAgIHJpZ2h0OiAwcHg7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBAZXh0ZW5kIC5pY29uLWFycm93OmJlZm9yZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJi5mbGV4LXByZXYge1xuICAgICAgICBsZWZ0OiAwcHg7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICBAZXh0ZW5kIC5pY29uLWFycm93LWxlZnQ6YmVmb3JlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICAgICAgdG9wOjUwJVxuICAgICAgfVxuXG4gICAgfVxuICB9XG5cblxuXG59IiwiLypzdHlsZXMgZm9yIHRoZSBDS0VkaXRvciovXG5ib2R5LmNrZV9lZGl0YWJsZSwgYm9keS5ja2VfbHRye3BhZGRpbmc6MCAhaW1wb3J0YW50O31cblxuLypja18gc3RpamxlbiAtIGJsb2NrKi9cbnAuY2tfbGVhZHBhcmFncmFwaHtmb250LXNpemU6MTZweDt9XG5wLmNrX2xpbmtncm91cHtcbiAgYTphZnRlcntjb250ZW50OicgfCAnOyBkaXNwbGF5OmlubGluZTt9XG4gIGE6bGFzdC1jaGlsZDphZnRlcntkaXNwbGF5Om5vbmU7fVxufVxucC5ja19idXR0b25ncm91cCwgcC5jay1idXR0b25ncm91cHtcbiAgYTpmaXJzdC1jaGlsZHtAaW5jbHVkZSBidXR0b247IG1hcmdpbi1yaWdodDoxMHB4O31cbiAgYXtAaW5jbHVkZSBidXR0b25fc2Vjb25kYXJ5O31cblxuICAmLm9yYW5nZXtcbiAgICBiYWNrZ3JvdW5kOm5vbmU7XG4gICAgYTpmaXJzdC1jaGlsZHtiYWNrZ3JvdW5kOiRvcmFuZ2U7IGJvcmRlci1jb2xvcjokb3JhbmdlOyBmb250LXdlaWdodDpib2xkO31cbiAgICBhOmZpcnN0LWNoaWxkOmhvdmVye2NvbG9yOiRvcmFuZ2UgIWltcG9ydGFudDsgYmFja2dyb3VuZDp3aGl0ZTt9XG4gICAgYSArIGF7Ym9yZGVyLWNvbG9yOiRvcmFuZ2U7IGNvbG9yOiRvcmFuZ2V9XG4gIH1cbn1cblxuXG4uY29tcG9uZW50IC5wYWNpZmljX2JsdWUsIC5jb21wb25lbnQgLm1pcmFnZSwgLmNvbXBvbmVudCAub3JhbmdleyBcblxuICBwLmNrX2J1dHRvbmdyb3VwLCBwLmNrLWJ1dHRvbmdyb3Vwe1xuICAgIGE6Zmlyc3QtY2hpbGR7YmFja2dyb3VuZDpub25lOyBib3JkZXI6MXB4IHNvbGlkIHdoaXRlO31cbiAgICBhICsgYXtib3JkZXI6MXB4IHNvbGlkIHJnYmEoMCwwLDAsMCk7fVxuICAgIGE6aG92ZXJ7Y29sb3I6IzAwOWZlMCAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOndoaXRlO31cbiAgfVxuXG59XG5cbi8qY2tfIHN0aWpsZW4gLSBpbmxpbmUqL1xuc3Bhbi5ja19wYXktb2Zme2ZvbnQtc2l6ZTo0MHB4O30gXG5cbi8qdW5kb2N1bWVudGVkIHN0eWxlcyovXG4uY2tfdmVydGljYWwtY2VudGVye2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47aGVpZ2h0OjEwMCU7anVzdGlmeS1jb250ZW50OmNlbnRlcjt9IFxuXG4uY2tfY29sb3JfcGFsZXR0ZXtwYWRkaW5nOjUwcHggMHB4OyBtYXJnaW4tdG9wOi01MHB4OyBtYXJnaW4tYm90dG9tOi01MHB4OyBwb3NpdGlvbjpyZWxhdGl2ZTt9XG4uY2tfY29sb3JfcGFsZXR0ZSAqe2NvbG9yOndoaXRlO31cbi5ja19jb2xvcl9wYWxldHRlOmJlZm9yZXtjb250ZW50OicnOyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjBweDsgYm90dG9tOjBweDsgcmlnaHQ6LTEwMCU7IHdpZHRoOjEwMCU7fVxuLmNrX2NvbG9yX3BhbGV0dGU6YWZ0ZXJ7Y29udGVudDonJzsgcG9zaXRpb246YWJzb2x1dGU7IHRvcDowcHg7IGJvdHRvbTowcHg7IGxlZnQ6LTEwMCU7IHdpZHRoOjEwMCU7fVxuXG4uY2tfY29sb3JfcGFsZXR0ZS5yZWQsIC5ja19jb2xvcl9wYWxldHRlLnJlZDpiZWZvcmUsIC5ja19jb2xvcl9wYWxldHRlLnJlZDphZnRlcntiYWNrZ3JvdW5kOiNEOTIyM0I7fVxuXG4uY2tfY29sb3JfcGFsZXR0ZS5fZmYwMDk5LCAuY2tfY29sb3JfcGFsZXR0ZS5fZmYwMDk5OmJlZm9yZSwgLmNrX2NvbG9yX3BhbGV0dGUuX2ZmMDA5OTphZnRlcntiYWNrZ3JvdW5kOiNmZjAwOTk7fVxuLmNrX2NvbG9yX3BhbGV0dGUuXzdhMTg3OCwgLmNrX2NvbG9yX3BhbGV0dGUuXzdhMTg3ODpiZWZvcmUsIC5ja19jb2xvcl9wYWxldHRlLl83YTE4Nzg6YWZ0ZXJ7YmFja2dyb3VuZDojN2ExODc4O31cbi5ja19jb2xvcl9wYWxldHRlLl8wMDU5ODQsIC5ja19jb2xvcl9wYWxldHRlLl8wMDU5ODQ6YmVmb3JlLCAuY2tfY29sb3JfcGFsZXR0ZS5fMDA1OTg0OmFmdGVye2JhY2tncm91bmQ6IzAwNTk4NDt9XG4uY2tfY29sb3JfcGFsZXR0ZS5fMDA4OWQwLCAuY2tfY29sb3JfcGFsZXR0ZS5fMDA4OWQwOmJlZm9yZSwgLmNrX2NvbG9yX3BhbGV0dGUuXzAwODlkMDphZnRlcntiYWNrZ3JvdW5kOiMwMDg5ZDA7fVxuLmNrX2NvbG9yX3BhbGV0dGUuXzAwYWVlZiwgLmNrX2NvbG9yX3BhbGV0dGUuXzAwYWVlZjpiZWZvcmUsIC5ja19jb2xvcl9wYWxldHRlLl8wMGFlZWY6YWZ0ZXJ7YmFja2dyb3VuZDojMDBhZWVmO31cbi5ja19jb2xvcl9wYWxldHRlLl8wYmFmNGQsIC5ja19jb2xvcl9wYWxldHRlLl8wYmFmNGQ6YmVmb3JlLCAuY2tfY29sb3JfcGFsZXR0ZS5fMGJhZjRkOmFmdGVye2JhY2tncm91bmQ6IzBiYWY0ZDt9XG4uY2tfY29sb3JfcGFsZXR0ZS5fOGRjNjNmLCAuY2tfY29sb3JfcGFsZXR0ZS5fOGRjNjNmOmJlZm9yZSwgLmNrX2NvbG9yX3BhbGV0dGUuXzhkYzYzZjphZnRlcntiYWNrZ3JvdW5kOiM4ZGM2M2Y7fVxuLmNrX2NvbG9yX3BhbGV0dGUuX2ZmZDUwMywgLmNrX2NvbG9yX3BhbGV0dGUuX2ZmZDUwMzpiZWZvcmUsIC5ja19jb2xvcl9wYWxldHRlLl9mZmQ1MDM6YWZ0ZXJ7YmFja2dyb3VuZDojZmZkNTAzO31cbi5ja19jb2xvcl9wYWxldHRlLl9mMmI1MTgsIC5ja19jb2xvcl9wYWxldHRlLl9mMmI1MTg6YmVmb3JlLCAuY2tfY29sb3JfcGFsZXR0ZS5fZjJiNTE4OmFmdGVye2JhY2tncm91bmQ6I2YyYjUxODt9XG4uY2tfY29sb3JfcGFsZXR0ZS5fZjc5NDFkLCAuY2tfY29sb3JfcGFsZXR0ZS5fZjc5NDFkOmJlZm9yZSwgLmNrX2NvbG9yX3BhbGV0dGUuX2Y3OTQxZDphZnRlcntiYWNrZ3JvdW5kOiNmNzk0MWQ7fVxuLmNrX2NvbG9yX3BhbGV0dGUuX2YyNjUyMiwgLmNrX2NvbG9yX3BhbGV0dGUuX2YyNjUyMjpiZWZvcmUsIC5ja19jb2xvcl9wYWxldHRlLl9mMjY1MjI6YWZ0ZXJ7YmFja2dyb3VuZDojZjI2NTIyO31cbi5ja19jb2xvcl9wYWxldHRlLl9lZDFhM2IsIC5ja19jb2xvcl9wYWxldHRlLl9lZDFhM2I6YmVmb3JlLCAuY2tfY29sb3JfcGFsZXR0ZS5fZWQxYTNiOmFmdGVye2JhY2tncm91bmQ6I2VkMWEzYjt9XG5cbiIsIi8vIFN0eWxlcyA+IE5vZGUuXG4vLyBTbmlwcGV0cyBvZiByZXVzYWJsZSBDU1MgY29uY2VybmluZyBzcGVjaWZpYyBub2RlcywgZS5nLiAnbm9kZS1uZXdzJ1xuLy8gSW1wb3J0IGFsbCB5b3VyIG5vZGUgc2FzcyBmaWxlcyBpbiB0aGlzIGZpbGUuXG5cbkBpbXBvcnQgJ25vZGUtY2Fyb3VzZWwnO1xuQGltcG9ydCAnbm9kZS1uZXdzJztcbkBpbXBvcnQgJ25vZGUtcGFnZSc7XG5AaW1wb3J0ICdub2RlLXByb2R1Y3QnO1xuQGltcG9ydCAnbm9kZS1zdGFuZGFsb25lJztcbkBpbXBvcnQgJ25vZGUtdGVzdGltb25pYWwnO1xuXG4ubm9kZS1uZXdzIHtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcbiAgcGFkZGluZy10b3A6IDM1cHg7XG4gIG1hcmdpbi10b3A6IDM1cHg7XG5cbiAgJl9fbGluayB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICZfX2ltZyB7XG5cbiAgICBpbWcge1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgbWFyZ2luOiAwIDMwcHggMCAwO1xuICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICB9XG4gICAgICBtYXgtd2lkdGg6IDE3MHB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICB9XG4gIH1cblxuICAmX190ZXh0IHtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG59XG5cblxuIiwiLm5vZGUtY2Fyb3VzZWwge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiMwMDlmZTA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBoMSB7XG4gICAgQGluY2x1ZGUgcHgtcmVtKGZvbnQtc2l6ZSwgMjZweCk7XG4gICAgY29sb3I6ICR3aGl0ZTtcbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0zLCB0cnVlKSB7XG4gICAgICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCA0NnB4KTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDM4cHg7XG4gICAgfVxuICB9XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQtY2Fyb3VzZWwtbW9iaWxlO1xuICB9XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTMsIHRydWUpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQtY2Fyb3VzZWwtdGFibGV0O1xuICB9XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTQsIHRydWUpIHtcbiAgICBoZWlnaHQ6ICRoZWlnaHQtY2Fyb3VzZWw7XG4gIH1cbiAgaGVpZ2h0OiAkaGVpZ2h0LWNhcm91c2VsLW1vYmlsZTtcblxuICAucGF0aC1mcm9udHBhZ2UgJiB7XG4gICAgLypoZWlnaHQ6ICRoZWlnaHQtYmFubmVyOyovXG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMywgdHJ1ZSkge1xuICAgICAgaGVpZ2h0OiAkaGVpZ2h0LWNhcm91c2VsLXRhYmxldC1ob21lO1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC00LCB0cnVlKSB7XG4gICAgICBoZWlnaHQ6ICRoZWlnaHQtY2Fyb3VzZWw7XG4gICAgfVxuICB9XG59XG4iLCIucGFnZS1ub2RlLXR5cGUtbmV3cyB7XG4gIFxuICAgIC52aWRlby1jb250YWluZXIgKyAuZmllbGQtLW5hbWUtZmllbGQtYmVkcmlqZnNiZWVsZHtkaXNwbGF5Om5vbmU7fSBcblxufVxuXG4ubm9kZS1uZXdzX190eXBlIHtcbiAgZmxvYXQ6IHJpZ2h0O1xuICBjb2xvcjogJGJhc2UtYmx1ZTtcbn1cblxuLm5vZGUtbmV3c19fdGl0bGUge1xuICBiYWNrZ3JvdW5kOiAkYmFzZS1ibHVlO1xuICBmb250LWZhbWlseTogJHRpdGxlLWZvbnQtZmFtaWx5O1xuICBwYWRkaW5nOiAxMHB4O1xuICBjb2xvcjogJHdoaXRlO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwcHg7XG4gIGxlZnQ6IDBweDtcbn1cblxuLnZpZXctbW9kZS10ZWFzZXJfdmlkZW8ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIEBpbmNsdWRlIHRyYW5zaXRpb24oYWxsIDE1MG1zIGxpbmVhcik7XG4gICY6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wMyk7XG4gIH1cbiAgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuXG4ubm9kZS1uZXdzIHtcbiAgJi52aWV3LW1vZGUtdGVhc2VyIHtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICB9XG59XG5cblxuIiwiLnBhZ2Utbm9kZS10eXBlLXBhZ2Uge1xuICAvKkBpbmNsdWRlIHNtYWxsLXBhZ2U7Ki9cblxuICBoZWFkZXIge1xuICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICB9XG59XG5cbi5ub2RlLXBhZ2Uge1xuICAmLnZpZXctbW9kZS1mdWxsIHtcbiAgICAvL1xuICB9XG5cbiAgJi52aWV3LW1vZGUtdGVhc2VyIHtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgI2UxZTFlMTtcbiAgICBwYWRkaW5nLXRvcDogMjBweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ucGF0aC1mcm9udHBhZ2UgLmNvbnRlbnR7Ym9yZGVyOm5vbmU7IHBhZGRpbmc6MDt9XG4ucGF0aC1mcm9udHBhZ2UgLmJsb2NrLWJsb2NrLWNvbnRlbnR7bWFyZ2luOjA7fVxuIiwiLnBhZ2Utbm9kZS10eXBlLXByb2R1Y3Qge1xuICBAaW5jbHVkZSB3aGl0ZS1tZW51O1xuXG4gIC8qXG4gIC5ub2RlLXByb2R1Y3RfX3BhcmFncmFwaDpmaXJzdC1jaGlsZHtcblxuICAgIHA6Zmlyc3QtY2hpbGR7XG4gICAgICBmb250LXNpemU6MTZweDsgbGluZS1oZWlnaHQ6MzBweDtcbiAgICB9XG4gIH1cbiAgKi9cblxufVxuXG4ubm9kZS1wcm9kdWN0X19jdGEge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIG1hcmdpbi1yaWdodDogMjBweDtcbiAgbWFyZ2luLXRvcDogMjBweDtcbiAgYSB7XG4gICAgQGluY2x1ZGUgYnV0dG9uX3doaXRlX291bHRpbmU7XG4gIH1cbn1cblxuLm5vZGUtcHJvZHVjdF9fcGFyYWdyYXBoIHtcbiAgJiArIC5ub2RlLXByb2R1Y3RfX3BhcmFncmFwaCB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcbiAgICBwYWRkaW5nLXRvcDogMzVweDtcbiAgICBtYXJnaW4tdG9wOiAzNXB4O1xuICB9XG5cbiAgLnBhcmFncmFwaC1pbWdsZWZ0IHtcbiAgICAuZ3JvdXAtbGVmdCB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIgb2YgMTIpO1xuICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0IG9mIDEyKTtcbiAgICAgIH1cblxuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgfVxuICAgIH1cblxuICAgIC5ncm91cC1yaWdodCB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIgb2YgMTIpO1xuICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0xLCB0cnVlKSB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg4IG9mIDEyKTtcbiAgICAgICAgQGluY2x1ZGUgb21lZ2E7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnBhcmFncmFwaC1pbWdyaWdodCB7XG4gICAgLmdyb3VwLWxlZnQge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyIG9mIDEyKTtcbiAgICAgIEBpbmNsdWRlIG9tZWdhO1xuICAgICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOCBvZiAxMik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmdyb3VwLXJpZ2h0IHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMiBvZiAxMik7XG4gICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQgb2YgMTIpO1xuICAgICAgICBAaW5jbHVkZSBvbWVnYTtcbiAgICAgIH1cblxuICAgICAgaW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGhlaWdodDogYXV0bztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLm5vZGUtcHJvZHVjdF9fbG9nbyB7XG4gIGltZyB7XG4gICAgbWF4LXdpZHRoOiAxODBweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgbWFyZ2luLWJvdHRvbTogMTRweDtcbn1cblxuLm5vZGUtcHJvZHVjdCB7XG4gICYudmlldy1tb2RlLXRlYXNlciB7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNlMWUxZTE7XG4gICAgcGFkZGluZy10b3A6IDIwcHg7XG5cbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwYWRkaW5nLWJvdHRvbTogMjBweDtcbiAgICBhIHtcbiAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJGNvbG9yO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi5wYWdlLW5vZGUtdHlwZS1wcm9kdWN0IC5pbnRyb3tcbiAgYmFja2dyb3VuZC1jb2xvcjojMDA5ZmUwO1xuXG4gIHAgYXtcbiAgICBjb2xvcjp3aGl0ZTtcbiAgICB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5lO1xuICB9XG59XG5cbiIsIi5wYWdlLW5vZGUtdHlwZS1zdGFuZGFsb25lIHtcbiAgaGVhZGVyIHtcbiAgICBib3JkZXI6IDA7XG4gICAgaGVpZ2h0OiAxMDBweDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgLmJsb2NrLXN5c3RlbS1icmFuZGluZy1ibG9jayB7XG4gICAgICBsZWZ0OiAyMHB4O1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA0MHB4O1xuICAgIH1cbiAgfVxuXG4gIC5jb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgfVxuXG4gIC5wYWdlLWNvbnRlbnQge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcblxuICAgIC5ibG9jay1zeXN0ZW0tbWFpbi1ibG9jayB7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgfVxuICB9XG59XG5cbi5ub2RlLXN0YW5kYWxvbmVfX2JhY2tncm91bmQge1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICBwYWRkaW5nOiAxMDBweCAxMCUgMjBweDtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICBwYWRkaW5nOiAxMyUgMTAlIDUlO1xuICB9XG5cbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgbWluLWhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogMTAwcHggMjBweCAyMHB4O1xufVxuXG4ubm9kZS1zdGFuZGFsb25lX19jb250ZW50IHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIG1heC13aWR0aDogNzkwcHg7XG4gIHBhZGRpbmc6IDMwcHg7XG5cbiAgLnRleHQtZm9ybWF0dGVkID4gKjpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4iLCIubm9kZS10ZXN0aW1vbmlhbCB7XG4gIC5ncm91cC1sZWZ0IHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIgb2YgMTIpO1xuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg0IG9mIDEyKTtcbiAgICB9XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgaW1nIHtcbiAgICAgIGJvcmRlcjogMTRweCBzb2xpZCAkZGFyaztcbiAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgIG1heC13aWR0aDogMTcwcHg7XG4gICAgfVxuICB9XG5cbiAgLmdyb3VwLXJpZ2h0IHtcbiAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoMTIgb2YgMTIpO1xuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg3IG9mIDEyKTtcbiAgICB9XG4gIH1cblxuICAmX19ib2R5IHtcbiAgICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAxNXB4KTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgbWFyZ2luOiAyMHB4IDAgMTVweDtcblxuICAgIHAge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuXG4gICZfX25hbWUge1xuICAgIEBpbmNsdWRlIHB4LXJlbShmb250LXNpemUsIDE4cHgpO1xuICAgIGNvbG9yOiAkZGFyaztcbiAgICBmb250LWZhbWlseTogJHRpdGxlLWZvbnQtZmFtaWx5O1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgfVxuXG4gICZfX2Z1bmN0aW9uIHtcbiAgICBAaW5jbHVkZSBweC1yZW0oZm9udC1zaXplLCAxNHB4KTtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gIH1cbn1cbiIsIi8vIFN0eWxlcyA+IFZpZXcuXG4vLyBTbmlwcGV0cyBvZiByZXVzYWJsZSBDU1MgY29uY2VybmluZyBzcGVjaWZpYyB2aWV3cywgZS5nLiAndmlldy1uZXdzJ1xuLy8gSW1wb3J0IGFsbCB5b3VyIHZpZXcgc2FzcyBmaWxlcyBpbiB0aGlzIGZpbGUuXG5cbkBpbXBvcnQgJ3ZpZXctbmV3cyc7XG5AaW1wb3J0ICd2aWV3LWN1c3RvbWVycyc7XG5AaW1wb3J0ICd2aWV3LXZjb24tZGF0YWxpbmV0dic7XG5AaW1wb3J0ICd2aWV3LXZjb24tbmV3cy1sYW5kaW5nLXBhZ2UnO1xuXG4uZ3JvdXAtbGluayB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbiIsIiVyZXNldC1uZXdzIHtcbiAgYm9yZGVyLXRvcDogMDtcbiAgcGFkZGluZy10b3A6IDA7XG4gIG1hcmdpbi10b3A6IDA7XG59XG5cbi52aWV3LWhvbWVwYWdlLW5ld3Mge1xuICAudmlld3Mtcm93OmZpcnN0LWNoaWxkIHtcbiAgICAubm9kZS1uZXdzIHtcbiAgICAgIEBleHRlbmQgJXJlc2V0LW5ld3M7XG4gICAgfVxuICB9XG59XG5cbi52aWV3LXJlY2VudC1uZXdzLFxuLnZpZXctcmVjZW50LWJsb2dzIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAmLnZpZXctZGlzcGxheS1pZC1sYXJnZV90ZWFzZXJzIHtcblxuICAgIC5ub2RlLW5ld3Mge1xuICAgICAgQGV4dGVuZCAlcmVzZXQtbmV3cztcbiAgICB9XG5cbiAgICAudmlld3Mtcm93IHtcbiAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMiBvZiAxMik7XG5cbiAgICAgIGltZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICB9XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgfVxuXG4gICAgICAuZ3JvdXAtbGVmdCxcbiAgICAgIC5ncm91cC1yaWdodCB7XG4gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygxMiBvZiAxMik7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcbiAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDQgb2YgMTIpO1xuXG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi52aWV3LWRpc3BsYXktaWQtcGFnZV8xIHtcblxuICAgIC52aWV3cy1yb3cge1xuICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyIG9mIDEyKTtcblxuICAgICAgLm5vZGUtbmV3c19fdHlwZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnBhZ2VyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuIiwiLnZpZXctY3VzdG9tZXJzIHtcbiAgaDIge1xuICAgIG1hcmdpbi1ib3R0b206IDMwcHg7XG4gIH1cbiAgLnZpZXdzLWdyb3VwIHtcbiAgICBAaW5jbHVkZSBjZjtcbiAgfVxuICAudmlld3Mtcm93IHtcbiAgICBAaW5jbHVkZSBjb2wtMztcbiAgfVxufVxuIiwiLmR0di12aWV3e1xuXG4gICAgLmR0di12aWV3LXJvd3N7ZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6IHdyYXA7IG1hcmdpbi1sZWZ0Oi0xMHB4OyBtYXJnaW4tcmlnaHQ6LTEwcHg7fVxuXG4gICAgLmR0di12aWV3LXJvd3t3aWR0aDogMTAwJTsgbWFyZ2luOiAxdncgMDsgcGFkZGluZy1sZWZ0OjEwcHg7IHBhZGRpbmctcmlnaHQ6MTBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDt9XG4gICAgLmR0di12aWV3LXJvdzpudGgtb2YtdHlwZSgyKSB7bWFyZ2luLWxlZnQ6IDA7fVxuICAgIC5kdHYtdmlldy1yb3c6bnRoLW9mLXR5cGUoNW4pIHttYXJnaW4tcmlnaHQ6IDA7fVxuICAgIC5kdHYtdmlldy1yb3c6bnRoLW9mLXR5cGUoNW4rMSkge21hcmdpbi1sZWZ0OiAwO31cblxuICAgIC5kdHYtYXJ0aWNsZXtkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47fSBcbiAgICAuZHR2LWFydGljbGUgPiBkaXZ7ZmxleDoxIGF1dG87fVxuXG4gICAgLmR0di1hcnRpY2xlLWxpbmt7dGV4dC1kZWNvcmF0aW9uOiBub25lO31cbiAgICAuZHR2LWFydGljbGUtbGVmdHsgcG9zaXRpb246cmVsYXRpdmU7fVxuXG4gICAgLmR0di10aXRsZXtkaXNwbGF5OmJsb2NrOyBtYXJnaW4tdG9wOjEwcHg7fVxuICAgIC5kdHYtaW1hZ2V7aGVpZ2h0OjE1MHB4OyB3aWR0aDoxMDAlOyBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyOyBiYWNrZ3JvdW5kLWNvbG9yOndoaXRlOyBib3gtc2hhZG93OjBweCAwcHggM3B4IDBweCByZ2JhKDAsMCwwLDAuNTQpOyBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyOyBib3JkZXItcmFkaXVzOiAxMHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7fVxuICAgIC5kdHYtYm9keSB7ZGlzcGxheTogYmxvY2s7IGRpc3BsYXk6IC13ZWJraXQtYm94OyBtYXgtd2lkdGg6IDQwMHB4OyBoZWlnaHQ6IDE0cHgqMS43KjM7IG1hcmdpbjogMDsgIC13ZWJraXQtbGluZS1jbGFtcDogMzsgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsgb3ZlcmZsb3c6IGhpZGRlbjsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IH1cbiAgICAuZHR2LWJ1dHRvbntkaXNwbGF5Om5vbmU7fVxuXG4gICAgLmR0di1wbGF5IHtiYWNrZ3JvdW5kOiByZ2JhKDAsMCwwLDAuNTUpOyB3aWR0aDogNTBweDsgaGVpZ2h0OiAzNHB4OyBib3JkZXItcmFkaXVzOiA3cHg7IHBhZGRpbmctdG9wOiAxMHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNTAlOyBsZWZ0OjUwJTsgbWFyZ2luLWxlZnQ6LTI1cHg7IG1hcmdpbi10b3A6LTI0cHg7IH1cbiAgICAuZHR2LXBsYXkgPiBkaXYge3dpZHRoOiAwOyBoZWlnaHQ6IDA7IGJvcmRlci1zdHlsZTogc29saWQ7IGJvcmRlci13aWR0aDogN3B4IDAgN3B4IDE0cHg7IGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQgI2ZmZmZmZjsgbWFyZ2luOiAwIGF1dG87IH1cbiAgICAuZHR2LWFydGljbGUtbGluazpob3ZlciAuZHR2LXBsYXkgeyBiYWNrZ3JvdW5kOiByZWQ7IH1cbiAgXG59XG5cbiIsIi52Y29uLWRhdGFsaW5lLW5ld3N7XG5cbiAgICAuaXRlbS1saXN0IHVse2xpc3Qtc3R5bGU6IG5vbmU7IHBhZGRpbmc6MHB4OyBtYXJnaW46MHB4fSBcbiAgICAuaXRlbS1saXN0IHVsIGxpe21hcmdpbjowcHg7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW4tYm90dG9tOjIwcHg7IH1cbiAgICAuaXRlbS1saXN0IHVsOmFmdGVyIHt2aXNpYmlsaXR5OiBoaWRkZW47ZGlzcGxheTogYmxvY2s7Zm9udC1zaXplOiAwO2NvbnRlbnQ6IFwiIFwiO2NsZWFyOiBib3RoO2hlaWdodDogMDt9XG5cbiAgICAubmV3cy1iZWRyaWpmc2JlZWxke2JveC1zaGFkb3c6IDBweCAwcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuNTQpOyBib3JkZXItcmFkaXVzOjEwcHg7IG92ZXJmbG93OmhpZGRlbjt9XG4gICAgLm5ld3MtYmVkcmlqZnNiZWVsZCBpbWd7ZGlzcGxheTpibG9jazt9XG4gICAgLm5ld3MtdHlwZXt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc2l6ZToxMXB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjIwcHg7IGxlZnQ6LTEwcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYmFja2dyb3VuZDp5ZWxsb3c7IHBhZGRpbmc6MXB4IDVweDsgY29sb3I6YmxhY2sgIWltcG9ydGFudDt9XG4gICAgLm5ld3MtdGl0bGV7bWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXNpemU6MjhweDsgZm9udC13ZWlnaHQ6MjAwOyBsaW5lLWhlaWdodDoxLjM7fVxuICAgIC5uZXdzLXRpdGxlIGF7dGV4dC1kZWNvcmF0aW9uOiBub25lO31cbiAgICAubmV3cy1zdW1tYXJ5e2ZvbnQtc2l6ZToxNnB4O31cbiAgICAubmV3cy1idXR0b24gYXtjb2xvcjojMDA5ZmUwOyBmb250LXNpemU6MTZweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBtYXJnaW4tdG9wOjEwcHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB0ZXh0LWluZGVudDotOTk5OXB4OyBsaW5lLWhlaWdodDogMCAhaW1wb3J0YW50O31cbiAgICAubmV3cy1idXR0b24gYTo6YWZ0ZXJ7Y29udGVudDonUmVhZCBtb3JlLi4uJzsgdGV4dC1pbmRlbnQ6MDsgZGlzcGxheTpibG9jazsgbGluZS1oZWlnaHQ6IGluaXRpYWw7fVxuICAgIC52Y29uLWRhdGFsaW5lLW5ld3MtYXR0YWNobWVudHtcblxuICAgICAgICAvKmhlcm8qL1xuICAgICAgICB1bCBsaTpmaXJzdC1jaGlsZHtcblxuICAgICAgICAgICAgcGFkZGluZzowcHggMHB4IDQwcHggMHB4O1xuXG4gICAgICAgICAgICAubmV3cy1iZWRyaWpmc2JlZWxke3dpZHRoOjEwMCU7IG92ZXJmbG93OiBoaWRkZW47ICRib3JkZXItcmFkaXVzOiAxNXB4OyBtYXJnaW4tcmlnaHQ6MjBweDsgbWFyZ2luLWJvdHRvbToxMHB4O31cbiAgICAgICAgICAgIC5uZXdzLXRpdGxlIGF7Zm9udC1zaXplOjQwcHg7IGZvbnQtd2VpZ2h0OjEwMDt9IFxuICAgICAgICAgICAgLm5ld3Mtc3VtbWFyeXtmb250LXNpemU6MThweDt9XG4gICAgICAgICAgICAubmV3cy10eXBle31cblxuICAgICAgICAgICAgLm5ld3MtYnV0dG9ue21hcmdpbi10b3A6MjBweDt9XG4gICAgICAgICAgICAubmV3cy1idXR0b24gYXsgQGluY2x1ZGUgYnV0dG9uOyBwYWRkaW5nOjE3cHggMjBweDtmb250LXNpemU6MS4yODU3MXJlbTsgfVxuICAgICAgICAgICAgLm5ld3MtYnV0dG9uIGE6OmFmdGVye31cblxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICAvKm1pbm9yKi9cbiAgICAudmNvbi1kYXRhbGluZS1uZXdzLXBhZ2V7XG5cbiAgICAgICAgdWwgbGl7bWFyZ2luLWJvdHRvbTo0MHB4ICFpbXBvcnRhbnQ7IGNsZWFyOmJvdGg7fVxuICAgICAgICAubmV3cy1iZWRyaWpmc2JlZWxke21hcmdpbi10b3A6MTBweDt9XG5cbiAgICB9XG5cblxuXG4gXG5cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHsgXG5cbiAgICAgICAgLml0ZW0tbGlzdCB1bCBsaXttYXJnaW46MHB4O31cblxuICAgICAgICAudmNvbi1kYXRhbGluZS1uZXdzLWF0dGFjaG1lbnR7XG5cbiAgICAgICAgICAgIC5uZXdzLWJlZHJpamZzYmVlbGR7fVxuICAgICAgICAgICAgXG4gICAgICAgICAgICB1bHtkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOnJvdzsgZmxleC13cmFwOiB3cmFwO31cbiAgICAgICAgICAgIHVsIGxpe2ZsZXg6IDEgMCAzMCU7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7fVxuXG4gICAgICAgICAgICAvKmhlcm8qL1xuICAgICAgICAgICAgdWwgbGk6Zmlyc3QtY2hpbGR7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgZmxleDogMCAxIDEwMCU7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAubmV3cy10eXBle3RvcDotMzBweDt9XG4gICAgICAgICAgICAgICAgLm5ld3MtYmVkcmlqZnNiZWVsZHt3aWR0aDo1MCU7IGZsb2F0OnJpZ2h0OyBvdmVyZmxvdzogaGlkZGVuOyAkYm9yZGVyLXJhZGl1czogMTVweDsgbWFyZ2luLWxlZnQ6MjBweDsgbWFyZ2luLXRvcDotNTBweDsgbWFyZ2luLXJpZ2h0OjBweDt9XG4gICAgICAgICAgICAgICAgLm5ld3MtdGl0bGV7cGFkZGluZy10b3A6MjBweDt9XG4gICAgICAgICAgICAgICAgLm5ld3MtdGl0bGUgYXtmb250LXNpemU6NDhweDsgfVxuICAgICAgICAgICAgICAgIC5uZXdzLXR5cGV7bGVmdDo1MCU7IG1hcmdpbi1sZWZ0Oi0xMHB4O31cbiAgICAgICAgICAgICAgICAubmV3cy1zdW1tYXJ5e3dpZHRoOjUwJTt9XG4gICAgICAgIFxuICAgICAgICAgICAgfVxuICAgIFxuICAgICAgICAgICAgLypwcmltYXJ5Ki9cbiAgICAgICAgICAgIHVsIGxpOm50aC1jaGlsZCgyKXtcbiAgICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6MTBweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHVsIGxpOm50aC1jaGlsZCgzKXtcbiAgICAgICAgICAgICAgICBtYXJnaW46MHB4IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB1bCBsaTpudGgtY2hpbGQoNCl7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6MTBweDtcbiAgICAgICAgICAgIH1cblxuXG4gICAgICAgIH1cblxuICAgICAgICAvKm1pbm9yKi9cbiAgICAgICAgLnZjb24tZGF0YWxpbmUtbmV3cy1wYWdle1xuICAgICAgICAgICAgLm5ld3MtYmVkcmlqZnNiZWVsZHt3aWR0aDoyMCU7IG1hcmdpbi1yaWdodDoyMHB4OyBtYXJnaW4tYm90dG9tOjQwcHg7IGZsb2F0OmxlZnQ7IG1hcmdpbi10b3A6MTBweDt9XG4gICAgICAgIH1cblxuICAgICAgICAgICAgXG4gICAgXG4gICAgXG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMywgdHJ1ZSkge1xuXG4gICAgfVxuXG59IFxuXG4iLCIvLyBTdHlsZXMgPiBQYWdlLlxuLy8gU25pcHBldHMgb2YgcmV1c2FibGUgQ1NTIGNvbmNlcm5pbmcgc3BlY2lmaWMgcGFnZXMsIGUuZy4gJ3BhZ2Utc2VhcmNoJ1xuLy8gSW1wb3J0IGFsbCB5b3VyIHBhZ2Ugc2FzcyBmaWxlcyBpbiB0aGlzIGZpbGUuXG5cbiNtYWluLWNvbnRlbnQucGFnZS1jb250ZW50e3Bvc2l0aW9uOnJlbGF0aXZlO31cblxuQGltcG9ydCAncGFnZS1kbC1jdXN0b21lci1wcm9maWxlJztcbkBpbXBvcnQgJ3BhZ2UtYWNhZGVteSc7XG5AaW1wb3J0ICdwYWdlLWZpbmRlcic7XG5cbi5wYXRoLXNlYXJjaCB7XG4gIC52aWV3LWZpbHRlcnMge1xuICAgIC5mb3JtLXR5cGUtdGV4dGZpZWxkIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuXG4gIC5wYWdlciB7XG4gICAgcGFkZGluZzogMDtcbiAgICAucGFnZXJfX2l0ZW0ge1xuICAgICAgcGFkZGluZzogMDtcbiAgICB9XG4gIH1cbn1cblxuLy8gRml4IGZvciBhbmNob3IgbGlua3MsIGR1ZSB0byBmaXhlZCBoZWFkZXIuXG5cblxuOnRhcmdldDpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgZGlzcGxheTogYmxvY2s7XG4gIGhlaWdodDogODBweDtcbiAgbWFyZ2luLXRvcDogLTgwcHg7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuICAgIGhlaWdodDogMTQwcHg7XG4gICAgbWFyZ2luLXRvcDogLTE0MHB4O1xuXG4gIH1cbn1cblxuLnBhZ2UtY29udGVudCAuYmxvY2stc3lzdGVtLW1haW4tYmxvY2sgLmNvbnRleHR1YWwge1xuICB0b3A6NDVweDtcbn1cblxuXG4vKiBzZWFyY2ggZm9ybSBvcCBkZSBkYXRhbGluZS5ldS9ubC9zZWFyY2gvZGF0YWxpbmUgcGFnaW5hICovXG4uc2VhcmNoLXBhZ2UtZm9ybSArIGgye2Rpc3BsYXk6bm9uZTt9XG4uc2VhcmNoLXBhZ2UtZm9ybXtcblxuICAgIG1hcmdpbi1ib3R0b206MTBweDtcbiAgICBwYWRkaW5nLWJvdHRvbToyMHB4O1xuICAgIGJvcmRlci1ib3R0b206MXB4IHNvbGlkICNlMWUxZTE7XG5cbiAgICBpbnB1dC5mb3JtLXNlYXJjaHtib3JkZXItcmFkaXVzOjVweDsgcGFkZGluZzoxMHB4OyBib3JkZXI6MXB4IHNvbGlkICNlMWUxZTE7fVxuXG59XG4uc2VhcmNoLXJlc3VsdHN7XG4gICAgXG4gICAgcGFkZGluZzowcHg7XG4gICAgbWFyZ2luOjBweDtcblxuICAgIGxpe21hcmdpbjowcHg7IGJvcmRlci10b3A6MXB4IHNvbGlkICNlMWUxZTE7IHBhZGRpbmc6MTVweCAwcHg7fVxuICAgIGxpOmZpcnN0LWNoaWxke2JvcmRlci10b3A6MHB4O31cbiAgICBcbn1cblxuLnNlYXJjaC1wYWdlLWl0ZW17XG5cbiAgICAuc2VhcmNoLXBhZ2UtaXRlbS1lZGl0e2Zsb2F0OnJpZ2h0O31cbiAgICAuc2VhcmNoLXBhZ2UtaXRlbS1lZGl0IGF7Y29sb3I6IzAwOWZlMDsgdGV4dC1kZWNvcmF0aW9uOiBub25lO31cbiAgICBcbiAgICAuc2VhcmNoLXBhZ2UtaXRlbS1pbWd7ZGlzcGxheTpub25lO31cblxuICAgIC5zZWFyY2gtcGFnZS1pdGVtLXJvd3tcblxuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG5cbiAgICAgICAgICAgIGRpc3BsYXk6ZmxleDsgXG5cbiAgICAgICAgICAgIC5zZWFyY2gtcGFnZS1pdGVtLWltZ3twYWRkaW5nLXJpZ2h0OjMwcHg7IGRpc3BsYXk6YmxvY2s7fVxuICAgICAgICAgICAgLnNlYXJjaC1wYWdlLWl0ZW0taW1nIGltZ3t3aWR0aDoxNzBweDt9XG4gICAgICAgIFxuICAgICAgICB9XG4gICAgICAgIFxuICAgIH1cblxufVxuLyogc2VhcmNoIGZvcm0gb3AgZGUgZGF0YWxpbmUuZXUvbmwvc2VhcmNoL2RhdGFsaW5lIHBhZ2luYSAqLyIsIi5wYWdlLW5vZGUtdHlwZS1kbC1jdXN0b21lci1wcm9maWxlIHtcblxuICAuZGwtY3VzdG9tZXItcHJvZmlsZS1jZW50ZXItcm93e21hcmdpbi10b3A6MjBweDt9XG5cbiAgLmRsLWN1c3RvbWVyLXByb2ZpbGUtY2VudGVyLXJvdyAuZ3JvdXAtbGVmdCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyIG9mIDEyKTtcbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOCBvZiAxMik7XG4gICAgfVxuXG4gIH1cblxuICAuZGwtY3VzdG9tZXItcHJvZmlsZS1jZW50ZXItcm93IC5ncm91cC1yaWdodCB7XG4gICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDEyIG9mIDEyKTtcbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG4gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCBvZiAxMik7XG4gICAgfVxuICB9XG5cblxufVxuIiwiLmFjYWRlbXktZGV0YWlsIHtcblxuICAgIC5hY2FkZW15LWRldGFpbC10aXRsZSBoMTpiZWZvcmV7Y29udGVudDonQWNhZGVteTonOyBmb250LXdlaWdodDpib2xkO30gIFxuXG4gICAgLmFjYWRlbXktZGV0YWlsLXRlcnVne2JvcmRlcjoxcHggc29saWQgIzM3Mzk0MjsgcGFkZGluZzoxMHB4IDE1cHg7IGNvbG9yOiMzNzM5NDI7IGJvcmRlci1yYWRpdXM6IDdweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBkaXNwbGF5Om5vbmU7IG1hcmdpbi10b3A6NXB4O30gXG4gICAgLmFjYWRlbXktZGV0YWlsLXRlcnVnLmFjdGl2ZXtkaXNwbGF5OmlubGluZS1ibG9jazt9XG5cbiAgICAuYWNhZGVteS1kZXRhaWwtZ3JvdXB7ZGlzcGxheTpmbGV4OyBmbGV4LWRpcmVjdGlvbjpyb3c7fVxuICAgIC5hY2FkZW15LWRldGFpbC1ncm91cCAuZ3JvdXAtbGVmdHtmbGV4OjEgMCA2MyU7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHBhZGRpbmctcmlnaHQ6IDY1cHg7fVxuICAgIC5hY2FkZW15LWRldGFpbC1ncm91cCAuZ3JvdXAtcmlnaHR7ZmxleC1iYXNpczozNyU7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7fVxuXG4gICAgLmFjYWRlbXktZGV0YWlsLWFmYmVlbGRpbmd7cG9zaXRpb246IHJlbGF0aXZlOyBtYXJnaW4tdG9wOi05MHB4O31cbiAgICAuYWNhZGVteS1kZXRhaWwtYWZiZWVsZGluZyAuYWNhZGVteS1kZXRhaWwtY2F0ZWdvcmlle3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IGZvbnQtd2VpZ2h0OjUwMDsgZm9udC1zaXplOjExcHg7IHBvc2l0aW9uOmFic29sdXRlOyB0b3A6MjBweDsgbGVmdDotMTBweDsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBiYWNrZ3JvdW5kOnllbGxvdzsgcGFkZGluZzoxcHggNXB4OyBjb2xvcjpibGFjayAhaW1wb3J0YW50O31cbiAgICAuYWNhZGVteS1kZXRhaWwtYWZiZWVsZGluZyBpbWd7Ym94LXNoYWRvdzogMHB4IDBweCAzcHggMHB4IHJnYmEoMCwgMCwgMCwgMC41NCk7IGJvcmRlci1yYWRpdXM6MTBweDsgbWFyZ2luLWJvdHRvbTogMjBweDt9XG5cbiAgICAuYWNhZGVteS1kZXRhaWwtaW5sZWlkaW5ne2ZvbnQtd2VpZ2h0OjQwMDsgYm9yZGVyLWJvdHRvbToxcHggc29saWQgI0QzRDNEMzsgcGFkZGluZy1ib3R0b206MzBweDsgbWFyZ2luLWJvdHRvbTozMHB4OyBwYWRkaW5nLXRvcDoxMHB4O31cblxuICAgIC5hY2FkZW15LWRldGFpbC1wcm9ncmFtbWF7Ym9yZGVyLWJvdHRvbToxcHggc29saWQgI0QzRDNEMzsgcGFkZGluZy1ib3R0b206MzBweDsgbWFyZ2luLWJvdHRvbTozMHB4O31cblxuICAgIC5hY2FkZW15LWRldGFpbC1kYXR1bXN7fVxuICAgIC5hY2FkZW15LWRldGFpbC1kYXR1bXMgLmFjYWRlbXktZGV0YWlsLWRhdHVtcy1sYWJlbHtmb250LXdlaWdodDpib2xkO31cblxuICAgIC5hY2FkZW15LXNlbGVjdGlvbnttYXJnaW4tYm90dG9tOjMwcHg7IHdpZHRoOjEwMCU7fVxuICAgIC5hY2FkZW15LXNlbGVjdGlvbiAuYWNhZGVteS1zZWxlY3Rpb24tcm93e2N1cnNvcjogcG9pbnRlcjt9IFxuICAgIC5hY2FkZW15LXNlbGVjdGlvbiAuYWNhZGVteS1zZWxlY3Rpb24tcm93LnJvd1NlbGVjdGVke2JhY2tncm91bmQ6I0VCRjlGRjt9XG4gICAgLmFjYWRlbXktc2VsZWN0aW9uIC5hY2FkZW15LXNlbGVjdGlvbi1yb3cucm93U2VsZWN0ZWQgLml0ZW0tbGlzdCBsaS5zZWxlY3RlZHtmb250LXdlaWdodDpib2xkO31cbiAgICAuYWNhZGVteS1zZWxlY3Rpb24gLnZpZXdzLWZpZWxkLXRpdGxlIHNwYW4gKyBzcGFuOmJlZm9yZXtjb250ZW50OlwiLSBcIjt9XG4gICAgLmFjYWRlbXktc2VsZWN0aW9uIHRke3BhZGRpbmc6MTBweCAxNXB4OyBib3JkZXI6MXB4IHNvbGlkICNjMWMxYzE7fVxuICAgIC5hY2FkZW15LXNlbGVjdGlvbiB0ZDpsYXN0LWNoaWxke2JvcmRlci1sZWZ0Om5vbmU7fVxuICAgIC5hY2FkZW15LXNlbGVjdGlvbiB0ZDpudGgtY2hpbGQoMil7Ym9yZGVyLXJpZ2h0Om5vbmU7fSBcblxuICAgIC5hY2FkZW15LXNlbGVjdGlvbiB0aGVhZCB0aHtwYWRkaW5nOjVweCAxMHB4OyBiYWNrZ3JvdW5kOiMzNDM5NDI7IGNvbG9yOndoaXRlOyBmb250LXdlaWdodDogNDAwOyB0ZXh0LWFsaWduOiBsZWZ0OyBib3JkZXI6MXB4IHNvbGlkICMzNDM5NDI7fVxuXG4gICAgLmFjYWRlbXktc2VsZWN0aW9uIC5pdGVtLWxpc3R7cG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjE0MHB4OyBoZWlnaHQ6MjdweDsgbWFyZ2luOjBweDsgb3ZlcmZsb3c6IGhpZGRlbjsgei1pbmRleDogMTsgfVxuICAgIC5hY2FkZW15LXNlbGVjdGlvbiAuaXRlbS1saXN0OmFmdGVye2NvbnRlbnQ6J+KMqic7IGN1cnNvcjpwb2ludGVyOyB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IHBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOjFweDsgcmlnaHQ6MTdweDsgd2lkdGg6MHB4O31cbiAgICAuYWNhZGVteS1zZWxlY3Rpb24gLml0ZW0tbGlzdC5zZWxlY3RlZHt6LWluZGV4OjEwMDsgb3ZlcmZsb3c6IHZpc2libGU7fVxuICAgIC5hY2FkZW15LXNlbGVjdGlvbiAuaXRlbS1saXN0LnNlbGVjdGVkIHVse2JveC1zaGFkb3c6IDBweCAwcHggN3B4IDBweCByZ2JhKDAsMCwwLDAuNDIpOyBoZWlnaHQ6YXV0bzt9XG4gICAgLmFjYWRlbXktc2VsZWN0aW9uIC5pdGVtLWxpc3QgdWx7bGlzdC1zdHlsZTogbm9uZTsgbWFyZ2luOjBweDsgYmFja2dyb3VuZDp3aGl0ZTsgcGFkZGluZy10b3A6MjVweDsgaGVpZ2h0OjI1cHg7IGJvcmRlcjoxcHggc29saWQgI2M1YzVjNTsgYm9yZGVyLXJhZGl1czo1cHg7fVxuICAgIC5hY2FkZW15LXNlbGVjdGlvbiAuaXRlbS1saXN0IGxpe21hcmdpbjowcHg7IHdpZHRoOjEzOHB4OyBoZWlnaHQ6MjVweDsgZm9udC1zaXplOjEzcHg7IGxpbmUtaGVpZ2h0OiAyNnB4OyBwYWRkaW5nLWxlZnQ6MTBweDsgYm9yZGVyLXJhZGl1czo1cHg7fSBcbiAgICAuYWNhZGVteS1zZWxlY3Rpb24gLml0ZW0tbGlzdCBsaS5zZWxlY3RlZHtwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjFweDsgbGVmdDoxcHg7fVxuICAgIC5hY2FkZW15LXNlbGVjdGlvbiAuaXRlbS1saXN0IGxpOmhvdmVye2JhY2tncm91bmQ6I2YyZjJmMjt9XG5cbiAgICAuYWNhZGVteS1sb2NhdGlvbnN7fSBcbiAgICAuYWNhZGVteS1sb2NhdGlvbnMtaXRlbXtoZWlnaHQ6NDNweDsgcG9zaXRpb246IHJlbGF0aXZlOyBwYWRkaW5nOjEzcHggMTVweDsgb3ZlcmZsb3c6aGlkZGVuOyBib3JkZXI6MXB4IHNvbGlkICNDQ0NDQ0M7IGJvcmRlci1ib3R0b206IDBweDt9XG4gICAgLmFjYWRlbXktbG9jYXRpb25zLWl0ZW06YWZ0ZXJ7Y29udGVudDon4oyqJzsgY3Vyc29yOnBvaW50ZXI7IHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6N3B4OyByaWdodDoyMHB4OyB3aWR0aDowcHg7fVxuICAgIC5hY2FkZW15LWxvY2F0aW9ucy1pdGVtOmZpcnN0LWNoaWxke2JvcmRlci10b3AtbGVmdC1yYWRpdXM6IDEwcHg7IGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxMHB4O31cbiAgICAuYWNhZGVteS1sb2NhdGlvbnMtaXRlbTpsYXN0LWNoaWxke2JvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDEwcHg7IGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAxMHB4OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgI0NDQ0NDQzt9XG4gICAgLmFjYWRlbXktbG9jYXRpb25zLWl0ZW0ub3BlbntoZWlnaHQ6YXV0bzt9XG4gICAgLmFjYWRlbXktbG9jYXRpb25zLWl0ZW0ub3BlbiBoNHtmb250LXdlaWdodDpib2xkO31cbiAgICAuYWNhZGVteS1sb2NhdGlvbnMtaXRlbSBoNHtmb250LXdlaWdodDpub3JtYWw7IGN1cnNvcjogcG9pbnRlcjsgZm9udC1zaXplOjE0cHg7IGhlaWdodDozMHB4OyBib3JkZXItYm90dG9tOjFweCBkYXNoZWQgI0NDQ0NDQzt9XG5cbiAgICAuYWNhZGVteS1sb2NhdGlvbi1zZWxlY3R7bWFyZ2luLWJvdHRvbTozMHB4O31cblxuXG5cblxufVxuIiwiLmZpbmRlciB7XG5cbiAgICAuZmluZGVyLWhlYWRlcnt9XG5cbiAgICAuZmluZGVyLW1haW57XG5cbiAgICAgICAgLnZpZXctdmNvbi1maW5kZXJ7XG4gICAgICAgICAgICBkaXNwbGF5OmZsZXg7IFxuICAgICAgICAgICAgLnZpZXctaGVhZGVye2ZsZXg6IDEgMCAyNSU7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHBhZGRpbmctcmlnaHQ6MzBweDsgbWFyZ2luLXRvcDotNjJweDt9XG4gICAgICAgICAgICAudmlldy1jb250ZW50e2ZsZXg6IDEgMCA3NSU7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7fVxuICAgICAgICB9XG5cbiAgICAgICAgLmZpbmRlci1pbnRyb3sgXG4gICAgICAgICAgICBib3JkZXItYm90dG9tOjFweCBzb2xpZCAjRDNEM0QzOyBwYWRkaW5nOjMwcHggMHB4IDQwcHggMHB4OyBtYXJnaW4tYm90dG9tOjQwcHg7XG4gICAgICAgICAgICBwe21hcmdpbjowcHg7IGZvbnQtc2l6ZToxOHB4O31cbiAgICAgICAgICAgIC5ja19idXR0b25ncm91cHttYXJnaW4tdG9wOjIwcHg7fVxuICAgICAgICB9XG5cbiAgICAgICAgLmZpbmRlci1ib3h7XG4gICAgICAgICAgICBib3JkZXI6MXB4IHNvbGlkICNDQ0NDQ0M7IGJvcmRlci1yYWRpdXM6IDE0cHg7IHBhZGRpbmc6MTVweDsgYmFja2dyb3VuZDp3aGl0ZTsgbWFyZ2luLWJvdHRvbTozMHB4O1xuICAgICAgICAgICAgdWx7bGlzdC1zdHlsZTogbm9uZTsgbWFyZ2luOjBweDsgcGFkZGluZzowcHg7fVxuICAgICAgICAgICAgbGl7bWFyZ2luOjBweDsgcG9zaXRpb246cmVsYXRpdmU7fVxuICAgICAgICAgICAgbGkgaW5wdXR7cG9zaXRpb246YWJzb2x1dGU7IHRvcDo1cHg7IHJpZ2h0OjEwcHg7fVxuICAgICAgICAgICAgbGkgaW5wdXQ6Y2hlY2tlZCArIGxhYmVse2JhY2tncm91bmQ6I0VCRjlGRjt9XG4gICAgICAgICAgICBsaSBsYWJlbHtkaXNwbGF5OmJsb2NrO31cbiAgICAgICAgfVxuXG4gICAgICAgIC5maW5kZXItYm94IGg0e2ZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxNHB4OyBwYWRkaW5nLWJvdHRvbToxMHB4OyAgYm9yZGVyLWJvdHRvbToxcHggZGFzaGVkICNDQ0NDQ0M7IG1hcmdpbi1ib3R0b206MTBweDt9XG5cbiAgICB9XG5cbiAgIFxuXG5cblxufVxuIiwiQGltcG9ydCAnYzJhLXZpc3VhbC1kZXNjcmlwdG9yJztcbkBpbXBvcnQgJ2MxNGEtcGFnZS10aXRsZSc7XG5AaW1wb3J0ICdjOWEtZ3JpZCc7XG5AaW1wb3J0ICdjNWEtY2lyY2xlLWNvdmVyLWdyaWQnO1xuQGltcG9ydCAnYzExYS12aWRlbyc7XG5AaW1wb3J0ICdjM2EtaGVyby1xdW90ZSc7XG5AaW1wb3J0ICdjMTVhLXRlc3RpbW9uaWFsLXZpZXcnO1xuQGltcG9ydCAnYzEzYS10YWdjbG91ZC12aWV3JztcbkBpbXBvcnQgJ2MxN2EtdmlkZW8tdGVzdGltb25pYWwnO1xuQGltcG9ydCAnYzFhLXNsaWRlcic7XG5AaW1wb3J0ICdjNGEtbmV3cyc7XG5AaW1wb3J0ICdjNmEtYWNhZGVteSc7XG5cbi8qZ2VuZXJhbCBjb21wb25lbnQgZGVjbGFyYXRpb25zKi9cbi5jb21wb25lbnR7XG5cbiAgLmNvbnRhaW5lcntwYWRkaW5nLXRvcDoyMHB4OyBwYWRkaW5nLWJvdHRvbToyMHB4O31cblxuICAvKmNvbG9yIG5hbWVzKi9cbiAgLmFsaWNlX2JsdWV7YmFja2dyb3VuZDokYWxpY2UtYmx1ZTt9XG4gIC5wYWNpZmljX2JsdWV7YmFja2dyb3VuZDokcGFjaWZpYy1ibHVlOyAqe2NvbG9yOndoaXRlICFpbXBvcnRhbnQ7fX1cbiAgLm1pcmFnZXtiYWNrZ3JvdW5kOiRtaXJhZ2U7ICp7Y29sb3I6d2hpdGV9fVxuICAud2hpdGV7YmFja2dyb3VuZDokd2hpdGU7fVxuICAud2hpdGVfc21va2V7YmFja2dyb3VuZDokd2hpdGUtc21va2U7fVxuICAuZ2FpbnNib3Jve2JhY2tncm91bmQ6JGdhaW5zYm9ybzt9XG4gIC5vcmFuZ2V7YmFja2dyb3VuZDokb3JhbmdlOyAqe2NvbG9yOndoaXRlICFpbXBvcnRhbnQ7fX1cblxuICAvKmJveCovXG4gIC5ib3h7cGFkZGluZzoyMHB4OyBib3JkZXItcmFkaXVzOjIwcHg7fVxuXG4gIC8qZm9ybSovXG4gIC5wYWNpZmljX2JsdWUgaW5wdXQsIC5taXJhZ2UgaW5wdXQsIC5vcmFuZ2UgaW5wdXQsIC5wYWNpZmljX2JsdWUgdGV4dGFyZWEsIC5taXJhZ2UgdGV4dGFyZWEsIC5vcmFuZ2UgdGV4dGFyZWF7XG4gICAgY29sb3I6YmxhY2sgIWltcG9ydGFudDtcbiAgICBib3JkZXItY29sb3I6d2hpdGU7XG4gIH1cblxuICAucGFjaWZpY19ibHVlIGJ1dHRvbiwgLm1pcmFnZSBidXR0b24sIC5vcmFuZ2UgYnV0dG9uLCAucGFjaWZpY19ibHVlIHRleHRhcmVhLCAubWlyYWdlIHRleHRhcmVhLCAub3JhbmdlIHRleHRhcmVhe1xuICAgIGJhY2tncm91bmQ6JG9yYW5nZTsgYm9yZGVyOjFweCBzb2xpZCAkb3JhbmdlO1xuICAgICY6aG92ZXJ7Y29sb3I6JG9yYW5nZSAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOndoaXRlOyBib3JkZXI6MXB4IHNvbGlkIHdoaXRlO31cbiAgfVxuXG5cbiAgLyptZWRpYSBxdWVyaWVzKi9cbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuXG4gICAgLypmbGV4Ym94Ki9cbiAgICAuZmxleGJveHtkaXNwbGF5OmZsZXg7IGZsZXgtZGlyZWN0aW9uOnJvdzt9XG4gICAgLmZsZXhib3ggPiBkaXZ7cGFkZGluZy1sZWZ0OjEwcHg7IHBhZGRpbmctcmlnaHQ6MTBweDt9XG4gICAgLmZsZXhib3ggPiBkaXY6Zmlyc3QtY2hpbGR7cGFkZGluZy1sZWZ0OjBweDt9XG4gICAgLmZsZXhib3ggPiBkaXY6bGFzdC1jaGlsZHtwYWRkaW5nLXJpZ2h0OjBweDt9XG5cbiAgICAvKnVpdGxpam5pbmcga29sb21tZW4qL1xuICAgIC5mbGV4Ym94LnZpc3VhbF9saW5rc3tmbGV4LWRpcmVjdGlvbjpyb3c7fVxuXG4gICAgLmZsZXhib3gudmlzdWFsX3JlY2h0c3tmbGV4LWRpcmVjdGlvbjpyb3ctcmV2ZXJzZTt9XG4gICAgLmZsZXhib3gudmlzdWFsX3JlY2h0cyA+IGRpdjpmaXJzdC1jaGlsZHtwYWRkaW5nLXJpZ2h0OjBweDsgcGFkZGluZy1sZWZ0OjEwcHg7fVxuICAgIC5mbGV4Ym94LnZpc3VhbF9yZWNodHMgPiBkaXY6bGFzdC1jaGlsZHtwYWRkaW5nLWxlZnQ6MHB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7fVxuXG4gICAgLmZsZXhib3gudmlzdWFsX3RvcHtmbGV4LWRpcmVjdGlvbjpjb2x1bW47fVxuICAgIC5mbGV4Ym94LnZpc3VhbF90b3AgPiBkaXZ7cGFkZGluZzowO31cbiAgICAuZmxleGJveC52aXN1YWxfdG9wID4gZGl2OmZpcnN0LWNoaWxke3BhZGRpbmctYm90dG9tOjBweDt9XG5cbiAgICAuZmxleGJveC52aXN1YWxfYm90dG9te2ZsZXgtZGlyZWN0aW9uOmNvbHVtbi1yZXZlcnNlO31cbiAgICAuZmxleGJveC52aXN1YWxfYm90dG9tID4gZGl2e3BhZGRpbmc6MDt9XG4gICAgLmZsZXhib3gudmlzdWFsX2JvdHRvbSA+IGRpdjpsYXN0LWNoaWxke3BhZGRpbmctYm90dG9tOjEwcHg7fVxuXG4gIH1cblxuXG59XG5cbiIsIi5jMmF7XG5cbiAgLyp2aXN1YWwgbGlua3MqL1xuICAvKlxuICAuYm94IC5mbGV4Ym94LnZpc3VhbF9saW5rcyAudmlzdWFse21hcmdpbjotMjBweCAwIC0yMHB4IC0yMHB4O31cbiAgLmJveCAuZmxleGJveC52aXN1YWxfbGlua3MgLnZpc3VhbCBpbWd7ZGlzcGxheTpibG9jazt9XG4gICovXG5cbiAgLyp0byBhbGxvdyAuY2stdmVydGljYWwtY2VudGVyKi9cbiAgLmZpZWxkLS1uYW1lLWZpZWxkLXRla3N0e2hlaWdodDoxMDAlO31cblxuICAvKnVpdGxpam5pbmcga29sb21tZW4qL1xuICAuZmxleGJveC52aXN1YWxfdG9wIGltZ3tkaXNwbGF5OmJsb2NrO31cblxuICAvKmJyZWVkc3RlIGtvbG9tKi9cbiAgLmZsZXhib3guZGVzY3JpcHRvciAuZGVzY3JpcHRvcntmbGV4OjEgMCA2NiV9XG4gIC5mbGV4Ym94LmRlc2NyaXB0b3IgLnZpc3VhbHtmbGV4LWJhc2lzOjM0JTt9XG5cbiAgLmZsZXhib3gudmlzdWFsIC52aXN1YWx7ZmxleDoxIDAgNjYlfVxuXG4gIC5mbGV4Ym94LmV2ZW5yZWRpZyAudmlzdWFse2ZsZXg6MTt9IFxuICAuZmxleGJveC5ldmVucmVkaWcgLmRlc2NyaXB0b3J7ZmxleDoxO31cblxuICAuZmxleGJveC5kZXNjcmlwdG9yLnZpc3VhbF9iYWNrZ3JvdW5kIC5kZXNjcmlwdG9ye3dpZHRoOjEwMCU7IGZsZXg6bm9uZTt9XG4gIC5mbGV4Ym94LmV2ZW5yZWRpZy52aXN1YWxfYmFja2dyb3VuZCAuZGVzY3JpcHRvcnt3aWR0aDoxMDAlOyBmbGV4Om5vbmU7fVxuICAuZmxleGJveC52aXN1YWwudmlzdWFsX2JhY2tncm91bmQgLmRlc2NyaXB0b3J7ZmxleC1iYXNpczoxMDAlO31cblxuICAvKmZsZXhib3ggaXRlbXMqL1xuICAuZmxleGJveCAudmlzdWFse31cblxuICAvKmN1dG91dCovXG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTMsIHRydWUpIHtcbiAgICAudmlzdWFsX3JlY2h0cyAuY3V0b3V0IGltZywgLnZpc3VhbF9saW5rcyAuY3V0b3V0IGltZywgLnZpc3VhbF90b3AgLmN1dG91dCBpbWd7bWFyZ2luLXRvcDotMTAwcHg7IHBvc2l0aW9uOnJlbGF0aXZlO31cbiAgICAudmlzdWFsX2JvdHRvbSAuY3V0b3V0IGltZ3ttYXJnaW4tYm90dG9tOi0xMDBweDsgcG9zaXRpb246cmVsYXRpdmU7fVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuICAuZmxleGJveC5kZXNjcmlwdG9yLnZpc3VhbF9iYWNrZ3JvdW5kIC5kZXNjcmlwdG9ye3dpZHRoOjY2JTsgZmxleDpub25lO31cbiAgLmZsZXhib3guZXZlbnJlZGlnLnZpc3VhbF9iYWNrZ3JvdW5kIC5kZXNjcmlwdG9ye3dpZHRoOjUwJTsgZmxleDpub25lO31cbiAgLmZsZXhib3gudmlzdWFsLnZpc3VhbF9iYWNrZ3JvdW5kIC5kZXNjcmlwdG9ye2ZsZXgtYmFzaXM6MzQlO31cbiAgfVxuXG59XG4iLCIuYzE0YXtcblxuICAvKnRla3N0Ki9cbiAgLnBhY2lmaWNfYmx1ZSBoMSwgLnBhY2lmaWNfYmx1ZSBwLCAubWlyYWdlIGgxLCAubWlyYWdlIHAsIC5vcmFuZ2UgaDEsIC5vcmFuZ2UgcHtjb2xvcjp3aGl0ZTt9XG4gIGltZ3tkaXNwbGF5Om5vbmU7fVxuICBoMXtmb250LXNpemU6JGgwLWZvbnQtc2l6ZTsgbWFyZ2luOjBweDt9XG4gIGgye31cbiAgLypcbiAgcHtmb250LXNpemU6JGgxLWZvbnQtc2l6ZTsgbWFyZ2luOjBweDsgZm9udC1mYW1pbHk6JHRpdGxlLWZvbnQtZmFtaWx5OyBsaW5lLWhlaWdodDoxOyB9XG4gICovXG4gIHAgKyBwe21hcmdpbi10b3A6MjBweDt9XG5cbiAgLypjb250YWluZXIqL1xuICAmLmNvbXBvbmVudCAuY29udGFpbmVye3BhZGRpbmctdG9wOjUwcHg7IHBhZGRpbmctYm90dG9tOjUwcHg7fVxuXG4gIC8qYnV0dG9uZ3JvdXAqL1xuICBwLmNrX2J1dHRvbmdyb3Vwe1xuICAgIGF7Zm9udC1zaXplOjE4cHg7fVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMywgdHJ1ZSkge1xuICAgIGltZ3tkaXNwbGF5OmlubGluZTsgZmxvYXQ6cmlnaHQ7IHdpZHRoOjMwJTt9IFxuICB9XG5cblxuICAgIFxuXG59XG4iLCIuYzlhe1xuXG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcblxuICAgIC5maWVsZC0tbmFtZS1maWVsZC1jOWEtZ3JpZC1pdGVte2Rpc3BsYXk6ZmxleDsgZmxleC13cmFwOndyYXA7IG1hcmdpbi1sZWZ0Oi0xMHB4OyBtYXJnaW4tcmlnaHQ6LTEwcHg7fVxuICAgIC5maWVsZC0tbmFtZS1maWVsZC1jOWEtZ3JpZC1pdGVtID4gLmZpZWxkX19pdGVte3BhZGRpbmctbGVmdDoxMHB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IGZsZXg6IDEgMCAyNSU7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7fVxuICAgIC5maWVsZC0tbmFtZS1maWVsZC1jOWEtZ3JpZC1pdGVtID4gLmZpZWxkX19pdGVtOmZpcnN0LWNoaWxke31cbiAgICAuZmllbGQtLW5hbWUtZmllbGQtYzlhLWdyaWQtaXRlbSA+IC5maWVsZF9faXRlbTpsYXN0LWNoaWxke31cblxuICB9XG5cbiAgLnRpdGVse1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gIH1cblxuICAubGlua3tcbiAgICBtYXJnaW4tdG9wOjI1cHg7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgZm9udC1zaXplOjE4cHg7XG5cbiAgICBhe1xuICAgICAgY29sb3I6JGJsdWU7XG4gICAgICB0ZXh0LWRlY29yYXRpb246bm9uZTtcbiAgICB9XG4gIH1cblxufVxuIiwiLmM1YXtcblxuICAuZmllbGQtLW5hbWUtZmllbGQtYzVhLWdyaWQtaXRlbSA+IC5maWVsZF9faXRlbXttYXJnaW4tYm90dG9tOjIwcHg7fVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTEsIHRydWUpIHtcblxuICAgIC5maWVsZC0tbmFtZS1maWVsZC1jNWEtZ3JpZC1pdGVte2Rpc3BsYXk6ZmxleDsgZmxleC13cmFwOndyYXA7IG1hcmdpbi1sZWZ0Oi0xMHB4OyBtYXJnaW4tcmlnaHQ6LTEwcHg7fVxuICAgIC5maWVsZC0tbmFtZS1maWVsZC1jNWEtZ3JpZC1pdGVtID4gLmZpZWxkX19pdGVte3BhZGRpbmctbGVmdDoxMHB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IGZsZXg6IDEgMCA1MCU7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7fVxuXG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG5cbiAgICAuZmllbGQtLW5hbWUtZmllbGQtYzVhLWdyaWQtaXRlbSA+IC5maWVsZF9faXRlbXtmbGV4OiAwIDAgMjUlO31cblxuICB9XG5cbiAgLnRpdGVse1xuICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgIG1hcmdpbi1ib3R0b206IDI1cHg7XG4gIH1cblxuICAubGlua3tcbiAgICBtYXJnaW4tdG9wOjI1cHg7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgZm9udC1zaXplOjE4cHg7XG4gICAgYXtcbiAgICAgIGNvbG9yOiRibHVlO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOm5vbmU7XG4gICAgfVxuICB9XG5cbn1cblxuLmM1YntcblxuICB3aWR0aDoxMDAlO1xuICBtYXgtd2lkdGg6Mjc1cHg7XG4gIG92ZXJmbG93OmhpZGRlbjtcbiAgYm9yZGVyLXJhZGl1czo1MDBweDtcbiAgcG9zaXRpb246cmVsYXRpdmU7XG4gIG1hcmdpbjphdXRvO1xuICBwb3NpdGlvbjpyZWxhdGl2ZTtcblxuICAuYWZiZWVsZGluZyBpbWd7XG4gICAgZGlzcGxheTpibG9jaztcbiAgICBtYXgtd2lkdGg6Mjc1cHg7XG4gICAgd2lkdGg6MTAwJTtcbiAgfVxuICAubGluazpob3ZlciArIC5hZmJlZWxkaW5nIGltZ3t9XG4gIC5saW5rOmhvdmVyIGF7XG4gICAgYmFja2dyb3VuZDpub25lO1xuICB9XG5cbiAgLnRla3N0e1xuICAgIHdpZHRoOjEwMCU7XG4gICAgaGVpZ2h0OjEwMHB4O1xuICAgIHBvc2l0aW9uOmFic29sdXRlO1xuICAgIGxlZnQ6MDtcbiAgICBib3R0b206MDtcbiAgICBiYWNrZ3JvdW5kOnJnYmEoMjU1LDI1NSwyNTUsMC43KTtcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIHBhZGRpbmc6MjBweCAyMHB4IDBweCAyMHB4O1xuICAgIGZvbnQtc2l6ZToxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OjEuMztcbiAgICB6LWluZGV4OiAyO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgfVxuICAudGVrc3Q6aG92ZXJ7XG4gICAgY29sb3I6JGJhc2UtbGluay1jb2xvcjtcbiAgfVxuICAudGVrc3Q6aG92ZXIgfiAuYWZiZWVsZGluZyBpbWd7fVxuICAudGVrc3Q6aG92ZXIgKyAubGluayBhe1xuICAgIGJhY2tncm91bmQ6bm9uZTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcbiAgICAudGVrc3R7XG4gICAgICBmb250LXNpemU6MTVweDtcbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0zLCB0cnVlKSB7XG4gICAgLnRla3N0e1xuICAgICAgZm9udC1zaXplOjE2cHg7XG4gICAgfVxuICB9XG5cblxuICAubGlua3tcbiAgICBwb3NpdGlvbjphYnNvbHV0ZTtcbiAgICB0b3A6MDtcbiAgICByaWdodDowO1xuICAgIGJvdHRvbTowO1xuICAgIGxlZnQ6MDtcbiAgICBtYXJnaW46MDtcbiAgICB6LWluZGV4OjE7XG5cbiAgICBhe1xuICAgICAgcG9zaXRpb246YWJzb2x1dGU7XG4gICAgICB0b3A6MDtcbiAgICAgIHJpZ2h0OjA7XG4gICAgICBib3R0b206MDtcbiAgICAgIGxlZnQ6MDtcbiAgICAgIHRleHQtaW5kZW50Oi02MDAwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMCwgMTU4LCAyNDAsIDAuNSk7XG4gICAgICBib3JkZXItcmFkaXVzOjUwMHB4O1xuICAgIH1cbiAgfVxuXG59XG4iLCIuYzExYXtcblxuICAvKiovXG4gIC52aWRlb3tcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZy1ib3R0b206IDU2LjI1JTsgLyogMTY6OSAqL1xuICAgIHBhZGRpbmctdG9wOiAyNXB4O1xuICAgIGhlaWdodDogMDtcbiAgfVxuICAudmlkZW8gaWZyYW1le1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cblxufVxuIiwiLmMzYXtcblxuICB0ZXh0LWFsaWduOmNlbnRlcjtcblxuICAuY2l0YWF0e2ZvbnQtc2l6ZTo0MHB4O31cbiAgLmJyb24gYXt0ZXh0LWRlY29yYXRpb246IG5vbmU7IGZvbnQtd2VpZ2h0OmJvbGQ7IGZvbnQtc2l6ZToxNnB4O31cblxufVxuIiwiLmMxNWF7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMSwgdHJ1ZSkge1xuXG4gICAgLnZpZXdzLXJvd3N7ZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsgbWFyZ2luLWxlZnQ6LTEwcHg7IG1hcmdpbi1yaWdodDotMTBweDt9XG4gICAgLnZpZXdzLXJvd3MgPiAudmlld3Mtcm93e3BhZGRpbmctbGVmdDoxMHB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IGZsZXg6IDEgMCA1MCU7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7fVxuXG4gIH1cblxuICAudmlld3MtZmllbGQtZmllbGQtYzNhLWNpdGFhdHtmb250LXNpemU6MTZweDsgZm9udC13ZWlnaHQ6Ym9sZDt9XG5cblxufVxuIiwiLmMxM2F7XG5cbiAgICAudGl0ZWx7dGV4dC1hbGlnbjogY2VudGVyO31cblxuICAgIHVse3RleHQtYWxpZ246IGNlbnRlcjt9XG4gICAgbGl7ZGlzcGxheTppbmxpbmUtYmxvY2s7IG1hcmdpbjowcHg7fSBcbiAgICBsaSBkaXZ7ZGlzcGxheTppbmxpbmU7fVxuICAgIGxpIGF7dGV4dC1kZWNvcmF0aW9uOiBub25lO31cbiAgICBsaTphZnRlcntjb250ZW50OictJzsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHBhZGRpbmc6MHB4IDVweDt9XG4gICAgbGk6bGFzdC1jaGlsZDphZnRlcntkaXNwbGF5Om5vbmU7fVxuXG4gICAgXG5cblxufVxuIiwiLmMxN2F7XG5cbiAgICAuY2FwdGlvbnt9XG4gICAgLm5vLWNhcHRpb24gLmR0di1hcnRpY2xlLXJpZ2h0e2Rpc3BsYXk6bm9uZTt9XG4gICAgLm5vLWNhcHRpb24gLmR0di12aWV3LXJvd3ttYXJnaW4tYm90dG9tOjBweDt9IFxuXG4gICAgLmhhcy1oZXJvIC5kdHYtdmlldy1yb3dzIC5kdHYtdmlldy1yb3c6Zmlyc3QtY2hpbGR7XG4gICAgICAgIFxuICAgICAgICB3aWR0aDoxMDAlO1xuXG4gICAgICAgIC5kdHYtYXJ0aWNsZXtmbGV4LWRpcmVjdGlvbjogY29sdW1uO31cbiAgICAgICAgLmR0di1hcnRpY2xlLWxlZnR7d2lkdGg6MTAwJTt9XG4gICAgICAgIC5kdHYtYXJ0aWNsZS1yaWdodHtwYWRkaW5nLWxlZnQ6MHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94O31cblxuICAgICAgICAuZHR2LXRpdGxle2Rpc3BsYXk6bm9uZTt9XG4gICAgICAgIC5kdHYtYnV0dG9ue0BpbmNsdWRlIGJ1dHRvbjsgbWFyZ2luLXRvcDoyMHB4OyBiYWNrZ3JvdW5kOm5vbmU7IGJhY2tncm91bmQ6JG9yYW5nZTsgYm9yZGVyLWNvbG9yOiRvcmFuZ2U7IGZvbnQtd2VpZ2h0OmJvbGQ7fVxuICAgICAgICAuZHR2LWJ1dHRvbjpob3Zlcntjb2xvcjokb3JhbmdlICFpbXBvcnRhbnQ7IGJhY2tncm91bmQ6d2hpdGU7IGJvcmRlci1jb2xvcjokb3JhbmdlO31cblxuICAgIH1cblxuICAgIC5yaWplbjEuaGFzLWhlcm97XG4gICAgICAgIC5kdHYtdmlldy1yb3d7ZGlzcGxheTpub25lO31cbiAgICAgICAgLmR0di12aWV3LXJvdzpmaXJzdC1jaGlsZHtkaXNwbGF5OmJsb2NrO31cbiAgICB9XG4gICAgLnJpamVuMS5rb2xvbW1lbjI6bm90KC5oYXMtaGVybyl7XG4gICAgICAgIC5kdHYtdmlldy1yb3d7ZGlzcGxheTpub25lO31cbiAgICAgICAgLmR0di12aWV3LXJvdzpudGgtY2hpbGQoLW4rMil7ZGlzcGxheTpibG9jazt9XG4gICAgfVxuICAgIC5yaWplbjEua29sb21tZW4zOm5vdCguaGFzLWhlcm8pe1xuICAgICAgICAuZHR2LXZpZXctcm93e2Rpc3BsYXk6bm9uZTt9XG4gICAgICAgIC5kdHYtdmlldy1yb3c6bnRoLWNoaWxkKC1uKzMpe2Rpc3BsYXk6YmxvY2s7fVxuICAgIH1cbiAgICAucmlqZW4xLmtvbG9tbWVuNDpub3QoLmhhcy1oZXJvKXtcbiAgICAgICAgLmR0di12aWV3LXJvd3tkaXNwbGF5Om5vbmU7fVxuICAgICAgICAuZHR2LXZpZXctcm93Om50aC1jaGlsZCgtbis0KXtkaXNwbGF5OmJsb2NrO31cbiAgICB9XG4gICAgLnJpamVuMS5rb2xvbW1lbjU6bm90KC5oYXMtaGVybyl7XG4gICAgICAgIC5kdHYtdmlldy1yb3d7ZGlzcGxheTpub25lO31cbiAgICAgICAgLmR0di12aWV3LXJvdzpudGgtY2hpbGQoLW4rNSl7ZGlzcGxheTpibG9jazt9XG4gICAgfVxuXG4gICAgLnJpamVuMi5rb2xvbW1lbjIuaGFzLWhlcm97XG4gICAgICAgIC5kdHYtdmlldy1yb3d7ZGlzcGxheTpub25lO31cbiAgICAgICAgLmR0di12aWV3LXJvdzpudGgtY2hpbGQoLW4rMyl7ZGlzcGxheTpibG9jazt9XG4gICAgfVxuICAgIC5yaWplbjIua29sb21tZW4zLmhhcy1oZXJve1xuICAgICAgICAuZHR2LXZpZXctcm93e2Rpc3BsYXk6bm9uZTt9XG4gICAgICAgIC5kdHYtdmlldy1yb3c6bnRoLWNoaWxkKC1uKzQpe2Rpc3BsYXk6YmxvY2s7fVxuICAgIH1cbiAgICAucmlqZW4yLmtvbG9tbWVuNC5oYXMtaGVyb3tcbiAgICAgICAgLmR0di12aWV3LXJvd3tkaXNwbGF5Om5vbmU7fVxuICAgICAgICAuZHR2LXZpZXctcm93Om50aC1jaGlsZCgtbis1KXtkaXNwbGF5OmJsb2NrO31cbiAgICB9XG4gICAgLnJpamVuMi5rb2xvbW1lbjUuaGFzLWhlcm97XG4gICAgICAgIC5kdHYtdmlldy1yb3d7ZGlzcGxheTpub25lO31cbiAgICAgICAgLmR0di12aWV3LXJvdzpudGgtY2hpbGQoLW4rNil7ZGlzcGxheTpibG9jazt9XG4gICAgfVxuICAgIC5yaWplbjIua29sb21tZW4yOm5vdCguaGFzLWhlcm8pe1xuICAgICAgICAuZHR2LXZpZXctcm93e2Rpc3BsYXk6bm9uZTt9XG4gICAgICAgIC5kdHYtdmlldy1yb3c6bnRoLWNoaWxkKC1uKzQpe2Rpc3BsYXk6YmxvY2s7fVxuICAgIH1cbiAgICAucmlqZW4yLmtvbG9tbWVuMzpub3QoLmhhcy1oZXJvKXtcbiAgICAgICAgLmR0di12aWV3LXJvd3tkaXNwbGF5Om5vbmU7fVxuICAgICAgICAuZHR2LXZpZXctcm93Om50aC1jaGlsZCgtbis2KXtkaXNwbGF5OmJsb2NrO31cbiAgICB9XG4gICAgLnJpamVuMi5rb2xvbW1lbjQ6bm90KC5oYXMtaGVybyl7XG4gICAgICAgIC5kdHYtdmlldy1yb3d7ZGlzcGxheTpub25lO31cbiAgICAgICAgLmR0di12aWV3LXJvdzpudGgtY2hpbGQoLW4rOCl7ZGlzcGxheTpibG9jazt9XG4gICAgfVxuICAgIC5yaWplbjIua29sb21tZW41Om5vdCguaGFzLWhlcm8pe1xuICAgICAgICAuZHR2LXZpZXctcm93e2Rpc3BsYXk6bm9uZTt9XG4gICAgICAgIC5kdHYtdmlldy1yb3c6bnRoLWNoaWxkKC1uKzEwKXtkaXNwbGF5OmJsb2NrO31cbiAgICB9XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7XG5cbiAgICAgICAgLnRpdGVse3RleHQtYWxpZ246IGNlbnRlcjsgfVxuXG4gICAgICAgIC5rb2xvbW1lbjIgLmR0di12aWV3LXJvd3MgLmR0di12aWV3LXJvd3t3aWR0aDo1MCU7fVxuICAgICAgICAua29sb21tZW4zIC5kdHYtdmlldy1yb3dzIC5kdHYtdmlldy1yb3d7d2lkdGg6MzMlO31cbiAgICAgICAgLmtvbG9tbWVuNCAuZHR2LXZpZXctcm93cyAuZHR2LXZpZXctcm93e3dpZHRoOjI1JTt9XG4gICAgICAgIC5rb2xvbW1lbjUgLmR0di12aWV3LXJvd3MgLmR0di12aWV3LXJvd3t3aWR0aDoyMCU7fSBcblxuICAgICAgICAuaGFzLWhlcm8gLmR0di12aWV3LXJvd3MgLmR0di12aWV3LXJvdzpmaXJzdC1jaGlsZHtcblxuICAgICAgICAgICAgLmR0di1ib2R5IHtoZWlnaHQ6IDE4cHgqMS44Kjc7IC13ZWJraXQtbGluZS1jbGFtcDogNjsgZm9udC13ZWlnaHQ6MjAwOyBmb250LXNpemU6MThweDt9XG4gICAgICAgICAgICAuZHR2LWltYWdle2hlaWdodDozMDBweDt9XG4gICAgXG4gICAgICAgICAgICAuZHR2LWFydGljbGV7ZmxleC1kaXJlY3Rpb246IHJvdzt9XG4gICAgICAgICAgICAuZHR2LWFydGljbGUtbGVmdHt3aWR0aDozNCU7fVxuICAgICAgICAgICAgLmR0di1hcnRpY2xlLXJpZ2h0e3BhZGRpbmctbGVmdDoyMHB4OyBib3gtc2l6aW5nOiBib3JkZXItYm94O31cblxuICAgICAgICB9XG5cbiAgICB9XG5cblxufVxuIiwiLmMxYXtcblxuLmZsZXgtZGlyZWN0aW9uLW5hdiBsaSBhLmZsZXgtcHJldntsZWZ0Oi01cHg7fVxuLmZsZXgtZGlyZWN0aW9uLW5hdiBsaSBhLmZsZXgtbmV4dHtyaWdodDotNXB4O31cblxuQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMiwgdHJ1ZSkge1xuXG4gICAgLmZsZXgtZGlyZWN0aW9uLW5hdiBsaSBhLmZsZXgtcHJldntsZWZ0OjEwcHg7fVxuICAgIC5mbGV4LWRpcmVjdGlvbi1uYXYgbGkgYS5mbGV4LW5leHR7cmlnaHQ6MTBweDt9XG4gIFxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtNCwgdHJ1ZSkge1xuXG4gICAgLmZsZXgtZGlyZWN0aW9uLW5hdiBsaSBhLmZsZXgtcHJldntsZWZ0OjMwcHg7fVxuICAgIC5mbGV4LWRpcmVjdGlvbi1uYXYgbGkgYS5mbGV4LW5leHR7cmlnaHQ6MzBweDt9XG4gIFxuICB9XG5cbiAgLnNsaWRlcyBsaXtvdmVyZmxvdzpoaWRkZW47fVxuICAuZmxleHNsaWRlcl9wYXJhZ3JhcGhfYzFhe2Zsb2F0Om5vbmU7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7fVxuICAuZmxleC1kaXJlY3Rpb24tbmF2e3Bvc2l0aW9uOmFic29sdXRlOyB0b3A6NTAlOyBsZWZ0OjA7IHJpZ2h0OjA7fVxuICBcbiAgLmJveHtcblxuICAgICAgICAuZmxleHNsaWRlcl9wYXJhZ3JhcGhfYzFhe3BhZGRpbmctbGVmdDoxMHB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7fVxuICAgICAgICAuZmxleC1kaXJlY3Rpb24tbmF2IGxpIGEuZmxleC1wcmV2e2xlZnQ6LTEwcHg7fVxuICAgICAgICAuZmxleC1kaXJlY3Rpb24tbmF2IGxpIGEuZmxleC1uZXh0e3JpZ2h0Oi0xMHB4O31cblxuICAgIH1cblxuICAgIC8qbmV3Ki9cbiAgICAuY29udGFpbmVyIC5ib3h7cGFkZGluZzowcHg7IG92ZXJmbG93OmhpZGRlbjt9XG4gICAgLmNvbnRhaW5lciAuYm94IC5mbGV4c2xpZGVyX3BhcmFncmFwaF9jMWF7cGFkZGluZzowcHg7fVxuICAgIC5jb250YWluZXIgLmJveCAuYzFiIC5zbGlkZXItYmFja2dyb3VuZHtwYWRkaW5nOjIwcHggNTBweDt9XG4gICAgLmNvbnRhaW5lciAuYm94IC5mbGV4LWRpcmVjdGlvbi1uYXYgbGkgYS5mbGV4LXByZXZ7bGVmdDowcHg7fVxuICAgIC5jb250YWluZXIgLmJveCAuZmxleC1kaXJlY3Rpb24tbmF2IGxpIGEuZmxleC1uZXh0e3JpZ2h0OjBweDt9XG5cbiAgLnRpdGVseyBcbiAgICB0ZXh0LWFsaWduOmNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiAyNXB4O1xuICB9XG5cbiAgLnBhY2lmaWNfYmx1ZSAuZmxleC1kaXJlY3Rpb24tbmF2IGxpIGE6YmVmb3JlLCAubWlyYWdlIC5mbGV4LWRpcmVjdGlvbi1uYXYgbGkgYTpiZWZvcmUsIC5vcmFuZ2UgLmZsZXgtZGlyZWN0aW9uLW5hdiBsaSBhOmJlZm9yZXtjb2xvcjp3aGl0ZTt9XG5cblxufVxuXG4uYzFie1xuXG4gICAgLnNsaWRlci1iYWNrZ3JvdW5ke3BhZGRpbmctbGVmdDoyMHB4OyBwYWRkaW5nLXJpZ2h0OjIwcHg7fSBcbiAgICBcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHtcblxuICAgICAgICBoMXtmb250LXNpemU6IDQwcHg7fVxuICAgICAgICAuY2tfYnV0dG9uZ3JvdXAgYXtwYWRkaW5nOjE3cHggMjBweCAhaW1wb3J0YW50OyBmb250LXNpemU6MThweCAhaW1wb3J0YW50O31cblxuICAgICAgICAuc2xpZGVyLWJhY2tncm91bmR7cGFkZGluZy1sZWZ0OjUwcHg7IHBhZGRpbmctcmlnaHQ6NTBweDt9XG4gICAgICAgIC5zbGlkZXItY29udGVudHt3aWR0aDo1MCU7fVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTQsIHRydWUpIHtcbiAgICAgICAgLnNsaWRlci1iYWNrZ3JvdW5ke3BhZGRpbmctbGVmdDowcHg7IHBhZGRpbmctcmlnaHQ6MHB4O31cbiAgICB9XG5cbn1cbiIsIi5jb21wb25lbnQuYzRhe1xuXG4gICAgLypodHRwczovL2Nzcy10cmlja3MuY29tL3VzZWZ1bC1udGgtY2hpbGQtcmVjaXBpZXMvKi9cbiAgICAvKnZlcmJlcmcgZWVyc3RlIDMgbGlzdCBpdGVtcyBiaWogLm9mZnNldDMgeCovXG4gICAgLm9mZnNldDEgLml0ZW0tbGlzdCB1bCA+IGxpOm50aC1jaGlsZCgtbisxKXtkaXNwbGF5Om5vbmV9XG4gICAgLm9mZnNldDIgLml0ZW0tbGlzdCB1bCA+IGxpOm50aC1jaGlsZCgtbisyKXtkaXNwbGF5Om5vbmV9XG4gICAgLm9mZnNldDMgLml0ZW0tbGlzdCB1bCA+IGxpOm50aC1jaGlsZCgtbiszKXtkaXNwbGF5Om5vbmV9XG4gICAgLm9mZnNldDQgLml0ZW0tbGlzdCB1bCA+IGxpOm50aC1jaGlsZCgtbis0KXtkaXNwbGF5Om5vbmV9XG5cbiAgICAvKkluZGllbiAuaGVybywgdmVyYmVyZyBhbGxlIHZvbGdlbmRlIGl0ZW1zIHZhbmFmIGRlIDJlIGl0ZW0gYmlqIC5vZmZzZXQwKi9cbiAgICAub2Zmc2V0MC5oZXJvIC5pdGVtLWxpc3QgdWwgPiBsaTpudGgtY2hpbGQobisyKXtkaXNwbGF5Om5vbmU7fVxuICAgIC5vZmZzZXQxLmhlcm8gLml0ZW0tbGlzdCB1bCA+IGxpOm50aC1jaGlsZChuKzMpe2Rpc3BsYXk6bm9uZTt9XG4gICAgLm9mZnNldDIuaGVybyAuaXRlbS1saXN0IHVsID4gbGk6bnRoLWNoaWxkKG4rNCl7ZGlzcGxheTpub25lO31cbiAgICAub2Zmc2V0My5oZXJvIC5pdGVtLWxpc3QgdWwgPiBsaTpudGgtY2hpbGQobis1KXtkaXNwbGF5Om5vbmU7fVxuICAgIC5vZmZzZXQ0Lmhlcm8gLml0ZW0tbGlzdCB1bCA+IGxpOm50aC1jaGlsZChuKzYpe2Rpc3BsYXk6bm9uZTt9XG5cbiAgICAvKkluZGllbiAucHJpbWFyeSwgdmVyYmVyZyBhbGxlIHZvbGdlbmRlIGl0ZW1zIHZhbmFmIGRlIDRlIGl0ZW0gYmlqIC5vZmZzZXQwIChvbWRhdCBkZSBwcmltYXJ5IGxheW91dCBwZXIgMyB3b3JkdCB3ZWVyZ2VnZXZlbikqL1xuICAgIC5vZmZzZXQwLnByaW1hcnkgLml0ZW0tbGlzdCB1bCA+IGxpOm50aC1jaGlsZChuKzQpe2Rpc3BsYXk6bm9uZTt9XG4gICAgLm9mZnNldDEucHJpbWFyeSAuaXRlbS1saXN0IHVsID4gbGk6bnRoLWNoaWxkKG4rNSl7ZGlzcGxheTpub25lO31cbiAgICAub2Zmc2V0Mi5wcmltYXJ5IC5pdGVtLWxpc3QgdWwgPiBsaTpudGgtY2hpbGQobis2KXtkaXNwbGF5Om5vbmU7fVxuICAgIC5vZmZzZXQzLnByaW1hcnkgLml0ZW0tbGlzdCB1bCA+IGxpOm50aC1jaGlsZChuKzcpe2Rpc3BsYXk6bm9uZTt9XG4gICAgLm9mZnNldDQucHJpbWFyeSAuaXRlbS1saXN0IHVsID4gbGk6bnRoLWNoaWxkKG4rOCl7ZGlzcGxheTpub25lO31cblxuICAgIC8qSW5kaWVuIC5taW5vciwgdmVyYmVyZyBhbGxlIHZvbGdlbmRlIGl0ZW1zIHZhbmFmIGRlIDRlIGl0ZW0gYmlqIC5vZmZzZXQwIChvbWRhdCBkZSBtaW5vciBsYXlvdXQgcGVyIDMgd29yZHQgd2VlcmdlZ2V2ZW4pKi9cbiAgICAub2Zmc2V0MC5taW5vciAuaXRlbS1saXN0IHVsID4gbGk6bnRoLWNoaWxkKG4rNCl7ZGlzcGxheTpub25lO31cbiAgICAub2Zmc2V0MS5taW5vciAuaXRlbS1saXN0IHVsID4gbGk6bnRoLWNoaWxkKG4rNSl7ZGlzcGxheTpub25lO31cbiAgICAub2Zmc2V0Mi5taW5vciAuaXRlbS1saXN0IHVsID4gbGk6bnRoLWNoaWxkKG4rNil7ZGlzcGxheTpub25lO31cbiAgICAub2Zmc2V0My5taW5vciAuaXRlbS1saXN0IHVsID4gbGk6bnRoLWNoaWxkKG4rNyl7ZGlzcGxheTpub25lO31cbiAgICAub2Zmc2V0NC5taW5vciAuaXRlbS1saXN0IHVsID4gbGk6bnRoLWNoaWxkKG4rOCl7ZGlzcGxheTpub25lO31cblxuICAgIFxuICAgIC5pdGVtLWxpc3QgdWx7bGlzdC1zdHlsZTogbm9uZTsgcGFkZGluZzowcHg7IG1hcmdpbjowcHh9IFxuICAgIC5pdGVtLWxpc3QgdWwgbGl7bWFyZ2luOjBweDsgcG9zaXRpb246cmVsYXRpdmU7IG1hcmdpbi1ib3R0b206MjBweDsgfVxuICAgIC5pdGVtLWxpc3QgdWw6YWZ0ZXIge3Zpc2liaWxpdHk6IGhpZGRlbjtkaXNwbGF5OiBibG9jaztmb250LXNpemU6IDA7Y29udGVudDogXCIgXCI7Y2xlYXI6IGJvdGg7aGVpZ2h0OiAwO31cblxuICAgIC8qYWxsZSBsYXlvdXRzKi9cbiAgICAubmV3cy1iZWRyaWpmc2JlZWxke2JveC1zaGFkb3c6IDBweCAwcHggM3B4IDBweCByZ2JhKDAsIDAsIDAsIDAuNTQpOyBib3JkZXItcmFkaXVzOjEwcHg7IG92ZXJmbG93OmhpZGRlbjt9XG4gICAgLm5ld3MtYmVkcmlqZnNiZWVsZCBpbWd7ZGlzcGxheTpibG9jazt9XG4gICAgLm5ld3MtdHlwZXt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc2l6ZToxMXB4OyBwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOjIwcHg7IGxlZnQ6LTEwcHg7IGRpc3BsYXk6IGlubGluZS1ibG9jazsgYmFja2dyb3VuZDp5ZWxsb3c7IHBhZGRpbmc6MXB4IDVweDsgY29sb3I6YmxhY2sgIWltcG9ydGFudDt9XG4gICAgLm5ld3MtdGl0bGV7bWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXNpemU6MjhweDsgZm9udC13ZWlnaHQ6MjAwOyBsaW5lLWhlaWdodDoxLjM7fVxuICAgIC5uZXdzLXRpdGxlIGF7dGV4dC1kZWNvcmF0aW9uOiBub25lO31cbiAgICAubmV3cy1zdW1tYXJ5e2ZvbnQtc2l6ZToxNnB4O31cbiAgICAubmV3cy1idXR0b24gYXtjb2xvcjojMDA5ZmUwOyBmb250LXNpemU6MTZweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBtYXJnaW4tdG9wOjEwcHg7IGRpc3BsYXk6aW5saW5lLWJsb2NrO31cblxuICAgIC8qaGVybyovXG4gICAgLmhlcm97XG5cbiAgICAgICAgLm5ld3MtYmVkcmlqZnNiZWVsZHt3aWR0aDoxMDAlOyBvdmVyZmxvdzogaGlkZGVuOyAkYm9yZGVyLXJhZGl1czogMTVweDsgbWFyZ2luLXJpZ2h0OjIwcHg7IH1cbiAgICAgICAgLm5ld3MtdGl0bGUgYXtmb250LXNpemU6NDBweDsgZm9udC13ZWlnaHQ6MTAwO30gXG4gICAgICAgIC5uZXdzLXN1bW1hcnl7Zm9udC1zaXplOjE4cHg7fVxuICAgICAgICAubmV3cy10eXBle31cblxuICAgICAgICAubmV3cy1idXR0b257bWFyZ2luLXRvcDoyMHB4O31cbiAgICAgICAgLm5ld3MtYnV0dG9uIGF7IEBpbmNsdWRlIGJ1dHRvbjsgcGFkZGluZzoxN3B4IDIwcHg7Zm9udC1zaXplOjEuMjg1NzFyZW07fVxuICAgICAgICAubmV3cy1idXR0b24gYTpob3Zlcnt9XG5cbiAgICB9XG5cbiAgICAuaGVybyAub3JhbmdlLCAuaGVybyAucGFjaWZpY19ibHVle1xuICAgICAgICAubmV3cy1idXR0b24gYXtiYWNrZ3JvdW5kOm5vbmU7IGJvcmRlcjoxcHggc29saWQgd2hpdGU7IH1cbiAgICAgICAgLm5ld3MtYnV0dG9uIGE6aG92ZXJ7Y29sb3I6IzAwOWZlMCAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOndoaXRlOyBib3JkZXI6MXB4IHNvbGlkIHdoaXRlO31cbiAgICB9XG5cbiAgICAvKnByaW1hcnkqL1xuICAgIC5wcmltYXJ5e1xuXG4gICAgICAgIC5pdGVtLWxpc3QgdWwgbGk6Zmlyc3QtY2hpbGR7bWFyZ2luLWxlZnQ6MHB4O31cbiAgICAgICAgLm5ld3MtYmVkcmlqZnNiZWVsZHttYXJnaW4tYm90dG9tOjEwcHg7fVxuXG4gICAgfVxuICAgIFxuICAgIC5wcmltYXJ5Lm9mZnNldDEgLml0ZW0tbGlzdCB1bCBsaTpudGgtY2hpbGQoMil7bWFyZ2luLWxlZnQ6MHB4O31cbiAgICAucHJpbWFyeS5vZmZzZXQxIC5pdGVtLWxpc3QgdWwgbGk6bnRoLWNoaWxkKDQpe21hcmdpbi1yaWdodDowcHg7fVxuICAgIC5wcmltYXJ5Lm9mZnNldDIgLml0ZW0tbGlzdCB1bCBsaTpudGgtY2hpbGQoMyl7bWFyZ2luLWxlZnQ6MHB4O31cbiAgICAucHJpbWFyeS5vZmZzZXQyIC5pdGVtLWxpc3QgdWwgbGk6bnRoLWNoaWxkKDUpe21hcmdpbi1yaWdodDowcHg7fVxuICAgIC5wcmltYXJ5Lm9mZnNldDMgLml0ZW0tbGlzdCB1bCBsaTpudGgtY2hpbGQoNCl7bWFyZ2luLWxlZnQ6MHB4O31cbiAgICAucHJpbWFyeS5vZmZzZXQzIC5pdGVtLWxpc3QgdWwgbGk6bnRoLWNoaWxkKDYpe21hcmdpbi1yaWdodDowcHg7fVxuICAgIC5wcmltYXJ5Lm9mZnNldDQgLml0ZW0tbGlzdCB1bCBsaTpudGgtY2hpbGQoNSl7bWFyZ2luLWxlZnQ6MHB4O31cbiAgICAucHJpbWFyeS5vZmZzZXQ0IC5pdGVtLWxpc3QgdWwgbGk6bnRoLWNoaWxkKDcpe21hcmdpbi1yaWdodDowcHg7fVxuXG4gICAgLyptaW5vciovXG4gICAgLm1pbm9ye1xuXG4gICAgICAgIC5pdGVtLWxpc3QgdWwgbGl7bWFyZ2luLWJvdHRvbTo0MHB4OyBjbGVhcjpib3RoO31cbiAgICAgICAgLm5ld3MtYmVkcmlqZnNiZWVsZHttYXJnaW4tdG9wOjEwcHg7fVxuICAgICAgICBcbiAgICB9XG5cblxuICAgIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTIsIHRydWUpIHsgXG5cbiAgICAgICAgLml0ZW0tbGlzdCB1bCBsaXttYXJnaW46MHB4O31cblxuICAgICAgICAuaGVyb3tcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgLm5ld3MtdHlwZXt0b3A6LTMwcHg7fVxuICAgICAgICAgICAgLm5ld3MtYmVkcmlqZnNiZWVsZHt3aWR0aDo1MCU7IGZsb2F0OnJpZ2h0OyBvdmVyZmxvdzogaGlkZGVuOyAkYm9yZGVyLXJhZGl1czogMTVweDsgbWFyZ2luLWxlZnQ6MjBweDsgbWFyZ2luLXRvcDotNTBweDsgbWFyZ2luLXJpZ2h0OjBweDt9XG4gICAgICAgICAgICAubmV3cy10aXRsZXtwYWRkaW5nLXRvcDoyMHB4O31cbiAgICAgICAgICAgIC5uZXdzLXRpdGxlIGF7Zm9udC1zaXplOjQ4cHg7IH1cbiAgICAgICAgICAgIC5uZXdzLXR5cGV7bGVmdDo1MCU7IG1hcmdpbi1sZWZ0Oi0xMHB4O31cbiAgICBcbiAgICAgICAgfVxuXG4gICAgICAgIC5wcmltYXJ5e1xuXG4gICAgICAgICAgICAuaXRlbS1saXN0IHVse2Rpc3BsYXk6ZmxleDsgZmxleC1kaXJlY3Rpb246cm93O31cbiAgICAgICAgICAgIC5pdGVtLWxpc3QgdWwgbGl7bWFyZ2luLWxlZnQ6MTBweDsgbWFyZ2luLXJpZ2h0OjEwcHg7IHdpZHRoOjMzJTt9XG4gICAgXG4gICAgICAgIH1cblxuICAgICAgICAubWlub3J7XG4gICAgICAgICAgICAubmV3cy1iZWRyaWpmc2JlZWxke3dpZHRoOjIwJTsgbWFyZ2luLXJpZ2h0OjIwcHg7IG1hcmdpbi1ib3R0b206NDBweDsgZmxvYXQ6bGVmdDsgbWFyZ2luLXRvcDoxMHB4O31cbiAgICAgICAgICAgIFxuICAgICAgICB9XG4gICAgXG4gICAgXG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJGJyZWFrcG9pbnQtMywgdHJ1ZSkge1xuICAgICAgICAuaGVyb3tcblxuICAgICAgICAgICAgLm5ld3MtdGl0bGUgYXtmb250LXNpemU6NDhweDsgbGluZS1oZWlnaHQ6MTt9XG4gICAgXG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIFxuXG59XG4iLCIuYzZhe1xuXG5cblxuICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludC0yLCB0cnVlKSB7IFxuXG4gICAgLnZpZXdzLXJvd3N7ZGlzcGxheTpmbGV4OyBmbGV4LXdyYXA6d3JhcDsgbWFyZ2luLWxlZnQ6LTEwcHg7IG1hcmdpbi1yaWdodDotMTBweDsgbGlzdC1zdHlsZTogbm9uZTt9XG4gICAgLnZpZXdzLXJvd3MgPiAudmlld3Mtcm93e3BhZGRpbmctbGVmdDoxMHB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHdpZHRoOjUwJTsgbWFyZ2luOjBweDt9XG5cblxuICB9XG4gIEBpbmNsdWRlIG1lZGlhKCRicmVha3BvaW50LTQsIHRydWUpIHsgXG5cbiAgICAudmlld3Mtcm93c3tkaXNwbGF5OmZsZXg7IGZsZXgtd3JhcDp3cmFwOyBtYXJnaW4tbGVmdDotMTBweDsgbWFyZ2luLXJpZ2h0Oi0xMHB4OyBsaXN0LXN0eWxlOiBub25lO31cbiAgICAudmlld3Mtcm93cyA+IC52aWV3cy1yb3d7cGFkZGluZy1sZWZ0OjEwcHg7IHBhZGRpbmctcmlnaHQ6MTBweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgd2lkdGg6MjUlOyBtYXJnaW46MHB4O31cblxuXG4gIH1cblxuICAuYWNhZGVteS1iYW5uZXJ7Ym9yZGVyOjFweCBzb2xpZCAjQzdDN0M3OyBiYWNrZ3JvdW5kOndoaXRlOyBib3gtc2hhZG93OiAwcHggMHB4IDNweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpOyBtYXJnaW4tYm90dG9tOjIwcHg7IGJvcmRlci1yYWRpdXM6IDEwcHg7IHBhZGRpbmc6MjBweDsgcG9zaXRpb246cmVsYXRpdmU7fVxuICAgIFxuICAuYWNhZGVteS1iYW5uZXIgYXt0ZXh0LWRlY29yYXRpb246IG5vbmU7fVxuICAuYWNhZGVteS1iYW5uZXIgYTpob3Zlcntjb2xvcjppbmhlcml0O31cblxuICAuYWNhZGVteS1iYW5uZXIgLmFjYWRlbXktYmFubmVyLWhlYWRlcntoZWlnaHQ6OTBweDt9XG4gIC5hY2FkZW15LWJhbm5lciAuYWNhZGVteS1iYW5uZXItdGl0bGV7bWFyZ2luOjBweDsgZm9udC13ZWlnaHQ6NDAwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDt9XG4gIC5hY2FkZW15LWJhbm5lciAuYWNhZGVteS1iYW5uZXItdGl0bGUgYXtmb250LXNpemU6MjBweDsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBmb250LXdlaWdodDo0MDA7fVxuICAuYWNhZGVteS1iYW5uZXIgLmFjYWRlbXktYmFubmVyLXN1YnRpdGVse2ZvbnQtc2l6ZToxNnB4OyBmb250LXdlaWdodDogMjAwOyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDt9XG5cbiAgLmFjYWRlbXktYmFubmVyIC5hY2FkZW15LWJhbm5lci1maXJzdERhdHVte2ZvbnQtd2VpZ2h0OmJvbGQ7IG1hcmdpbi10b3A6MTVweDt9XG4gIC5hY2FkZW15LWJhbm5lciAuYWNhZGVteS1iYW5uZXItZmlyc3REYXR1bSBvcHRpb257ZGlzcGxheTppbmxpbmU7IGZvbnQtd2VpZ2h0OmJvbGQ7fVxuXG4gIC5hY2FkZW15LWJhbm5lciAuYWNhZGVteS1iYW5uZXItaW1hZ2V7cG9zaXRpb246cmVsYXRpdmU7fVxuICAuYWNhZGVteS1iYW5uZXIgLmFjYWRlbXktYmFubmVyLWNhdGVnb3JpZXtwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDotMTBweDsgcmlnaHQ6MHB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBmb250LXdlaWdodDo1MDA7IGZvbnQtc2l6ZToxMXB4OyBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJhY2tncm91bmQ6eWVsbG93OyBwYWRkaW5nOjFweCA1cHg7IGNvbG9yOmJsYWNrICFpbXBvcnRhbnQ7fVxuICAuYWNhZGVteS1iYW5uZXIgLmFjYWRlbXktYmFubmVyLWJlZHJpamZzYmVlbGR7bWFyZ2luOjBweCAtMjBweCAwcHggLTIwcHg7IGhlaWdodDoxNTBweDt9XG5cbiAgLmFjYWRlbXktYmFubmVyIC5hY2FkZW15LWJhbm5lci1ib2R5e3BhZGRpbmctdG9wOjE1cHg7IGhlaWdodDoxNDBweDsgb3ZlcmZsb3c6aGlkZGVuO30gXG4gIC5hY2FkZW15LWJhbm5lciAuYWNhZGVteS1iYW5uZXItaW5sZWlkaW5ne2hlaWdodDo1MHB4OyBtYXJnaW4tYm90dG9tOjEwcHg7IGxpbmUtaGVpZ2h0OiAxLjI7IG92ZXJmbG93OiBoaWRkZW47fVxuXG4gIC5hY2FkZW15LWJhbm5lciAuYWNhZGVteS1iYW5uZXItZGF0dW1zLWxpc3Qgc3BhbntkaXNwbGF5OmJsb2NrOyB9XG4gIC5hY2FkZW15LWJhbm5lciAuYWNhZGVteS1iYW5uZXItZGF0dW1zLWxpc3Qgc3BhbjpiZWZvcmV7Y29udGVudDpcIuKXjyBcIjsgfVxuXG4gIC5hY2FkZW15LWJhbm5lciAuYWNhZGVteS1iYW5uZXItYnV0dG9ue3Bvc2l0aW9uOiBhYnNvbHV0ZTsgYm90dG9tOjIwcHg7IHJpZ2h0OjIwcHg7IGJhY2tncm91bmQtY29sb3I6IzAwQUVFRjsgZGlzcGxheTppbmxpbmUtYmxvY2s7IGNvbG9yOndoaXRlOyBwYWRkaW5nOjEwcHggMTVweDsgYm9yZGVyLXJhZGl1czogNXB4O31cblxuICAuYWNhZGVteS1iYW5uZXIgLmFjYWRlbXktdXJsIGF7ZGlzcGxheTpibG9jazsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6MHB4OyByaWdodDowcHg7IGJvdHRvbTowcHg7IGxlZnQ6MHB4OyB6LWluZGV4OiAxMDAwOyB0ZXh0LWluZGVudDogLTQwMDBweDsgb3ZlcmZsb3c6IGhpZGRlbjt9XG5cblxuICAudGl0ZWx7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtc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 */
