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

/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}

body {
  line-height: 1;
}

ol, ul {
  list-style: none;
}

blockquote, q {
  quotes: none;
}

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

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

/*! normalize.css v6.0.0 | MIT License | github.com/necolas/normalize.css */
/* Document
   ========================================================================== */
/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in
 *    IE on Windows Phone and in iOS.
 */
html {
  line-height: 1.15;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}

/* Sections
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
article,
aside,
footer,
header,
nav,
section {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in IE.
 */
figcaption,
figure,
main {
  /* 1 */
  display: block;
}

/**
 * Add the correct margin in IE 8.
 */
figure {
  margin: 1em 40px;
}

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
pre {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/* Text-level semantics
   ========================================================================== */
/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */
a {
  background-color: transparent;
  /* 1 */
  -webkit-text-decoration-skip: objects;
  /* 2 */
}

/**
 * 1. Remove the bottom border in Chrome 57- and Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
  /* 2 */
}

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */
b,
strong {
  font-weight: inherit;
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */
}

/**
 * Add the correct font style in Android 4.3-.
 */
dfn {
  font-style: italic;
}

/**
 * Add the correct background and color in IE 9-.
 */
mark {
  background-color: #ff0;
  color: #000;
}

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
audio,
video {
  display: inline-block;
}

/**
 * Add the correct display in iOS 4-7.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}

/**
 * Remove the border on images inside links in IE 10-.
 */
img {
  border-style: none;
}

/**
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden;
}

/* Forms
   ========================================================================== */
/**
 * Remove the margin in Firefox and Safari.
 */
button,
input,
optgroup,
select,
textarea {
  margin: 0;
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none;
}

/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.


button,
html [type="button"], / 1
[type="reset"],
[type="submit"] {
    -webkit-appearance: button; / 2
}
*/
/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */
}

/**
 * 1. Add the correct display in IE 9-.
 * 2. Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */
}

/**
 * Remove the default vertical scrollbar in IE.
 */
textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */
[type="checkbox"],
[type="radio"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */
}

/**
 * Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
 */
[type="search"]::-webkit-search-cancel-button,
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */
}

/**
 * Remove default input styling from WebKit (rounded corners and inset shadows)
 */
input:not([type=checkbox]),
input:not([type=radio]),
textarea {
  appearance: none;
  -moz-appearance: none;
  -webkit-appearance: none;
  border-radius: 0;
  -moz-border-radius: 0;
  -webkit-border-radius: 0;
}

/* Interactive
   ========================================================================== */
/*
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 */
details,
menu {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */
summary {
  display: list-item;
}

/* Scripting
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 */
canvas {
  display: inline-block;
}

/**
 * Add the correct display in IE.
 */
template {
  display: none;
}

/* Hidden
   ========================================================================== */
/**
 * Add the correct display in IE 10-.
 */
[hidden] {
  display: none;
}

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

@font-face {
  font-family: 'Geometria';
  src: url("../fonts/geometria/Geometria-Bold.eot");
  src: local("Geometria Bold"), local("Geometria-Bold"), url("../fonts/geometria/Geometria-Bold.eot?#iefix") format("embedded-opentype"), url("../fonts/geometria/Geometria-Bold.woff") format("woff"), url("../fonts/geometria/Geometria-Bold.ttf") format("truetype");
  font-weight: bold;
  font-style: normal;
}

.container:before, .wrapper:before, .headerContent:before, .nav:before, .page:before, .footerContent:before, .header:before, .logo:before, .footer:before, .content:before, .product:before, .gallery:before, .container:after, .wrapper:after, .headerContent:after, .nav:after, .page:after, .footerContent:after, .header:after, .logo:after, .footer:after, .content:after, .product:after, .gallery:after {
  display: table;
  content: "";
  line-height: 0;
}

.container:after, .wrapper:after, .headerContent:after, .nav:after, .page:after, .footerContent:after, .header:after, .logo:after, .footer:after, .content:after, .product:after, .gallery:after {
  clear: both;
}

.pagination li, .menuTop li, .lang li, .menuBottom li {
  float: left;
  text-align: center;
}

.pagination li a:hover, .menuTop li a:hover, .lang li a:hover, .menuBottom li a:hover, .pagination li a:focus, .menuTop li a:focus, .lang li a:focus, .menuBottom li a:focus {
  text-decoration: none;
}

.hamburger, .close, .menuLang .active a:after {
  background: url("../img/icons.png") no-repeat;
  width: 20px;
  height: 20px;
  display: inline-block;
  border: none;
  padding: 0;
}

h1, h2, h3 {
  text-align: center;
  padding-bottom: 1.333rem;
  font-family: "Geometria", sans-serif;
  font-weight: bold;
}

h1 {
  font-size: 1.333rem;
  line-height: 1.9995rem;
  text-transform: uppercase;
}

@media (min-width: 768px) {
  h1 {
    font-size: 1.778rem;
    line-height: 1.9995rem;
  }
}

h2 {
  font-size: 1.333rem;
  line-height: 1.9995rem;
}

@media (min-width: 768px) {
  h2 {
    font-size: 1.778rem;
    line-height: 1.9995rem;
  }
}

h3 {
  font-size: 1.333rem;
  line-height: 1.9995rem;
  color: #005f98;
}

a, a:hover, a:focus, a:visited {
  color: #1fafce;
  text-decoration: none;
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
}

a:hover, a:focus {
  text-decoration: underline;
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
}

b, strong {
  font-weight: bold;
}

i, em {
  font-style: italic;
}

p, ul, ol, pre, table, blockquote {
  font-size: 1rem;
  line-height: 1.333rem;
  font-family: "Geometria", sans-serif;
  margin-top: 0;
  padding-bottom: 0.6665rem;
  text-align: left;
}

ul ul, ol ol, ul ol, ol ul {
  text-align: left;
  padding-bottom: 0;
  margin-top: 0;
  margin-bottom: 0;
}

hr, .hr {
  background-color: #393f41;
  border: 0;
  height: 1px;
}

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

sup {
  top: -0.5em;
}

sub {
  bottom: -0.25em;
}

::-webkit-input-placeholder {
  color: #eeeeee;
  opacity: 1;
}

:-moz-placeholder {
  color: #eeeeee;
  opacity: 1;
}

::-moz-placeholder {
  color: #eeeeee;
  opacity: 1;
}

:-ms-input-placeholder {
  color: #eeeeee;
  opacity: 1;
}

button {
  cursor: pointer;
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
}

button, input, textarea, select {
  outline: none;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}

button:active, input:active, textarea:active, select:active {
  outline: none;
}

button:focus, input:focus, textarea:focus, select:focus {
  outline: none;
}

button, input, textarea {
  display: inline-block;
  margin-bottom: 1.333rem;
  text-align: center;
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
}

input[type="text"], textarea {
  padding: 0.6665rem 1.69492%;
}

input[type="text"]:focus, textarea:focus {
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
}

input[type="submit"] {
  cursor: pointer;
  padding: 0.6665rem 3.38983%;
}

input[type="submit"]:hover, input[type="submit"] :focus {
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
}

.button {
  display: inline-block;
  padding: 0.6665rem 1.333rem;
  text-align: center;
  text-decoration: none;
  border: 1px solid #1fafce;
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
}

.button:hover, .button:focus {
  text-decoration: none;
  color: #005f98;
  background-color: rgba(31, 175, 206, 0.2);
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
}

.hamburger, .close {
  background-position: 0 -160px;
  margin-top: 5px;
  margin-left: 0.84746%;
  -webkit-transition: none;
  -o-transition: none;
  transition: none;
  opacity: .7;
}

@media (min-width: 360px) {
  .hamburger, .close {
    background-position: 0 -155px;
  }
}

.close {
  background-position: -40px -152px;
  -webkit-transition: none;
  -o-transition: none;
  transition: none;
}

* {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

*:before, *:after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}

html, body {
  height: 100%;
}

body {
  font-size: 1rem;
  line-height: 1.333rem;
  font-family: "Geometria", sans-serif;
  background: #ffffff;
  color: #000000;
}

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

.container {
  width: 100%;
  margin: 0 auto;
}

.wrapper, .headerContent, .nav, .page, .footerContent {
  width: 96.61017%;
  margin: 0 1.69492%;
}

@media (min-width: 1280px) {
  .wrapper, .headerContent, .nav, .page, .footerContent {
    max-width: 1280px;
    margin: 0 auto;
  }
}

.main {
  width: 100%;
}

/*!*baseline grid*!
.main {
position: relative;
  &:before {
    content: '';
    @include baseline-grid;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 100;
  }
}
.headerContent, .page, .footerContent {
background: susy-svg-grid() no-repeat scroll;
}*/
.showMob {
  min-height: 100vh;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  overflow-x: scroll;
  background-color: #3e4547;
}

.header {
  max-width: 100%;
  margin-left: auto;
  margin-right: auto;
  background-color: #2699d8;
  background-position: top center;
  background-repeat: no-repeat;
  background-size: cover;
  text-align: center;
  min-height: 19.995rem;
  position: relative;
}

.header .resize {
  position: relative;
  display: inline;
}

@media (min-width: 480px) {
  .header {
    min-height: 15.996rem;
  }
}

@media (min-width: 768px) {
  .header {
    height: auto;
  }
}

@media (min-width: 1366px) {
  .header {
    background-size: 1366px auto;
  }
}

.header:before {
  display: block;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.25);
}

@media (min-width: 640px) {
  .header:before {
    background-color: transparent;
  }
}

.headerContent {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
}

.logo {
  width: 100%;
  margin: 2.666rem auto 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

@media (min-width: 768px) {
  .logo {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    margin-top: 3.999rem;
  }
}

.logoQuantum {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  width: 100%;
  margin-left: 0;
}

.logoQuantum img {
  max-height: 5rem;
  width: auto;
  float: none;
}

@media (min-width: 480px) {
  .logoQuantum {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }
  .logoQuantum img {
    float: left;
  }
}

@media (min-width: 768px) {
  .logoQuantum {
    width: 67.79661%;
    -webkit-box-pack: start;
        -ms-flex-pack: start;
            justify-content: flex-start;
  }
}

@media (min-width: 1024px) {
  .logoQuantum {
    width: 59.32203%;
    margin-left: 6.77966%;
  }
}

.logoQuantumText {
  width: 100%;
  font-size: 0.9rem;
  line-height: 1rem;
  text-align: center;
  color: white;
  margin-left: 10px;
}

.logoQuantumText .quantum {
  margin-top: 1.333rem;
}

@media (min-width: 480px) {
  .logoQuantumText {
    width: auto;
    font-size: 1rem;
    text-align: left;
  }
}

.quantum {
  display: block;
  font-size: 1.333rem;
  font-weight: bold;
  text-transform: uppercase;
  color: #005f98;
  position: relative;
  text-shadow: 1px 1px 0 white, 1px -1px 0 white, -1px 1px 0 white, -1px -1px 0 white;
}

@media (min-width: 480px) {
  .quantum {
    font-size: 1.778rem;
  }
}

@media (min-width: 768px) {
  .quantum {
    font-size: 1.778rem;
  }
  .quantum:before {
    content: attr(data-text);
    position: absolute;
    left: 0;
    text-shadow: none;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    /* FF3.6-15 */
    background-image: -webkit-radial-gradient(center, ellipse cover, #0095d9 0%, #004477 100%);
    /* Chrome10-25,Safari5.1-6 */
    background-image: -webkit-radial-gradient(center, ellipse, #0095d9 0%, #004477 100%);
    background-image: -o-radial-gradient(center, ellipse, #0095d9 0%, #004477 100%);
    background-image: radial-gradient(ellipse at center, #0095d9 0%, #004477 100%);
    /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  }
}

@media (min-width: 1024px) {
  .quantum {
    font-size: 2.369rem;
  }
}

.logoOboronProm {
  width: 100%;
  text-align: right;
  margin: 1.333rem 0;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
}

.logoOboronProm img {
  display: inline-block;
  max-width: 300px;
}

@media (min-width: 768px) {
  .logoOboronProm {
    width: 33.89831%;
    -webkit-box-pack: end;
        -ms-flex-pack: end;
            justify-content: flex-end;
    margin: 0;
  }
}

@media (min-width: 1024px) {
  .logoOboronProm {
    width: 25.42373%;
    margin-left: 6.77966%;
  }
}

.footer {
  padding: 1.333rem 0;
  background-color: #3e4547;
}

.footer .logo {
  margin-top: 1.333rem;
}

.footer .logoOboronProm img {
  max-width: 300px;
}

.footerContent {
  border-bottom: 1px solid #393f41;
  margin-bottom: 1.333rem;
  padding-bottom: 1.333rem;
}

.copy, .linecore {
  font-size: 0.9rem;
  line-height: 1.333rem;
  text-align: center;
  width: 57.62712%;
  float: none;
  margin: 0 auto;
  color: #727779;
}

@media (min-width: 768px) {
  .copy, .linecore {
    text-align: left;
    float: left;
    margin: 0;
  }
}

.linecore {
  width: 40.67797%;
  margin: 1.333rem auto 0;
}

@media (min-width: 768px) {
  .linecore {
    text-align: right;
    float: right;
    margin: 0;
  }
}

.linecore span {
  font-weight: bold;
}

.linecore a {
  color: #727779;
  text-transform: uppercase;
}

.linecore a:hover, .linecore a:focus {
  color: #12a5de;
}

.linecore a:hover span, .linecore a:focus span {
  color: #007cb7;
}

.page {
  margin: 2.666rem auto;
}

.pageTitle {
  color: #005f98;
}

.pageTitle:before, .pageTitle:after {
  content: normal;
}

@media (min-width: 768px) {
  .pageTitle {
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    /* FF3.6-15 */
    background-image: -webkit-radial-gradient(center, ellipse cover, #0095d9 0%, #004477 100%);
    /* Chrome10-25,Safari5.1-6 */
    background-image: -webkit-radial-gradient(center, ellipse, #0095d9 0%, #004477 100%);
    background-image: -o-radial-gradient(center, ellipse, #0095d9 0%, #004477 100%);
    background-image: radial-gradient(ellipse at center, #0095d9 0%, #004477 100%);
    /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  }
  .pageTitle:before, .pageTitle:after {
    content: '';
    display: inline-block;
    width: 6.77966%;
    height: 10px;
    border-top: 1px solid #005f98;
    margin-left: 1.69492%;
    margin-right: 1.69492%;
  }
}

.content ul {
  width: 100%;
  margin: 0.6665rem auto;
}

@media (min-width: 768px) {
  .content ul {
    width: 91.52542%;
  }
}

@media (min-width: 1024px) {
  .content ul {
    width: 83.05085%;
  }
}

.content li {
  position: relative;
  padding-left: 16px;
}

.content li:before {
  content: "";
  position: absolute;
  top: 8px;
  left: 0;
  width: 8px;
  height: 8px;
  background-color: #ff6f30;
  margin-right: 8px;
}

.activity {
  width: 100%;
  padding: 1.333rem;
  border: 1px solid #ff6f30;
}

.activity li {
  color: #005f98;
  font-size: 1.333rem;
  text-align: center;
  padding-bottom: 1.333rem;
}

.activity li:before {
  content: none;
}

.activity h1 {
  position: relative;
  margin: -2.5rem auto 1.333rem;
  color: #005f98;
  width: 83.05085%;
  background-color: white;
}

.activity h1:before, .activity h1:after {
  content: normal;
}

@media (min-width: 768px) {
  .activity p {
    font-size: 1.333rem;
  }
  .activity h1 {
    width: auto;
    background-color: transparent;
  }
  .activity h1:before {
    content: attr(data-text);
    position: absolute;
    background-color: white;
    padding: 0 0.84746%;
  }
  .activity h1:after {
    content: attr(data-text);
    position: absolute;
    left: 3.38983%;
    right: 1.69492%;
    color: #005f98;
    text-shadow: none;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    /* FF3.6-15 */
    background-image: -webkit-radial-gradient(center, ellipse cover, #0095d9 0%, #004477 100%);
    /* Chrome10-25,Safari5.1-6 */
    background-image: -webkit-radial-gradient(center, ellipse, #0095d9 0%, #004477 100%);
    background-image: -o-radial-gradient(center, ellipse, #0095d9 0%, #004477 100%);
    background-image: radial-gradient(ellipse at center, #0095d9 0%, #004477 100%);
    /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
  }
}

.project, .project2 {
  margin-top: 1.333rem;
}

.project2 > .projectName {
  display: none;
}

@media (min-width: 640px) {
  .project2 > .projectName {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
  }
}

.project2 > .projectContent .projectImg {
  display: none;
}

.project2 > .projectContent .projectText .projectName {
  display: block;
  border-left: none;
  border-right: none;
  padding: 1.333rem;
}

.project2 > .projectContent .projectText .projectName:hover, .project2 > .projectContent .projectText .projectName:focus {
  text-decoration: none;
  color: #005f98;
  background-color: rgba(31, 175, 206, 0.2);
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
}

.project2 > .projectContent .projectText img {
  display: block;
  width: 100%;
  border-top: 1px solid #1fafce;
}

@media (min-width: 640px) {
  .project2 > .projectContent .projectImg {
    display: block;
  }
  .project2 > .projectContent .projectText .projectName {
    display: none;
  }
  .project2 > .projectContent .projectText img {
    display: none;
  }
}

.projectName {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  border: 1px solid #1fafce;
  color: #1fafce;
  font-size: 1.333rem;
  font-weight: bold;
}

.projectName span {
  font-weight: normal;
}

.projectName a:hover, .projectName a:focus {
  text-decoration: none;
  color: #005f98;
  background-color: rgba(31, 175, 206, 0.2);
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
}

.projectName .projectTextLeft, .projectName .projectTextRight, .projectName .projectTextCenter {
  padding: 1.333rem;
  width: 100%;
}

.projectName .projectTextLeft {
  border-bottom: 1px solid #1fafce;
}

@media (min-width: 640px) {
  .projectName {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }
  .projectName .projectTextLeft {
    border-bottom: none;
  }
}

.projectContent {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  border-bottom: 1px solid #1fafce;
}

@media (min-width: 640px) and (max-width: 1023px) {
  .projectContent .projectText {
    width: 100%;
  }
  .projectContent .projectImg {
    width: 50%;
  }
  .projectContent .projectImg:last-of-type {
    border-left: none;
  }
}

@media (min-width: 1024px) {
  .projectContent {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }
}

.projectImg {
  width: 100%;
  height: 13.33rem;
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
  border-top: 1px solid #1fafce;
  border-left: 1px solid #1fafce;
  border-right: 1px solid #1fafce;
  -webkit-box-ordinal-group: 3;
      -ms-flex-order: 2;
          order: 2;
}

@media (min-width: 640px) {
  .projectImg {
    width: 20%;
  }
}

@media (min-width: 1024px) {
  .projectImg {
    height: auto;
    border-top: none;
    -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
            order: 1;
  }
}

.projectText {
  width: 100%;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-ordinal-group: 2;
      -ms-flex-order: 1;
          order: 1;
  border-left: 1px solid #1fafce;
  border-right: 1px solid #1fafce;
}

@media (min-width: 640px) {
  .projectText {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
        -ms-flex-direction: row;
            flex-direction: row;
    width: 60%;
  }
}

@media (min-width: 1024px) {
  .projectText {
    border-left: none;
    border-right: none;
  }
}

.projectTextCenter {
  display: inline-block;
  text-align: center;
}

.projectTextCenter p {
  padding: 1.333rem;
}

.projectTextLeft {
  width: 50%;
  text-align: left;
  border-right: 1px solid #1fafce;
}

.projectTextLeft p {
  padding: 1.333rem;
}

@media (max-width: 639px) {
  .projectTextLeft {
    width: 100%;
    text-align: center;
    border-right: none;
  }
}

.projectTextRight {
  width: 50%;
  text-align: right;
}

.projectTextRight p {
  padding: 1.333rem;
}

@media (max-width: 639px) {
  .projectTextRight {
    width: 100%;
    text-align: center;
  }
}

.projectNameL, .projectNameR {
  width: 100%;
  padding: 1.333rem;
  text-align: center;
}

@media (min-width: 640px) {
  .projectNameL, .projectNameR {
    width: 33%;
  }
}

.projectNameC {
  width: 100%;
  padding: 1.333rem;
  border-top: 1px solid #1fafce;
  border-bottom: 1px solid #1fafce;
  border-left: none;
  border-right: none;
  text-align: center;
}

@media (min-width: 640px) {
  .projectNameC {
    width: 34%;
    border-top: none;
    border-bottom: none;
    border-left: 1px solid #1fafce;
    border-right: 1px solid #1fafce;
  }
}

.error_name.error, .error_userEmail.error, .error_message.error {
  margin-top: -1.333rem;
  font-size: 0.9rem;
}

.leftSide {
  width: 100%;
  float: none;
}

.leftSide + .product, .leftSide + .content {
  margin-left: 0;
}

@media (min-width: 1024px) {
  .leftSide {
    width: 270px;
    float: left;
  }
  .leftSide + .product, .leftSide + .content {
    margin-left: 330px;
  }
}

.activityLeft h3 {
  font-size: 18px;
  color: #005f98;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  /* FF3.6-15 */
  background-image: -webkit-radial-gradient(center, ellipse cover, #0095d9 0%, #004477 100%);
  /* Chrome10-25,Safari5.1-6 */
  background-image: -webkit-radial-gradient(center, ellipse, #0095d9 0%, #004477 100%);
  background-image: -o-radial-gradient(center, ellipse, #0095d9 0%, #004477 100%);
  background-image: radial-gradient(ellipse at center, #0095d9 0%, #004477 100%);
  /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
}

.activityLeft li {
  color: #005f98;
  padding-left: 1rem;
  margin-bottom: 0.6665rem;
  position: relative;
}

.activityLeft li:before {
  content: '';
  position: absolute;
  top: 8px;
  left: 0;
  margin-right: 8px;
  width: 8px;
  height: 8px;
  background-color: #ff6f30;
}

.catalogItem {
  border: 1px solid #1fafce;
  text-align: center;
  margin: 0.6665rem auto 1.9995rem;
  padding-bottom: 1.333rem;
  -webkit-box-shadow: 3px 3px 6px 0px rgba(0, 0, 0, 0.2);
  box-shadow: 3px 3px 6px 0px rgba(0, 0, 0, 0.2);
}

.catalogItem:nth-child(2n) .catalogItemInfo {
  -webkit-box-orient: horizontal;
  -webkit-box-direction: reverse;
      -ms-flex-direction: row-reverse;
          flex-direction: row-reverse;
}

.catalogItem:nth-child(2n) .catalogItemText {
  text-align: right;
  padding-left: 0;
  padding-right: 1.333rem;
}

@media (max-width: 767px) {
  .catalogItem:nth-child(2n) .catalogItemText {
    width: 100%;
    padding-right: 0;
  }
}

.catalogItemHeader {
  width: 100%;
  text-align: center;
  padding: 1.333rem;
  border-bottom: 1px solid #1fafce;
  color: #1fafce;
  font-size: 1.333rem;
  font-weight: bold;
}

.catalogItemHeader span {
  font-weight: normal;
}

.catalogItemInfo {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  padding: 1.333rem;
}

.catalogItemImg {
  display: block;
  width: 25.42373%;
  min-height: 7.998rem;
  background-image: url("../img/no_photo.png");
  background-position: center center;
  background-repeat: no-repeat;
  background-size: contain;
  border: 1px solid #1fafce;
}

@media (max-width: 767px) {
  .catalogItemImg {
    display: none;
  }
}

.catalogItemText {
  width: 74.57627%;
  text-align: left;
  padding-left: 1.333rem;
  padding-right: 0;
}

@media (max-width: 767px) {
  .catalogItemText {
    width: 100%;
    padding-left: 0;
  }
}

.pagination {
  text-align: center;
}

.pagination ul {
  display: inline-block;
  width: auto;
}

.pagination li {
  padding: 0 5px;
  font-size: 1rem;
}

.pagination li:before {
  content: none;
}

.pagination a, .pagination a:visited, .pagination span {
  display: table-cell;
  height: 30px;
  width: 30px;
  text-align: center;
  vertical-align: middle;
  background-color: transparent;
  border: 1px solid #1fafce;
  color: palette(text-brown);
}

.pagination a:hover, .pagination a:focus {
  text-decoration: none;
  color: #005f98;
  background-color: rgba(31, 175, 206, 0.2);
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
  text-decoration: none;
}

.pagination .active > a {
  text-decoration: none;
  color: #ff6f30;
  border: 1px solid #ff6f30;
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
  text-decoration: none;
}

.pagination .disabled, .pagination .control {
  line-height: 0px;
  font-size: 0px;
  cursor: pointer;
  color: transparent;
}

.pagination .control:hover, .pagination .control:focus, .pagination .disabled {
  opacity: .5;
}

.pagination li:nth-of-type(1) a, .pagination li:nth-of-type(1) span {
  background: url("../img/first.png") left top no-repeat;
  border: none;
}

.pagination li:nth-of-type(2) a, .pagination li:nth-of-type(2) span {
  background: url("../img/prev.png") left top no-repeat;
  border: none;
}

.pagination li:nth-last-of-type(1) a, .pagination li:nth-last-of-type(1) span {
  background: url("../img/last.png") left top no-repeat;
  border: none;
}

.pagination li:nth-last-of-type(2) a, .pagination li:nth-last-of-type(2) span {
  background: url("../img/next.png") left top no-repeat;
  border: none;
}

.product h3 {
  font-size: 1rem;
  line-height: 1.333rem;
  color: #005f98;
  font-weight: bold;
  text-align: left;
  padding-bottom: 0;
}

.product ul {
  width: 100%;
}

.product li {
  position: relative;
  padding-left: 16px;
}

.product li:before {
  content: "";
  position: absolute;
  top: 8px;
  left: 0;
  width: 5px;
  height: 5px;
  background-color: #1fafce;
  margin-right: 8px;
}

.product li li:before {
  top: 10px;
  width: 9px;
  height: 2px;
  margin-left: 1px;
}

.product table {
  width: 100%;
  margin: 1.333rem auto;
}

.product table caption {
  color: #005f98;
  text-align: center;
  font-weight: bold;
  padding: 0.6665rem 0;
}

.product table th {
  font-weight: bold;
}

.product table td, .product table th {
  padding: 0.6665rem 0;
  width: 60%;
  vertical-align: bottom;
}

.product table td:first-of-type, .product table th:first-of-type {
  vertical-align: top;
}

.product table td p, .product table th p {
  padding-bottom: 0;
}

.product table td:nth-child(2), .product table th:nth-child(2) {
  width: 40%;
  padding-left: 10%;
}

.product table tr {
  border-bottom: 1px solid #1fafce;
}

.product table tr:first-of-type {
  border-top: 1px solid #1fafce;
}

.product .tableGroup {
  border-bottom: none;
}

.product .tableGroup:not(first-of-type) td {
  padding-bottom: 0;
}

.tableContainer {
  overflow: auto;
}

.tableContainer table {
  min-width: 650px;
}

.contentContainer {
  overflow: auto;
}

.indmark2 > p {
  position: relative;
  padding-left: 16px;
}

.indmark2 > p:before {
  content: "";
  position: absolute;
  top: 10px;
  left: 0;
  width: 8px;
  height: 1px;
  background-color: #000000;
  margin-right: 8px;
}

.indmark1 > p {
  position: relative;
  padding-left: 28px;
}

.indmark1 > p:before {
  content: "";
  position: absolute;
  top: 8px;
  left: 0;
  width: 4px;
  height: 4px;
  background-color: #000000;
  margin-right: 8px;
  margin-left: 16px;
  border-radius: 50%;
}

.indmark > p {
  position: relative;
  padding-left: 40px;
}

.indmark > p:before {
  content: "";
  color: transparent;
  position: absolute;
  top: 8px;
  left: 0;
  width: 0;
  height: 0;
  margin-right: 8px;
  margin-left: 28px;
  border: 3px solid;
  border-left-color: #000000;
}

.contentRight {
  padding-top: 0.6665rem;
  float: none;
  width: 100%;
  padding-left: 0;
}

@media (min-width: 768px) {
  .contentRight {
    float: right;
    width: 50%;
    padding-left: 5%;
  }
}

.contentLeft {
  padding-top: 0.6665rem;
  float: none;
  width: 100%;
  padding-right: 0;
}

@media (min-width: 768px) {
  .contentLeft {
    float: left;
    width: 50%;
    padding-right: 5%;
  }
}

table.in {
  margin: 0;
}

table.in td, table.in td:nth-child(2) {
  width: 50%;
}

table.in tr, table.in tr:first-of-type {
  border: 0;
}

.kaskad td, .kaskad th {
  width: 30%;
  padding-left: 0;
  text-align: center;
}

.kaskad td p, .kaskad th p {
  text-align: center;
}

.kaskad td:nth-child(1), .kaskad th:nth-child(1) {
  width: 40%;
}

.kaskad td:nth-child(1) p, .kaskad th:nth-child(1) p {
  text-align: left;
}

.productTitle {
  color: #ff6f30;
  margin: 0 auto;
  /*
  &:before, &:after {
    content: '';
    display: inline-block;
    width: span(1 of 12);
    height: 10px;
    border-top: 1px solid $link;
    margin-left: gutter();
    margin-right: gutter();
  }*/
}

.productPhotoR {
  width: 40%;
  float: right;
  margin-left: 1.333rem;
  margin-bottom: 1.333rem;
  margin-top: 0.6665rem;
}

@media (max-width: 480px) {
  .productPhotoR {
    width: 100% !important;
    margin-left: 0;
    float: none;
  }
}

.productPhotoL {
  width: 40%;
  float: left;
  margin-right: 1.333rem;
  margin-bottom: 1.333rem;
  margin-top: 0.6665rem;
}

@media (max-width: 480px) {
  .productPhotoL {
    width: 100% !important;
    margin-right: 0;
    float: none;
  }
}

.productImages {
  text-align: center;
}

.productImages img {
  margin: 0.6665rem 0;
}

@media (min-width: 640px) {
  .productImages img {
    max-height: 200px;
    margin: 0 0.6665rem;
  }
}

.aboutPhoto {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  margin: 1.333rem auto 2.666rem;
}

@media (min-width: 640px) {
  .aboutPhoto {
    -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
  }
}

.aboutPhotoTitle {
  color: #1fafce;
  margin: 1.333rem auto 0.6665rem;
}

.aboutPhotoItem1 {
  margin-right: 0;
  margin-bottom: 1.333rem;
}

@media (min-width: 640px) {
  .aboutPhotoItem1 {
    width: 32.20339%;
    margin-right: 1.69492%;
  }
  .aboutPhotoItem1:last-of-type {
    margin-right: 0;
  }
}

.aboutPhotoItem2 {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -ms-flex-line-pack: start;
      align-content: flex-start;
}

.aboutPhotoItem2 .aboutPhotoImg {
  width: 48.72881%;
}

@media (min-width: 640px) {
  .aboutPhotoItem2 {
    width: 66.10169%;
  }
}

.aboutPhotoItem1, .aboutPhotoItem2 {
  width: 100%;
  text-align: center;
}

@media (min-width: 640px) {
  .aboutPhotoItem1, .aboutPhotoItem2 {
    margin-bottom: 0;
  }
}

.aboutPhotoImg {
  height: 13.33rem;
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
}

@media (min-width: 1024px) {
  .aboutPhotoImg {
    height: 19.995rem;
  }
}

.aboutPhotoCaption {
  width: 100%;
  font-size: 0.9rem;
  color: #1fafce;
  padding-top: 0.6665rem;
}

@media (min-width: 768px) {
  .aboutPhotoCaption {
    font-size: 1rem;
  }
}

.gallery {
  width: 100%;
  margin: 0 auto;
  padding: 1.333rem 0;
  text-align: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
}

.galleryItem, .galleryItemIn {
  position: relative;
  display: inline-block;
  width: 100%;
  margin-left: 0;
  margin-bottom: 1.333rem;
  padding-bottom: 2.666rem;
}

@media (min-width: 480px) {
  .galleryItem, .galleryItemIn {
    width: 49.15254%;
    margin-left: 1.69492%;
  }
  .galleryItem:nth-child(2n+1), .galleryItemIn:nth-child(2n+1) {
    margin-left: 0;
  }
}

@media (min-width: 768px) {
  .galleryItem, .galleryItemIn {
    width: 32.20339%;
  }
  .galleryItem:nth-child(2n+1), .galleryItemIn:nth-child(2n+1) {
    margin-left: 1.69492%;
  }
  .galleryItem:nth-child(3n+1), .galleryItemIn:nth-child(3n+1) {
    margin-left: 0;
  }
}

@media (min-width: 1024px) {
  .galleryItem, .galleryItemIn {
    width: 23.72881%;
  }
  .galleryItem:nth-child(3n+1), .galleryItemIn:nth-child(3n+1) {
    margin-left: 1.69492%;
  }
  .galleryItem:nth-child(4n+1), .galleryItemIn:nth-child(4n+1) {
    margin-left: 0;
  }
}

.galleryItem:hover, .galleryItem:focus, .galleryItemIn:hover, .galleryItemIn:focus {
  text-decoration: none;
}

.galleryItem:hover .galleryItemOverlay, .galleryItem:focus .galleryItemOverlay, .galleryItemIn:hover .galleryItemOverlay, .galleryItemIn:focus .galleryItemOverlay {
  height: calc(100% - 2*1.333rem);
  bottom: 2.666rem;
  color: white;
  background-color: rgba(57, 63, 65, 0.8);
  padding-top: 1.333rem;
  -webkit-transition: all 1s;
  -o-transition: all 1s;
  transition: all 1s;
}

.galleryItem:hover .galleryItemMore, .galleryItem:focus .galleryItemMore, .galleryItemIn:hover .galleryItemMore, .galleryItemIn:focus .galleryItemMore {
  display: block;
}

.galleryItem img, .galleryItemIn img {
  display: block;
  width: 100%;
  height: auto;
}

.galleryItemIn {
  padding-bottom: 0;
}

.galleryItemIn:before {
  content: "";
  position: absolute;
  background: url("../img/zoom.svg") no-repeat;
  background-size: contain;
  width: 50%;
  height: 50%;
  left: 25%;
  top: 25%;
  opacity: .5;
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
}

.galleryItemIn:hover:before, .galleryItemIn:focus:before {
  opacity: 1;
  -webkit-transition: all .3s;
  -o-transition: all .3s;
  transition: all .3s;
}

.galleryItemOverlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 0.6665rem 1.333rem;
  height: 2.666rem;
  overflow: hidden;
  -webkit-transition: all 1s;
  -o-transition: all 1s;
  transition: all 1s;
}

.galleryImgCaption {
  text-align: center;
  font-weight: bold;
  text-transform: uppercase;
}

.galleryImgCaption span {
  font-weight: normal;
}

.galleryImgCaption + p {
  font-size: .9rem;
}

.galleryItemMore {
  display: none;
  position: absolute;
  width: 8rem;
  bottom: 1.333rem;
  left: 50%;
  margin-left: -4rem;
  color: white;
  padding: 0.6665rem 0;
  text-align: center;
  border: 1px solid white;
}

.contactInfo {
  text-align: center;
}

.managers {
  width: 770px;
  margin: auto;
  padding-top: 2.666rem;
}

.managers h3 {
  padding-bottom: 0;
  text-align: left;
}

.managers p {
  font-weight: normal;
  font-size: 1rem;
  text-align: left;
  padding-bottom: 0;
}

.managers p:last-of-type {
  padding-bottom: 1.333rem;
}

.address {
  width: 470px;
  margin: 0 auto;
}

.address p {
  color: #7a8386;
  font-weight: normal;
  font-size: 1rem;
  text-align: left;
  padding-bottom: 0;
}

.address p:last-of-type {
  padding-bottom: 1.333rem;
}

.address span {
  display: inline-block;
  width: 100%;
  color: #1fafce;
  font-weight: bold;
}

@media (min-width: 480px) {
  .address span {
    display: inline;
    width: auto;
  }
}

.address strong {
  color: black;
}

.phone {
  font-size: 1.333rem;
  line-height: 2.666rem;
  text-align: center;
}

.phone:last-of-type {
  margin-bottom: 2.666rem;
}

.phone span {
  color: #1fafce;
  font-size: 1.778rem;
}

@media (min-width: 480px) {
  .phone span {
    font-size: 2.369rem;
  }
}

.phone strong {
  color: #7a8386;
  display: inline-block;
  width: 100%;
}

@media (min-width: 480px) {
  .phone strong {
    display: inline;
    width: auto;
  }
}

#map {
  width: 100%;
  height: 500px;
}

.nav {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  min-height: 1.9995rem;
  overflow: auto;
}

.menuTop {
  display: block;
  width: 100%;
  margin: 0 auto;
  overflow: hidden;
}

.menuTop li {
  width: 20%;
}

.menuTop a, .menuTop a:hover, .menuTop a:focus, .menuTop a:visited {
  display: inline-block;
  width: 100%;
  color: black;
  font-weight: bold;
  border-top: 4px solid white;
}

.menuTop .active > a, .menuTop a:hover, .menuTop a:focus {
  border-top: 4px solid #ff6f30;
}

@media (max-width: 767px) {
  .menuTop {
    display: none;
  }
}

@media (min-width: 1024px) {
  .menuTop {
    width: 86.44068%;
  }
}

.menuLang {
  position: absolute;
  right: 0;
  top: 15px;
}

.menuLang li {
  text-align: right;
}

.menuLang a, .menuLang a:hover, .menuLang a:focus, .menuLang a:visited {
  margin-right: 15px;
  color: white;
}

.menuLang .active {
  display: block;
}

.menuLang .active a {
  margin-right: 0;
}

.menuLang .active a:after {
  content: '';
  margin-left: 10px;
  background-position: 0 10px;
}

@media (min-width: 768px) {
  .menuLang {
    top: 1.333rem;
  }
}

.lang a, .lang a:hover, .lang a:focus, .lang a:visited {
  margin-right: 0;
  margin-left: 20px;
  opacity: .7;
}

.lang a:hover, .lang .active {
  opacity: 1;
}

.menuLeftContainer {
  border: 1px solid #ff6f30;
  padding: 1.333rem;
  margin: 1.333rem auto;
}

.menuLeftContainer h3 {
  background-color: white;
  color: #ff6f30;
  text-transform: uppercase;
  margin: -2.4rem auto -1.333rem;
  width: 70%;
}

.menuLeftContainer li {
  text-align: center;
  font-weight: bolder;
  text-transform: uppercase;
}

.menuLeftContainer a, .menuLeftContainer a:hover, .menuLeftContainer a:focus, .menuLeftContainer a:visited {
  color: #005f98;
  display: inline-block;
  font-weight: normal;
  text-transform: uppercase;
  width: 100%;
  padding: 0.6665rem 0;
  border-bottom: 1px solid #1fafce;
}

.menuLeftContainer a:hover, .menuLeftContainer a:focus {
  background-color: rgba(31, 175, 206, 0.2);
  text-decoration: none;
}

.menuTitle {
  padding: 0.6665rem 0;
  border-bottom: 1px solid #1fafce;
  text-transform: uppercase;
}

@media (min-width: 1024px) {
  .menuTitle {
    padding-top: 1.9995rem;
  }
}

.menuLeft > ul {
  display: none;
}

@media (min-width: 1024px) {
  .menuLeft > ul {
    display: block;
  }
}

.menuBottom {
  display: block;
  width: 100%;
  margin: 1.333rem 0;
}

.menuBottom li {
  width: 20%;
  text-align: center;
  padding-left: 0;
  padding-right: 0;
}

.menuBottom a, .menuBottom a:hover, .menuBottom a:focus, .menuBottom a:visited {
  display: inline-block;
  color: white;
}

.menuBottom a:hover, .menuBottom a:focus {
  color: #727779;
}

@media (min-width: 1024px) {
  .menuBottom {
    width: 83.05085%;
    margin: 1.333rem 6.77966%;
  }
  .menuBottom li {
    width: auto;
    text-align: left;
    padding-right: 6.77966%;
    padding-left: 0.56497%;
  }
}

@media (max-width: 767px) {
  .menuBottom {
    display: none;
  }
}

label#mobile {
  display: block;
}

label#mobile .menuMob {
  position: fixed;
  left: 5px;
  top: 5px;
  z-index: 100;
  width: 40px;
  height: 40px;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 50% 50% 50% 50%;
  -webkit-transition: .5s ease-in-out;
  -o-transition: .5s ease-in-out;
  transition: .5s ease-in-out;
  -webkit-box-shadow: 0 0 0 0 #FFF, 0 0 0 0 #FFF;
          box-shadow: 0 0 0 0 #FFF, 0 0 0 0 #FFF;
  cursor: pointer;
}

label#mobile .hamburger {
  position: absolute;
  top: 15px;
  left: 8px;
  width: 24px;
  height: 2px;
  background: #3e4547;
  display: block;
  -webkit-transform-origin: center;
      -ms-transform-origin: center;
          transform-origin: center;
  -webkit-transition: .5s ease-in-out;
  -o-transition: .5s ease-in-out;
  transition: .5s ease-in-out;
}

label#mobile .hamburger:after, label#mobile .hamburger:before {
  -webkit-transition: .5s ease-in-out;
  -o-transition: .5s ease-in-out;
  transition: .5s ease-in-out;
  content: "";
  position: absolute;
  display: block;
  width: 100%;
  height: 100%;
  background: #3e4547;
}

label#mobile .hamburger:before {
  top: -6px;
}

label#mobile .hamburger:after {
  bottom: -6px;
}

label#mobile input {
  display: none;
}

label#mobile input:checked + .menuMob {
  background: white;
  -webkit-box-shadow: 0 0 0 100vw #FFF, 0 0 0 100vh #FFF;
          box-shadow: 0 0 0 100vw #FFF, 0 0 0 100vh #FFF;
  border-radius: 0;
}

label#mobile input:checked + .menuMob .hamburger {
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg);
}

label#mobile input:checked + .menuMob .hamburger:after {
  -webkit-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
          transform: rotate(90deg);
  bottom: 0;
}

label#mobile input:checked + .menuMob .hamburger:before {
  -webkit-transform: rotate(90deg);
      -ms-transform: rotate(90deg);
          transform: rotate(90deg);
  top: 0;
}

label#mobile input:checked + .menuMob + ul {
  opacity: 1;
  top: 50%;
  left: 50%;
  -webkit-transform: translate(-50%, -50%);
      -ms-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  -webkit-transition: .25s .2s ease-in-out;
  -o-transition: .25s .2s ease-in-out;
  transition: .25s .2s ease-in-out;
}

label#mobile ul {
  z-index: 200;
  position: fixed;
  top: -100%;
  left: -100%;
  -webkit-transform: translate(0, 0);
      -ms-transform: translate(0, 0);
          transform: translate(0, 0);
  opacity: 0;
  -webkit-transition: .25s 0s ease-in-out;
  -o-transition: .25s 0s ease-in-out;
  transition: .25s 0s ease-in-out;
}

@media (min-width: 767px) {
  label#mobile {
    display: none;
  }
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvX3Jlc2V0LnNjc3MiLCJzdHlsZS5jc3MiLCJjb21wb25lbnRzL192YXJpYWJsZXMuc2NzcyIsImNvbXBvbmVudHMvX3R5cG9ncmFwaHkuc2NzcyIsImNvbXBvbmVudHMvX21peGlucy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL2JyZWFrcG9pbnQtc2Fzcy9zdHlsZXNoZWV0cy9fYnJlYWtwb2ludC5zY3NzIiwiY29tcG9uZW50cy9fY29tcG9uZW50cy5zY3NzIiwiLi4vLi4vbm9kZV9tb2R1bGVzL3N1c3kvc2Fzcy9zdXN5L19zdS1tYXRoLnNjc3MiLCJjb21wb25lbnRzL19pY29ucy5zY3NzIiwicGFnZXMvX21haW4uc2NzcyIsInBhZ2VzL19jYXRhbG9nLnNjc3MiLCJwYWdlcy9fYWJvdXQuc2NzcyIsInBhZ2VzL19nYWxsZXJ5LnNjc3MiLCJwYWdlcy9fY29udGFjdC5zY3NzIiwicGFnZXMvX25hdi5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0VBYUUsVUFBUztFQUNULFdBQVU7RUFDVixVQUFTO0VBQ1QsZ0JBQWU7RUFDZixjQUFhO0VBQ2IseUJBQXdCO0NBQ3pCOztBQUVEOzs7OztHQUtHO0FBRUg7Ozs7Ozs7Ozs7Ozs7RUFhRSxlQUFjO0NBQ2Y7O0FBRUQ7RUFDRSxlQUFjO0NBQ2Y7O0FBRUQ7RUFDRSxpQkFBZ0I7Q0FDakI7O0FBRUQ7RUFDRSxhQUFZO0NBQ2I7O0FBRUQ7O0VBRUUsWUFBVztFQUNYLGNBQWE7Q0FDZDs7QUFFRDtFQUNFLDBCQUF5QjtFQUN6QixrQkFBaUI7Q0FDbEI7O0FBRUQsNEVBQTRFO0FBRTVFO2dGQUNnRjtBQUVoRjs7OztHQUlHO0FBRUg7RUFDRSxrQkFBaUI7RUFBRyxPQUFPO0VBQzNCLDJCQUEwQjtFQUFHLE9BQU87RUFDcEMsK0JBQThCO0VBQUcsT0FBTztDQUN6Qzs7QUFFRDtnRkFDZ0Y7QUFFaEY7O0dBRUc7QUFFSDs7Ozs7O0VBTUUsZUFBYztDQUNm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QUFNO0NBQ1A7O0FBM0RQO0VBZ0VJLFdBQVU7RUFDVixTQUFRO0VBQ1IsVUFBUztFQUNULHlDQUErQjtNQUEvQixxQ0FBK0I7VUFBL0IsaUNBQStCO0VBQy9CLHlDQUFnQztFQUFoQyxvQ0FBZ0M7RUFBaEMsaUNBQWdDO0NBQ2pDOztBQXJFSDtFQXdFSSxhQUFZO0VBQ1osZ0JBQWU7RUFDZixXQUFVO0VBQ1YsWUFBVztFQUNYLG1DQUF5QjtNQUF6QiwrQkFBeUI7VUFBekIsMkJBQXlCO0VBQ3pCLFdBQVU7RUFDVix3Q0FBK0I7RUFBL0IsbUNBQStCO0VBQS9CLGdDQUErQjtDQUNoQzs7QVRwTUM7RVNxSEo7SUFrRkksY0FBYTtHQUVoQjtDYnd0RUEiLCJmaWxlIjoic3R5bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsi77u/aHRtbCwgYm9keSwgZGl2LCBzcGFuLCBhcHBsZXQsIG9iamVjdCwgaWZyYW1lLFxuaDEsIGgyLCBoMywgaDQsIGg1LCBoNiwgcCwgYmxvY2txdW90ZSwgcHJlLFxuYSwgYWJiciwgYWNyb255bSwgYWRkcmVzcywgYmlnLCBjaXRlLCBjb2RlLFxuZGVsLCBkZm4sIGVtLCBpbWcsIGlucywga2JkLCBxLCBzLCBzYW1wLFxuc21hbGwsIHN0cmlrZSwgc3Ryb25nLCBzdWIsIHN1cCwgdHQsIHZhcixcbmIsIHUsIGksIGNlbnRlcixcbmRsLCBkdCwgZGQsIG9sLCB1bCwgbGksXG5maWVsZHNldCwgZm9ybSwgbGFiZWwsIGxlZ2VuZCxcbnRhYmxlLCBjYXB0aW9uLCB0Ym9keSwgdGZvb3QsIHRoZWFkLCB0ciwgdGgsIHRkLFxuYXJ0aWNsZSwgYXNpZGUsIGNhbnZhcywgZGV0YWlscywgZW1iZWQsXG5maWd1cmUsIGZpZ2NhcHRpb24sIGZvb3RlciwgaGVhZGVyLCBoZ3JvdXAsXG5tZW51LCBuYXYsIG91dHB1dCwgcnVieSwgc2VjdGlvbiwgc3VtbWFyeSxcbnRpbWUsIG1hcmssIGF1ZGlvLCB2aWRlbyB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiAwO1xuICBmb250LXNpemU6IDEwMCU7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuLyoqXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBkZXRhaWxzYCBvciBgc3VtbWFyeWAgaW4gSUUgMTAvMTFcbiAqIGFuZCBGaXJlZm94LlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cbiAqL1xuXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuYm9keSB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG5vbCwgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5ibG9ja3F1b3RlLCBxIHtcbiAgcXVvdGVzOiBub25lO1xufVxuXG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlcixcbnE6YmVmb3JlLCBxOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGNvbnRlbnQ6IG5vbmU7XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbi8qISBub3JtYWxpemUuY3NzIHY2LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cblxuLyogRG9jdW1lbnRcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgbGluZSBoZWlnaHQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gUHJldmVudCBhZGp1c3RtZW50cyBvZiBmb250IHNpemUgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlcyBpblxuICogICAgSUUgb24gV2luZG93cyBQaG9uZSBhbmQgaW4gaU9TLlxuICovXG5cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTsgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cbn1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cblxuYXJ0aWNsZSxcbmFzaWRlLFxuZm9vdGVyLFxuaGVhZGVyLFxubmF2LFxuc2VjdGlvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGZvbnQgc2l6ZSBhbmQgbWFyZ2luIG9uIGBoMWAgZWxlbWVudHMgd2l0aGluIGBzZWN0aW9uYCBhbmRcbiAqIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG4gKi9cblxuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5cbmZpZ2NhcHRpb24sXG5maWd1cmUsXG5tYWluIHsgLyogMSAqL1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgbWFyZ2luIGluIElFIDguXG4gKi9cblxuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cblxuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsgLyogMSAqL1xuICBoZWlnaHQ6IDA7IC8qIDEgKi9cbiAgb3ZlcmZsb3c6IHZpc2libGU7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnByZSB7XG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLyogMSAqL1xuICBmb250LXNpemU6IDFlbTsgLyogMiAqL1xufVxuXG4vKiBUZXh0LWxldmVsIHNlbWFudGljc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gKi9cblxuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyAvKiAxICovXG4gIC13ZWJraXQtdGV4dC1kZWNvcmF0aW9uLXNraXA6IG9iamVjdHM7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGJvdHRvbSBib3JkZXIgaW4gQ2hyb21lIDU3LSBhbmQgRmlyZWZveCAzOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdGV4dCBkZWNvcmF0aW9uIGluIENocm9tZSwgRWRnZSwgSUUsIE9wZXJhLCBhbmQgU2FmYXJpLlxuICovXG5cbmFiYnJbdGl0bGVdIHtcbiAgYm9yZGVyLWJvdHRvbTogbm9uZTsgLyogMSAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTsgLyogMiAqL1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBQcmV2ZW50IHRoZSBkdXBsaWNhdGUgYXBwbGljYXRpb24gb2YgYGJvbGRlcmAgYnkgdGhlIG5leHQgcnVsZSBpbiBTYWZhcmkgNi5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmhlcml0YW5jZSBhbmQgc2NhbGluZyBvZiBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgc3R5bGUgaW4gQW5kcm9pZCA0LjMtLlxuICovXG5cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gKi9cblxubWFyayB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7XG59XG5cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgZWxlbWVudHMgZnJvbSBhZmZlY3RpbmcgdGhlIGxpbmUgaGVpZ2h0IGluXG4gKiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuXG5hdWRpbyxcbnZpZGVvIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGlPUyA0LTcuXG4gKi9cblxuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICovXG5cbmltZyB7XG4gIGJvcmRlci1zdHlsZTogbm9uZTtcbn1cblxuLyoqXG4gKiBIaWRlIHRoZSBvdmVyZmxvdyBpbiBJRS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi8qIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuXG5idXR0b24sXG5pbnB1dCxcbm9wdGdyb3VwLFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICBtYXJnaW46IDA7XG59XG5cbi8qKlxuICogU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKiAxLiBTaG93IHRoZSBvdmVyZmxvdyBpbiBFZGdlLlxuICovXG5cbmJ1dHRvbixcbmlucHV0IHsgLyogMSAqL1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEVkZ2UsIEZpcmVmb3gsIGFuZCBJRS5cbiAqIDEuIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRmlyZWZveC5cbiAqL1xuXG5idXR0b24sXG5zZWxlY3QgeyAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cblxuXG5idXR0b24sXG5odG1sIFt0eXBlPVwiYnV0dG9uXCJdLCAvIDFcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8gMlxufVxuKi9cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGlubmVyIGJvcmRlciBhbmQgcGFkZGluZyBpbiBGaXJlZm94LlxuICovXG5cbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwiYnV0dG9uXCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcblt0eXBlPVwic3VibWl0XCJdOjotbW96LWZvY3VzLWlubmVyIHtcbiAgYm9yZGVyLXN0eWxlOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIFJlc3RvcmUgdGhlIGZvY3VzIHN0eWxlcyB1bnNldCBieSB0aGUgcHJldmlvdXMgcnVsZS5cbiAqL1xuXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBjb2xvcjogaW5oZXJpdDsgLyogMiAqL1xuICBkaXNwbGF5OiB0YWJsZTsgLyogMSAqL1xuICBtYXgtd2lkdGg6IDEwMCU7IC8qIDEgKi9cbiAgcGFkZGluZzogMDsgLyogMyAqL1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvKiAxICovXG59XG5cbi8qKlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAyLiBBZGQgdGhlIGNvcnJlY3QgdmVydGljYWwgYWxpZ25tZW50IGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5cbnByb2dyZXNzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUuXG4gKi9cblxudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICovXG5cblt0eXBlPVwiY2hlY2tib3hcIl0sXG5bdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xuICBwYWRkaW5nOiAwOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgY3Vyc29yIHN0eWxlIG9mIGluY3JlbWVudCBhbmQgZGVjcmVtZW50IGJ1dHRvbnMgaW4gQ2hyb21lLlxuICovXG5cblt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgb2RkIGFwcGVhcmFuY2UgaW4gQ2hyb21lIGFuZCBTYWZhcmkuXG4gKiAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4OyAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcblt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgdGhlIGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgdHlwZXMgaW4gaU9TIGFuZCBTYWZhcmkuXG4gKiAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG4gKi9cblxuOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogYnV0dG9uOyAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cbn1cblxuLyoqXG4gKiBSZW1vdmUgZGVmYXVsdCBpbnB1dCBzdHlsaW5nIGZyb20gV2ViS2l0IChyb3VuZGVkIGNvcm5lcnMgYW5kIGluc2V0IHNoYWRvd3MpXG4gKi9cblxuaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSksXG5pbnB1dDpub3QoW3R5cGU9cmFkaW9dKSxcbnRleHRhcmVhIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwO1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMS4gQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gRWRnZSwgSUUsIGFuZCBGaXJlZm94LlxuICovXG5cbmRldGFpbHMsIC8qIDEgKi9cbm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdW1tYXJ5IHtcbiAgZGlzcGxheTogbGlzdC1pdGVtO1xufVxuXG4vKiBTY3JpcHRpbmdcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cblxuY2FudmFzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG5cbnRlbXBsYXRlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuLyogSGlkZGVuXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLS5cbiAqL1xuXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4iLCJodG1sLCBib2R5LCBkaXYsIHNwYW4sIGFwcGxldCwgb2JqZWN0LCBpZnJhbWUsXG5oMSwgaDIsIGgzLCBoNCwgaDUsIGg2LCBwLCBibG9ja3F1b3RlLCBwcmUsXG5hLCBhYmJyLCBhY3JvbnltLCBhZGRyZXNzLCBiaWcsIGNpdGUsIGNvZGUsXG5kZWwsIGRmbiwgZW0sIGltZywgaW5zLCBrYmQsIHEsIHMsIHNhbXAsXG5zbWFsbCwgc3RyaWtlLCBzdHJvbmcsIHN1Yiwgc3VwLCB0dCwgdmFyLFxuYiwgdSwgaSwgY2VudGVyLFxuZGwsIGR0LCBkZCwgb2wsIHVsLCBsaSxcbmZpZWxkc2V0LCBmb3JtLCBsYWJlbCwgbGVnZW5kLFxudGFibGUsIGNhcHRpb24sIHRib2R5LCB0Zm9vdCwgdGhlYWQsIHRyLCB0aCwgdGQsXG5hcnRpY2xlLCBhc2lkZSwgY2FudmFzLCBkZXRhaWxzLCBlbWJlZCxcbmZpZ3VyZSwgZmlnY2FwdGlvbiwgZm9vdGVyLCBoZWFkZXIsIGhncm91cCxcbm1lbnUsIG5hdiwgb3V0cHV0LCBydWJ5LCBzZWN0aW9uLCBzdW1tYXJ5LFxudGltZSwgbWFyaywgYXVkaW8sIHZpZGVvIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBib3JkZXI6IDA7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgZm9udDogaW5oZXJpdDtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuXG4vKipcbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBhbnkgSFRNTDUgZWxlbWVudCBpbiBJRSA4LzkuXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxuICogYW5kIEZpcmVmb3guXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYG1haW5gIGluIElFIDExLlxuICovXG5hcnRpY2xlLFxuYXNpZGUsXG5kZXRhaWxzLFxuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbmZvb3RlcixcbmhlYWRlcixcbmhncm91cCxcbm1haW4sXG5tZW51LFxubmF2LFxuc2VjdGlvbixcbnN1bW1hcnkge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuYm9keSB7XG4gIGxpbmUtaGVpZ2h0OiAxO1xufVxuXG5vbCwgdWwge1xuICBsaXN0LXN0eWxlOiBub25lO1xufVxuXG5ibG9ja3F1b3RlLCBxIHtcbiAgcXVvdGVzOiBub25lO1xufVxuXG5ibG9ja3F1b3RlOmJlZm9yZSwgYmxvY2txdW90ZTphZnRlcixcbnE6YmVmb3JlLCBxOmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIGNvbnRlbnQ6IG5vbmU7XG59XG5cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG5cbi8qISBub3JtYWxpemUuY3NzIHY2LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qIERvY3VtZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gKiAyLiBQcmV2ZW50IGFkanVzdG1lbnRzIG9mIGZvbnQgc2l6ZSBhZnRlciBvcmllbnRhdGlvbiBjaGFuZ2VzIGluXG4gKiAgICBJRSBvbiBXaW5kb3dzIFBob25lIGFuZCBpbiBpT1MuXG4gKi9cbmh0bWwge1xuICBsaW5lLWhlaWdodDogMS4xNTtcbiAgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbn1cblxuLyogU2VjdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICovXG5hcnRpY2xlLFxuYXNpZGUsXG5mb290ZXIsXG5oZWFkZXIsXG5uYXYsXG5zZWN0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi8qKlxuICogQ29ycmVjdCB0aGUgZm9udCBzaXplIGFuZCBtYXJnaW4gb24gYGgxYCBlbGVtZW50cyB3aXRoaW4gYHNlY3Rpb25gIGFuZFxuICogYGFydGljbGVgIGNvbnRleHRzIGluIENocm9tZSwgRmlyZWZveCwgYW5kIFNhZmFyaS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRS5cbiAqL1xuZmlnY2FwdGlvbixcbmZpZ3VyZSxcbm1haW4ge1xuICAvKiAxICovXG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBtYXJnaW4gaW4gSUUgOC5cbiAqL1xuZmlndXJlIHtcbiAgbWFyZ2luOiAxZW0gNDBweDtcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBGaXJlZm94LlxuICogMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG4gKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDEgKi9cbiAgaGVpZ2h0OiAwO1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICAvKiAxICovXG4gIGZvbnQtc2l6ZTogMWVtO1xuICAvKiAyICovXG59XG5cbi8qIFRleHQtbGV2ZWwgc2VtYW50aWNzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiAxLiBSZW1vdmUgdGhlIGdyYXkgYmFja2dyb3VuZCBvbiBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKiAyLiBSZW1vdmUgZ2FwcyBpbiBsaW5rcyB1bmRlcmxpbmUgaW4gaU9TIDgrIGFuZCBTYWZhcmkgOCsuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgLyogMSAqL1xuICAtd2Via2l0LXRleHQtZGVjb3JhdGlvbi1za2lwOiBvYmplY3RzO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogMS4gUmVtb3ZlIHRoZSBib3R0b20gYm9yZGVyIGluIENocm9tZSA1Ny0gYW5kIEZpcmVmb3ggMzktLlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHRleHQgZGVjb3JhdGlvbiBpbiBDaHJvbWUsIEVkZ2UsIElFLCBPcGVyYSwgYW5kIFNhZmFyaS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiBub25lO1xuICAvKiAxICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAvKiAyICovXG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lIGRvdHRlZDtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIFByZXZlbnQgdGhlIGR1cGxpY2F0ZSBhcHBsaWNhdGlvbiBvZiBgYm9sZGVyYCBieSB0aGUgbmV4dCBydWxlIGluIFNhZmFyaSA2LlxuICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGZvbnQgd2VpZ2h0IGluIENocm9tZSwgRWRnZSwgYW5kIFNhZmFyaS5cbiAqL1xuYixcbnN0cm9uZyB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG59XG5cbi8qKlxuICogMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIC8qIDEgKi9cbiAgZm9udC1zaXplOiAxZW07XG4gIC8qIDIgKi9cbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzdHlsZSBpbiBBbmRyb2lkIDQuMy0uXG4gKi9cbmRmbiB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgYmFja2dyb3VuZCBhbmQgY29sb3IgaW4gSUUgOS0uXG4gKi9cbm1hcmsge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmYwO1xuICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cblxuLyoqXG4gKiBQcmV2ZW50IGBzdWJgIGFuZCBgc3VwYCBlbGVtZW50cyBmcm9tIGFmZmVjdGluZyB0aGUgbGluZSBoZWlnaHQgaW5cbiAqIGFsbCBicm93c2Vycy5cbiAqL1xuc3ViLFxuc3VwIHtcbiAgZm9udC1zaXplOiA3NSU7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5zdXAge1xuICB0b3A6IC0wLjVlbTtcbn1cblxuLyogRW1iZWRkZWQgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgOS0uXG4gKi9cbmF1ZGlvLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gaU9TIDQtNy5cbiAqL1xuYXVkaW86bm90KFtjb250cm9sc10pIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgaGVpZ2h0OiAwO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgYm9yZGVyIG9uIGltYWdlcyBpbnNpZGUgbGlua3MgaW4gSUUgMTAtLlxuICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG59XG5cbi8qKlxuICogSGlkZSB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gKi9cbnN2Zzpub3QoOnJvb3QpIHtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIFNob3cgdGhlIG92ZXJmbG93IGluIElFLlxuICogMS4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZS5cbiAqL1xuYnV0dG9uLFxuaW5wdXQge1xuICAvKiAxICovXG4gIG92ZXJmbG93OiB2aXNpYmxlO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICogMS4gUmVtb3ZlIHRoZSBpbmhlcml0YW5jZSBvZiB0ZXh0IHRyYW5zZm9ybSBpbiBGaXJlZm94LlxuICovXG5idXR0b24sXG5zZWxlY3Qge1xuICAvKiAxICovXG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuXG4vKipcbiAqIDEuIFByZXZlbnQgYSBXZWJLaXQgYnVnIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYCBhbmQgYHZpZGVvYFxuICogICAgY29udHJvbHMgaW4gQW5kcm9pZCA0LlxuICogMi4gQ29ycmVjdCB0aGUgaW5hYmlsaXR5IHRvIHN0eWxlIGNsaWNrYWJsZSB0eXBlcyBpbiBpT1MgYW5kIFNhZmFyaS5cblxuXG5idXR0b24sXG5odG1sIFt0eXBlPVwiYnV0dG9uXCJdLCAvIDFcblt0eXBlPVwicmVzZXRcIl0sXG5bdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8gMlxufVxuKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBib3JkZXIgYW5kIHBhZGRpbmcgaW4gRmlyZWZveC5cbiAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG59XG5cbi8qKlxuICogUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuICovXG5idXR0b246LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cImJ1dHRvblwiXTotbW96LWZvY3VzcmluZyxcblt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInN1Ym1pdFwiXTotbW96LWZvY3VzcmluZyB7XG4gIG91dGxpbmU6IDFweCBkb3R0ZWQgQnV0dG9uVGV4dDtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSB0ZXh0IHdyYXBwaW5nIGluIEVkZ2UgYW5kIElFLlxuICogMi4gQ29ycmVjdCB0aGUgY29sb3IgaW5oZXJpdGFuY2UgZnJvbSBgZmllbGRzZXRgIGVsZW1lbnRzIGluIElFLlxuICogMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICogICAgYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgY29sb3I6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgZGlzcGxheTogdGFibGU7XG4gIC8qIDEgKi9cbiAgbWF4LXdpZHRoOiAxMDAlO1xuICAvKiAxICovXG4gIHBhZGRpbmc6IDA7XG4gIC8qIDMgKi9cbiAgd2hpdGUtc3BhY2U6IG5vcm1hbDtcbiAgLyogMSAqL1xufVxuXG4vKipcbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDktLlxuICogMi4gQWRkIHRoZSBjb3JyZWN0IHZlcnRpY2FsIGFsaWdubWVudCBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBPcGVyYS5cbiAqL1xucHJvZ3Jlc3Mge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRS5cbiAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBBZGQgdGhlIGNvcnJlY3QgYm94IHNpemluZyBpbiBJRSAxMC0uXG4gKiAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAtLlxuICovXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC8qIDEgKi9cbiAgcGFkZGluZzogMDtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cbiAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBvZGQgYXBwZWFyYW5jZSBpbiBDaHJvbWUgYW5kIFNhZmFyaS5cbiAqIDIuIENvcnJlY3QgdGhlIG91dGxpbmUgc3R5bGUgaW4gU2FmYXJpLlxuICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICAvKiAxICovXG4gIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICAvKiAyICovXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGFuZCBjYW5jZWwgYnV0dG9ucyBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBtYWNPUy5cbiAqL1xuW3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICogMi4gQ2hhbmdlIGZvbnQgcHJvcGVydGllcyB0byBgaW5oZXJpdGAgaW4gU2FmYXJpLlxuICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDEgKi9cbiAgZm9udDogaW5oZXJpdDtcbiAgLyogMiAqL1xufVxuXG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IGlucHV0IHN0eWxpbmcgZnJvbSBXZWJLaXQgKHJvdW5kZWQgY29ybmVycyBhbmQgaW5zZXQgc2hhZG93cylcbiAqL1xuaW5wdXQ6bm90KFt0eXBlPWNoZWNrYm94XSksXG5pbnB1dDpub3QoW3R5cGU9cmFkaW9dKSxcbnRleHRhcmVhIHtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgLW1vei1hcHBlYXJhbmNlOiBub25lO1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDA7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAwO1xufVxuXG4vKiBJbnRlcmFjdGl2ZVxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqIDEuIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFLCBhbmQgRmlyZWZveC5cbiAqL1xuZGV0YWlscyxcbm1lbnUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLypcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIGFsbCBicm93c2Vycy5cbiAqL1xuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGxpc3QtaXRlbTtcbn1cblxuLyogU2NyaXB0aW5nXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBJRSA5LS5cbiAqL1xuY2FudmFzIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4vKipcbiAqIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFLlxuICovXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIEhpZGRlblxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkIHRoZSBjb3JyZWN0IGRpc3BsYXkgaW4gSUUgMTAtLlxuICovXG5baGlkZGVuXSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qIGZvbnQtZmFtaWx5OiBcIkdlb21ldHJpYVwiOyAqL1xuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnR2VvbWV0cmlhJztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9nZW9tZXRyaWEvR2VvbWV0cmlhLmVvdFwiKTtcbiAgc3JjOiBsb2NhbChcIkdlb21ldHJpYVwiKSwgdXJsKFwiLi4vZm9udHMvZ2VvbWV0cmlhL0dlb21ldHJpYS5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9nZW9tZXRyaWEvR2VvbWV0cmlhLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSwgdXJsKFwiLi4vZm9udHMvZ2VvbWV0cmlhL0dlb21ldHJpYS50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnR2VvbWV0cmlhJztcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9nZW9tZXRyaWEvR2VvbWV0cmlhLUJvbGQuZW90XCIpO1xuICBzcmM6IGxvY2FsKFwiR2VvbWV0cmlhIEJvbGRcIiksIGxvY2FsKFwiR2VvbWV0cmlhLUJvbGRcIiksIHVybChcIi4uL2ZvbnRzL2dlb21ldHJpYS9HZW9tZXRyaWEtQm9sZC5lb3Q/I2llZml4XCIpIGZvcm1hdChcImVtYmVkZGVkLW9wZW50eXBlXCIpLCB1cmwoXCIuLi9mb250cy9nZW9tZXRyaWEvR2VvbWV0cmlhLUJvbGQud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9nZW9tZXRyaWEvR2VvbWV0cmlhLUJvbGQudHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG4uY29udGFpbmVyOmJlZm9yZSwgLndyYXBwZXI6YmVmb3JlLCAuaGVhZGVyQ29udGVudDpiZWZvcmUsIC5uYXY6YmVmb3JlLCAucGFnZTpiZWZvcmUsIC5mb290ZXJDb250ZW50OmJlZm9yZSwgLmhlYWRlcjpiZWZvcmUsIC5sb2dvOmJlZm9yZSwgLmZvb3RlcjpiZWZvcmUsIC5jb250ZW50OmJlZm9yZSwgLnByb2R1Y3Q6YmVmb3JlLCAuZ2FsbGVyeTpiZWZvcmUsIC5jb250YWluZXI6YWZ0ZXIsIC53cmFwcGVyOmFmdGVyLCAuaGVhZGVyQ29udGVudDphZnRlciwgLm5hdjphZnRlciwgLnBhZ2U6YWZ0ZXIsIC5mb290ZXJDb250ZW50OmFmdGVyLCAuaGVhZGVyOmFmdGVyLCAubG9nbzphZnRlciwgLmZvb3RlcjphZnRlciwgLmNvbnRlbnQ6YWZ0ZXIsIC5wcm9kdWN0OmFmdGVyLCAuZ2FsbGVyeTphZnRlciB7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBjb250ZW50OiBcIlwiO1xuICBsaW5lLWhlaWdodDogMDtcbn1cblxuLmNvbnRhaW5lcjphZnRlciwgLndyYXBwZXI6YWZ0ZXIsIC5oZWFkZXJDb250ZW50OmFmdGVyLCAubmF2OmFmdGVyLCAucGFnZTphZnRlciwgLmZvb3RlckNvbnRlbnQ6YWZ0ZXIsIC5oZWFkZXI6YWZ0ZXIsIC5sb2dvOmFmdGVyLCAuZm9vdGVyOmFmdGVyLCAuY29udGVudDphZnRlciwgLnByb2R1Y3Q6YWZ0ZXIsIC5nYWxsZXJ5OmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG5cbi5wYWdpbmF0aW9uIGxpLCAubWVudVRvcCBsaSwgLmxhbmcgbGksIC5tZW51Qm90dG9tIGxpIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnBhZ2luYXRpb24gbGkgYTpob3ZlciwgLm1lbnVUb3AgbGkgYTpob3ZlciwgLmxhbmcgbGkgYTpob3ZlciwgLm1lbnVCb3R0b20gbGkgYTpob3ZlciwgLnBhZ2luYXRpb24gbGkgYTpmb2N1cywgLm1lbnVUb3AgbGkgYTpmb2N1cywgLmxhbmcgbGkgYTpmb2N1cywgLm1lbnVCb3R0b20gbGkgYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLmhhbWJ1cmdlciwgLmNsb3NlLCAubWVudUxhbmcgLmFjdGl2ZSBhOmFmdGVyIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2ljb25zLnBuZ1wiKSBuby1yZXBlYXQ7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG5oMSwgaDIsIGgzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLWJvdHRvbTogMS4zMzNyZW07XG4gIGZvbnQtZmFtaWx5OiBcIkdlb21ldHJpYVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuaDEge1xuICBmb250LXNpemU6IDEuMzMzcmVtO1xuICBsaW5lLWhlaWdodDogMS45OTk1cmVtO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMS43NzhyZW07XG4gICAgbGluZS1oZWlnaHQ6IDEuOTk5NXJlbTtcbiAgfVxufVxuXG5oMiB7XG4gIGZvbnQtc2l6ZTogMS4zMzNyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjk5OTVyZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICBoMiB7XG4gICAgZm9udC1zaXplOiAxLjc3OHJlbTtcbiAgICBsaW5lLWhlaWdodDogMS45OTk1cmVtO1xuICB9XG59XG5cbmgzIHtcbiAgZm9udC1zaXplOiAxLjMzM3JlbTtcbiAgbGluZS1oZWlnaHQ6IDEuOTk5NXJlbTtcbiAgY29sb3I6ICMwMDVmOTg7XG59XG5cbmEsIGE6aG92ZXIsIGE6Zm9jdXMsIGE6dmlzaXRlZCB7XG4gIGNvbG9yOiAjMWZhZmNlO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGFsbCAuM3M7XG59XG5cbmE6aG92ZXIsIGE6Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbiAgdHJhbnNpdGlvbjogYWxsIC4zcztcbn1cblxuYiwgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmksIGVtIHtcbiAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG5wLCB1bCwgb2wsIHByZSwgdGFibGUsIGJsb2NrcXVvdGUge1xuICBmb250LXNpemU6IDFyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjMzM3JlbTtcbiAgZm9udC1mYW1pbHk6IFwiR2VvbWV0cmlhXCIsIHNhbnMtc2VyaWY7XG4gIG1hcmdpbi10b3A6IDA7XG4gIHBhZGRpbmctYm90dG9tOiAwLjY2NjVyZW07XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbnVsIHVsLCBvbCBvbCwgdWwgb2wsIG9sIHVsIHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbmhyLCAuaHIge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMzkzZjQxO1xuICBib3JkZXI6IDA7XG4gIGhlaWdodDogMXB4O1xufVxuXG5zdWIsIHN1cCB7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cblxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTtcbn1cblxuOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNlZWVlZWU7XG4gIG9wYWNpdHk6IDE7XG59XG5cbjotbW96LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNlZWVlZWU7XG4gIG9wYWNpdHk6IDE7XG59XG5cbjo6LW1vei1wbGFjZWhvbGRlciB7XG4gIGNvbG9yOiAjZWVlZWVlO1xuICBvcGFjaXR5OiAxO1xufVxuXG46LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgY29sb3I6ICNlZWVlZWU7XG4gIG9wYWNpdHk6IDE7XG59XG5cbmJ1dHRvbiB7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgdHJhbnNpdGlvbjogYWxsIC4zcztcbn1cblxuYnV0dG9uLCBpbnB1dCwgdGV4dGFyZWEsIHNlbGVjdCB7XG4gIG91dGxpbmU6IG5vbmU7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG5cbmJ1dHRvbjphY3RpdmUsIGlucHV0OmFjdGl2ZSwgdGV4dGFyZWE6YWN0aXZlLCBzZWxlY3Q6YWN0aXZlIHtcbiAgb3V0bGluZTogbm9uZTtcbn1cblxuYnV0dG9uOmZvY3VzLCBpbnB1dDpmb2N1cywgdGV4dGFyZWE6Zm9jdXMsIHNlbGVjdDpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7XG59XG5cbmJ1dHRvbiwgaW5wdXQsIHRleHRhcmVhIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXJnaW4tYm90dG9tOiAxLjMzM3JlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xufVxuXG5pbnB1dFt0eXBlPVwidGV4dFwiXSwgdGV4dGFyZWEge1xuICBwYWRkaW5nOiAwLjY2NjVyZW0gMS42OTQ5MiU7XG59XG5cbmlucHV0W3R5cGU9XCJ0ZXh0XCJdOmZvY3VzLCB0ZXh0YXJlYTpmb2N1cyB7XG4gIHRyYW5zaXRpb246IGFsbCAuM3M7XG59XG5cbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBhZGRpbmc6IDAuNjY2NXJlbSAzLjM4OTgzJTtcbn1cblxuaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciwgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSA6Zm9jdXMge1xuICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xufVxuXG4uYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBwYWRkaW5nOiAwLjY2NjVyZW0gMS4zMzNyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBib3JkZXI6IDFweCBzb2xpZCAjMWZhZmNlO1xuICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xufVxuXG4uYnV0dG9uOmhvdmVyLCAuYnV0dG9uOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzAwNWY5ODtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzMSwgMTc1LCAyMDYsIDAuMik7XG4gIHRyYW5zaXRpb246IGFsbCAuM3M7XG59XG5cbi5oYW1idXJnZXIsIC5jbG9zZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE2MHB4O1xuICBtYXJnaW4tdG9wOiA1cHg7XG4gIG1hcmdpbi1sZWZ0OiAwLjg0NzQ2JTtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbiAgb3BhY2l0eTogLjc7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAzNjBweCkge1xuICAuaGFtYnVyZ2VyLCAuY2xvc2Uge1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IDAgLTE1NXB4O1xuICB9XG59XG5cbi5jbG9zZSB7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IC00MHB4IC0xNTJweDtcbiAgdHJhbnNpdGlvbjogbm9uZTtcbn1cblxuKiB7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG4qOmJlZm9yZSwgKjphZnRlciB7XG4gIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuXG5odG1sLCBib2R5IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuXG5ib2R5IHtcbiAgZm9udC1zaXplOiAxcmVtO1xuICBsaW5lLWhlaWdodDogMS4zMzNyZW07XG4gIGZvbnQtZmFtaWx5OiBcIkdlb21ldHJpYVwiLCBzYW5zLXNlcmlmO1xuICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICBjb2xvcjogIzAwMDAwMDtcbn1cblxuaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG5cbi5jb250YWluZXIge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi53cmFwcGVyLCAuaGVhZGVyQ29udGVudCwgLm5hdiwgLnBhZ2UsIC5mb290ZXJDb250ZW50IHtcbiAgd2lkdGg6IDk2LjYxMDE3JTtcbiAgbWFyZ2luOiAwIDEuNjk0OTIlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTI4MHB4KSB7XG4gIC53cmFwcGVyLCAuaGVhZGVyQ29udGVudCwgLm5hdiwgLnBhZ2UsIC5mb290ZXJDb250ZW50IHtcbiAgICBtYXgtd2lkdGg6IDEyODBweDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxufVxuXG4ubWFpbiB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4vKiEqYmFzZWxpbmUgZ3JpZCohXG4ubWFpbiB7XG5wb3NpdGlvbjogcmVsYXRpdmU7XG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBAaW5jbHVkZSBiYXNlbGluZS1ncmlkO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgei1pbmRleDogMTAwO1xuICB9XG59XG4uaGVhZGVyQ29udGVudCwgLnBhZ2UsIC5mb290ZXJDb250ZW50IHtcbmJhY2tncm91bmQ6IHN1c3ktc3ZnLWdyaWQoKSBuby1yZXBlYXQgc2Nyb2xsO1xufSovXG4uc2hvd01vYiB7XG4gIG1pbi1oZWlnaHQ6IDEwMHZoO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgb3ZlcmZsb3cteDogc2Nyb2xsO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjM2U0NTQ3O1xufVxuXG4uaGVhZGVyIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBtYXJnaW4tbGVmdDogYXV0bztcbiAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjY5OWQ4O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiB0b3AgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1pbi1oZWlnaHQ6IDE5Ljk5NXJlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uaGVhZGVyIC5yZXNpemUge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gIC5oZWFkZXIge1xuICAgIG1pbi1oZWlnaHQ6IDE1Ljk5NnJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmhlYWRlciB7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMzY2cHgpIHtcbiAgLmhlYWRlciB7XG4gICAgYmFja2dyb3VuZC1zaXplOiAxMzY2cHggYXV0bztcbiAgfVxufVxuXG4uaGVhZGVyOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjI1KTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC5oZWFkZXI6YmVmb3JlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4uaGVhZGVyQ29udGVudCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbn1cblxuLmxvZ28ge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAyLjY2NnJlbSBhdXRvIDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5sb2dvIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBtYXJnaW4tdG9wOiAzLjk5OXJlbTtcbiAgfVxufVxuXG4ubG9nb1F1YW50dW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgZmxleC13cmFwOiB3cmFwO1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG59XG5cbi5sb2dvUXVhbnR1bSBpbWcge1xuICBtYXgtaGVpZ2h0OiA1cmVtO1xuICB3aWR0aDogYXV0bztcbiAgZmxvYXQ6IG5vbmU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAubG9nb1F1YW50dW0ge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG4gIC5sb2dvUXVhbnR1bSBpbWcge1xuICAgIGZsb2F0OiBsZWZ0O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubG9nb1F1YW50dW0ge1xuICAgIHdpZHRoOiA2Ny43OTY2MSU7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmxvZ29RdWFudHVtIHtcbiAgICB3aWR0aDogNTkuMzIyMDMlO1xuICAgIG1hcmdpbi1sZWZ0OiA2Ljc3OTY2JTtcbiAgfVxufVxuXG4ubG9nb1F1YW50dW1UZXh0IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBsaW5lLWhlaWdodDogMXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBjb2xvcjogd2hpdGU7XG4gIG1hcmdpbi1sZWZ0OiAxMHB4O1xufVxuXG4ubG9nb1F1YW50dW1UZXh0IC5xdWFudHVtIHtcbiAgbWFyZ2luLXRvcDogMS4zMzNyZW07XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAubG9nb1F1YW50dW1UZXh0IHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBmb250LXNpemU6IDFyZW07XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuXG4ucXVhbnR1bSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LXNpemU6IDEuMzMzcmVtO1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgY29sb3I6ICMwMDVmOTg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1zaGFkb3c6IDFweCAxcHggMCB3aGl0ZSwgMXB4IC0xcHggMCB3aGl0ZSwgLTFweCAxcHggMCB3aGl0ZSwgLTFweCAtMXB4IDAgd2hpdGU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAucXVhbnR1bSB7XG4gICAgZm9udC1zaXplOiAxLjc3OHJlbTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnF1YW50dW0ge1xuICAgIGZvbnQtc2l6ZTogMS43NzhyZW07XG4gIH1cbiAgLnF1YW50dW06YmVmb3JlIHtcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtdGV4dCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otcmFkaWFsLWdyYWRpZW50KGNlbnRlciwgZWxsaXBzZSBjb3ZlciwgIzAwOTVkOSAwJSwgIzAwNDQ3NyAxMDAlKTtcbiAgICAvKiBGRjMuNi0xNSAqL1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNlbnRlciwgZWxsaXBzZSBjb3ZlciwgIzAwOTVkOSAwJSwgIzAwNDQ3NyAxMDAlKTtcbiAgICAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGNlbnRlciwgIzAwOTVkOSAwJSwgIzAwNDQ3NyAxMDAlKTtcbiAgICAvKiBXM0MsIElFMTArLCBGRjE2KywgQ2hyb21lMjYrLCBPcGVyYTEyKywgU2FmYXJpNysgKi9cbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5xdWFudHVtIHtcbiAgICBmb250LXNpemU6IDIuMzY5cmVtO1xuICB9XG59XG5cbi5sb2dvT2Jvcm9uUHJvbSB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbiAgbWFyZ2luOiAxLjMzM3JlbSAwO1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmxvZ29PYm9yb25Qcm9tIGltZyB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWF4LXdpZHRoOiAzMDBweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5sb2dvT2Jvcm9uUHJvbSB7XG4gICAgd2lkdGg6IDMzLjg5ODMxJTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5sb2dvT2Jvcm9uUHJvbSB7XG4gICAgd2lkdGg6IDI1LjQyMzczJTtcbiAgICBtYXJnaW4tbGVmdDogNi43Nzk2NiU7XG4gIH1cbn1cblxuLmZvb3RlciB7XG4gIHBhZGRpbmc6IDEuMzMzcmVtIDA7XG4gIGJhY2tncm91bmQtY29sb3I6ICMzZTQ1NDc7XG59XG5cbi5mb290ZXIgLmxvZ28ge1xuICBtYXJnaW4tdG9wOiAxLjMzM3JlbTtcbn1cblxuLmZvb3RlciAubG9nb09ib3JvblByb20gaW1nIHtcbiAgbWF4LXdpZHRoOiAzMDBweDtcbn1cblxuLmZvb3RlckNvbnRlbnQge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzM5M2Y0MTtcbiAgbWFyZ2luLWJvdHRvbTogMS4zMzNyZW07XG4gIHBhZGRpbmctYm90dG9tOiAxLjMzM3JlbTtcbn1cblxuLmNvcHksIC5saW5lY29yZSB7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBsaW5lLWhlaWdodDogMS4zMzNyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgd2lkdGg6IDU3LjYyNzEyJTtcbiAgZmxvYXQ6IG5vbmU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBjb2xvcjogIzcyNzc3OTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb3B5LCAubGluZWNvcmUge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbi5saW5lY29yZSB7XG4gIHdpZHRoOiA0MC42Nzc5NyU7XG4gIG1hcmdpbjogMS4zMzNyZW0gYXV0byAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmxpbmVjb3JlIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgbWFyZ2luOiAwO1xuICB9XG59XG5cbi5saW5lY29yZSBzcGFuIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbi5saW5lY29yZSBhIHtcbiAgY29sb3I6ICM3Mjc3Nzk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi5saW5lY29yZSBhOmhvdmVyLCAubGluZWNvcmUgYTpmb2N1cyB7XG4gIGNvbG9yOiAjMTJhNWRlO1xufVxuXG4ubGluZWNvcmUgYTpob3ZlciBzcGFuLCAubGluZWNvcmUgYTpmb2N1cyBzcGFuIHtcbiAgY29sb3I6ICMwMDdjYjc7XG59XG5cbi5wYWdlIHtcbiAgbWFyZ2luOiAyLjY2NnJlbSBhdXRvO1xufVxuXG4ucGFnZVRpdGxlIHtcbiAgY29sb3I6ICMwMDVmOTg7XG59XG5cbi5wYWdlVGl0bGU6YmVmb3JlLCAucGFnZVRpdGxlOmFmdGVyIHtcbiAgY29udGVudDogbm9ybWFsO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLnBhZ2VUaXRsZSB7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otcmFkaWFsLWdyYWRpZW50KGNlbnRlciwgZWxsaXBzZSBjb3ZlciwgIzAwOTVkOSAwJSwgIzAwNDQ3NyAxMDAlKTtcbiAgICAvKiBGRjMuNi0xNSAqL1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNlbnRlciwgZWxsaXBzZSBjb3ZlciwgIzAwOTVkOSAwJSwgIzAwNDQ3NyAxMDAlKTtcbiAgICAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGNlbnRlciwgIzAwOTVkOSAwJSwgIzAwNDQ3NyAxMDAlKTtcbiAgICAvKiBXM0MsIElFMTArLCBGRjE2KywgQ2hyb21lMjYrLCBPcGVyYTEyKywgU2FmYXJpNysgKi9cbiAgfVxuICAucGFnZVRpdGxlOmJlZm9yZSwgLnBhZ2VUaXRsZTphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiA2Ljc3OTY2JTtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMwMDVmOTg7XG4gICAgbWFyZ2luLWxlZnQ6IDEuNjk0OTIlO1xuICAgIG1hcmdpbi1yaWdodDogMS42OTQ5MiU7XG4gIH1cbn1cblxuLmNvbnRlbnQgdWwge1xuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiAwLjY2NjVyZW0gYXV0bztcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb250ZW50IHVsIHtcbiAgICB3aWR0aDogOTEuNTI1NDIlO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmNvbnRlbnQgdWwge1xuICAgIHdpZHRoOiA4My4wNTA4NSU7XG4gIH1cbn1cblxuLmNvbnRlbnQgbGkge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogMTZweDtcbn1cblxuLmNvbnRlbnQgbGk6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDhweDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZjZmMzA7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuXG4uYWN0aXZpdHkge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMS4zMzNyZW07XG4gIGJvcmRlcjogMXB4IHNvbGlkICNmZjZmMzA7XG59XG5cbi5hY3Rpdml0eSBsaSB7XG4gIGNvbG9yOiAjMDA1Zjk4O1xuICBmb250LXNpemU6IDEuMzMzcmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmctYm90dG9tOiAxLjMzM3JlbTtcbn1cblxuLmFjdGl2aXR5IGxpOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IG5vbmU7XG59XG5cbi5hY3Rpdml0eSBoMSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luOiAtMi41cmVtIGF1dG8gMS4zMzNyZW07XG4gIGNvbG9yOiAjMDA1Zjk4O1xuICB3aWR0aDogODMuMDUwODUlO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbn1cblxuLmFjdGl2aXR5IGgxOmJlZm9yZSwgLmFjdGl2aXR5IGgxOmFmdGVyIHtcbiAgY29udGVudDogbm9ybWFsO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmFjdGl2aXR5IHAge1xuICAgIGZvbnQtc2l6ZTogMS4zMzNyZW07XG4gIH1cbiAgLmFjdGl2aXR5IGgxIHtcbiAgICB3aWR0aDogYXV0bztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAuYWN0aXZpdHkgaDE6YmVmb3JlIHtcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtdGV4dCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIHBhZGRpbmc6IDAgMC44NDc0NiU7XG4gIH1cbiAgLmFjdGl2aXR5IGgxOmFmdGVyIHtcbiAgICBjb250ZW50OiBhdHRyKGRhdGEtdGV4dCk7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDMuMzg5ODMlO1xuICAgIHJpZ2h0OiAxLjY5NDkyJTtcbiAgICBjb2xvcjogIzAwNWY5ODtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yYWRpYWwtZ3JhZGllbnQoY2VudGVyLCBlbGxpcHNlIGNvdmVyLCAjMDA5NWQ5IDAlLCAjMDA0NDc3IDEwMCUpO1xuICAgIC8qIEZGMy42LTE1ICovXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2VudGVyLCBlbGxpcHNlIGNvdmVyLCAjMDA5NWQ5IDAlLCAjMDA0NDc3IDEwMCUpO1xuICAgIC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyLCAjMDA5NWQ5IDAlLCAjMDA0NDc3IDEwMCUpO1xuICAgIC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xuICB9XG59XG5cbi5wcm9qZWN0LCAucHJvamVjdDIge1xuICBtYXJnaW4tdG9wOiAxLjMzM3JlbTtcbn1cblxuLnByb2plY3QyID4gLnByb2plY3ROYW1lIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC5wcm9qZWN0MiA+IC5wcm9qZWN0TmFtZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxufVxuXG4ucHJvamVjdDIgPiAucHJvamVjdENvbnRlbnQgLnByb2plY3RJbWcge1xuICBkaXNwbGF5OiBub25lO1xufVxuXG4ucHJvamVjdDIgPiAucHJvamVjdENvbnRlbnQgLnByb2plY3RUZXh0IC5wcm9qZWN0TmFtZSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBib3JkZXItbGVmdDogbm9uZTtcbiAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICBwYWRkaW5nOiAxLjMzM3JlbTtcbn1cblxuLnByb2plY3QyID4gLnByb2plY3RDb250ZW50IC5wcm9qZWN0VGV4dCAucHJvamVjdE5hbWU6aG92ZXIsIC5wcm9qZWN0MiA+IC5wcm9qZWN0Q29udGVudCAucHJvamVjdFRleHQgLnByb2plY3ROYW1lOmZvY3VzIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogIzAwNWY5ODtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgzMSwgMTc1LCAyMDYsIDAuMik7XG4gIHRyYW5zaXRpb246IGFsbCAuM3M7XG59XG5cbi5wcm9qZWN0MiA+IC5wcm9qZWN0Q29udGVudCAucHJvamVjdFRleHQgaW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzFmYWZjZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC5wcm9qZWN0MiA+IC5wcm9qZWN0Q29udGVudCAucHJvamVjdEltZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgLnByb2plY3QyID4gLnByb2plY3RDb250ZW50IC5wcm9qZWN0VGV4dCAucHJvamVjdE5hbWUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLnByb2plY3QyID4gLnByb2plY3RDb250ZW50IC5wcm9qZWN0VGV4dCBpbWcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLnByb2plY3ROYW1lIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYm9yZGVyOiAxcHggc29saWQgIzFmYWZjZTtcbiAgY29sb3I6ICMxZmFmY2U7XG4gIGZvbnQtc2l6ZTogMS4zMzNyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4ucHJvamVjdE5hbWUgc3BhbiB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5wcm9qZWN0TmFtZSBhOmhvdmVyLCAucHJvamVjdE5hbWUgYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICMwMDVmOTg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzEsIDE3NSwgMjA2LCAwLjIpO1xuICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xufVxuXG4ucHJvamVjdE5hbWUgLnByb2plY3RUZXh0TGVmdCwgLnByb2plY3ROYW1lIC5wcm9qZWN0VGV4dFJpZ2h0LCAucHJvamVjdE5hbWUgLnByb2plY3RUZXh0Q2VudGVyIHtcbiAgcGFkZGluZzogMS4zMzNyZW07XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ucHJvamVjdE5hbWUgLnByb2plY3RUZXh0TGVmdCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjMWZhZmNlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLnByb2plY3ROYW1lIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxuICAucHJvamVjdE5hbWUgLnByb2plY3RUZXh0TGVmdCB7XG4gICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgfVxufVxuXG4ucHJvamVjdENvbnRlbnQge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzFmYWZjZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG4gIC5wcm9qZWN0Q29udGVudCAucHJvamVjdFRleHQge1xuICAgIHdpZHRoOiAxMDAlO1xuICB9XG4gIC5wcm9qZWN0Q29udGVudCAucHJvamVjdEltZyB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICAucHJvamVjdENvbnRlbnQgLnByb2plY3RJbWc6bGFzdC1vZi10eXBlIHtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5wcm9qZWN0Q29udGVudCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gIH1cbn1cblxuLnByb2plY3RJbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMy4zM3JlbTtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICMxZmFmY2U7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzFmYWZjZTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzFmYWZjZTtcbiAgb3JkZXI6IDI7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAucHJvamVjdEltZyB7XG4gICAgd2lkdGg6IDIwJTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5wcm9qZWN0SW1nIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBvcmRlcjogMTtcbiAgfVxufVxuXG4ucHJvamVjdFRleHQge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgb3JkZXI6IDE7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzFmYWZjZTtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgIzFmYWZjZTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC5wcm9qZWN0VGV4dCB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICB3aWR0aDogNjAlO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLnByb2plY3RUZXh0IHtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIH1cbn1cblxuLnByb2plY3RUZXh0Q2VudGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5wcm9qZWN0VGV4dENlbnRlciBwIHtcbiAgcGFkZGluZzogMS4zMzNyZW07XG59XG5cbi5wcm9qZWN0VGV4dExlZnQge1xuICB3aWR0aDogNTAlO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAjMWZhZmNlO1xufVxuXG4ucHJvamVjdFRleHRMZWZ0IHAge1xuICBwYWRkaW5nOiAxLjMzM3JlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDYzOXB4KSB7XG4gIC5wcm9qZWN0VGV4dExlZnQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIH1cbn1cblxuLnByb2plY3RUZXh0UmlnaHQge1xuICB3aWR0aDogNTAlO1xuICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuLnByb2plY3RUZXh0UmlnaHQgcCB7XG4gIHBhZGRpbmc6IDEuMzMzcmVtO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNjM5cHgpIHtcbiAgLnByb2plY3RUZXh0UmlnaHQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxufVxuXG4ucHJvamVjdE5hbWVMLCAucHJvamVjdE5hbWVSIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDEuMzMzcmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAucHJvamVjdE5hbWVMLCAucHJvamVjdE5hbWVSIHtcbiAgICB3aWR0aDogMzMlO1xuICB9XG59XG5cbi5wcm9qZWN0TmFtZUMge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogMS4zMzNyZW07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjMWZhZmNlO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzFmYWZjZTtcbiAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gIGJvcmRlci1yaWdodDogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLnByb2plY3ROYW1lQyB7XG4gICAgd2lkdGg6IDM0JTtcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjMWZhZmNlO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMxZmFmY2U7XG4gIH1cbn1cblxuLmVycm9yX25hbWUuZXJyb3IsIC5lcnJvcl91c2VyRW1haWwuZXJyb3IsIC5lcnJvcl9tZXNzYWdlLmVycm9yIHtcbiAgbWFyZ2luLXRvcDogLTEuMzMzcmVtO1xuICBmb250LXNpemU6IDAuOXJlbTtcbn1cblxuLmxlZnRTaWRlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZsb2F0OiBub25lO1xufVxuXG4ubGVmdFNpZGUgKyAucHJvZHVjdCwgLmxlZnRTaWRlICsgLmNvbnRlbnQge1xuICBtYXJnaW4tbGVmdDogMDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAubGVmdFNpZGUge1xuICAgIHdpZHRoOiAyNzBweDtcbiAgICBmbG9hdDogbGVmdDtcbiAgfVxuICAubGVmdFNpZGUgKyAucHJvZHVjdCwgLmxlZnRTaWRlICsgLmNvbnRlbnQge1xuICAgIG1hcmdpbi1sZWZ0OiAzMzBweDtcbiAgfVxufVxuXG4uYWN0aXZpdHlMZWZ0IGgzIHtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBjb2xvcjogIzAwNWY5ODtcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yYWRpYWwtZ3JhZGllbnQoY2VudGVyLCBlbGxpcHNlIGNvdmVyLCAjMDA5NWQ5IDAlLCAjMDA0NDc3IDEwMCUpO1xuICAvKiBGRjMuNi0xNSAqL1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjZW50ZXIsIGVsbGlwc2UgY292ZXIsICMwMDk1ZDkgMCUsICMwMDQ0NzcgMTAwJSk7XG4gIC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJhZGlhbC1ncmFkaWVudChlbGxpcHNlIGF0IGNlbnRlciwgIzAwOTVkOSAwJSwgIzAwNDQ3NyAxMDAlKTtcbiAgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXG59XG5cbi5hY3Rpdml0eUxlZnQgbGkge1xuICBjb2xvcjogIzAwNWY5ODtcbiAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICBtYXJnaW4tYm90dG9tOiAwLjY2NjVyZW07XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLmFjdGl2aXR5TGVmdCBsaTpiZWZvcmUge1xuICBjb250ZW50OiAnJztcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDhweDtcbiAgbGVmdDogMDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIHdpZHRoOiA4cHg7XG4gIGhlaWdodDogOHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmY2ZjMwO1xufVxuXG4uY2F0YWxvZ0l0ZW0ge1xuICBib3JkZXI6IDFweCBzb2xpZCAjMWZhZmNlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbjogMC42NjY1cmVtIGF1dG8gMS45OTk1cmVtO1xuICBwYWRkaW5nLWJvdHRvbTogMS4zMzNyZW07XG4gIC13ZWJraXQtYm94LXNoYWRvdzogM3B4IDNweCA2cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4yKTtcbiAgLW1vei1ib3gtc2hhZG93OiAzcHggM3B4IDZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xuICBib3gtc2hhZG93OiAzcHggM3B4IDZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjIpO1xufVxuXG4uY2F0YWxvZ0l0ZW06bnRoLWNoaWxkKDJuKSAuY2F0YWxvZ0l0ZW1JbmZvIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xufVxuXG4uY2F0YWxvZ0l0ZW06bnRoLWNoaWxkKDJuKSAuY2F0YWxvZ0l0ZW1UZXh0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIHBhZGRpbmctbGVmdDogMDtcbiAgcGFkZGluZy1yaWdodDogMS4zMzNyZW07XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY2F0YWxvZ0l0ZW06bnRoLWNoaWxkKDJuKSAuY2F0YWxvZ0l0ZW1UZXh0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICB9XG59XG5cbi5jYXRhbG9nSXRlbUhlYWRlciB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEuMzMzcmVtO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzFmYWZjZTtcbiAgY29sb3I6ICMxZmFmY2U7XG4gIGZvbnQtc2l6ZTogMS4zMzNyZW07XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uY2F0YWxvZ0l0ZW1IZWFkZXIgc3BhbiB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5jYXRhbG9nSXRlbUluZm8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBwYWRkaW5nOiAxLjMzM3JlbTtcbn1cblxuLmNhdGFsb2dJdGVtSW1nIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAyNS40MjM3MyU7XG4gIG1pbi1oZWlnaHQ6IDcuOTk4cmVtO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWcvbm9fcGhvdG8ucG5nXCIpO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gIGJvcmRlcjogMXB4IHNvbGlkICMxZmFmY2U7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY2F0YWxvZ0l0ZW1JbWcge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cblxuLmNhdGFsb2dJdGVtVGV4dCB7XG4gIHdpZHRoOiA3NC41NzYyNyU7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmctbGVmdDogMS4zMzNyZW07XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAuY2F0YWxvZ0l0ZW1UZXh0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cbn1cblxuLnBhZ2luYXRpb24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5wYWdpbmF0aW9uIHVsIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB3aWR0aDogYXV0bztcbn1cblxuLnBhZ2luYXRpb24gbGkge1xuICBwYWRkaW5nOiAwIDVweDtcbiAgZm9udC1zaXplOiAxcmVtO1xufVxuXG4ucGFnaW5hdGlvbiBsaTpiZWZvcmUge1xuICBjb250ZW50OiBub25lO1xufVxuXG4ucGFnaW5hdGlvbiBhLCAucGFnaW5hdGlvbiBhOnZpc2l0ZWQsIC5wYWdpbmF0aW9uIHNwYW4ge1xuICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICBoZWlnaHQ6IDMwcHg7XG4gIHdpZHRoOiAzMHB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjMWZhZmNlO1xuICBjb2xvcjogcGFsZXR0ZSh0ZXh0LWJyb3duKTtcbn1cblxuLnBhZ2luYXRpb24gYTpob3ZlciwgLnBhZ2luYXRpb24gYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgY29sb3I6ICMwMDVmOTg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzEsIDE3NSwgMjA2LCAwLjIpO1xuICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5wYWdpbmF0aW9uIC5hY3RpdmUgPiBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBjb2xvcjogI2ZmNmYzMDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmNmYzMDtcbiAgdHJhbnNpdGlvbjogYWxsIC4zcztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4ucGFnaW5hdGlvbiAuZGlzYWJsZWQsIC5wYWdpbmF0aW9uIC5jb250cm9sIHtcbiAgbGluZS1oZWlnaHQ6IDBweDtcbiAgZm9udC1zaXplOiAwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgY29sb3I6IHRyYW5zcGFyZW50O1xufVxuXG4ucGFnaW5hdGlvbiAuY29udHJvbDpob3ZlciwgLnBhZ2luYXRpb24gLmNvbnRyb2w6Zm9jdXMsIC5wYWdpbmF0aW9uIC5kaXNhYmxlZCB7XG4gIG9wYWNpdHk6IC41O1xufVxuXG4ucGFnaW5hdGlvbiBsaTpudGgtb2YtdHlwZSgxKSBhLCAucGFnaW5hdGlvbiBsaTpudGgtb2YtdHlwZSgxKSBzcGFuIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2ZpcnN0LnBuZ1wiKSBsZWZ0IHRvcCBuby1yZXBlYXQ7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLnBhZ2luYXRpb24gbGk6bnRoLW9mLXR5cGUoMikgYSwgLnBhZ2luYXRpb24gbGk6bnRoLW9mLXR5cGUoMikgc3BhbiB7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9wcmV2LnBuZ1wiKSBsZWZ0IHRvcCBuby1yZXBlYXQ7XG4gIGJvcmRlcjogbm9uZTtcbn1cblxuLnBhZ2luYXRpb24gbGk6bnRoLWxhc3Qtb2YtdHlwZSgxKSBhLCAucGFnaW5hdGlvbiBsaTpudGgtbGFzdC1vZi10eXBlKDEpIHNwYW4ge1xuICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvbGFzdC5wbmdcIikgbGVmdCB0b3Agbm8tcmVwZWF0O1xuICBib3JkZXI6IG5vbmU7XG59XG5cbi5wYWdpbmF0aW9uIGxpOm50aC1sYXN0LW9mLXR5cGUoMikgYSwgLnBhZ2luYXRpb24gbGk6bnRoLWxhc3Qtb2YtdHlwZSgyKSBzcGFuIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL25leHQucG5nXCIpIGxlZnQgdG9wIG5vLXJlcGVhdDtcbiAgYm9yZGVyOiBub25lO1xufVxuXG4ucHJvZHVjdCBoMyB7XG4gIGZvbnQtc2l6ZTogMXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMzMzcmVtO1xuICBjb2xvcjogIzAwNWY5ODtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4ucHJvZHVjdCB1bCB7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG4ucHJvZHVjdCBsaSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZy1sZWZ0OiAxNnB4O1xufVxuXG4ucHJvZHVjdCBsaTpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogOHB4O1xuICBsZWZ0OiAwO1xuICB3aWR0aDogNXB4O1xuICBoZWlnaHQ6IDVweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzFmYWZjZTtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG59XG5cbi5wcm9kdWN0IGxpIGxpOmJlZm9yZSB7XG4gIHRvcDogMTBweDtcbiAgd2lkdGg6IDlweDtcbiAgaGVpZ2h0OiAycHg7XG4gIG1hcmdpbi1sZWZ0OiAxcHg7XG59XG5cbi5wcm9kdWN0IHRhYmxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMS4zMzNyZW0gYXV0bztcbn1cblxuLnByb2R1Y3QgdGFibGUgY2FwdGlvbiB7XG4gIGNvbG9yOiAjMDA1Zjk4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAwLjY2NjVyZW0gMDtcbn1cblxuLnByb2R1Y3QgdGFibGUgdGgge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cblxuLnByb2R1Y3QgdGFibGUgdGQsIC5wcm9kdWN0IHRhYmxlIHRoIHtcbiAgcGFkZGluZzogMC42NjY1cmVtIDA7XG4gIHdpZHRoOiA2MCU7XG4gIHZlcnRpY2FsLWFsaWduOiBib3R0b207XG59XG5cbi5wcm9kdWN0IHRhYmxlIHRkOmZpcnN0LW9mLXR5cGUsIC5wcm9kdWN0IHRhYmxlIHRoOmZpcnN0LW9mLXR5cGUge1xuICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4ucHJvZHVjdCB0YWJsZSB0ZCBwLCAucHJvZHVjdCB0YWJsZSB0aCBwIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG59XG5cbi5wcm9kdWN0IHRhYmxlIHRkOm50aC1jaGlsZCgyKSwgLnByb2R1Y3QgdGFibGUgdGg6bnRoLWNoaWxkKDIpIHtcbiAgd2lkdGg6IDQwJTtcbiAgcGFkZGluZy1sZWZ0OiAxMCU7XG59XG5cbi5wcm9kdWN0IHRhYmxlIHRyIHtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMxZmFmY2U7XG59XG5cbi5wcm9kdWN0IHRhYmxlIHRyOmZpcnN0LW9mLXR5cGUge1xuICBib3JkZXItdG9wOiAxcHggc29saWQgIzFmYWZjZTtcbn1cblxuLnByb2R1Y3QgLnRhYmxlR3JvdXAge1xuICBib3JkZXItYm90dG9tOiBub25lO1xufVxuXG4ucHJvZHVjdCAudGFibGVHcm91cDpub3QoZmlyc3Qtb2YtdHlwZSkgdGQge1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLnRhYmxlQ29udGFpbmVyIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi50YWJsZUNvbnRhaW5lciB0YWJsZSB7XG4gIG1pbi13aWR0aDogNjUwcHg7XG59XG5cbi5jb250ZW50Q29udGFpbmVyIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5pbmRtYXJrMiA+IHAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogMTZweDtcbn1cblxuLmluZG1hcmsyID4gcDpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMTBweDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiAxcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xufVxuXG4uaW5kbWFyazEgPiBwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDI4cHg7XG59XG5cbi5pbmRtYXJrMSA+IHA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcIjtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDhweDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDRweDtcbiAgaGVpZ2h0OiA0cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDA7XG4gIG1hcmdpbi1yaWdodDogOHB4O1xuICBtYXJnaW4tbGVmdDogMTZweDtcbiAgYm9yZGVyLXJhZGl1czogNTAlO1xufVxuXG4uaW5kbWFyayA+IHAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogNDBweDtcbn1cblxuLmluZG1hcmsgPiBwOmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDhweDtcbiAgbGVmdDogMDtcbiAgd2lkdGg6IDA7XG4gIGhlaWdodDogMDtcbiAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIG1hcmdpbi1sZWZ0OiAyOHB4O1xuICBib3JkZXI6IDNweCBzb2xpZDtcbiAgYm9yZGVyLWxlZnQtY29sb3I6ICMwMDAwMDA7XG59XG5cbi5jb250ZW50UmlnaHQge1xuICBwYWRkaW5nLXRvcDogMC42NjY1cmVtO1xuICBmbG9hdDogbm9uZTtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctbGVmdDogMDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5jb250ZW50UmlnaHQge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB3aWR0aDogNTAlO1xuICAgIHBhZGRpbmctbGVmdDogNSU7XG4gIH1cbn1cblxuLmNvbnRlbnRMZWZ0IHtcbiAgcGFkZGluZy10b3A6IDAuNjY2NXJlbTtcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmNvbnRlbnRMZWZ0IHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogNTAlO1xuICAgIHBhZGRpbmctcmlnaHQ6IDUlO1xuICB9XG59XG5cbnRhYmxlLmluIHtcbiAgbWFyZ2luOiAwO1xufVxuXG50YWJsZS5pbiB0ZCwgdGFibGUuaW4gdGQ6bnRoLWNoaWxkKDIpIHtcbiAgd2lkdGg6IDUwJTtcbn1cblxudGFibGUuaW4gdHIsIHRhYmxlLmluIHRyOmZpcnN0LW9mLXR5cGUge1xuICBib3JkZXI6IDA7XG59XG5cbi5rYXNrYWQgdGQsIC5rYXNrYWQgdGgge1xuICB3aWR0aDogMzAlO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLmthc2thZCB0ZCBwLCAua2Fza2FkIHRoIHAge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5rYXNrYWQgdGQ6bnRoLWNoaWxkKDEpLCAua2Fza2FkIHRoOm50aC1jaGlsZCgxKSB7XG4gIHdpZHRoOiA0MCU7XG59XG5cbi5rYXNrYWQgdGQ6bnRoLWNoaWxkKDEpIHAsIC5rYXNrYWQgdGg6bnRoLWNoaWxkKDEpIHAge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4ucHJvZHVjdFRpdGxlIHtcbiAgY29sb3I6ICNmZjZmMzA7XG4gIG1hcmdpbjogMCBhdXRvO1xuICAvKlxuICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiBzcGFuKDEgb2YgMTIpO1xuICAgIGhlaWdodDogMTBweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGxpbms7XG4gICAgbWFyZ2luLWxlZnQ6IGd1dHRlcigpO1xuICAgIG1hcmdpbi1yaWdodDogZ3V0dGVyKCk7XG4gIH0qL1xufVxuXG4ucHJvZHVjdFBob3RvUiB7XG4gIHdpZHRoOiA0MCU7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IDEuMzMzcmVtO1xuICBtYXJnaW4tYm90dG9tOiAxLjMzM3JlbTtcbiAgbWFyZ2luLXRvcDogMC42NjY1cmVtO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgLnByb2R1Y3RQaG90b1Ige1xuICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgZmxvYXQ6IG5vbmU7XG4gIH1cbn1cblxuLnByb2R1Y3RQaG90b0wge1xuICB3aWR0aDogNDAlO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiAxLjMzM3JlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS4zMzNyZW07XG4gIG1hcmdpbi10b3A6IDAuNjY2NXJlbTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4gIC5wcm9kdWN0UGhvdG9MIHtcbiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxufVxuXG4ucHJvZHVjdEltYWdlcyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnByb2R1Y3RJbWFnZXMgaW1nIHtcbiAgbWFyZ2luOiAwLjY2NjVyZW0gMDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC5wcm9kdWN0SW1hZ2VzIGltZyB7XG4gICAgbWF4LWhlaWdodDogMjAwcHg7XG4gICAgbWFyZ2luOiAwIDAuNjY2NXJlbTtcbiAgfVxufVxuXG4uYWJvdXRQaG90byB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIG1hcmdpbjogMS4zMzNyZW0gYXV0byAyLjY2NnJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC5hYm91dFBob3RvIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxufVxuXG4uYWJvdXRQaG90b1RpdGxlIHtcbiAgY29sb3I6ICMxZmFmY2U7XG4gIG1hcmdpbjogMS4zMzNyZW0gYXV0byAwLjY2NjVyZW07XG59XG5cbi5hYm91dFBob3RvSXRlbTEge1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1ib3R0b206IDEuMzMzcmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNjQwcHgpIHtcbiAgLmFib3V0UGhvdG9JdGVtMSB7XG4gICAgd2lkdGg6IDMyLjIwMzM5JTtcbiAgICBtYXJnaW4tcmlnaHQ6IDEuNjk0OTIlO1xuICB9XG4gIC5hYm91dFBob3RvSXRlbTE6bGFzdC1vZi10eXBlIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gIH1cbn1cblxuLmFib3V0UGhvdG9JdGVtMiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG4uYWJvdXRQaG90b0l0ZW0yIC5hYm91dFBob3RvSW1nIHtcbiAgd2lkdGg6IDQ4LjcyODgxJTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDY0MHB4KSB7XG4gIC5hYm91dFBob3RvSXRlbTIge1xuICAgIHdpZHRoOiA2Ni4xMDE2OSU7XG4gIH1cbn1cblxuLmFib3V0UGhvdG9JdGVtMSwgLmFib3V0UGhvdG9JdGVtMiB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA2NDBweCkge1xuICAuYWJvdXRQaG90b0l0ZW0xLCAuYWJvdXRQaG90b0l0ZW0yIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG5cbi5hYm91dFBob3RvSW1nIHtcbiAgaGVpZ2h0OiAxMy4zM3JlbTtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3Zlcjtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDEwMjRweCkge1xuICAuYWJvdXRQaG90b0ltZyB7XG4gICAgaGVpZ2h0OiAxOS45OTVyZW07XG4gIH1cbn1cblxuLmFib3V0UGhvdG9DYXB0aW9uIHtcbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMC45cmVtO1xuICBjb2xvcjogIzFmYWZjZTtcbiAgcGFkZGluZy10b3A6IDAuNjY2NXJlbTtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5hYm91dFBob3RvQ2FwdGlvbiB7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuICB9XG59XG5cbi5nYWxsZXJ5IHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAxLjMzM3JlbSAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi5nYWxsZXJ5SXRlbSwgLmdhbGxlcnlJdGVtSW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjMzM3JlbTtcbiAgcGFkZGluZy1ib3R0b206IDIuNjY2cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLmdhbGxlcnlJdGVtLCAuZ2FsbGVyeUl0ZW1JbiB7XG4gICAgd2lkdGg6IDQ5LjE1MjU0JTtcbiAgICBtYXJnaW4tbGVmdDogMS42OTQ5MiU7XG4gIH1cbiAgLmdhbGxlcnlJdGVtOm50aC1jaGlsZCgybisxKSwgLmdhbGxlcnlJdGVtSW46bnRoLWNoaWxkKDJuKzEpIHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLmdhbGxlcnlJdGVtLCAuZ2FsbGVyeUl0ZW1JbiB7XG4gICAgd2lkdGg6IDMyLjIwMzM5JTtcbiAgfVxuICAuZ2FsbGVyeUl0ZW06bnRoLWNoaWxkKDJuKzEpLCAuZ2FsbGVyeUl0ZW1JbjpudGgtY2hpbGQoMm4rMSkge1xuICAgIG1hcmdpbi1sZWZ0OiAxLjY5NDkyJTtcbiAgfVxuICAuZ2FsbGVyeUl0ZW06bnRoLWNoaWxkKDNuKzEpLCAuZ2FsbGVyeUl0ZW1JbjpudGgtY2hpbGQoM24rMSkge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLmdhbGxlcnlJdGVtLCAuZ2FsbGVyeUl0ZW1JbiB7XG4gICAgd2lkdGg6IDIzLjcyODgxJTtcbiAgfVxuICAuZ2FsbGVyeUl0ZW06bnRoLWNoaWxkKDNuKzEpLCAuZ2FsbGVyeUl0ZW1JbjpudGgtY2hpbGQoM24rMSkge1xuICAgIG1hcmdpbi1sZWZ0OiAxLjY5NDkyJTtcbiAgfVxuICAuZ2FsbGVyeUl0ZW06bnRoLWNoaWxkKDRuKzEpLCAuZ2FsbGVyeUl0ZW1JbjpudGgtY2hpbGQoNG4rMSkge1xuICAgIG1hcmdpbi1sZWZ0OiAwO1xuICB9XG59XG5cbi5nYWxsZXJ5SXRlbTpob3ZlciwgLmdhbGxlcnlJdGVtOmZvY3VzLCAuZ2FsbGVyeUl0ZW1Jbjpob3ZlciwgLmdhbGxlcnlJdGVtSW46Zm9jdXMge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5nYWxsZXJ5SXRlbTpob3ZlciAuZ2FsbGVyeUl0ZW1PdmVybGF5LCAuZ2FsbGVyeUl0ZW06Zm9jdXMgLmdhbGxlcnlJdGVtT3ZlcmxheSwgLmdhbGxlcnlJdGVtSW46aG92ZXIgLmdhbGxlcnlJdGVtT3ZlcmxheSwgLmdhbGxlcnlJdGVtSW46Zm9jdXMgLmdhbGxlcnlJdGVtT3ZlcmxheSB7XG4gIGhlaWdodDogY2FsYygxMDAlIC0gMioxLjMzM3JlbSk7XG4gIGJvdHRvbTogMi42NjZyZW07XG4gIGNvbG9yOiB3aGl0ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1NywgNjMsIDY1LCAwLjgpO1xuICBwYWRkaW5nLXRvcDogMS4zMzNyZW07XG4gIHRyYW5zaXRpb246IGFsbCAxcztcbn1cblxuLmdhbGxlcnlJdGVtOmhvdmVyIC5nYWxsZXJ5SXRlbU1vcmUsIC5nYWxsZXJ5SXRlbTpmb2N1cyAuZ2FsbGVyeUl0ZW1Nb3JlLCAuZ2FsbGVyeUl0ZW1Jbjpob3ZlciAuZ2FsbGVyeUl0ZW1Nb3JlLCAuZ2FsbGVyeUl0ZW1Jbjpmb2N1cyAuZ2FsbGVyeUl0ZW1Nb3JlIHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5nYWxsZXJ5SXRlbSBpbWcsIC5nYWxsZXJ5SXRlbUluIGltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xufVxuXG4uZ2FsbGVyeUl0ZW1JbiB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuXG4uZ2FsbGVyeUl0ZW1JbjpiZWZvcmUge1xuICBjb250ZW50OiBcIlwiO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy96b29tLnN2Z1wiKSBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgd2lkdGg6IDUwJTtcbiAgaGVpZ2h0OiA1MCU7XG4gIGxlZnQ6IDI1JTtcbiAgdG9wOiAyNSU7XG4gIG9wYWNpdHk6IC41O1xuICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xufVxuXG4uZ2FsbGVyeUl0ZW1Jbjpob3ZlcjpiZWZvcmUsIC5nYWxsZXJ5SXRlbUluOmZvY3VzOmJlZm9yZSB7XG4gIG9wYWNpdHk6IDE7XG4gIHRyYW5zaXRpb246IGFsbCAuM3M7XG59XG5cbi5nYWxsZXJ5SXRlbU92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcmlnaHQ6IDA7XG4gIHBhZGRpbmc6IDAuNjY2NXJlbSAxLjMzM3JlbTtcbiAgaGVpZ2h0OiAyLjY2NnJlbTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogYWxsIDFzO1xufVxuXG4uZ2FsbGVyeUltZ0NhcHRpb24ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4uZ2FsbGVyeUltZ0NhcHRpb24gc3BhbiB7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5cbi5nYWxsZXJ5SW1nQ2FwdGlvbiArIHAge1xuICBmb250LXNpemU6IC45cmVtO1xufVxuXG4uZ2FsbGVyeUl0ZW1Nb3JlIHtcbiAgZGlzcGxheTogbm9uZTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogOHJlbTtcbiAgYm90dG9tOiAxLjMzM3JlbTtcbiAgbGVmdDogNTAlO1xuICBtYXJnaW4tbGVmdDogLTRyZW07XG4gIGNvbG9yOiB3aGl0ZTtcbiAgcGFkZGluZzogMC42NjY1cmVtIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYm9yZGVyOiAxcHggc29saWQgd2hpdGU7XG59XG5cbi5jb250YWN0SW5mbyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1hbmFnZXJzIHtcbiAgd2lkdGg6IDc3MHB4O1xuICBtYXJnaW46IGF1dG87XG4gIHBhZGRpbmctdG9wOiAyLjY2NnJlbTtcbn1cblxuLm1hbmFnZXJzIGgzIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5tYW5hZ2VycyBwIHtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLm1hbmFnZXJzIHA6bGFzdC1vZi10eXBlIHtcbiAgcGFkZGluZy1ib3R0b206IDEuMzMzcmVtO1xufVxuXG4uYWRkcmVzcyB7XG4gIHdpZHRoOiA0NzBweDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5hZGRyZXNzIHAge1xuICBjb2xvcjogIzdhODM4NjtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zaXplOiAxcmVtO1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICBwYWRkaW5nLWJvdHRvbTogMDtcbn1cblxuLmFkZHJlc3MgcDpsYXN0LW9mLXR5cGUge1xuICBwYWRkaW5nLWJvdHRvbTogMS4zMzNyZW07XG59XG5cbi5hZGRyZXNzIHNwYW4ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogIzFmYWZjZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA0ODBweCkge1xuICAuYWRkcmVzcyBzcGFuIHtcbiAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cbn1cblxuLmFkZHJlc3Mgc3Ryb25nIHtcbiAgY29sb3I6IGJsYWNrO1xufVxuXG4ucGhvbmUge1xuICBmb250LXNpemU6IDEuMzMzcmVtO1xuICBsaW5lLWhlaWdodDogMi42NjZyZW07XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnBob25lOmxhc3Qtb2YtdHlwZSB7XG4gIG1hcmdpbi1ib3R0b206IDIuNjY2cmVtO1xufVxuXG4ucGhvbmUgc3BhbiB7XG4gIGNvbG9yOiAjMWZhZmNlO1xuICBmb250LXNpemU6IDEuNzc4cmVtO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLnBob25lIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMi4zNjlyZW07XG4gIH1cbn1cblxuLnBob25lIHN0cm9uZyB7XG4gIGNvbG9yOiAjN2E4Mzg2O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgLnBob25lIHN0cm9uZyB7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICAgIHdpZHRoOiBhdXRvO1xuICB9XG59XG5cbiNtYXAge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1MDBweDtcbn1cblxuLm5hdiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi1oZWlnaHQ6IDEuOTk5NXJlbTtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5tZW51VG9wIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLm1lbnVUb3AgbGkge1xuICB3aWR0aDogMjAlO1xufVxuXG4ubWVudVRvcCBhLCAubWVudVRvcCBhOmhvdmVyLCAubWVudVRvcCBhOmZvY3VzLCAubWVudVRvcCBhOnZpc2l0ZWQge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBjb2xvcjogYmxhY2s7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBib3JkZXItdG9wOiA0cHggc29saWQgd2hpdGU7XG59XG5cbi5tZW51VG9wIC5hY3RpdmUgPiBhLCAubWVudVRvcCBhOmhvdmVyLCAubWVudVRvcCBhOmZvY3VzIHtcbiAgYm9yZGVyLXRvcDogNHB4IHNvbGlkICNmZjZmMzA7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWVudVRvcCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogMTAyNHB4KSB7XG4gIC5tZW51VG9wIHtcbiAgICB3aWR0aDogODYuNDQwNjglO1xuICB9XG59XG5cbi5tZW51TGFuZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMTVweDtcbn1cblxuLm1lbnVMYW5nIGxpIHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5tZW51TGFuZyBhLCAubWVudUxhbmcgYTpob3ZlciwgLm1lbnVMYW5nIGE6Zm9jdXMsIC5tZW51TGFuZyBhOnZpc2l0ZWQge1xuICBtYXJnaW4tcmlnaHQ6IDE1cHg7XG4gIGNvbG9yOiB3aGl0ZTtcbn1cblxuLm1lbnVMYW5nIC5hY3RpdmUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxuLm1lbnVMYW5nIC5hY3RpdmUgYSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbn1cblxuLm1lbnVMYW5nIC5hY3RpdmUgYTphZnRlciB7XG4gIGNvbnRlbnQ6ICcnO1xuICBtYXJnaW4tbGVmdDogMTBweDtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAxMHB4O1xufVxuXG5AbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgLm1lbnVMYW5nIHtcbiAgICB0b3A6IDEuMzMzcmVtO1xuICB9XG59XG5cbi5sYW5nIGEsIC5sYW5nIGE6aG92ZXIsIC5sYW5nIGE6Zm9jdXMsIC5sYW5nIGE6dmlzaXRlZCB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDIwcHg7XG4gIG9wYWNpdHk6IC43O1xufVxuXG4ubGFuZyBhOmhvdmVyLCAubGFuZyAuYWN0aXZlIHtcbiAgb3BhY2l0eTogMTtcbn1cblxuLm1lbnVMZWZ0Q29udGFpbmVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2ZmNmYzMDtcbiAgcGFkZGluZzogMS4zMzNyZW07XG4gIG1hcmdpbjogMS4zMzNyZW0gYXV0bztcbn1cblxuLm1lbnVMZWZ0Q29udGFpbmVyIGgzIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gIGNvbG9yOiAjZmY2ZjMwO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW46IC0yLjRyZW0gYXV0byAtMS4zMzNyZW07XG4gIHdpZHRoOiA3MCU7XG59XG5cbi5tZW51TGVmdENvbnRhaW5lciBsaSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLm1lbnVMZWZ0Q29udGFpbmVyIGEsIC5tZW51TGVmdENvbnRhaW5lciBhOmhvdmVyLCAubWVudUxlZnRDb250YWluZXIgYTpmb2N1cywgLm1lbnVMZWZ0Q29udGFpbmVyIGE6dmlzaXRlZCB7XG4gIGNvbG9yOiAjMDA1Zjk4O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiAwLjY2NjVyZW0gMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMxZmFmY2U7XG59XG5cbi5tZW51TGVmdENvbnRhaW5lciBhOmhvdmVyLCAubWVudUxlZnRDb250YWluZXIgYTpmb2N1cyB7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMzEsIDE3NSwgMjA2LCAwLjIpO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5tZW51VGl0bGUge1xuICBwYWRkaW5nOiAwLjY2NjVyZW0gMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICMxZmFmY2U7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm1lbnVUaXRsZSB7XG4gICAgcGFkZGluZy10b3A6IDEuOTk5NXJlbTtcbiAgfVxufVxuXG4ubWVudUxlZnQgPiB1bCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm1lbnVMZWZ0ID4gdWwge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG5cbi5tZW51Qm90dG9tIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW46IDEuMzMzcmVtIDA7XG59XG5cbi5tZW51Qm90dG9tIGxpIHtcbiAgd2lkdGg6IDIwJTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG59XG5cbi5tZW51Qm90dG9tIGEsIC5tZW51Qm90dG9tIGE6aG92ZXIsIC5tZW51Qm90dG9tIGE6Zm9jdXMsIC5tZW51Qm90dG9tIGE6dmlzaXRlZCB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6IHdoaXRlO1xufVxuXG4ubWVudUJvdHRvbSBhOmhvdmVyLCAubWVudUJvdHRvbSBhOmZvY3VzIHtcbiAgY29sb3I6ICM3Mjc3Nzk7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiAxMDI0cHgpIHtcbiAgLm1lbnVCb3R0b20ge1xuICAgIHdpZHRoOiA4My4wNTA4NSU7XG4gICAgbWFyZ2luOiAxLjMzM3JlbSA2Ljc3OTY2JTtcbiAgfVxuICAubWVudUJvdHRvbSBsaSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA2Ljc3OTY2JTtcbiAgICBwYWRkaW5nLWxlZnQ6IDAuNTY0OTclO1xuICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjdweCkge1xuICAubWVudUJvdHRvbSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG5sYWJlbCNtb2JpbGUge1xuICBkaXNwbGF5OiBibG9jaztcbn1cblxubGFiZWwjbW9iaWxlIC5tZW51TW9iIHtcbiAgcG9zaXRpb246IGZpeGVkO1xuICBsZWZ0OiA1cHg7XG4gIHRvcDogNXB4O1xuICB6LWluZGV4OiAxMDA7XG4gIHdpZHRoOiA0MHB4O1xuICBoZWlnaHQ6IDQwcHg7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KTtcbiAgYm9yZGVyLXJhZGl1czogNTAlIDUwJSA1MCUgNTAlO1xuICB0cmFuc2l0aW9uOiAuNXMgZWFzZS1pbi1vdXQ7XG4gIGJveC1zaGFkb3c6IDAgMCAwIDAgI0ZGRiwgMCAwIDAgMCAjRkZGO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbmxhYmVsI21vYmlsZSAuaGFtYnVyZ2VyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDE1cHg7XG4gIGxlZnQ6IDhweDtcbiAgd2lkdGg6IDI0cHg7XG4gIGhlaWdodDogMnB4O1xuICBiYWNrZ3JvdW5kOiAjM2U0NTQ3O1xuICBkaXNwbGF5OiBibG9jaztcbiAgdHJhbnNmb3JtLW9yaWdpbjogY2VudGVyO1xuICB0cmFuc2l0aW9uOiAuNXMgZWFzZS1pbi1vdXQ7XG59XG5cbmxhYmVsI21vYmlsZSAuaGFtYnVyZ2VyOmFmdGVyLCBsYWJlbCNtb2JpbGUgLmhhbWJ1cmdlcjpiZWZvcmUge1xuICB0cmFuc2l0aW9uOiAuNXMgZWFzZS1pbi1vdXQ7XG4gIGNvbnRlbnQ6IFwiXCI7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDEwMCU7XG4gIGJhY2tncm91bmQ6ICMzZTQ1NDc7XG59XG5cbmxhYmVsI21vYmlsZSAuaGFtYnVyZ2VyOmJlZm9yZSB7XG4gIHRvcDogLTZweDtcbn1cblxubGFiZWwjbW9iaWxlIC5oYW1idXJnZXI6YWZ0ZXIge1xuICBib3R0b206IC02cHg7XG59XG5cbmxhYmVsI21vYmlsZSBpbnB1dCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5cbmxhYmVsI21vYmlsZSBpbnB1dDpjaGVja2VkICsgLm1lbnVNb2Ige1xuICBiYWNrZ3JvdW5kOiB3aGl0ZTtcbiAgYm94LXNoYWRvdzogMCAwIDAgMTAwdncgI0ZGRiwgMCAwIDAgMTAwdmggI0ZGRjtcbiAgYm9yZGVyLXJhZGl1czogMDtcbn1cblxubGFiZWwjbW9iaWxlIGlucHV0OmNoZWNrZWQgKyAubWVudU1vYiAuaGFtYnVyZ2VyIHtcbiAgdHJhbnNmb3JtOiByb3RhdGUoNDVkZWcpO1xufVxuXG5sYWJlbCNtb2JpbGUgaW5wdXQ6Y2hlY2tlZCArIC5tZW51TW9iIC5oYW1idXJnZXI6YWZ0ZXIge1xuICB0cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7XG4gIGJvdHRvbTogMDtcbn1cblxubGFiZWwjbW9iaWxlIGlucHV0OmNoZWNrZWQgKyAubWVudU1vYiAuaGFtYnVyZ2VyOmJlZm9yZSB7XG4gIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgdG9wOiAwO1xufVxuXG5sYWJlbCNtb2JpbGUgaW5wdXQ6Y2hlY2tlZCArIC5tZW51TW9iICsgdWwge1xuICBvcGFjaXR5OiAxO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbiAgdHJhbnNpdGlvbjogLjI1cyAuMnMgZWFzZS1pbi1vdXQ7XG59XG5cbmxhYmVsI21vYmlsZSB1bCB7XG4gIHotaW5kZXg6IDIwMDtcbiAgcG9zaXRpb246IGZpeGVkO1xuICB0b3A6IC0xMDAlO1xuICBsZWZ0OiAtMTAwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCk7XG4gIG9wYWNpdHk6IDA7XG4gIHRyYW5zaXRpb246IC4yNXMgMHMgZWFzZS1pbi1vdXQ7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjdweCkge1xuICBsYWJlbCNtb2JpbGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiIsIi8vU3VzeVxuJHN1c3k6IChcbiAgJ2NvbHVtbnMnOiBzdXN5LXJlcGVhdCgxMilcbik7XG5cbi8vIENvbG9yc1xuICAkYmc6ICNmZmZmZmY7XG4gICRiZ0dyYXk6ICMzZTQ1NDc7XG4gICRsaW5lOiAjMzkzZjQxO1xuICAkdGV4dDogIzAwMDAwMDtcbiAgJHRleHRHcmF5OiAjNzI3Nzc5O1xuICAkdGV4dEJsdWU6ICMwMDVmOTg7XG4gICRsaW5rOiAjZmY2ZjMwO1xuICAkbGlua0JsdWU6ICMxZmFmY2U7XG5cblxuLy8gRm9udHNcblxuLyogZm9udC1mYW1pbHk6IFwiR2VvbWV0cmlhXCI7ICovXG5cblxuQGZvbnQtZmFjZSB7XG4gIGZvbnQtZmFtaWx5OiAnR2VvbWV0cmlhJztcbiAgc3JjOiB1cmwoJy4uL2ZvbnRzL2dlb21ldHJpYS9HZW9tZXRyaWEuZW90Jyk7XG4gIHNyYzogbG9jYWwoJ0dlb21ldHJpYScpLFxuICB1cmwoJy4uL2ZvbnRzL2dlb21ldHJpYS9HZW9tZXRyaWEuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgdXJsKCcuLi9mb250cy9nZW9tZXRyaWEvR2VvbWV0cmlhLndvZmYnKSBmb3JtYXQoJ3dvZmYnKSxcbiAgdXJsKCcuLi9mb250cy9nZW9tZXRyaWEvR2VvbWV0cmlhLnR0ZicpIGZvcm1hdCgndHJ1ZXR5cGUnKTtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6ICdHZW9tZXRyaWEnO1xuICBzcmM6IHVybCgnLi4vZm9udHMvZ2VvbWV0cmlhL0dlb21ldHJpYS1Cb2xkLmVvdCcpO1xuICBzcmM6IGxvY2FsKCdHZW9tZXRyaWEgQm9sZCcpLCBsb2NhbCgnR2VvbWV0cmlhLUJvbGQnKSxcbiAgdXJsKCcuLi9mb250cy9nZW9tZXRyaWEvR2VvbWV0cmlhLUJvbGQuZW90PyNpZWZpeCcpIGZvcm1hdCgnZW1iZWRkZWQtb3BlbnR5cGUnKSxcbiAgdXJsKCcuLi9mb250cy9nZW9tZXRyaWEvR2VvbWV0cmlhLUJvbGQud29mZicpIGZvcm1hdCgnd29mZicpLFxuICB1cmwoJy4uL2ZvbnRzL2dlb21ldHJpYS9HZW9tZXRyaWEtQm9sZC50dGYnKSBmb3JtYXQoJ3RydWV0eXBlJyk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbiRnZW9tZXRyaWE6ICdHZW9tZXRyaWEnLCBzYW5zLXNlcmlmO1xuXG4kYm9keUZvbnQ6ICRnZW9tZXRyaWE7XG5cbiRiYXNlLWZvbnQtc2l6ZTogMTtcbiRiYXNlLWxpbmUtaGVpZ2h0OiAxLjMzMztcblxuXG4kdHlwZS1zY2FsZTogKFxuICAgICAgICAtMTogJGJhc2UtZm9udC1zaXplICogMC45cmVtLCAgLy8gc21hbGwgdGV4dFxuICAgICAgICAwOiAkYmFzZS1mb250LXNpemUgKiAxcmVtLCAgLy8gYm9keSB0ZXh0XG4gICAgICAgIDE6ICRiYXNlLWZvbnQtc2l6ZSAqIDEuMzMzcmVtLCAgLy8gbGFyZ2UgdGV4dCAoaDMpXG4gICAgICAgIDI6ICRiYXNlLWZvbnQtc2l6ZSAqIDEuNzc4cmVtLCAgLy8gaDJcbiAgICAgICAgMzogJGJhc2UtZm9udC1zaXplICogMi4zNjlyZW0gICAvLyBoMVxuKTtcbiRsaW5lLWhlaWdodDogKFxuICAgICAgICAtMTogJGJhc2UtbGluZS1oZWlnaHQgKiAxcmVtLFxuICAgICAgICAwOiAkYmFzZS1saW5lLWhlaWdodCAqIDFyZW0sXG4gICAgICAgIDE6ICRiYXNlLWxpbmUtaGVpZ2h0ICogMS41cmVtICxcbiAgICAgICAgMjogJGJhc2UtbGluZS1oZWlnaHQgKiAxLjVyZW0sXG4gICAgICAgIDM6ICRiYXNlLWxpbmUtaGVpZ2h0ICogMnJlbVxuKTtcblxuQGZ1bmN0aW9uIGxpbmVIZWlnaHQoJGxldmVsOiAwKSB7XG4gIEByZXR1cm4gbWFwLWdldCgkbGluZS1oZWlnaHQsICRsZXZlbCk7XG59XG5AZnVuY3Rpb24gdHlwZVNjYWxlKCRsZXZlbDogMCkge1xuICBAcmV0dXJuIG1hcC1nZXQoJHR5cGUtc2NhbGUsICRsZXZlbCk7XG59XG5cbi8vIEJyZWFrcG9pbnRzXG5cbiR4eHM6IDM2MHB4O1xuJHhzOiA0ODBweDtcbiRzbTogNjQwcHg7XG4kbWQ6IDc2OHB4O1xuJGxnOiAxMDI0cHg7XG4keGw6IDEyODBweDtcbiR4eGw6IDEzNjZweDtcblxuLy8gTGlicmFyaWVzXG5cbiVjbGVhcmZpeCB7XG4gICY6YmVmb3JlLFxuICAmOmFmdGVyIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICB9XG5cbiAgJjphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7XG4gIH1cbn1cbiVtZW51TGkge1xuICBsaXtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBhOmhvdmVyLCBhOmZvY3VzIHtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gIH1cbn1cbiVpY29uIHtcbiAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL2ljb25zLnBuZ1wiKSBuby1yZXBlYXQ7XG4gIHdpZHRoOiAyMHB4O1xuICBoZWlnaHQ6IDIwcHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgYm9yZGVyOiBub25lO1xuICBwYWRkaW5nOiAwO1xufVxuXG5cblxuIiwiLy8gVHlwb2dyYXBoeVxuXG5oMSwgaDIsIGgzIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nLWJvdHRvbTogbGluZUhlaWdodCgpO1xuICBmb250LWZhbWlseTogJGdlb21ldHJpYTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5cbmgxIHtcbiAgQGluY2x1ZGUgdHlwZVNldHRpbmcoMSk7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcbiAgICBAaW5jbHVkZSB0eXBlU2V0dGluZygyKTtcbiAgfVxufVxuXG5oMiB7XG4gIEBpbmNsdWRlIHR5cGVTZXR0aW5nKDEpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kKSB7XG4gICAgQGluY2x1ZGUgdHlwZVNldHRpbmcoMik7XG4gIH1cbn1cblxuaDMge1xuICBAaW5jbHVkZSB0eXBlU2V0dGluZygxKTtcbiAgY29sb3I6ICR0ZXh0Qmx1ZTtcbn1cblxuYSwgYTpob3ZlciwgYTpmb2N1cywgYTp2aXNpdGVkIHtcbiAgY29sb3I6ICRsaW5rQmx1ZTtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xufVxuYTpob3ZlciwgYTpmb2N1cyB7XG4gIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xufVxuYiwgc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG5pLCBlbSB7XG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cbnAsIHVsLCBvbCwgcHJlLCB0YWJsZSwgYmxvY2txdW90ZSB7XG4gIEBpbmNsdWRlIHR5cGVTZXR0aW5nKDApO1xuXG4gIGZvbnQtZmFtaWx5OiAkZ2VvbWV0cmlhO1xuICBtYXJnaW4tdG9wOiAwO1xuICBwYWRkaW5nLWJvdHRvbTogbGluZUhlaWdodCgpLzI7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG51bCB1bCwgb2wgb2wsIHVsIG9sLCBvbCB1bCB7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG5ociwgLmhyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGxpbmU7XG4gIGJvcmRlcjogMDtcbiAgaGVpZ2h0OiAxcHg7XG59XG5zdWIsIHN1cCB7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbn1cbnN1cCB7XG4gIHRvcDogLTAuNWVtO1xufVxuc3ViIHtcbiAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG5cbiIsIi8vIENvbnRhaW5lclxuQG1peGluIGNvbnRhaW5lcigkd2lkdGg6IDEwMCUsICRqdXN0aWZ5OiBhdXRvIGF1dG8sICRwcm9wZXJ0eTogbWF4LXdpZHRoKSB7XG4gIG1heC13aWR0aDogJHdpZHRoO1xuICBtYXJnaW4tbGVmdDogbnRoKCRqdXN0aWZ5LCAxKTtcbiAgbWFyZ2luLXJpZ2h0OiBudGgoJGp1c3RpZnksIDIpO1xufVxuXG4vLyBUeXBlIHNldHRpbmdzXG5AbWl4aW4gdHlwZVNldHRpbmcoJGxldmVsOiAwKSB7XG4gIGZvbnQtc2l6ZTogdHlwZVNjYWxlKCRsZXZlbCk7XG4gIGxpbmUtaGVpZ2h0OiBsaW5lSGVpZ2h0KCRsZXZlbCk7XG59XG4vL1BsYWNlaG9sZGVyXG5AbWl4aW4gcGxhY2Vob2xkZXIge1xuICAmOjotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyIHsgQGNvbnRlbnQ7IH1cbiAgJjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7IEBjb250ZW50OyB9XG4gICY6Oi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgeyBAY29udGVudDsgfVxuICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgIHsgQGNvbnRlbnQ7IH1cbn1cbi8vIEdhbGxlcnlcbkBtaXhpbiBnYWxsZXJ5KCRjb2x1bW5zKSB7XG4gICRndXR0ZXI6IDIlO1xuICAkY29sdW1uV2lkdGg6IDEwMCUgLyAkY29sdW1ucyAtICRndXR0ZXI7XG4gICRndXR0ZXJXaWR0aDogJGd1dHRlciokY29sdW1ucyAvICgkY29sdW1ucyAtIDEpO1xuXG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHdpZHRoOiAkY29sdW1uV2lkdGg7XG4gIGZsb2F0OiBsZWZ0O1xuXG4gIEBmb3IgJGl0ZW0gZnJvbSAxIHRocm91Z2ggJGNvbHVtbnMge1xuICAgICRudGg6ICcjeyRjb2x1bW5zfW4gKyAjeyRpdGVtfSc7XG4gICAgJjpudGgtY2hpbGQoI3skbnRofSkge1xuICAgICAgbWFyZ2luLWxlZnQ6ICgkZ3V0dGVyV2lkdGggKyAkY29sdW1uV2lkdGgpKiRpdGVtIC0gKCRndXR0ZXJXaWR0aCArICRjb2x1bW5XaWR0aCk7XG4gICAgICBtYXJnaW4tcmlnaHQ6IC0xMDAlO1xuXG4gICAgICBAaWYgJGl0ZW0gPT0gMSB7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgICAgfUBlbHNle1xuICAgICAgICBjbGVhcjogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gTGF5b3V0XG5AbWl4aW4gbGF5b3V0KCR3aWR0aDogNTAlLCAkbGF5b3V0OiBsZWZ0KSB7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGZsb2F0OiAkbGF5b3V0O1xufVxuXG4vLyBCYXNlbGluZSBncmlkXG5AbWl4aW4gYmFzZWxpbmUtZ3JpZCgpe1xuXG4gICRiYXNlbGluZS1jb2xvcjogcmdiYSg1NiwyNTUsMjU1LC44KTtcbiAgJGJhc2VsaW5lOiAkYmFzZS1saW5lLWhlaWdodCAqIDE2ICogMXB4O1xuXG4gIGJhY2tncm91bmQtaW1hZ2U6IHJlcGVhdGluZy1saW5lYXItZ3JhZGllbnQodHJhbnNwYXJlbnQgMHB4LCB0cmFuc3BhcmVudCAoJGJhc2VsaW5lIC0gMSksICRiYXNlbGluZS1jb2xvciAkYmFzZWxpbmUsICRiYXNlbGluZS1jb2xvciAkYmFzZWxpbmUpO1xufVxuXG4iLCIvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIERlZmF1bHQgVmFyaWFibGVzXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiRCcmVha3BvaW50LVNldHRpbmdzOiAoXG4gICdkZWZhdWx0IG1lZGlhJzogYWxsLFxuICAnZGVmYXVsdCBmZWF0dXJlJzogbWluLXdpZHRoLFxuICAnZGVmYXVsdCBwYWlyJzogd2lkdGgsXG5cbiAgJ2ZvcmNlIGFsbCBtZWRpYSB0eXBlJzogZmFsc2UsXG4gICd0byBlbXMnOiBmYWxzZSxcbiAgJ3RyYW5zZm9ybSByZXNvbHV0aW9ucyc6IHRydWUsXG5cbiAgJ25vIHF1ZXJpZXMnOiBmYWxzZSxcbiAgJ25vIHF1ZXJ5IGZhbGxiYWNrcyc6IGZhbHNlLFxuXG4gICdiYXNlIGZvbnQgc2l6ZSc6IDE2cHgsXG5cbiAgJ2xlZ2FjeSBzeW50YXgnOiBmYWxzZVxuKTtcblxuJGJyZWFrcG9pbnQ6ICgpICFkZWZhdWx0O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbi8vIEltcG9ydHNcbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuQGltcG9ydCBcImJyZWFrcG9pbnQvc2V0dGluZ3NcIjtcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvY29udGV4dCc7XG5AaW1wb3J0ICdicmVha3BvaW50L2hlbHBlcnMnO1xuQGltcG9ydCAnYnJlYWtwb2ludC9wYXJzZXJzJztcbkBpbXBvcnQgJ2JyZWFrcG9pbnQvbm8tcXVlcnknO1xuXG5AaW1wb3J0ICdicmVha3BvaW50L3Jlc3BvbmQtdG8nO1xuXG5AaW1wb3J0IFwiYnJlYWtwb2ludC9sZWdhY3ktc2V0dGluZ3NcIjtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBCcmVha3BvaW50IE1peGluXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuQG1peGluIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGxlZ2FjeS1zZXR0aW5ncy13YXJuaW5nO1xuXG4gIC8vIFJlc2V0IGNvbnRleHRzXG4gIEBpbmNsdWRlIHByaXZhdGUtYnJlYWtwb2ludC1yZXNldC1jb250ZXh0cygpO1xuXG4gICRicmVha3BvaW50OiBicmVha3BvaW50KCRxdWVyeSwgZmFsc2UpO1xuXG4gICRxdWVyeS1zdHJpbmc6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdxdWVyeScpO1xuICAkcXVlcnktZmFsbGJhY2s6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdmYWxsYmFjaycpO1xuXG4gICRwcml2YXRlLWJyZWFrcG9pbnQtY29udGV4dC1ob2xkZXI6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdjb250ZXh0IGhvbGRlcicpICFnbG9iYWw7XG4gICRwcml2YXRlLWJyZWFrcG9pbnQtcXVlcnktY291bnQ6IG1hcC1nZXQoJGJyZWFrcG9pbnQsICdxdWVyeSBjb3VudCcpICFnbG9iYWw7XG5cbiAgLy8gQWxsb3cgZm9yIGFuIGFzLW5lZWRlZCBvdmVycmlkZSBvciB1c2FnZSBvZiBubyBxdWVyeSBmYWxsYmFjay5cbiAgQGlmICRuby1xdWVyeSAhPSBmYWxzZSB7XG4gICAgJHF1ZXJ5LWZhbGxiYWNrOiAkbm8tcXVlcnk7XG4gIH1cblxuICBAaWYgJHF1ZXJ5LWZhbGxiYWNrICE9IGZhbHNlIHtcbiAgICAkY29udGV4dC1zZXR0ZXI6IHByaXZhdGUtYnJlYWtwb2ludC1zZXQtY29udGV4dCgnbm8tcXVlcnknLCAkcXVlcnktZmFsbGJhY2spO1xuICB9XG5cbiAgLy8gUHJpbnQgT3V0IFF1ZXJ5IFN0cmluZ1xuICBAaWYgbm90IGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyaWVzJykge1xuICAgIEBtZWRpYSAjeyRxdWVyeS1zdHJpbmd9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gIEBpZiBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykgIT0gZmFsc2Ugb3IgYnJlYWtwb2ludC1nZXQoJ25vIHF1ZXJpZXMnKSA9PSB0cnVlIHtcblxuICAgICR0eXBlOiB0eXBlLW9mKGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSk7XG4gICAgJHByaW50OiBmYWxzZTtcblxuICAgIEBpZiAoJHR5cGUgPT0gJ2Jvb2wnKSB7XG4gICAgICAkcHJpbnQ6IHRydWU7XG4gICAgfVxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSAnc3RyaW5nJykge1xuICAgICAgQGlmICRxdWVyeS1mYWxsYmFjayA9PSBicmVha3BvaW50LWdldCgnbm8gcXVlcnkgZmFsbGJhY2tzJykge1xuICAgICAgICAkcHJpbnQ6IHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICgkdHlwZSA9PSAnbGlzdCcpIHtcbiAgICAgIEBlYWNoICR3cmFwcGVyIGluIGJyZWFrcG9pbnQtZ2V0KCdubyBxdWVyeSBmYWxsYmFja3MnKSB7XG4gICAgICAgIEBpZiAkcXVlcnktZmFsbGJhY2sgPT0gJHdyYXBwZXIge1xuICAgICAgICAgICRwcmludDogdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFdyaXRlIEZhbGxiYWNrXG4gICAgQGlmICgkcXVlcnktZmFsbGJhY2sgIT0gZmFsc2UpIGFuZCAoJHByaW50ID09IHRydWUpIHtcbiAgICAgICR0eXBlLWZhbGxiYWNrOiB0eXBlLW9mKCRxdWVyeS1mYWxsYmFjayk7XG5cbiAgICAgIEBpZiAoJHR5cGUtZmFsbGJhY2sgIT0gJ2Jvb2wnKSB7XG4gICAgICAgICN7JHF1ZXJ5LWZhbGxiYWNrfSAmIHtcbiAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBwcml2YXRlLWJyZWFrcG9pbnQtcmVzZXQtY29udGV4dHMoKTtcbn1cblxuXG5AbWl4aW4gbXEoJHF1ZXJ5LCAkbm8tcXVlcnk6IGZhbHNlKSB7XG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHF1ZXJ5LCAkbm8tcXVlcnkpIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwi77u/QGluY2x1ZGUgcGxhY2Vob2xkZXIge1xyXG4gIGNvbG9yOiAjZWVlZWVlO1xyXG4gIG9wYWNpdHk6IDE7XHJcbn1cclxuXHJcbmJ1dHRvbiB7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG4gIHRyYW5zaXRpb246IGFsbCAuM3M7XHJcbn1cclxuXHJcbmJ1dHRvbiwgaW5wdXQsIHRleHRhcmVhLCBzZWxlY3Qge1xyXG4gIG91dGxpbmU6IG5vbmU7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcclxuXHJcbiAgJjphY3RpdmUge1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICB9XHJcblxyXG4gICY6Zm9jdXMge1xyXG4gICAgb3V0bGluZTogbm9uZTtcclxuICB9XHJcbn1cclxuXHJcbmJ1dHRvbiwgaW5wdXQsIHRleHRhcmVhIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgbWFyZ2luLWJvdHRvbTogbGluZUhlaWdodCgpO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xyXG59XHJcblxyXG5pbnB1dFt0eXBlPVwidGV4dFwiXSwgdGV4dGFyZWEge1xyXG4gIHBhZGRpbmc6IGxpbmVIZWlnaHQoMCkvMiBndXR0ZXIoKTtcclxuXHJcbiAgJjpmb2N1cyB7XHJcblxyXG4gICAgdHJhbnNpdGlvbjogYWxsIC4zcztcclxuICB9XHJcbn1cclxuXHJcbmxhYmVsIHtcclxuXHJcbn1cclxuXHJcbmlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxuICBwYWRkaW5nOiBsaW5lSGVpZ2h0KCkvMiBzcGFuKDEpLzI7XHJcblxyXG5cclxuICAmOmhvdmVyLCA6Zm9jdXMge1xyXG5cclxuICAgIHRyYW5zaXRpb246IGFsbCAuM3M7XHJcbiAgfVxyXG59XHJcblxyXG4uYnV0dG9uIHtcclxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XHJcbiAgcGFkZGluZzogbGluZUhlaWdodCgpLzIgbGluZUhlaWdodCgpO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XHJcbiAgYm9yZGVyOiAxcHggc29saWQgJGxpbmtCbHVlO1xyXG4gIHRyYW5zaXRpb246IGFsbCAuM3M7XHJcblxyXG4gICY6aG92ZXIsICY6Zm9jdXMge1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgY29sb3I6ICR0ZXh0Qmx1ZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGxpbmtCbHVlLCAuMik7XHJcbiAgICB0cmFuc2l0aW9uOiBhbGwgLjNzO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbi8vIEZvcm1zXHJcbi5mb3JtRmVlZGJhY2sge1xyXG5cclxufSIsIi8vLyBHcmlkIE1hdGggRW5naW5lXG4vLy8gPT09PT09PT09PT09PT09PVxuLy8vIFRoZSBgc3VgIGZ1bmN0aW9ucyBnaXZlIHlvdSBkaXJlY3QgYWNjZXNzIHRvIHRoZSBtYXRoIGxheWVyLFxuLy8vIHdpdGhvdXQgYW55IHN5bnRheC1zdWdhciBsaWtlIHNob3J0aGFuZCBwYXJzaW5nLCBhbmQgbm9ybWFsaXphdGlvbi5cbi8vLyBJZiB5b3UgcHJlZmVyIG5hbWVkIGFyZ3VtZW50cywgYW5kIHN0cmlwcGVkLWRvd24gc3ludGF4LFxuLy8vIHlvdSBjYW4gdXNlIHRoZXNlIGZ1bmN0aW9ucyBkaXJlY3RseSBpbiB5b3VyIGNvZGUg4oCTXG4vLy8gcmVwbGFjaW5nIGBzcGFuYCwgYGd1dHRlcmAsIGFuZCBgc2xpY2VgLlxuLy8vXG4vLy8gVGhlc2UgZnVuY3Rpb25zIGFyZSBhbHNvIHVzZWZ1bFxuLy8vIGZvciBidWlsZGluZyBtaXhpbnMgb3Igb3RoZXIgZXh0ZW5zaW9ucyB0byBTdXN5LlxuLy8vIEFwcGx5IHRoZSBTdXN5IHN5bnRheCB0byBuZXcgbWl4aW5zIGFuZCBmdW5jdGlvbnMsXG4vLy8gdXNpbmcgb3VyIFwiUGx1Z2luIEhlbHBlcnNcIixcbi8vLyBvciB3cml0ZSB5b3VyIG93biBzeW50YXggYW5kIHBhc3MgdGhlIG5vcm1hbGl6ZWQgcmVzdWx0cyBhbG9uZ1xuLy8vIHRvIGBzdWAgZm9yIGNvbXBpbGF0aW9uLlxuLy8vXG4vLy8gQGdyb3VwIHN1LW1hdGhcbi8vL1xuLy8vIEBzZWUgc3Utc3BhblxuLy8vIEBzZWUgc3UtZ3V0dGVyXG4vLy8gQHNlZSBzdS1zbGljZVxuLy8vIEBpZ25vcmUgX3N1LXN1bVxuLy8vIEBpZ25vcmUgX3N1LWNhbGMtc3BhblxuLy8vIEBpZ25vcmUgX3N1LWNhbGMtc3VtXG4vLy8gQGlnbm9yZSBfc3UtbmVlZHMtY2FsYy1vdXRwdXRcblxuXG5cbi8vIFN1IFNwYW5cbi8vIC0tLS0tLS1cbi8vLyBDYWxjdWxhdGVzIGFuZCByZXR1cm5zIGEgQ1NTLXJlYWR5IHNwYW4gd2lkdGgsXG4vLy8gYmFzZWQgb24gbm9ybWFsaXplZCBzcGFuIGFuZCBjb250ZXh0IGRhdGEg4oCTXG4vLy8gYSBsb3ctbGV2ZWwgdmVyc2lvbiBvZiBgc3VzeS1zcGFuYCxcbi8vLyB3aXRoIGFsbCBvZiB0aGUgbG9naWMgYW5kIG5vbmUgb2YgdGhlIHN5bnRheCBzdWdhci5cbi8vL1xuLy8vIC0gR3JpZHMgZGVmaW5lZCB3aXRoIHVuaXRsZXNzIG51bWJlcnMgd2lsbCByZXR1cm4gYCVgIHZhbHVlcy5cbi8vLyAtIEdyaWRzIGRlZmluZWQgd2l0aCBjb21wYXJhYmxlIHVuaXRzXG4vLy8gICB3aWxsIHJldHVybiBhIHZhbHVlIGluIHRoZSB1bml0cyBwcm92aWRlZC5cbi8vLyAtIEdyaWRzIGRlZmluZWQgd2l0aCBhIG1peCBvZiB1bml0cyxcbi8vLyAgIG9yIGEgY29tYmluYXRpb24gb2YgdW50aWxlc3MgbnVtYmVycyBhbmQgdW5pdC1sZW5ndGhzLFxuLy8vICAgd2lsbCByZXR1cm4gYSBgY2FsYygpYCBzdHJpbmcuXG4vLy9cbi8vLyBAZ3JvdXAgc3UtbWF0aFxuLy8vIEBzZWUgc3VzeS1zcGFuXG4vLy9cbi8vLyBAcGFyYW0ge251bWJlciB8IGxpc3R9ICRzcGFuIC1cbi8vLyAgIE51bWJlciBvciBsaXN0IG9mIGdyaWQgY29sdW1ucyB0byBzcGFuXG4vLy8gQHBhcmFtIHtsaXN0fSAkY29sdW1ucyAtXG4vLy8gICBMaXN0IG9mIGNvbHVtbnMgYXZhaWxhYmxlXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRndXR0ZXJzIC1cbi8vLyAgIFdpZHRoIG9mIGEgZ3V0dGVyIGluIGNvbHVtbi1jb21wYXJhYmxlIHVuaXRzXG4vLy8gQHBhcmFtIHswIHwgMSB8IC0xfSAkc3ByZWFkIC1cbi8vLyAgIE51bWJlciBvZiBndXR0ZXJzIHNwYW5uZWQsXG4vLy8gICByZWxhdGl2ZSB0byBgc3BhbmAgY291bnRcbi8vLyBAcGFyYW0gezAgfCAxIHwgLTF9ICRjb250YWluZXItc3ByZWFkIFskc3ByZWFkXSAtXG4vLy8gICBOdW1iZXIgb2YgZ3V0dGVycyBzcGFubmVkLFxuLy8vICAgcmVsYXRpdmUgdG8gYGNvbHVtbnNgIGNvdW50XG4vLy8gQHBhcmFtIHtpbnRlZ2VyfSAkbG9jYXRpb24gWzFdIC1cbi8vLyAgIE9wdGlvbmFsIHBvc2l0aW9uIG9mIHN1Yi1zcGFuIGFtb25nIGZ1bGwgc2V0IG9mIGNvbHVtbnNcbi8vL1xuLy8vIEByZXR1cm4ge2xlbmd0aH0gLVxuLy8vICAgUmVsYXRpdmUgb3Igc3RhdGljIGxlbmd0aCBvZiBhIHNwYW4gb24gdGhlIGdyaWRcbkBmdW5jdGlvbiBzdS1zcGFuKFxuICAkc3BhbixcbiAgJGNvbHVtbnMsXG4gICRndXR0ZXJzLFxuICAkc3ByZWFkLFxuICAkY29udGFpbmVyLXNwcmVhZDogJHNwcmVhZCxcbiAgJGxvY2F0aW9uOiAxXG4pIHtcbiAgJHNwYW46IHN1LXZhbGlkLXNwYW4oJHNwYW4pO1xuICAkY29sdW1uczogc3UtdmFsaWQtY29sdW1ucygkY29sdW1ucyk7XG4gICRndXR0ZXJzOiBzdS12YWxpZC1ndXR0ZXJzKCRndXR0ZXJzKTtcbiAgJHNwcmVhZDogc3UtdmFsaWQtc3ByZWFkKCRzcHJlYWQpO1xuXG4gIEBpZiAodHlwZS1vZigkc3BhbikgPT0gJ251bWJlcicpIHtcbiAgICBAaWYgKG5vdCB1bml0bGVzcygkc3BhbikpIHtcbiAgICAgIEByZXR1cm4gJHNwYW47XG4gICAgfVxuXG4gICAgJGxvY2F0aW9uOiBzdS12YWxpZC1sb2NhdGlvbigkc3BhbiwgJGxvY2F0aW9uLCAkY29sdW1ucyk7XG4gICAgJHNwYW46IHN1LXNsaWNlKCRzcGFuLCAkY29sdW1ucywgJGxvY2F0aW9uLCAkdmFsaWRhdGU6IGZhbHNlKTtcbiAgfVxuXG4gIEBpZiBfc3UtbmVlZHMtY2FsYy1vdXRwdXQoJHNwYW4sICRjb2x1bW5zLCAkZ3V0dGVycywgJHNwcmVhZCwgbm90ICd2YWxpZGF0ZScpIHtcbiAgICBAcmV0dXJuIF9zdS1jYWxjLXNwYW4oJHNwYW4sICRjb2x1bW5zLCAkZ3V0dGVycywgJHNwcmVhZCwgJGNvbnRhaW5lci1zcHJlYWQsIG5vdCAndmFsaWRhdGUnKTtcbiAgfVxuXG4gICRzcGFuLXdpZHRoOiBfc3Utc3VtKCRzcGFuLCAkZ3V0dGVycywgJHNwcmVhZCwgJHZhbGlkYXRlOiBmYWxzZSk7XG5cbiAgQGlmIHVuaXRsZXNzKCRzcGFuLXdpZHRoKSB7XG4gICAgJGNvbnRhaW5lci1zcHJlYWQ6IHN1LXZhbGlkLXNwcmVhZCgkY29udGFpbmVyLXNwcmVhZCk7XG4gICAgJGNvbnRhaW5lcjogX3N1LXN1bSgkY29sdW1ucywgJGd1dHRlcnMsICRjb250YWluZXItc3ByZWFkLCAkdmFsaWRhdGU6IGZhbHNlKTtcbiAgICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHNwYW4td2lkdGggLyAkY29udGFpbmVyKTtcbiAgfVxuXG4gIEByZXR1cm4gJHNwYW4td2lkdGg7XG59XG5cblxuXG4vLyBTdSBHdXR0ZXJcbi8vIC0tLS0tLS0tLVxuLy8vIENhbGN1bGF0ZXMgYW5kIHJldHVybnMgYSBDU1MtcmVhZHkgZ3V0dGVyIHdpZHRoLFxuLy8vIGJhc2VkIG9uIG5vcm1hbGl6ZWQgZ3JpZCBkYXRhIOKAk1xuLy8vIGEgbG93LWxldmVsIHZlcnNpb24gb2YgYHN1c3ktZ3V0dGVyYCxcbi8vLyB3aXRoIGFsbCBvZiB0aGUgbG9naWMgYW5kIG5vbmUgb2YgdGhlIHN5bnRheCBzdWdhci5cbi8vL1xuLy8vIC0gR3JpZHMgZGVmaW5lZCB3aXRoIHVuaXRsZXNzIG51bWJlcnMgd2lsbCByZXR1cm4gYCVgIHZhbHVlcy5cbi8vLyAtIEdyaWRzIGRlZmluZWQgd2l0aCBjb21wYXJhYmxlIHVuaXRzXG4vLy8gICB3aWxsIHJldHVybiBhIHZhbHVlIGluIHRoZSB1bml0cyBwcm92aWRlZC5cbi8vLyAtIEdyaWRzIGRlZmluZWQgd2l0aCBhIG1peCBvZiB1bml0cyxcbi8vLyAgIG9yIGEgY29tYmluYXRpb24gb2YgdW50aWxlc3MgbnVtYmVycyBhbmQgdW5pdC1sZW5ndGhzLFxuLy8vICAgd2lsbCByZXR1cm4gYSBgY2FsYygpYCBzdHJpbmcuXG4vLy9cbi8vLyBAZ3JvdXAgc3UtbWF0aFxuLy8vIEBzZWUgc3VzeS1ndXR0ZXJcbi8vL1xuLy8vIEBwYXJhbSB7bGlzdH0gJGNvbHVtbnMgLVxuLy8vICAgTGlzdCBvZiBjb2x1bW5zIGluIHRoZSBncmlkXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRndXR0ZXJzIC1cbi8vLyAgIFdpZHRoIG9mIGEgZ3V0dGVyIGluIGNvbHVtbi1jb21wYXJhYmxlIHVuaXRzXG4vLy8gQHBhcmFtIHswIHwgMSB8IC0xfSAkY29udGFpbmVyLXNwcmVhZCAtXG4vLy8gICBOdW1iZXIgb2YgZ3V0dGVycyBzcGFubmVkLFxuLy8vICAgcmVsYXRpdmUgdG8gYGNvbHVtbnNgIGNvdW50XG4vLy9cbi8vLyBAcmV0dXJuIHtsZW5ndGh9IC1cbi8vLyAgIFJlbGF0aXZlIG9yIHN0YXRpYyBsZW5ndGggb2Ygb25lIGd1dHRlciBpbiBhIGdyaWRcbkBmdW5jdGlvbiBzdS1ndXR0ZXIoXG4gICRjb2x1bW5zLFxuICAkZ3V0dGVycyxcbiAgJGNvbnRhaW5lci1zcHJlYWRcbikge1xuICBAaWYgKHR5cGUtb2YoJGd1dHRlcnMpID09ICdudW1iZXInKSB7XG4gICAgQGlmICgkZ3V0dGVycyA9PSAwKSBvciAobm90IHVuaXRsZXNzKCRndXR0ZXJzKSkge1xuICAgICAgQHJldHVybiAkZ3V0dGVycztcbiAgICB9XG4gIH1cblxuICBAaWYgX3N1LW5lZWRzLWNhbGMtb3V0cHV0KCRndXR0ZXJzLCAkY29sdW1ucywgJGd1dHRlcnMsIC0xLCBub3QgJ3ZhbGlkYXRlJykge1xuICAgIEByZXR1cm4gX3N1LWNhbGMtc3BhbigkZ3V0dGVycywgJGNvbHVtbnMsICRndXR0ZXJzLCAtMSwgJGNvbnRhaW5lci1zcHJlYWQsIG5vdCAndmFsaWRhdGUnKTtcbiAgfVxuXG4gICRjb250YWluZXI6IF9zdS1zdW0oJGNvbHVtbnMsICRndXR0ZXJzLCAkY29udGFpbmVyLXNwcmVhZCk7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVycyAvICRjb250YWluZXIpO1xufVxuXG5cblxuLy8gU3UgU2xpY2Vcbi8vIC0tLS0tLS0tXG4vLy8gUmV0dXJucyBhIGxpc3Qgb2YgY29sdW1uc1xuLy8vIGJhc2VkIG9uIGEgZ2l2ZW4gc3Bhbi9sb2NhdGlvbiBzbGljZSBvZiB0aGUgZ3JpZCDigJNcbi8vLyBhIGxvdy1sZXZlbCB2ZXJzaW9uIG9mIGBzdXN5LXNsaWNlYCxcbi8vLyB3aXRoIGFsbCBvZiB0aGUgbG9naWMgYW5kIG5vbmUgb2YgdGhlIHN5bnRheCBzdWdhci5cbi8vL1xuLy8vIEBncm91cCBzdS1tYXRoXG4vLy8gQHNlZSBzdXN5LXNsaWNlXG4vLy9cbi8vLyBAcGFyYW0ge251bWJlcn0gJHNwYW4gLVxuLy8vICAgTnVtYmVyIG9mIGdyaWQgY29sdW1ucyB0byBzcGFuXG4vLy8gQHBhcmFtIHtsaXN0fSAkY29sdW1ucyAtXG4vLy8gICBMaXN0IG9mIGNvbHVtbnMgaW4gdGhlIGdyaWRcbi8vLyBAcGFyYW0ge251bWJlcn0gJGxvY2F0aW9uIFsxXSAtXG4vLy8gICBTdGFydGluZyBpbmRleCBvZiBhIHNwYW4gaW4gdGhlIGxpc3Qgb2YgY29sdW1uc1xuLy8vIEBwYXJhbSB7Ym9vbH0gJHZhbGlkYXRlIFt0cnVlXSAtXG4vLy8gICBDaGVjayB0aGF0IGFyZ3VtZW50cyBhcmUgdmFsaWQgYmVmb3JlIHByb2NlZWRpbmdcbi8vL1xuLy8vIEByZXR1cm4ge2xpc3R9IC1cbi8vLyAgIFN1YnNldCBsaXN0IG9mIGdyaWQgY29sdW1ucywgYmFzZWQgb24gc3BhbiBhbmQgbG9jYXRpb25cbkBmdW5jdGlvbiBzdS1zbGljZShcbiAgJHNwYW4sXG4gICRjb2x1bW5zLFxuICAkbG9jYXRpb246IDEsXG4gICR2YWxpZGF0ZTogdHJ1ZVxuKSB7XG4gIEBpZiAkdmFsaWRhdGUge1xuICAgICRjb2x1bW5zOiBzdS12YWxpZC1jb2x1bW5zKCRjb2x1bW5zKTtcbiAgICAkbG9jYXRpb246IHN1LXZhbGlkLWxvY2F0aW9uKCRzcGFuLCAkbG9jYXRpb24sICRjb2x1bW5zKTtcbiAgfVxuXG4gICRmbG9vcjogZmxvb3IoJHNwYW4pO1xuICAkc3ViLWNvbHVtbnM6ICgpO1xuXG4gIEBmb3IgJGkgZnJvbSAkbG9jYXRpb24gdG8gKCRsb2NhdGlvbiArICRmbG9vcikge1xuICAgICRzdWItY29sdW1uczogYXBwZW5kKCRzdWItY29sdW1ucywgbnRoKCRjb2x1bW5zLCAkaSkpO1xuICB9XG5cbiAgQGlmICRmbG9vciAhPSAkc3BhbiB7XG4gICAgJHJlbWFpbmRlcjogJHNwYW4gLSAkZmxvb3I7XG4gICAgJGNvbHVtbjogJGxvY2F0aW9uICsgJGZsb29yO1xuICAgICRzdWItY29sdW1uczogYXBwZW5kKCRzdWItY29sdW1ucywgbnRoKCRjb2x1bW5zLCAkY29sdW1uKSAqICRyZW1haW5kZXIpO1xuICB9XG5cbiAgQHJldHVybiAkc3ViLWNvbHVtbnM7XG59XG5cblxuXG4vLyBTdSBTdW1cbi8vIC0tLS0tLVxuLy8vIEdldCB0aGUgdG90YWwgc3VtIG9mIGNvbHVtbi11bml0cyBpbiBhIGxheW91dC5cbi8vL1xuLy8vIEBncm91cCBzdS1tYXRoXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge2xpc3R9ICRjb2x1bW5zIC1cbi8vLyAgIExpc3Qgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZFxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkZ3V0dGVycyAtXG4vLy8gICBXaWR0aCBvZiBhIGd1dHRlciBpbiBjb2x1bW4tY29tcGFyYWJsZSB1bml0c1xuLy8vIEBwYXJhbSB7MCB8IDEgfCAtMX0gJHNwcmVhZCAtXG4vLy8gICBOdW1iZXIgb2YgZ3V0dGVycyBzcGFubmVkLFxuLy8vICAgcmVsYXRpdmUgdG8gYGNvbHVtbnNgIGNvdW50XG4vLy8gQHBhcmFtIHtib29sfSAkdmFsaWRhdGUgW3RydWVdIC1cbi8vLyAgIENoZWNrIHRoYXQgYXJndW1lbnRzIGFyZSB2YWxpZCBiZWZvcmUgcHJvY2VlZGluZ1xuLy8vXG4vLy8gQHJldHVybiB7bnVtYmVyfSAtXG4vLy8gICBUb3RhbCBzdW0gb2YgY29sdW1uLXVuaXRzIGluIGEgZ3JpZFxuQGZ1bmN0aW9uIF9zdS1zdW0oXG4gICRjb2x1bW5zLFxuICAkZ3V0dGVycyxcbiAgJHNwcmVhZCxcbiAgJHZhbGlkYXRlOiB0cnVlXG4pIHtcbiAgQGlmICR2YWxpZGF0ZSB7XG4gICAgJGNvbHVtbnM6IHN1LXZhbGlkLXNwYW4oJGNvbHVtbnMpO1xuICAgICRndXR0ZXJzOiBzdS12YWxpZC1ndXR0ZXJzKCRndXR0ZXJzKTtcbiAgICAkc3ByZWFkOiBzdS12YWxpZC1zcHJlYWQoJHNwcmVhZCk7XG4gIH1cblxuICAvLyBDYWxjdWxhdGUgY29sdW1uLXN1bVxuICAkY29sdW1uLXN1bTogMDtcbiAgQGVhY2ggJGNvbHVtbiBpbiAkY29sdW1ucyB7XG4gICAgJGNvbHVtbi1zdW06ICRjb2x1bW4tc3VtICsgJGNvbHVtbjtcbiAgfVxuXG4gICRndXR0ZXItc3VtOiAoY2VpbChsZW5ndGgoJGNvbHVtbnMpKSArICRzcHJlYWQpICogJGd1dHRlcnM7XG4gICR0b3RhbDogaWYoKCRndXR0ZXItc3VtID4gMCksICRjb2x1bW4tc3VtICsgJGd1dHRlci1zdW0sICRjb2x1bW4tc3VtKTtcblxuICBAcmV0dXJuICR0b3RhbDtcbn1cblxuXG5cbi8vIFN1IENhbGNcbi8vIC0tLS0tLS1cbi8vLyBSZXR1cm4gYSB1c2FibGUgc3BhbiB3aWR0aCBhcyBhIGBjYWxjKClgIGZ1bmN0aW9uLFxuLy8vIGluIG9yZGVyIHRvIGNyZWF0ZSBtaXhlZC11bml0IGdyaWRzLlxuLy8vXG4vLy8gQGdyb3VwIHN1LW1hdGhcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7bnVtYmVyIHwgbGlzdH0gJHNwYW4gLVxuLy8vICAgUHJlLXNsaWNlZCBsaXN0IG9mIGdyaWQgY29sdW1ucyB0byBzcGFuXG4vLy8gQHBhcmFtIHtsaXN0fSAkY29sdW1ucyAtXG4vLy8gICBMaXN0IG9mIGNvbHVtbnMgYXZhaWxhYmxlXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRndXR0ZXJzIC1cbi8vLyAgIFdpZHRoIG9mIGEgZ3V0dGVyIGluIGNvbHVtbi1jb21wYXJhYmxlIHVuaXRzXG4vLy8gQHBhcmFtIHswIHwgMSB8IC0xfSAkc3ByZWFkIC1cbi8vLyAgIE51bWJlciBvZiBndXR0ZXJzIHNwYW5uZWQsXG4vLy8gICByZWxhdGl2ZSB0byBgc3BhbmAgY291bnRcbi8vLyBAcGFyYW0gezAgfCAxIHwgLTF9ICRjb250YWluZXItc3ByZWFkIFskc3ByZWFkXSAtXG4vLy8gICBOdW1iZXIgb2YgZ3V0dGVycyBzcGFubmVkLFxuLy8vICAgcmVsYXRpdmUgdG8gYGNvbHVtbnNgIGNvdW50XG4vLy8gQHBhcmFtIHtib29sfSAkdmFsaWRhdGUgW3RydWVdIC1cbi8vLyAgIENoZWNrIHRoYXQgYXJndW1lbnRzIGFyZSB2YWxpZCBiZWZvcmUgcHJvY2VlZGluZ1xuLy8vXG4vLy8gQHJldHVybiB7bGVuZ3RofSAtXG4vLy8gICBSZWxhdGl2ZSBvciBzdGF0aWMgbGVuZ3RoIG9mIGEgc3BhbiBvbiB0aGUgZ3JpZFxuQGZ1bmN0aW9uIF9zdS1jYWxjLXNwYW4oXG4gICRzcGFuLFxuICAkY29sdW1ucyxcbiAgJGd1dHRlcnMsXG4gICRzcHJlYWQsXG4gICRjb250YWluZXItc3ByZWFkOiAkc3ByZWFkLFxuICAkdmFsaWRhdGU6IHRydWVcbikge1xuICBAaWYgJHZhbGlkYXRlIHtcbiAgICAkc3Bhbjogc3UtdmFsaWQtc3Bhbigkc3Bhbik7XG4gICAgJGNvbHVtbnM6IHN1LXZhbGlkLWNvbHVtbnMoJGNvbHVtbnMpO1xuICAgICRndXR0ZXJzOiBzdS12YWxpZC1ndXR0ZXJzKCRndXR0ZXJzKTtcbiAgICAkc3ByZWFkOiBzdS12YWxpZC1zcHJlYWQoJHNwcmVhZCk7XG4gICAgJGNvbnRhaW5lci1zcHJlYWQ6IHN1LXZhbGlkLXNwcmVhZCgkY29udGFpbmVyLXNwcmVhZCk7XG4gIH1cblxuICAvLyBTcGFuIGFuZCBjb250ZXh0XG4gICRzcGFuOiBfc3UtY2FsYy1zdW0oJHNwYW4sICRndXR0ZXJzLCAkc3ByZWFkLCBub3QgJ3ZhbGlkYXRlJyk7XG4gICRjb250ZXh0OiBfc3UtY2FsYy1zdW0oJGNvbHVtbnMsICRndXR0ZXJzLCAkY29udGFpbmVyLXNwcmVhZCwgbm90ICd2YWxpZGF0ZScpO1xuXG4gIC8vIEZpeGVkIGFuZCBmbHVpZFxuICAkZml4ZWQtc3BhbjogbWFwLWdldCgkc3BhbiwgJ2ZpeGVkJyk7XG4gICRmbHVpZC1zcGFuOiBtYXAtZ2V0KCRzcGFuLCAnZmx1aWQnKTtcbiAgJGZpeGVkLWNvbnRleHQ6IG1hcC1nZXQoJGNvbnRleHQsICdmaXhlZCcpO1xuICAkZmx1aWQtY29udGV4dDogbWFwLWdldCgkY29udGV4dCwgJ2ZsdWlkJyk7XG5cbiAgJGNhbGM6ICcjeyRmaXhlZC1zcGFufSc7XG4gICRmbHVpZC1jYWxjOiAnKDEwMCUgLSAjeyRmaXhlZC1jb250ZXh0fSknO1xuXG4gIC8vIEZsdWlkLXZhbHVlc1xuICBAaWYgKG5vdCAkZmx1aWQtc3Bhbikge1xuICAgICRmbHVpZC1jYWxjOiBudWxsO1xuICB9IEBlbHNlIGlmICgkZmx1aWQtc3BhbiAhPSAkZmx1aWQtY29udGV4dCkge1xuICAgICRmbHVpZC1zcGFuOiAnKiAjeyRmbHVpZC1zcGFufSc7XG4gICAgJGZsdWlkLWNvbnRleHQ6IGlmKCRmbHVpZC1jb250ZXh0LCAnLyAjeyRmbHVpZC1jb250ZXh0fScsICcnKTtcbiAgICAkZmx1aWQtY2FsYzogJygjeyRmbHVpZC1jYWxjICRmbHVpZC1jb250ZXh0ICRmbHVpZC1zcGFufSknO1xuICB9XG5cbiAgQGlmICRmbHVpZC1jYWxjIHtcbiAgICAkY2FsYzogaWYoKCRjYWxjICE9ICcnKSwgJyN7JGNhbGN9ICsgJywgJycpO1xuICAgICRjYWxjOiAnI3skY2FsYyArICRmbHVpZC1jYWxjfSc7XG4gIH1cblxuICBAcmV0dXJuIGNhbGMoI3t1bnF1b3RlKCRjYWxjKX0pO1xufVxuXG5cblxuLy8gU3UgQ2FsYy1TdW1cbi8vIC0tLS0tLS0tLS0tXG4vLy8gR2V0IHRoZSB0b3RhbCBzdW0gb2YgZml4ZWQgYW5kIGZsdWlkIGNvbHVtbi11bml0c1xuLy8vIGZvciBjcmVhdGluZyBhIG1peGVkLXVuaXQgbGF5b3V0IHdpdGggYGNhbGMoKWAgdmFsdWVzLlxuLy8vXG4vLy8gQGdyb3VwIHN1LW1hdGhcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7bGlzdH0gJGNvbHVtbnMgLVxuLy8vICAgTGlzdCBvZiBjb2x1bW5zIGF2YWlsYWJsZVxuLy8vIEBwYXJhbSB7bnVtYmVyfSAkZ3V0dGVycyAtXG4vLy8gICBXaWR0aCBvZiBhIGd1dHRlciBpbiBjb2x1bW4tY29tcGFyYWJsZSB1bml0c1xuLy8vIEBwYXJhbSB7MCB8IDEgfCAtMX0gJHNwcmVhZCAtXG4vLy8gICBOdW1iZXIgb2YgZ3V0dGVycyBzcGFubmVkLFxuLy8vICAgcmVsYXRpdmUgdG8gYHNwYW5gIGNvdW50XG4vLy8gQHBhcmFtIHtib29sfSAkdmFsaWRhdGUgW3RydWVdIC1cbi8vLyAgIENoZWNrIHRoYXQgYXJndW1lbnRzIGFyZSB2YWxpZCBiZWZvcmUgcHJvY2VlZGluZ1xuLy8vXG4vLy8gQHJldHVybiB7bWFwfSAtXG4vLy8gICBNYXAgd2l0aCBgZml4ZWRgIGFuZCBgZmx1aWRgIGtleXNcbi8vLyAgIGNvbnRhaW5pbmcgdGhlIHByb3BlciBtYXRoIGFzIHN0cmluZ3NcbkBmdW5jdGlvbiBfc3UtY2FsYy1zdW0oXG4gICRjb2x1bW5zLFxuICAkZ3V0dGVycyxcbiAgJHNwcmVhZCxcbiAgJHZhbGlkYXRlOiB0cnVlXG4pIHtcbiAgQGlmICR2YWxpZGF0ZSB7XG4gICAgJGNvbHVtbnM6IHN1LXZhbGlkLXNwYW4oJGNvbHVtbnMpO1xuICAgICRndXR0ZXJzOiBzdS12YWxpZC1ndXR0ZXJzKCRndXR0ZXJzKTtcbiAgICAkc3ByZWFkOiBzdS12YWxpZC1zcHJlYWQoJHNwcmVhZCk7XG4gIH1cblxuICAkZmx1aWQ6IDA7XG4gICRmaXhlZDogKCk7XG4gICRjYWxjOiBudWxsO1xuXG4gIC8vIEd1dHRlcnNcbiAgJGd1dHRlcnM6ICAkZ3V0dGVycyAqIChsZW5ndGgoJGNvbHVtbnMpICsgJHNwcmVhZCk7XG5cbiAgLy8gQ29sdW1uc1xuICBAZWFjaCAkY29sIGluIGFwcGVuZCgkY29sdW1ucywgJGd1dHRlcnMpIHtcbiAgICBAaWYgdW5pdGxlc3MoJGNvbCkge1xuICAgICAgJGZsdWlkOiAkZmx1aWQgKyAkY29sO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJGZpeGVkOiBfc3UtbWFwLWFkZC11bml0cygkZml4ZWQsICRjb2wpO1xuICAgIH1cbiAgfVxuXG4gIC8vIENvbXBpbGUgRml4ZWQgVW5pdHNcbiAgQGVhY2ggJHVuaXQsICR0b3RhbCBpbiAkZml4ZWQge1xuICAgIEBpZiAoJHRvdGFsICE9ICgwICogJHRvdGFsKSkge1xuICAgICAgJGNhbGM6IGlmKCRjYWxjLCAnI3skY2FsY30gKyAjeyR0b3RhbH0nLCAnI3skdG90YWx9Jyk7XG4gICAgfVxuICB9XG5cbiAgLy8gQ2FsYyBudWxsIG9yIHN0cmluZ1xuICBAaWYgJGNhbGMge1xuICAgICRjYWxjOiBpZihzdHItaW5kZXgoJGNhbGMsICcrJyksICcoI3skY2FsY30pJywgJyN7JGNhbGN9Jyk7XG4gIH1cblxuICAvLyBGbHVpZCAwID0+IG51bGxcbiAgJGZsdWlkOiBpZigoJGZsdWlkID09IDApLCBudWxsLCAkZmx1aWQpO1xuXG5cbiAgLy8gUmV0dXJuIG1hcFxuICAkcmV0dXJuOiAoXG4gICAgJ2ZpeGVkJzogJGNhbGMsXG4gICAgJ2ZsdWlkJzogJGZsdWlkLFxuICApO1xuXG4gIEByZXR1cm4gJHJldHVybjtcbn1cblxuXG5cbi8vIE5lZWRzIENhbGNcbi8vIC0tLS0tLS0tLS1cbi8vLyBDaGVjayBpZiBgY2FsYygpYCB3aWxsIGJlIG5lZWRlZCBpbiBkZWZpbmluZyBhIHNwYW4sXG4vLy8gaWYgdGhlIG5lY2Vzc2FyeSB1bml0cyBpbiBhIGdyaWQgYXJlIG5vdCBjb21wYXJhYmxlLlxuLy8vXG4vLy8gQGdyb3VwIHN1LW1hdGhcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7bGlzdH0gJHNwYW4gLVxuLy8vICAgU2xpY2Ugb2YgY29sdW1ucyB0byBzcGFuXG4vLy8gQHBhcmFtIHtsaXN0fSAkY29sdW1ucyAtXG4vLy8gICBMaXN0IG9mIGF2YWlsYWJsZSBjb2x1bW5zIGluIHRoZSBncmlkXG4vLy8gQHBhcmFtIHtudW1iZXJ9ICRndXR0ZXJzIC1cbi8vLyAgIFdpZHRoIG9mIGEgZ3V0dGVyXG4vLy8gQHBhcmFtIHswIHwgMSB8IC0xfSAkc3ByZWFkIC1cbi8vLyAgIE51bWJlciBvZiBndXR0ZXJzIHNwYW5uZWQsXG4vLy8gICByZWxhdGl2ZSB0byBgc3BhbmAgY291bnRcbi8vLyBAcGFyYW0ge2Jvb2x9ICR2YWxpZGF0ZSBbdHJ1ZV0gLVxuLy8vICAgQ2hlY2sgdGhhdCBhcmd1bWVudHMgYXJlIHZhbGlkIGJlZm9yZSBwcm9jZWVkaW5nXG4vLy9cbi8vLyBAcmV0dXJuIHtib29sfSAtXG4vLy8gICBgVHJ1ZWAgd2hlbiB1bml0cyBkbyBub3QgbWF0Y2gsIGFuZCBgY2FsYygpYCB3aWxsIGJlIHJlcXVpcmVkXG5AZnVuY3Rpb24gX3N1LW5lZWRzLWNhbGMtb3V0cHV0KFxuICAkc3BhbixcbiAgJGNvbHVtbnMsXG4gICRndXR0ZXJzLFxuICAkc3ByZWFkLFxuICAkdmFsaWRhdGU6IHRydWVcbikge1xuICBAaWYgJHZhbGlkYXRlIHtcbiAgICAkc3Bhbjogc3UtdmFsaWQtc3Bhbigkc3Bhbik7XG4gICAgJGNvbHVtbnM6IHN1LXZhbGlkLWNvbHVtbnMoJGNvbHVtbnMpO1xuICAgICRndXR0ZXJzOiBzdS12YWxpZC1ndXR0ZXJzKCRndXR0ZXJzKTtcbiAgfVxuXG4gICRoYXMtZ3V0dGVyOiBpZigobGVuZ3RoKCRzcGFuKSA+IDEpIG9yICgkc3ByZWFkID49IDApLCB0cnVlLCBmYWxzZSk7XG4gICRjaGVjazogaWYoJGhhcy1ndXR0ZXIsIGFwcGVuZCgkc3BhbiwgJGd1dHRlcnMpLCAkc3Bhbik7XG4gICRzYWZlLXNwYW46IF9zdS1pcy1jb21wYXJhYmxlKCRjaGVjay4uLik7XG5cbiAgQGlmICgkc2FmZS1zcGFuID09ICdzdGF0aWMnKSB7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfSBAZWxzZSBpZiAobm90ICRzYWZlLXNwYW4pIHtcbiAgICBAcmV0dXJuIHRydWU7XG4gIH1cblxuICAkc2FmZS1mbHVpZDogX3N1LWlzLWNvbXBhcmFibGUoJGd1dHRlcnMsICRjb2x1bW5zLi4uKTtcblxuICBAcmV0dXJuIG5vdCAkc2FmZS1mbHVpZDtcbn1cbiIsIu+7vy5oYW1idXJnZXIsIC5jbG9zZSB7XHJcbiAgQGV4dGVuZCAlaWNvbjtcclxuXHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTYwcHg7XHJcbiAgbWFyZ2luLXRvcDogNXB4O1xyXG4gIG1hcmdpbi1sZWZ0OiBndXR0ZXIoKS8yO1xyXG4gIHRyYW5zaXRpb246IG5vbmU7XHJcbiAgb3BhY2l0eTogLjc7XHJcblxyXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHh4cykge1xyXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMCAtMTU1cHg7XHJcbiAgfVxyXG59XHJcbi5jbG9zZSB7XHJcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTQwcHggLTE1MnB4O1xyXG4gIHRyYW5zaXRpb246IG5vbmU7XHJcbn1cclxuIiwi77u/Ly8gTWFpbiBTdHlsZXNcbioge1xuICAtbW96LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgIC1tb3otYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxufVxuXG5odG1sLCBib2R5IHtcbiAgaGVpZ2h0OiAxMDAlO1xufVxuYm9keSB7XG4gIEBpbmNsdWRlIHR5cGVTZXR0aW5nKDApO1xuXG4gIGZvbnQtZmFtaWx5OiAkYm9keUZvbnQ7XG4gIGJhY2tncm91bmQ6ICRiZztcbiAgY29sb3I6ICR0ZXh0O1xufVxuaW1nIHtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IGF1dG87XG59XG4uY29udGFpbmVyIHtcbiAgQGV4dGVuZCAlY2xlYXJmaXg7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvO1xufVxuXG4ud3JhcHBlciwgLmhlYWRlckNvbnRlbnQsIC5uYXYsIC5wYWdlLCAuZm9vdGVyQ29udGVudCB7XG4gIEBleHRlbmQgJWNsZWFyZml4O1xuXG4gIHdpZHRoOiAxMDAlIC0gZ3V0dGVyKCkqMjtcbiAgbWFyZ2luOiAwIGd1dHRlcigpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHhsKSB7XG4gICAgbWF4LXdpZHRoOiAkeGw7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gIH1cblxufVxuLm1haW4ge1xuICB3aWR0aDogMTAwJTtcbn1cblxuLyohKmJhc2VsaW5lIGdyaWQqIVxuLm1haW4ge1xucG9zaXRpb246IHJlbGF0aXZlO1xuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgQGluY2x1ZGUgYmFzZWxpbmUtZ3JpZDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgfVxufVxuLmhlYWRlckNvbnRlbnQsIC5wYWdlLCAuZm9vdGVyQ29udGVudCB7XG5iYWNrZ3JvdW5kOiBzdXN5LXN2Zy1ncmlkKCkgbm8tcmVwZWF0IHNjcm9sbDtcbn0qL1xuXG5cbi5zaG93TW9iIHtcbiAgbWluLWhlaWdodDogMTAwdmg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICBvdmVyZmxvdy14OiBzY3JvbGw7XG4gIGJhY2tncm91bmQtY29sb3I6ICRiZ0dyYXk7XG59XG5cbi8vIEhlYWRlciBzdHlsZXNcbi5oZWFkZXIge1xuICBAZXh0ZW5kICVjbGVhcmZpeDtcbiAgQGluY2x1ZGUgY29udGFpbmVyKCk7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogIzI2OTlkODtcbiAgYmFja2dyb3VuZC1wb3NpdGlvbjogdG9wIGNlbnRlcjtcbiAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtaW4taGVpZ2h0OiAxNSpsaW5lSGVpZ2h0KCk7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAucmVzaXplIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkeHMpIHtcbiAgICBtaW4taGVpZ2h0OiAxMipsaW5lSGVpZ2h0KCk7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkeHhsKSB7XG4gICAgYmFja2dyb3VuZC1zaXplOiAkeHhsIGF1dG87XG4gIH1cblxuICAmOmJlZm9yZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICByaWdodDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDAsMCwwLCAuMjUpO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc20pIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vQGluY2x1ZGUgYmFzZWxpbmUtZ3JpZDtcbn1cbi5oZWFkZXJDb250ZW50IHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIHJpZ2h0OiAwO1xufVxuLmxvZ28ge1xuICBAZXh0ZW5kICVjbGVhcmZpeDtcblxuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luOiBsaW5lSGVpZ2h0KCkqMiBhdXRvIDA7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kKSB7XG4gICAgZmxleC13cmFwOiBub3dyYXA7XG4gICAgbWFyZ2luLXRvcDogbGluZUhlaWdodCgpKjM7XG4gIH1cbn1cblxuLmxvZ29RdWFudHVtIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICB3aWR0aDogMTAwJTtcbiAgbWFyZ2luLWxlZnQ6IDA7XG5cbiAgaW1nIHtcbiAgICBtYXgtaGVpZ2h0OiA1cmVtO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGZsb2F0OiBub25lO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkeHMpIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcblxuICAgIGltZyB7XG4gICAgICBmbG9hdDogbGVmdDtcbiAgICB9XG5cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kKSB7XG4gICAgd2lkdGg6IHNwYW4oOCB3aWRlKTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsZykge1xuICAgIHdpZHRoOiBzcGFuKDcgd2lkZSk7XG4gICAgbWFyZ2luLWxlZnQ6IHNwYW4oMSk7XG4gIH1cbn1cbi5sb2dvUXVhbnR1bVRleHQge1xuICB3aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiB0eXBlU2NhbGUoLTEpO1xuICBsaW5lLWhlaWdodDogMXJlbTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIGNvbG9yOiB3aGl0ZTtcbiAgbWFyZ2luLWxlZnQ6IDEwcHg7XG5cbiAgLnF1YW50dW0ge1xuICAgIG1hcmdpbi10b3A6IGxpbmVIZWlnaHQoKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHhzKSB7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgZm9udC1zaXplOiB0eXBlU2NhbGUoMCk7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxufVxuLnF1YW50dW0ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiB0eXBlU2NhbGUoMSk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBjb2xvcjogJHRleHRCbHVlO1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdGV4dC1zaGFkb3c6IDFweCAxcHggMCB3aGl0ZSxcbiAgMXB4IC0xcHggMCB3aGl0ZSxcbiAgLTFweCAxcHggMCB3aGl0ZSxcbiAgLTFweCAtMXB4IDAgd2hpdGU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkeHMpIHtcbiAgICBmb250LXNpemU6IHR5cGVTY2FsZSgyKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kKSB7XG4gICAgZm9udC1zaXplOiB0eXBlU2NhbGUoMik7XG5cbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBhdHRyKGRhdGEtdGV4dCk7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAtd2Via2l0LWJhY2tncm91bmQtY2xpcDogdGV4dDtcbiAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otcmFkaWFsLWdyYWRpZW50KGNlbnRlciwgZWxsaXBzZSBjb3ZlciwgIzAwOTVkOSAwJSwgIzAwNDQ3NyAxMDAlKTsgLyogRkYzLjYtMTUgKi9cbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtcmFkaWFsLWdyYWRpZW50KGNlbnRlciwgZWxsaXBzZSBjb3ZlciwgIzAwOTVkOSAwJSwjMDA0NDc3IDEwMCUpOyAvKiBDaHJvbWUxMC0yNSxTYWZhcmk1LjEtNiAqL1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyLCAjMDA5NWQ5IDAlLCMwMDQ0NzcgMTAwJSk7IC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XG4gICAgZm9udC1zaXplOiB0eXBlU2NhbGUoMyk7XG4gIH1cbn1cblxuLmxvZ29PYm9yb25Qcm9tIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xuICBtYXJnaW46IGxpbmVIZWlnaHQoKSAwO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIGltZyB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1heC13aWR0aDogMzAwcHg7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xuICAgIHdpZHRoOiBzcGFuKDQgd2lkZSk7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsZykge1xuICAgIHdpZHRoOiBzcGFuKDMgd2lkZSk7XG4gICAgbWFyZ2luLWxlZnQ6IHNwYW4oMSk7XG4gIH1cbn1cblxuLy8gRm9vdGVyIHN0eWxlc1xuLmZvb3RlciB7XG4gIEBleHRlbmQgJWNsZWFyZml4O1xuXG4gIHBhZGRpbmc6IGxpbmVIZWlnaHQoKSAwO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmdHcmF5O1xuXG4gIC5sb2dvIHtcbiAgICBtYXJnaW4tdG9wOiBsaW5lSGVpZ2h0KCk7XG4gIH1cblxuICAubG9nb09ib3JvblByb20gaW1nIHtcbiAgICBtYXgtd2lkdGg6IDMwMHB4O1xuICB9XG59XG4uZm9vdGVyQ29udGVudCB7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGluZTtcbiAgbWFyZ2luLWJvdHRvbTogbGluZUhlaWdodCgpO1xuICBwYWRkaW5nLWJvdHRvbTogbGluZUhlaWdodCgpO1xufVxuLmNvcHksIC5saW5lY29yZSB7XG4gIEBpbmNsdWRlIHR5cGVTZXR0aW5nKC0xKTtcblxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHdpZHRoOiBzcGFuKDcpO1xuICBmbG9hdDogbm9uZTtcbiAgbWFyZ2luOiAwIGF1dG87XG4gIGNvbG9yOiAkdGV4dEdyYXk7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMDtcbiAgfVxufVxuLmxpbmVjb3JlIHtcbiAgd2lkdGg6IHNwYW4oNSk7XG4gIG1hcmdpbjogbGluZUhlaWdodCgpIGF1dG8gMDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICBzcGFuIHtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgfVxuXG4gIGEge1xuICAgIGNvbG9yOiAkdGV4dEdyYXk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICAgICY6aG92ZXIsICY6Zm9jdXMge1xuICAgICAgY29sb3I6ICMxMmE1ZGU7XG5cbiAgICAgIHNwYW4ge1xuICAgICAgICBjb2xvcjogIzAwN2NiNztcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy9TZWN0aW9uIHN0eWxlc1xuLnBhZ2Uge1xuICBtYXJnaW46IGxpbmVIZWlnaHQoKSoyIGF1dG87XG59XG4ucGFnZVRpdGxlIHtcbiAgY29sb3I6ICR0ZXh0Qmx1ZTtcbiAgJjpiZWZvcmUsICY6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IG5vcm1hbDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kKSB7XG4gICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgLXdlYmtpdC10ZXh0LWZpbGwtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otcmFkaWFsLWdyYWRpZW50KGNlbnRlciwgZWxsaXBzZSBjb3ZlciwgIzAwOTVkOSAwJSwgIzAwNDQ3NyAxMDAlKTsgLyogRkYzLjYtMTUgKi9cbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjZW50ZXIsIGVsbGlwc2UgY292ZXIsICMwMDk1ZDkgMCUsIzAwNDQ3NyAxMDAlKTsgLyogQ2hyb21lMTAtMjUsU2FmYXJpNS4xLTYgKi9cbiAgICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoZWxsaXBzZSBhdCBjZW50ZXIsICMwMDk1ZDkgMCUsIzAwNDQ3NyAxMDAlKTsgLyogVzNDLCBJRTEwKywgRkYxNissIENocm9tZTI2KywgT3BlcmExMissIFNhZmFyaTcrICovXG5cbiAgICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgICBjb250ZW50OiAnJztcbiAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgIHdpZHRoOiBzcGFuKDEgb2YgMTIpO1xuICAgICAgaGVpZ2h0OiAxMHB4O1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR0ZXh0Qmx1ZTtcbiAgICAgIG1hcmdpbi1sZWZ0OiBndXR0ZXIoKTtcbiAgICAgIG1hcmdpbi1yaWdodDogZ3V0dGVyKCk7XG4gICAgfVxuICB9XG59XG4uY29udGVudCB7XG4gIEBleHRlbmQgJWNsZWFyZml4O1xuXG4gIHVsIHtcbiAgICB3aWR0aDogc3BhbigxMik7XG4gICAgbWFyZ2luOiBsaW5lSGVpZ2h0KCkvMiBhdXRvO1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcbiAgICAgIHdpZHRoOiBzcGFuKDExKTtcbiAgICB9XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcbiAgICAgIHdpZHRoOiBzcGFuKDEwKTtcbiAgICB9XG4gIH1cblxuICBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDhweDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogOHB4O1xuICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGluaztcbiAgICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIH1cbiAgfVxufVxuXG4uYWN0aXZpdHkge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogbGluZUhlaWdodCgpO1xuICBib3JkZXI6IDFweCBzb2xpZCAkbGluaztcblxuICBsaSB7XG4gICAgY29sb3I6ICR0ZXh0Qmx1ZTtcbiAgICBmb250LXNpemU6IHR5cGVTY2FsZSgxKTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZy1ib3R0b206IGxpbmVIZWlnaHQoKTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgaDEge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IC0yLjVyZW0gYXV0byBsaW5lSGVpZ2h0KCk7XG4gICAgY29sb3I6ICR0ZXh0Qmx1ZTtcbiAgICB3aWR0aDogc3BhbigxMCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG5cbiAgICAmOmJlZm9yZSwgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBub3JtYWw7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcbiAgICBwIHtcbiAgICAgIGZvbnQtc2l6ZTogdHlwZVNjYWxlKDEpO1xuICAgIH1cblxuICAgIGgxIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG5cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogYXR0cihkYXRhLXRleHQpO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgICAgICBwYWRkaW5nOiAwIGd1dHRlcigpLzI7XG4gICAgICB9XG5cbiAgICAgICY6YWZ0ZXIge1xuICAgICAgICBjb250ZW50OiBhdHRyKGRhdGEtdGV4dCk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogZ3V0dGVyKCkqMjtcbiAgICAgICAgcmlnaHQ6IGd1dHRlcigpO1xuICAgICAgICBjb2xvcjogJHRleHRCbHVlO1xuICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgICAgICAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHRleHQ7XG4gICAgICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogLW1vei1yYWRpYWwtZ3JhZGllbnQoY2VudGVyLCBlbGxpcHNlIGNvdmVyLCAjMDA5NWQ5IDAlLCAjMDA0NDc3IDEwMCUpOyAvKiBGRjMuNi0xNSAqL1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LXJhZGlhbC1ncmFkaWVudChjZW50ZXIsIGVsbGlwc2UgY292ZXIsICMwMDk1ZDkgMCUsIzAwNDQ3NyAxMDAlKTsgLyogQ2hyb21lMTAtMjUsU2FmYXJpNS4xLTYgKi9cbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyLCAjMDA5NWQ5IDAlLCMwMDQ0NzcgMTAwJSk7IC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xuICAgICAgfVxuICAgIH1cblxuICB9XG59XG5cbi5wcm9qZWN0LCAucHJvamVjdDIge1xuICBtYXJnaW4tdG9wOiBsaW5lSGVpZ2h0KCk7XG59XG4ucHJvamVjdDI+LnByb2plY3ROYW1lIHtcbiAgZGlzcGxheTogbm9uZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzbSkge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gIH1cbn1cbi5wcm9qZWN0Mj4ucHJvamVjdENvbnRlbnQge1xuICAucHJvamVjdEltZyB7ZGlzcGxheTogbm9uZX1cbiAgLnByb2plY3RUZXh0IHtcbiAgICAucHJvamVjdE5hbWUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgICAgIHBhZGRpbmc6IGxpbmVIZWlnaHQoKTtcblxuICAgICAgJjpob3ZlciwgJjpmb2N1cyB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgY29sb3I6ICR0ZXh0Qmx1ZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkbGlua0JsdWUsIC4yKTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIC4zcztcbiAgICAgIH1cbiAgICB9XG4gICAgaW1nIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGxpbmtCbHVlO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtKSB7XG4gICAgLnByb2plY3RJbWcge2Rpc3BsYXk6IGJsb2NrfVxuICAgIC5wcm9qZWN0VGV4dCB7XG4gICAgICAucHJvamVjdE5hbWUge2Rpc3BsYXk6IG5vbmU7fVxuICAgICAgaW1nIHtkaXNwbGF5OiBub25lO31cbiAgICB9XG4gIH1cbn1cbi5wcm9qZWN0TmFtZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICRsaW5rQmx1ZTtcbiAgY29sb3I6ICRsaW5rQmx1ZTtcbiAgZm9udC1zaXplOiB0eXBlU2NhbGUoMSk7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gIHNwYW4ge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIH1cblxuXG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICBjb2xvcjogJHRleHRCbHVlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoJGxpbmtCbHVlLCAuMik7XG4gICAgdHJhbnNpdGlvbjogYWxsIC4zcztcbiAgfVxuXG4gIC5wcm9qZWN0VGV4dExlZnQsIC5wcm9qZWN0VGV4dFJpZ2h0LCAucHJvamVjdFRleHRDZW50ZXIge1xuICAgIHBhZGRpbmc6IGxpbmVIZWlnaHQoKTtcbiAgICB3aWR0aDogMTAwJTtcbiAgfVxuXG4gIC5wcm9qZWN0VGV4dExlZnQge1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlua0JsdWU7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzbSkge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuXG4gICAgLnByb2plY3RUZXh0TGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIH1cbiAgfVxufVxuLnByb2plY3RDb250ZW50IHtcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaW5rQmx1ZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzbSAoJGxnIC0gMSkpIHtcbiAgICAucHJvamVjdFRleHQge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC5wcm9qZWN0SW1nIHtcbiAgICAgIHdpZHRoOiA1MCU7XG5cbiAgICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgfVxufVxuLnByb2plY3RJbWcge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiAxMCpsaW5lSGVpZ2h0KCk7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbGlua0JsdWU7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGxpbmtCbHVlO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkbGlua0JsdWU7XG4gIG9yZGVyOiAyO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtKSB7XG4gICAgd2lkdGg6IDIwJTtcbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsZykge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBib3JkZXItdG9wOiBub25lO1xuICAgIG9yZGVyOiAxO1xuICB9XG59XG4ucHJvamVjdFRleHQge1xuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgb3JkZXI6IDE7XG4gIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGxpbmtCbHVlO1xuICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCAkbGlua0JsdWU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc20pIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIHdpZHRoOiA2MCU7XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcbiAgICBib3JkZXItbGVmdDogbm9uZTtcbiAgICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIH1cbn1cbi5wcm9qZWN0VGV4dENlbnRlciB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIHAge3BhZGRpbmc6IGxpbmVIZWlnaHQoKTt9XG59XG4ucHJvamVjdFRleHRMZWZ0IHtcbiAgd2lkdGg6IDUwJTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgJGxpbmtCbHVlO1xuXG4gIHAge3BhZGRpbmc6IGxpbmVIZWlnaHQoKTt9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtYXgtd2lkdGggKCRzbSAtIDEpKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGJvcmRlci1yaWdodDogbm9uZTtcbiAgfVxufVxuLnByb2plY3RUZXh0UmlnaHQge1xuICB3aWR0aDogNTAlO1xuICB0ZXh0LWFsaWduOiByaWdodDtcblxuICBwIHtwYWRkaW5nOiBsaW5lSGVpZ2h0KCk7fVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWF4LXdpZHRoICgkc20gLSAxKSkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG59XG4ucHJvamVjdE5hbWVMLCAucHJvamVjdE5hbWVSIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IGxpbmVIZWlnaHQoKTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtKSB7XG4gICAgd2lkdGg6IDMzJTtcbiAgfVxufVxuLnByb2plY3ROYW1lQyB7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nOiBsaW5lSGVpZ2h0KCk7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbGlua0JsdWU7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlua0JsdWU7XG4gIGJvcmRlci1sZWZ0OiBub25lO1xuICBib3JkZXItcmlnaHQ6IG5vbmU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzbSkge1xuICAgIHdpZHRoOiAzNCU7XG4gICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xuICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgJGxpbmtCbHVlO1xuICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRsaW5rQmx1ZTtcbiAgfVxufVxuXG5cbi5lcnJvcl9uYW1lLmVycm9yLCAuZXJyb3JfdXNlckVtYWlsLmVycm9yLCAuZXJyb3JfbWVzc2FnZS5lcnJvciAge1xuICBtYXJnaW4tdG9wOiAtMSpsaW5lSGVpZ2h0KCk7XG4gIGZvbnQtc2l6ZTogdHlwZVNjYWxlKC0xKTtcbn1cblxuIiwi77u/Ly9MZWZ0IHNpZGVcbi5sZWZ0U2lkZSB7XG4gIHdpZHRoOiAxMDAlO1xuICBmbG9hdDogbm9uZTtcblxuICAmKy5wcm9kdWN0LCAmKy5jb250ZW50IHtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XG4gICAgd2lkdGg6IDI3MHB4O1xuICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgJisucHJvZHVjdCwgJisuY29udGVudCB7XG4gICAgICBtYXJnaW4tbGVmdDogMzMwcHg7XG4gICAgfVxuICB9XG59XG4uYWN0aXZpdHlMZWZ0IHtcbiAgaDMge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBjb2xvcjogJHRleHRCbHVlO1xuICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiB0ZXh0O1xuICAgIC13ZWJraXQtdGV4dC1maWxsLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiAtbW96LXJhZGlhbC1ncmFkaWVudChjZW50ZXIsIGVsbGlwc2UgY292ZXIsICMwMDk1ZDkgMCUsICMwMDQ0NzcgMTAwJSk7IC8qIEZGMy42LTE1ICovXG4gICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2VudGVyLCBlbGxpcHNlIGNvdmVyLCAjMDA5NWQ5IDAlLCMwMDQ0NzcgMTAwJSk7IC8qIENocm9tZTEwLTI1LFNhZmFyaTUuMS02ICovXG4gICAgYmFja2dyb3VuZC1pbWFnZTogcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyLCAjMDA5NWQ5IDAlLCMwMDQ0NzcgMTAwJSk7IC8qIFczQywgSUUxMCssIEZGMTYrLCBDaHJvbWUyNissIE9wZXJhMTIrLCBTYWZhcmk3KyAqL1xuICB9XG5cbiAgbGkge1xuICAgIGNvbG9yOiAkdGV4dEJsdWU7XG4gICAgcGFkZGluZy1sZWZ0OiAxcmVtO1xuICAgIG1hcmdpbi1ib3R0b206IGxpbmVIZWlnaHQoKS8yO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6ICcnO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiA4cHg7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gICAgICB3aWR0aDogOHB4O1xuICAgICAgaGVpZ2h0OiA4cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGluaztcbiAgICB9XG4gIH1cbn1cblxuLy8gQ2F0YWxvZyBwYWdlXG4uY2F0YWxvZ0l0ZW0ge1xuICBib3JkZXI6IDFweCBzb2xpZCAkbGlua0JsdWU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiBsaW5lSGVpZ2h0KCkvMiBhdXRvIDEuNSpsaW5lSGVpZ2h0KCk7XG4gIHBhZGRpbmctYm90dG9tOiBsaW5lSGVpZ2h0KCk7XG5cbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAzcHggM3B4IDZweCAwcHggcmdiYSgwLDAsMCwwLjIpO1xuICAtbW96LWJveC1zaGFkb3c6IDNweCAzcHggNnB4IDBweCByZ2JhKDAsMCwwLDAuMik7XG4gIGJveC1zaGFkb3c6IDNweCAzcHggNnB4IDBweCByZ2JhKDAsMCwwLDAuMik7XG5cbiAgJjpudGgtY2hpbGQoMm4pIHtcbiAgICAuY2F0YWxvZ0l0ZW1JbmZvIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICB9XG4gICAgLmNhdGFsb2dJdGVtVGV4dCB7XG4gICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IGxpbmVIZWlnaHQoKTtcblxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtYXgtd2lkdGggKCRtZCAtIDEpKSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLmNhdGFsb2dJdGVtSGVhZGVyIHtcbiAgd2lkdGg6IDEwMCU7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgcGFkZGluZzogbGluZUhlaWdodCgpO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpbmtCbHVlO1xuICBjb2xvcjogJGxpbmtCbHVlO1xuICBmb250LXNpemU6IHR5cGVTY2FsZSgxKTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgc3BhbiB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgfVxufVxuLmNhdGFsb2dJdGVtSW5mbyB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIHBhZGRpbmc6IGxpbmVIZWlnaHQoKTtcbn1cbi5jYXRhbG9nSXRlbUltZyB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogc3BhbigzIHdpZGUpO1xuICBtaW4taGVpZ2h0OiA2KmxpbmVIZWlnaHQoKTtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCcuLi9pbWcvbm9fcGhvdG8ucG5nJyk7XG4gIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlciBjZW50ZXI7XG4gIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgYm9yZGVyOiAxcHggc29saWQgJGxpbmtCbHVlO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQobWF4LXdpZHRoICgkbWQgLSAxKSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbi5jYXRhbG9nSXRlbVRleHQge1xuICB3aWR0aDogc3Bhbig5KTtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgcGFkZGluZy1sZWZ0OiBsaW5lSGVpZ2h0KCk7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtYXgtd2lkdGggKCRtZCAtIDEpKSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuICB9XG59XG4ucGFnaW5hdGlvbiB7XG4gIEBleHRlbmQgJW1lbnVMaTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gIHVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IGF1dG87XG4gIH1cblxuICBsaSB7XG4gICAgcGFkZGluZzogMCA1cHg7XG4gICAgZm9udC1zaXplOiAxcmVtO1xuXG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogbm9uZTtcbiAgICB9XG4gIH1cblxuICBhLCBhOnZpc2l0ZWQsIHNwYW4ge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgaGVpZ2h0OiAzMHB4O1xuICAgIHdpZHRoOiAzMHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaW5rQmx1ZTtcbiAgICBjb2xvcjogcGFsZXR0ZSh0ZXh0LWJyb3duKTtcbiAgfVxuICBhOmhvdmVyLCBhOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICR0ZXh0Qmx1ZTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKCRsaW5rQmx1ZSwgLjIpO1xuICAgIHRyYW5zaXRpb246IGFsbCAuM3M7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG4gIC5hY3RpdmUgPiBhIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6ICRsaW5rO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaW5rO1xuICAgIHRyYW5zaXRpb246IGFsbCAuM3M7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLmRpc2FibGVkLCAuY29udHJvbCB7XG4gICAgbGluZS1oZWlnaHQ6IDBweDtcbiAgICBmb250LXNpemU6IDBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG4gIC5jb250cm9sOmhvdmVyLCAuY29udHJvbDpmb2N1cywgLmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAuNTtcbiAgfVxuICBsaTpudGgtb2YtdHlwZSgxKSB7XG4gICAgYSwgc3BhbiB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvZmlyc3QucG5nXCIpIGxlZnQgdG9wIG5vLXJlcGVhdDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG4gIH1cbiAgbGk6bnRoLW9mLXR5cGUoMikge1xuICAgIGEsIHNwYW4ge1xuICAgICAgYmFja2dyb3VuZDogdXJsKFwiLi4vaW1nL3ByZXYucG5nXCIpIGxlZnQgdG9wIG5vLXJlcGVhdDtcbiAgICAgIGJvcmRlcjogbm9uZTtcbiAgICB9XG4gIH1cbiAgbGk6bnRoLWxhc3Qtb2YtdHlwZSgxKSB7XG4gICAgYSwgc3BhbiB7XG4gICAgICBiYWNrZ3JvdW5kOiB1cmwoXCIuLi9pbWcvbGFzdC5wbmdcIikgbGVmdCB0b3Agbm8tcmVwZWF0O1xuICAgICAgYm9yZGVyOiBub25lO1xuICAgIH1cbiAgfVxuICBsaTpudGgtbGFzdC1vZi10eXBlKDIpIHtcbiAgICBhLCBzcGFuIHtcbiAgICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy9uZXh0LnBuZ1wiKSBsZWZ0IHRvcCBuby1yZXBlYXQ7XG4gICAgICBib3JkZXI6IG5vbmU7XG4gICAgfVxuICB9XG59XG4vLyBDYXRhbG9nIGl0ZW0gcGFnZVxuLnByb2R1Y3Qge1xuICBAZXh0ZW5kICVjbGVhcmZpeDtcblxuICBoMyB7XG4gICAgQGluY2x1ZGUgdHlwZVNldHRpbmcoMCk7XG5cbiAgICBjb2xvcjogJHRleHRCbHVlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gIH1cblxuICB1bCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICBsaSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctbGVmdDogMTZweDtcblxuICAgICY6YmVmb3JlIHtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDhweDtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogNXB4O1xuICAgICAgaGVpZ2h0OiA1cHg7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlua0JsdWU7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICB9XG5cbiAgICBsaTpiZWZvcmUge1xuICAgICAgdG9wOiAxMHB4O1xuICAgICAgd2lkdGg6IDlweDtcbiAgICAgIGhlaWdodDogMnB4O1xuICAgICAgbWFyZ2luLWxlZnQ6IDFweDtcbiAgICB9XG4gIH1cblxuICB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luOiBsaW5lSGVpZ2h0KCkgYXV0bztcblxuICAgIGNhcHRpb24ge1xuICAgICAgY29sb3I6ICR0ZXh0Qmx1ZTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgcGFkZGluZzogbGluZUhlaWdodCgpLzIgMDtcbiAgICB9XG5cbiAgICB0aCB7XG4gICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICB9XG5cbiAgICB0ZCwgdGgge1xuICAgICAgcGFkZGluZzogbGluZUhlaWdodCgpLzIgMDtcbiAgICAgIHdpZHRoOiA2MCU7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuXG4gICAgICAmOmZpcnN0LW9mLXR5cGUge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuICAgICAgfVxuXG4gICAgICBwIHtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgICB9XG5cbiAgICAgICY6bnRoLWNoaWxkKDIpIHtcbiAgICAgICAgd2lkdGg6IDQwJTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxMCU7XG4gICAgICB9XG4gICAgfVxuICAgIHRyIHtcbiAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlua0JsdWU7XG5cbiAgICAgICY6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbGlua0JsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLnRhYmxlR3JvdXAge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG4gICAgJjpub3QoZmlyc3Qtb2YtdHlwZSkge1xuICAgICAgdGQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLnRhYmxlQ29udGFpbmVyIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG5cbiAgdGFibGUge1xuICAgIG1pbi13aWR0aDogNjUwcHg7XG4gIH1cbn1cbi5jb250ZW50Q29udGFpbmVyIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG5cbi5pbmRtYXJrMj5wIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDE2cHg7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTBweDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRleHQ7XG4gICAgbWFyZ2luLXJpZ2h0OiA4cHg7XG4gIH1cbn1cblxuLmluZG1hcmsxPnAge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctbGVmdDogMjhweDtcblxuICAmOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiA4cHg7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogNHB4O1xuICAgIGhlaWdodDogNHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR0ZXh0O1xuICAgIG1hcmdpbi1yaWdodDogOHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgfVxufVxuXG4uaW5kbWFyaz5wIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWxlZnQ6IDQwcHg7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDhweDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAwO1xuICAgIGhlaWdodDogMDtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgICBtYXJnaW4tbGVmdDogMjhweDtcbiAgICBib3JkZXI6IDNweCBzb2xpZDtcbiAgICBib3JkZXItbGVmdC1jb2xvcjogJHRleHQ7XG4gIH1cbn1cblxuLmNvbnRlbnRSaWdodCB7XG4gIHBhZGRpbmctdG9wOiBsaW5lSGVpZ2h0KCkvMjtcbiAgZmxvYXQ6IG5vbmU7XG4gIHdpZHRoOiAxMDAlO1xuICBwYWRkaW5nLWxlZnQ6IDA7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbWQpIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgd2lkdGg6IDUwJTtcbiAgICBwYWRkaW5nLWxlZnQ6IDUlO1xuICB9XG59XG4uY29udGVudExlZnQge1xuICBwYWRkaW5nLXRvcDogbGluZUhlaWdodCgpLzI7XG4gIGZsb2F0OiBub25lO1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZy1yaWdodDogMDtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHdpZHRoOiA1MCU7XG4gICAgcGFkZGluZy1yaWdodDogNSU7XG4gIH1cbn1cblxudGFibGUuaW4ge1xuICBtYXJnaW46IDA7XG5cbiAgdGQsIHRkOm50aC1jaGlsZCgyKSB7XG4gICAgd2lkdGg6IDUwJTtcbiAgfVxuICB0ciwgdHI6Zmlyc3Qtb2YtdHlwZSB7XG4gICAgYm9yZGVyOiAwO1xuICB9XG59XG5cbi5rYXNrYWQge1xuXG4gIHRkLCB0aCB7XG4gICAgd2lkdGg6IDMwJTtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgcCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuXG4gICAgJjpudGgtY2hpbGQoMSkge1xuICAgICAgd2lkdGg6IDQwJTtcblxuICAgICAgcCB7XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4ucHJvZHVjdFRpdGxlIHtcbiAgY29sb3I6ICRsaW5rO1xuICBtYXJnaW46IDAgYXV0bztcbi8qXG4gICY6YmVmb3JlLCAmOmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IHNwYW4oMSBvZiAxMik7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkbGluaztcbiAgICBtYXJnaW4tbGVmdDogZ3V0dGVyKCk7XG4gICAgbWFyZ2luLXJpZ2h0OiBndXR0ZXIoKTtcbiAgfSovXG59XG4ucHJvZHVjdFBob3RvUiB7XG4gIHdpZHRoOiA0MCU7XG4gIGZsb2F0OiByaWdodDtcbiAgbWFyZ2luLWxlZnQ6IGxpbmVIZWlnaHQoKTtcbiAgbWFyZ2luLWJvdHRvbTogbGluZUhlaWdodCgpO1xuICBtYXJnaW4tdG9wOiBsaW5lSGVpZ2h0KCkvMjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCAkeHMpIHtcbiAgICB3aWR0aDogc3BhbigxMikgIWltcG9ydGFudDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgICBmbG9hdDogbm9uZTtcbiAgfVxufVxuLnByb2R1Y3RQaG90b0wge1xuICB3aWR0aDogNDAlO1xuICBmbG9hdDogbGVmdDtcbiAgbWFyZ2luLXJpZ2h0OiBsaW5lSGVpZ2h0KCk7XG4gIG1hcmdpbi1ib3R0b206IGxpbmVIZWlnaHQoKTtcbiAgbWFyZ2luLXRvcDogbGluZUhlaWdodCgpLzI7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtYXgtd2lkdGggJHhzKSB7XG4gICAgd2lkdGg6IHNwYW4oMTIpICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIGZsb2F0OiBub25lO1xuICB9XG59XG4ucHJvZHVjdEltYWdlcyB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICBpbWcge1xuICAgIG1hcmdpbjogbGluZUhlaWdodCgpLzIgMDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtKSB7XG4gICAgaW1nIHtcbiAgICAgIG1heC1oZWlnaHQ6IDIwMHB4O1xuICAgICAgbWFyZ2luOiAwIGxpbmVIZWlnaHQoKS8yO1xuICAgIH1cbiAgfVxufSIsIu+7vy8vIEFib3V0IHBhZ2Vcbi5hYm91dFBob3RvIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgbWFyZ2luOiBsaW5lSGVpZ2h0KCkgYXV0byBsaW5lSGVpZ2h0KCkqMjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRzbSkge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICB9XG59XG5cbi5hYm91dFBob3RvVGl0bGUge1xuICBjb2xvcjogJGxpbmtCbHVlO1xuICBtYXJnaW46IGxpbmVIZWlnaHQoKSBhdXRvIGxpbmVIZWlnaHQoKS8yO1xufVxuLmFib3V0UGhvdG9JdGVtMSB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWJvdHRvbTogbGluZUhlaWdodCgpO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHNtKSB7XG4gICAgd2lkdGg6IHNwYW4oNCk7XG4gICAgbWFyZ2luLXJpZ2h0OiBndXR0ZXIoKTtcblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICB9XG4gIH1cbn1cbi5hYm91dFBob3RvSXRlbTIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgYWxpZ24tY29udGVudDogZmxleC1zdGFydDtcblxuICAuYWJvdXRQaG90b0ltZyB7XG4gICAgd2lkdGg6IHNwYW4oNikgLSBndXR0ZXIoKS80O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc20pIHtcbiAgICB3aWR0aDogc3Bhbig4KTtcbiAgfVxufVxuLmFib3V0UGhvdG9JdGVtMSwgLmFib3V0UGhvdG9JdGVtMiB7XG4gIHdpZHRoOiAxMDAlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc20pIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICB9XG59XG4uYWJvdXRQaG90b0ltZyB7XG4gIGhlaWdodDogbGluZUhlaWdodCgpKjEwO1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgY2VudGVyO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XG4gICAgaGVpZ2h0OiBsaW5lSGVpZ2h0KCkqMTU7XG4gIH1cbn1cbi5hYm91dFBob3RvQ2FwdGlvbiB7XG4gIHdpZHRoOiAxMDAlO1xuICBmb250LXNpemU6IHR5cGVTY2FsZSgtMSk7XG4gIGNvbG9yOiAkbGlua0JsdWU7XG4gIHBhZGRpbmctdG9wOiBsaW5lSGVpZ2h0KCkvMjtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xuICAgIGZvbnQtc2l6ZTogdHlwZVNjYWxlKDApO1xuICB9XG59IiwiLy8gR2FsbGVyeSBwYWdlXG5cbi5nYWxsZXJ5IHtcbiAgQGV4dGVuZCAlY2xlYXJmaXg7XG5cbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiBsaW5lSGVpZ2h0KDApIDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGZsZXgtd3JhcDogd3JhcDtcbn1cbi5nYWxsZXJ5SXRlbSwgLmdhbGxlcnlJdGVtSW4ge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IHNwYW4oMTIpO1xuXG4gIG1hcmdpbi1sZWZ0OiAwO1xuICBtYXJnaW4tYm90dG9tOiBsaW5lSGVpZ2h0KCk7XG4gIHBhZGRpbmctYm90dG9tOiAyKmxpbmVIZWlnaHQoKTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCR4cykge1xuICAgIHdpZHRoOiBzcGFuKDYpO1xuICAgIG1hcmdpbi1sZWZ0OiBndXR0ZXIoKTtcblxuICAgICY6bnRoLWNoaWxkKDJuKzEpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xuICAgIHdpZHRoOiBzcGFuKDQpO1xuXG4gICAgJjpudGgtY2hpbGQoMm4rMSkge1xuICAgICAgbWFyZ2luLWxlZnQ6IGd1dHRlcigpO1xuICAgIH1cbiAgICAmOm50aC1jaGlsZCgzbisxKSB7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcbiAgICB3aWR0aDogc3BhbigzKTtcblxuICAgICY6bnRoLWNoaWxkKDNuKzEpIHtcbiAgICAgIG1hcmdpbi1sZWZ0OiBndXR0ZXIoKTtcbiAgICB9XG4gICAgJjpudGgtY2hpbGQoNG4rMSkge1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG5cblxuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG5cbiAgICAuZ2FsbGVyeUl0ZW1PdmVybGF5IHtcbiAgICAgIGhlaWdodDogY2FsYygxMDAlIC0gMioxLjMzM3JlbSk7XG4gICAgICBib3R0b206IDIqbGluZUhlaWdodCgpO1xuICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkbGluZSwgLjgpO1xuICAgICAgcGFkZGluZy10b3A6IGxpbmVIZWlnaHQoKTtcblxuICAgICAgdHJhbnNpdGlvbjogYWxsIDFzO1xuICAgIH1cblxuICAgIC5nYWxsZXJ5SXRlbU1vcmUge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuICB9XG5cbiAgaW1nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cbi5nYWxsZXJ5SXRlbUluIHtcbiAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgJjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJhY2tncm91bmQ6IHVybChcIi4uL2ltZy96b29tLnN2Z1wiKSBuby1yZXBlYXQ7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIHdpZHRoOiA1MCU7XG4gICAgaGVpZ2h0OiA1MCU7XG4gICAgbGVmdDogMjUlO1xuICAgIHRvcDogMjUlO1xuICAgIG9wYWNpdHk6IC41O1xuICAgIHRyYW5zaXRpb246IGFsbCAuM3M7XG4gIH1cblxuICAmOmhvdmVyOmJlZm9yZSwgJjpmb2N1czpiZWZvcmUge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogYWxsIC4zcztcbiAgfVxufVxuLmdhbGxlcnlJdGVtT3ZlcmxheSB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAwO1xuICBsZWZ0OiAwO1xuICByaWdodDogMDtcbiAgcGFkZGluZzogbGluZUhlaWdodCgpLzIgbGluZUhlaWdodCgpO1xuICBoZWlnaHQ6IDIqbGluZUhlaWdodCgpO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIHRyYW5zaXRpb246IGFsbCAxcztcbn1cbi5nYWxsZXJ5SW1nQ2FwdGlvbiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgc3BhbiB7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgfVxuXG4gICYrcCB7XG4gICAgZm9udC1zaXplOiAuOXJlbTtcbiAgfVxufVxuLmdhbGxlcnlJdGVtTW9yZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDhyZW07XG4gIGJvdHRvbTogbGluZUhlaWdodCgpO1xuICBsZWZ0OiA1MCU7XG4gIG1hcmdpbi1sZWZ0OiAtNHJlbTtcbiAgY29sb3I6IHdoaXRlO1xuICBwYWRkaW5nOiBsaW5lSGVpZ2h0KCkvMiAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHdoaXRlO1xufSIsIu+7vy8vIENvbnRhY3QgcGFnZVxuXG4uY29udGFjdEluZm8ge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG4ubWFuYWdlcnMge1xuICB3aWR0aDogNzcwcHg7XG4gIG1hcmdpbjogYXV0bztcbiAgcGFkZGluZy10b3A6IDIqbGluZUhlaWdodCgwKTtcblxuICBoMyB7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgfVxuICBwIHtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIGZvbnQtc2l6ZTogdHlwZVNjYWxlKDApO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgcGFkZGluZy1ib3R0b206IDA7XG5cbiAgICAmOmxhc3Qtb2YtdHlwZSB7XG4gICAgICBwYWRkaW5nLWJvdHRvbTogbGluZUhlaWdodCgpO1xuICAgIH1cbiAgfVxufVxuLmFkZHJlc3Mge1xuICB3aWR0aDogNDcwcHg7XG4gIG1hcmdpbjogMCBhdXRvO1xuXG4gIHAge1xuICAgIGNvbG9yOiAjN2E4Mzg2O1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgZm9udC1zaXplOiB0eXBlU2NhbGUoMCk7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMDtcblxuICAgICY6bGFzdC1vZi10eXBlIHtcbiAgICAgIHBhZGRpbmctYm90dG9tOiBsaW5lSGVpZ2h0KCk7XG4gICAgfVxuICB9XG5cbiAgc3BhbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiAkbGlua0JsdWU7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR4cykge1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuXG4gIH1cblxuICBzdHJvbmcge1xuICAgIGNvbG9yOiBibGFjaztcbiAgfVxufVxuLnBob25lIHtcbiAgZm9udC1zaXplOiB0eXBlU2NhbGUoMSk7XG4gIGxpbmUtaGVpZ2h0OiBsaW5lSGVpZ2h0KDMpO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgJjpsYXN0LW9mLXR5cGUge1xuICAgIG1hcmdpbi1ib3R0b206IGxpbmVIZWlnaHQoKSoyO1xuICB9XG5cbiAgc3BhbiB7XG4gICAgY29sb3I6ICRsaW5rQmx1ZTtcbiAgICBmb250LXNpemU6IHR5cGVTY2FsZSgyKTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJHhzKSB7XG4gICAgICBmb250LXNpemU6IHR5cGVTY2FsZSgzKTtcbiAgICB9XG4gIH1cblxuXG4gIHN0cm9uZyB7XG4gICAgY29sb3I6ICM3YTgzODY7XG5cbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCR4cykge1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG59XG5cbiNtYXAge1xuICB3aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiA1MDBweDtcbn0iLCLvu78vLyBNZW51IHN0aWxlc1xuLm5hdiB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIG1pbi1oZWlnaHQ6IGxpbmVIZWlnaHQoMSk7XG4gIG92ZXJmbG93OiBhdXRvO1xufVxuXG4ubWVudVRvcCB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICB3aWR0aDogc3BhbigxMik7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gIEBleHRlbmQgJW1lbnVMaTtcblxuICBsaSB7XG4gICAgd2lkdGg6IDIwJTtcbiAgfVxuXG4gIGEsIGE6aG92ZXIsIGE6Zm9jdXMsIGE6dmlzaXRlZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBib3JkZXItdG9wOiA0cHggc29saWQgd2hpdGU7XG4gIH1cblxuICAuYWN0aXZlPmEsIGE6aG92ZXIsIGE6Zm9jdXMgIHtcbiAgICBib3JkZXItdG9wOiA0cHggc29saWQgJGxpbms7XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KG1heC13aWR0aCAoJG1kIC0gMSkpIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcbiAgICB3aWR0aDogc3BhbigxMCB3aWRlcik7XG4gIH1cbn1cbi5tZW51TGFuZyB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgLy93aWR0aDogNzBweDtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogMTVweDtcblxuICBsaSB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gIH1cblxuICBhLCBhOmhvdmVyLCBhOmZvY3VzLCBhOnZpc2l0ZWQge1xuICAgIG1hcmdpbi1yaWdodDogMTVweDtcbiAgICBjb2xvcjogd2hpdGU7XG4gIH1cblxuICAuYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcblxuICAgIGEge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuXG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogJyc7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAwIDEwcHg7XG5cbiAgICAgICAgQGV4dGVuZCAlaWNvbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRtZCkge1xuICAgIHRvcDogbGluZUhlaWdodCgpO1xuICB9XG59XG5cbi5sYW5nIHtcbiAgQGV4dGVuZCAlbWVudUxpO1xuXG4gIGEsIGE6aG92ZXIsIGE6Zm9jdXMsIGE6dmlzaXRlZCB7XG4gICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xuICAgIG9wYWNpdHk6IC43O1xuICB9XG5cbiAgYTpob3ZlciwgLmFjdGl2ZSB7b3BhY2l0eTogMTt9XG59XG5cblxuLm1lbnVMZWZ0Q29udGFpbmVyIHtcbiAgYm9yZGVyOiAxcHggc29saWQgJGxpbms7XG4gIHBhZGRpbmc6IGxpbmVIZWlnaHQoKTtcbiAgbWFyZ2luOiBsaW5lSGVpZ2h0KCkgYXV0bztcblxuICBoMyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgY29sb3I6ICRsaW5rO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbWFyZ2luOiAtMi40cmVtIGF1dG8gLTEqbGluZUhlaWdodCgpO1xuICAgIHdpZHRoOiA3MCU7XG4gIH1cblxuICBsaSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkZXI7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgfVxuXG4gIGEsIGE6aG92ZXIsIGE6Zm9jdXMsIGE6dmlzaXRlZCB7XG4gICAgY29sb3I6ICR0ZXh0Qmx1ZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IGxpbmVIZWlnaHQoMCkvMiAwO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlua0JsdWU7XG4gIH1cbiAgYTpob3ZlciwgYTpmb2N1cyB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgkbGlua0JsdWUsIC4yKTtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cblxufVxuXG4ubWVudVRpdGxlIHtcbiAgcGFkZGluZzogbGluZUhlaWdodCgpLzIgMDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaW5rQmx1ZTtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcblxuICBAaW5jbHVkZSBicmVha3BvaW50KCRsZykge1xuICAgIHBhZGRpbmctdG9wOiBsaW5lSGVpZ2h0KDEpO1xuICB9XG59XG5cbi5tZW51TGVmdD51bCB7XG4gICAgZGlzcGxheTogbm9uZTtcblxuICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoJGxnKSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICB9XG59XG5cbi5tZW51Qm90dG9tIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiBzcGFuKDEyKTtcbiAgbWFyZ2luOiBsaW5lSGVpZ2h0KCkgMDtcblxuICBAZXh0ZW5kICVtZW51TGk7XG4gIGxpIHtcbiAgICB3aWR0aDogMjAlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgfVxuXG4gIGEsIGE6aG92ZXIsIGE6Zm9jdXMsIGE6dmlzaXRlZCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgfVxuXG4gIGE6aG92ZXIsIGE6Zm9jdXMgIHtcbiAgICBjb2xvcjogJHRleHRHcmF5O1xuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkbGcpIHtcbiAgICB3aWR0aDogc3BhbigxMCk7XG4gICAgbWFyZ2luOiBsaW5lSGVpZ2h0KCkgc3BhbigxKTtcblxuICAgIGxpIHtcbiAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IHNwYW4oMSk7XG4gICAgICBwYWRkaW5nLWxlZnQ6IGd1dHRlcigpLzM7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludChtYXgtd2lkdGggKCRtZCAtIDEpKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuXG4vLyBNb2JpbGUgbWVudVxubGFiZWwjbW9iaWxlIHtcbiAgZGlzcGxheTogYmxvY2s7XG5cbiAgLm1lbnVNb2Ige1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBsZWZ0OiA1cHg7XG4gICAgdG9wOiA1cHg7XG4gICAgei1pbmRleDogMTAwO1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwyNTUsMjU1LC44KTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCUgNTAlIDUwJSA1MCU7XG4gICAgdHJhbnNpdGlvbjogLjVzIGVhc2UtaW4tb3V0O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgI0ZGRiwgMCAwIDAgMCAjRkZGO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuICAuaGFtYnVyZ2VyIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxNXB4O1xuICAgIGxlZnQ6IDhweDtcbiAgICB3aWR0aDogMjRweDtcbiAgICBoZWlnaHQ6IDJweDtcbiAgICBiYWNrZ3JvdW5kOiAkYmdHcmF5O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiAuNXMgZWFzZS1pbi1vdXQ7XG4gICAgJjphZnRlcixcbiAgICAmOmJlZm9yZSB7XG4gICAgICB0cmFuc2l0aW9uOiAuNXMgZWFzZS1pbi1vdXQ7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIGJhY2tncm91bmQ6ICRiZ0dyYXk7XG4gICAgfVxuICAgICY6YmVmb3JlIHtcbiAgICAgIHRvcDogLTZweDtcbiAgICB9XG4gICAgJjphZnRlciB7XG4gICAgICBib3R0b206IC02cHg7XG4gICAgfVxuICB9XG4gIGlucHV0IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG4gIGlucHV0OmNoZWNrZWQgKyAubWVudU1vYiB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsMjU1LDI1NSwxKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAxMDB2dyAjRkZGLCAwIDAgMCAxMDB2aCAjRkZGO1xuICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgLmhhbWJ1cmdlciB7XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICAmOmFmdGVyIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoOTBkZWcpO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICB9XG4gICAgICAmOmJlZm9yZSB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDkwZGVnKTtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGlucHV0OmNoZWNrZWQgKyAubWVudU1vYiArIHVsIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRvcDogNTAlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLC01MCUpO1xuICAgIHRyYW5zaXRpb246IC4yNXMgLjJzIGVhc2UtaW4tb3V0O1xuICB9XG5cbiAgdWwge1xuICAgIHotaW5kZXg6IDIwMDtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAtMTAwJTtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgwLDApO1xuICAgIG9wYWNpdHk6IDA7XG4gICAgdHJhbnNpdGlvbjogLjI1cyAwcyBlYXNlLWluLW91dDtcbiAgfVxuXG4gIEBpbmNsdWRlIGJyZWFrcG9pbnQoJG1kIC0gMSkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbn1cbiJdfQ== */
