/*! normalize.css v1.1.3 | MIT License | git.io/normalize */
/* ==========================================================================
   HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined in IE 6/7/8/9 and Firefox 3.
 */
@import url(ui-lightness/jquery-ui-1.10.2.custom.min.css);
@import url(webfonts/ss-social.css);
@import url(webfonts/ss-standard.css);
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
  display: block; }

/**
 * Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
 */
audio,
canvas,
video {
  display: inline-block;
  *display: inline;
  *zoom: 1; }

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0; }

/**
 * Address styling not present in IE 7/8/9, Firefox 3, and Safari 4.
 * Known issue: no IE 6 support.
 */
[hidden] {
  display: none; }

/* ==========================================================================
   Base
   ========================================================================== */
/**
 * 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using
 *    `em` units.
 * 2. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */
html {
  font-size: 100%;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Address `font-family` inconsistency between `textarea` and other form
 * elements.
 */
html,
button,
input,
select,
textarea {
  font-family: sans-serif; }

/**
 * Address margins handled incorrectly in IE 6/7.
 */
body {
  margin: 0; }

/* ==========================================================================
   Links
   ========================================================================== */
/**
 * Address `outline` inconsistency between Chrome and other browsers.
 */
a:focus {
  outline: thin dotted; }

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */
a:active,
a:hover {
  outline: 0; }

/* ==========================================================================
   Typography
   ========================================================================== */
/**
 * Address font sizes and margins set differently in IE 6/7.
 * Address font sizes within `section` and `article` in Firefox 4+, Safari 5,
 * and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

h2 {
  font-size: 1.5em;
  margin: 0.83em 0; }

h3 {
  font-size: 1.17em;
  margin: 1em 0; }

h4 {
  font-size: 1em;
  margin: 1.33em 0; }

h5 {
  font-size: 0.83em;
  margin: 1.67em 0; }

h6 {
  font-size: 0.67em;
  margin: 2.33em 0; }

/**
 * Address styling not present in IE 7/8/9, Safari 5, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted; }

/**
 * Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.
 */
b,
strong {
  font-weight: bold; }

blockquote {
  margin: 1em 40px; }

/**
 * Address styling not present in Safari 5 and Chrome.
 */
dfn {
  font-style: italic; }

/**
 * Address differences between Firefox and other browsers.
 * Known issue: no IE 6/7 normalization.
 */
hr {
  box-sizing: content-box;
  height: 0; }

/**
 * Address styling not present in IE 6/7/8/9.
 */
mark {
  background: #ff0;
  color: #000; }

/**
 * Address margins set differently in IE 6/7.
 */
p,
pre {
  margin: 1em 0; }

/**
 * Correct font family set oddly in IE 6, Safari 4/5, and Chrome.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, serif;
  _font-family: 'courier new', monospace;
  font-size: 1em; }

/**
 * Improve readability of pre-formatted text in all browsers.
 */
pre {
  white-space: pre;
  white-space: pre-wrap;
  word-wrap: break-word; }

/**
 * Address CSS quotes not supported in IE 6/7.
 */
q {
  quotes: none; }

/**
 * Address `quotes` property not supported in Safari 4.
 */
q:before,
q:after {
  content: '';
  content: none; }

/**
 * Address inconsistent and variable font size in all browsers.
 */
small {
  font-size: 80%; }

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

sup {
  top: -0.5em; }

sub {
  bottom: -0.25em; }

/* ==========================================================================
   Lists
   ========================================================================== */
/**
 * Address margins set differently in IE 6/7.
 */
dl,
menu,
ol,
ul {
  margin: 1em 0; }

dd {
  margin: 0 0 0 40px; }

/**
 * Address paddings set differently in IE 6/7.
 */
menu,
ol,
ul {
  padding: 0 0 0 40px; }

/**
 * Correct list images handled incorrectly in IE 7.
 */
nav ul,
nav ol {
  list-style: none;
  list-style-image: none; }

/* ==========================================================================
   Embedded content
   ========================================================================== */
/**
 * 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3.
 * 2. Improve image quality when scaled in IE 7.
 */
img {
  border: 0;
  /* 1 */
  -ms-interpolation-mode: bicubic;
  /* 2 */ }

/**
 * Correct overflow displayed oddly in IE 9.
 */
svg:not(:root) {
  overflow: hidden; }

/* ==========================================================================
   Figures
   ========================================================================== */
/**
 * Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11.
 */
figure {
  margin: 0; }

/* ==========================================================================
   Forms
   ========================================================================== */
/**
 * Correct margin displayed oddly in IE 6/7.
 */
form {
  margin: 0; }

/**
 * Define consistent border, margin, and padding.
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em; }

/**
 * 1. Correct color not being inherited in IE 6/7/8/9.
 * 2. Correct text not wrapping in Firefox 3.
 * 3. Correct alignment displayed oddly in IE 6/7.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  white-space: normal;
  /* 2 */
  *margin-left: -7px;
  /* 3 */ }

/**
 * 1. Correct font size not being inherited in all browsers.
 * 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5,
 *    and Chrome.
 * 3. Improve appearance and consistency in all browsers.
 */
button,
input,
select,
textarea {
  font-size: 100%;
  /* 1 */
  margin: 0;
  /* 2 */
  vertical-align: baseline;
  /* 3 */
  *vertical-align: middle;
  /* 3 */ }

/**
 * Address Firefox 3+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
button,
input {
  line-height: normal; }

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+.
 * Correct `select` style inheritance in Firefox 4+ and Opera.
 */
button,
select {
  text-transform: none; }

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 * 4. Remove inner spacing in IE 7 without affecting normal text inputs.
 *    Known issue: inner spacing remains in IE 6.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */
  *overflow: visible;
  /* 4 */ }

/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default; }

/**
 * 1. Address box sizing set to content-box in IE 8/9.
 * 2. Remove excess padding in IE 8/9.
 * 3. Remove excess padding in IE 7.
 *    Known issue: excess padding remains in IE 6.
 */
input[type="checkbox"],
input[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
  *height: 13px;
  /* 3 */
  *width: 13px;
  /* 3 */ }

/**
 * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
 *    (include `-moz` to future-proof).
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  /* 2 */
  box-sizing: content-box; }

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

/**
 * Remove inner padding and border in Firefox 3+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0; }

/**
 * 1. Remove default vertical scrollbar in IE 6/7/8/9.
 * 2. Improve readability and alignment in all browsers.
 */
textarea {
  overflow: auto;
  /* 1 */
  vertical-align: top;
  /* 2 */ }

/* ==========================================================================
   Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0; }

::-moz-selection {
  background: #ffcc89;
  text-shadow: none; }

::selection {
  background: #ffcc89;
  text-shadow: none; }

hr {
  display: block;
  height: 1px;
  border: 0;
  border-top: 1px solid #ccc;
  margin: 1em 0;
  padding: 0; }

audio,
canvas,
img,
video {
  vertical-align: middle; }

fieldset {
  border: 0;
  margin: 0;
  padding: 0; }

textarea {
  resize: vertical; }

.ir {
  background-color: transparent;
  border: 0;
  overflow: hidden;
  /* IE 6/7 fallback */
  *text-indent: -9999px; }

.ir:before {
  content: "";
  display: block;
  width: 0;
  height: 150%; }

.hidden {
  display: none; }

.visuallyhidden {
  border: 0;
  clip: rect(0 0 0 0);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px; }

.visuallyhidden.focusable:active,
.visuallyhidden.focusable:focus {
  clip: auto;
  height: auto;
  margin: 0;
  overflow: visible;
  position: static;
  width: auto; }

.invisible {
  visibility: hidden; }

.clearfix:before,
.clearfix:after {
  content: " ";
  /* 1 */
  display: table;
  /* 2 */ }

.clearfix:after {
  clear: both; }

.clearfix {
  *zoom: 1; }

iframe {
  border: 0;
  padding: 0px; }

#mq {
  transition: width 0.01ms;
  width: 0; }
  #mq:before {
    content: "min-width: 20em"; }
  @media only screen and (min-width: 32em) {
    #mq {
      width: 1px; }
      #mq:before {
        content: "min-width: 32em"; } }
  @media only screen and (min-width: 48em) {
    #mq {
      width: 2px; }
      #mq:before {
        content: "min-width: 48em"; } }
  @media only screen and (min-width: 60em) {
    #mq {
      width: 3px; }
      #mq:before {
        content: "min-width: 60em"; } }
  @media only screen and (max-width: 59.99em) {
    #mq {
      width: 4px; }
      #mq:before {
        content: "max-width: 59.99em"; } }
  @media only screen and (min-width: 64em) {
    #mq {
      width: 5px; }
      #mq:before {
        content: "min-width: 64em"; } }
  @media only screen and (min-width: 75em) {
    #mq {
      width: 6px; }
      #mq:before {
        content: "min-width: 75em"; } }

* {
  box-sizing: border-box; }

.noscroll {
  overflow: hidden; }

.wait {
  cursor: wait; }

html.noscroll,
body.noscroll {
  position: relative;
  overflow: hidden; }

.meta {
  color: #999; }

.meta-x-small {
  color: #999;
  font-size: 12.5px;
  font-size: 0.69444rem; }

.meta-small {
  color: #999;
  font-size: 15px;
  font-size: 0.83333rem; }

.highlight {
  color: #2393bd;
  font-weight: 600; }

.title {
  font-size: 18px;
  font-size: 1rem; }

a {
  color: #2393bd;
  text-decoration: none; }
  a:visited {
    color: #39aeda; }
  a:hover {
    color: #c73e28; }
  a:active {
    color: #c73e28; }
  a.btn {
    display: inline-block;
    margin-bottom: 0;
    color: #FFF;
    background: #0094BA;
    text-align: center;
    -ms-touch-action: manipulation;
    touch-action: manipulation;
    cursor: pointer;
    transition-property: background-color, color;
    transition-duration: 0.2s;
    transition-timing-function: ease;
    border-radius: 0;
    border: 1px solid transparent;
    line-height: 1.2;
    font-size: 20px;
    font-size: 1.11111rem;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    font-weight: normal;
    padding: 12px 17px; }
    a.btn:hover, a.btn:focus, a.btn:active, a.btn.active {
      color: #FFF;
      background: #c73e28; }
    a.btn:visited {
      color: #FFF; }
    a.btn.big {
      font-size: 22px;
      font-size: 1.22222rem; }
    a.btn.small {
      font-size: 18px;
      font-size: 1rem;
      padding: 7px 10px; }
    a.btn.x-small {
      font-size: 16px;
      font-size: 0.88889rem;
      padding: 5px 8px; }
    a.btn.dark-blue {
      background-color: #3b5998; }
    a.btn.white {
      color: #02749F;
      background-color: #FFF; }
      a.btn.white:hover, a.btn.white:focus, a.btn.white:active {
        background-color: #c73e28;
        color: white; }
    a.btn.red {
      background-color: #c73e28; }
      a.btn.red:hover, a.btn.red:focus, a.btn.red:active {
        background-color: #006b87; }
    a.btn.cancel {
      color: #1f1f1f;
      border: none;
      background-color: inherit;
      text-decoration: underline; }
    a.btn.disabled {
      color: #FFF;
      background-color: #dedede;
      cursor: not-allowed; }
      a.btn.disabled:hover {
        background-color: #dedede; }

button, input[type="button"] {
  display: inline-block;
  margin-bottom: 0;
  color: #FFF;
  background: #0094BA;
  text-align: center;
  -ms-touch-action: manipulation;
  touch-action: manipulation;
  cursor: pointer;
  transition-property: background-color, color;
  transition-duration: 0.2s;
  transition-timing-function: ease;
  border-radius: 0;
  border: 1px solid transparent;
  line-height: 1.2;
  font-size: 20px;
  font-size: 1.11111rem;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-weight: normal;
  padding: 12px 17px; }
  button:hover, button:focus, button:active, button.active, input[type="button"]:hover, input[type="button"]:focus, input[type="button"]:active, input[type="button"].active {
    color: #FFF;
    background: #c73e28; }
  button:visited, input[type="button"]:visited {
    color: #FFF; }
  button.big, input[type="button"].big {
    font-size: 22px;
    font-size: 1.22222rem; }
  button.small, input[type="button"].small {
    font-size: 18px;
    font-size: 1rem;
    padding: 7px 10px; }
  button.x-small, input[type="button"].x-small {
    font-size: 16px;
    font-size: 0.88889rem;
    padding: 5px 8px; }
  button.dark-blue, input[type="button"].dark-blue {
    background-color: #3b5998; }
  button.white, input[type="button"].white {
    color: #02749F;
    background-color: #FFF; }
    button.white:hover, button.white:focus, button.white:active, input[type="button"].white:hover, input[type="button"].white:focus, input[type="button"].white:active {
      background-color: #c73e28;
      color: white; }
  button.red, input[type="button"].red {
    background-color: #c73e28; }
    button.red:hover, button.red:focus, button.red:active, input[type="button"].red:hover, input[type="button"].red:focus, input[type="button"].red:active {
      background-color: #006b87; }
  button.cancel, input[type="button"].cancel {
    color: #1f1f1f;
    border: none;
    background-color: inherit;
    text-decoration: underline; }
  button.disabled, input[type="button"].disabled {
    color: #FFF;
    background-color: #dedede;
    cursor: not-allowed; }
    button.disabled:hover, input[type="button"].disabled:hover {
      background-color: #dedede; }
  button.btn, input[type="button"].btn {
    font-family: "Open Sans", sans-serif; }

a.gplus {
  color: #1f1f1f;
  font-size: 15px; }

@media only screen and (max-width: 59.99em) {
  .hide {
    display: none; } }

.center {
  text-align: center; }

.ad-sidebar, .ad-content {
  text-align: center;
  margin: 0 auto;
  padding-top: 10px !important;
  padding-bottom: 10px !important; }

p.categories {
  color: #3a4043;
  font-weight: bold;
  text-transform: uppercase;
  font-size: 12px;
  font-size: 0.66667rem; }

div.valuableTip {
  position: absolute;
  border: 1px solid #888;
  background: #F7F7CC;
  padding: 0px 3px;
  display: none;
  font-size: 12px;
  font-size: 0.66667rem;
  color: #2F2F2F; }

.tip {
  color: #2393bd; }
  .tip:hover {
    color: #c73e28; }

.cunlock_main_content {
  padding-bottom: 25px; }

div.p402_premium {
  margin-top: 15px; }

div.clear::after {
  clear: both;
  content: "";
  display: table; }

#GB_window {
  background: #FFF;
  overflow: hidden; }

#GB_frame {
  width: 100%;
  height: 100%; }

#GB_window img#GB_loader {
  display: block;
  width: 100px;
  margin: 20px auto; }

.ui-dialog-titlebar {
  background-color: #2393bd; }

.ui-widget-header {
  background: none;
  background-color: #2393bd;
  border: 1px solid #2393bd; }

.mce-path > .mce-path-item, .mce-path > .mce-divider {
  display: none !important; }

.mce-wordcount {
  position: relative !important;
  padding: 0px !important; }

html {
  font-size: 18px; }

body {
  background-color: #FFF;
  line-height: 1.45em;
  font-weight: inherit;
  font-family: "Open Sans", sans-serif;
  color: #1f1f1f; }

p {
  margin-bottom: 1.3em; }

h1, .h1, h2, .h2, h3, .h3, h4, .h4 {
  font-weight: inherit;
  line-height: 1.2;
  margin: 0 0 0.2em 0; }

h1, h2, h3, h4 {
  color: #c73e28; }

h1, .h1 {
  font-size: 37.325px;
  font-size: 2.07361rem; }

h2, .h2 {
  font-size: 31.104px;
  font-size: 1.728rem; }

h3, .h3 {
  font-size: 25.92px;
  font-size: 1.44rem; }

h4, .h4 {
  font-size: 21.6px;
  font-size: 1.2rem; }

small, .font-small {
  font-size: 15px;
  font-size: 0.83333rem; }

#breadcrumbs {
  font-size: 12.5px;
  font-size: 0.69444rem;
  padding: 8px 0 0;
  margin: 0 0 10px; }
  #breadcrumbs::after {
    clear: both;
    content: "";
    display: table; }
  #breadcrumbs h1 {
    display: inline;
    font-size: 12.5px;
    font-size: 0.69444rem;
    font-weight: lighter; }
  #breadcrumbs.truncated {
    padding-top: 12px; }
  #breadcrumbs .selected {
    color: #c73e28; }

.breadcrumbs {
  font-size: 15px;
  font-size: 0.83333rem;
  padding: 0.5em 0 0;
  margin: 0 0 0.56em; }
  .breadcrumbs::after {
    clear: both;
    content: "";
    display: table; }

.breadcrumbs__crumb, .breadcrumbs__crumb--white {
  display: inline;
  font-weight: normal; }

.breadcrumbs__crumb--white {
  color: #FFF; }

a.breadcrumbs__crumb--white:visited {
  color: #FFF; }

a.breadcrumbs__crumb--white:hover {
  color: #c73e28; }

ul.media {
  list-style: none;
  margin: 0;
  padding: 0;
  word-wrap: break-word; }
  ul.media p {
    line-height: 1.2em;
    margin: 0 0 5px 0; }
  ul.media .thumbnail {
    padding: 0 5px;
    float: left; }
    ul.media .thumbnail img {
      max-width: 60px; }
  ul.media .with-thumbnail {
    margin: 0 0 10px 75px; }
  ul.media li {
    padding: 10px 0; }
    ul.media li::after {
      clear: both;
      content: "";
      display: table; }
  ul.media.divided li {
    border-bottom: 1px solid #dedede; }
    ul.media.divided li:last-child {
      border-bottom: none; }

.card__object, .card__body, .card--left, .card--right {
  display: table-cell;
  vertical-align: top; }

.card, .card__object, .card__body {
  zoom: 1;
  overflow: hidden; }
  .card::after, .card__object::after, .card__body::after {
    clear: both;
    content: "";
    display: table; }

.card {
  margin-top: 0.55556em; }
  .card:first-child {
    margin-top: 0; }
  .card__object-is-thumbnail {
    max-width: 3.33333em; }
  .card__object-is-feature {
    width: 3.33333em; }
    @media only screen and (min-width: 48em) {
      .card__object-is-feature {
        width: 8.33333em; } }
  .card__header {
    margin: 0 0 0.27778em 0; }
  .card__desc {
    margin: 0.27778em 0; }
  .card--left {
    padding-right: 0.55556em; }
  .card--right {
    padding-left: 0.55556em; }
  .card--middle {
    vertical-align: middle; }
  .card--bottom {
    vertical-align: bottom; }
  .card-is-list {
    padding-left: 0;
    list-style: none; }

div.messagebox {
  margin: 20px auto;
  padding: 10px 15px;
  background: #f9f9f9; }
  div.messagebox h2,
  div.messagebox h3 {
    border-bottom: 1px solid #dedede;
    margin: 0;
    color: #2393bd;
    font-size: 1.2em; }
  div.messagebox.error, div.messagebox.warning {
    background: #f8f3e6; }
    div.messagebox.error h2,
    div.messagebox.error h3, div.messagebox.warning h2,
    div.messagebox.warning h3 {
      word-wrap: break-word;
      color: #c73e28; }
    div.messagebox.error pre, div.messagebox.warning pre {
      font-size: 1rem; }
  div.messagebox.alert {
    background: #f8f3e6; }
  div.messagebox p {
    margin-left: 8px; }

.nav-button {
  padding: 0.55556rem 0.55556rem;
  display: block;
  cursor: pointer;
  background: #f9f9f9; }
  @media only screen and (min-width: 48em) {
    .nav-button {
      clear: left; } }
  @media only screen and (min-width: 60em) {
    .nav-button {
      display: none;
      background: none; } }
  .nav-button__rows {
    float: right; }

nav.tabs {
  width: 100%;
  padding-bottom: 0.55556rem;
  clear: both;
  background: #f9f9f9; }
  nav.tabs a {
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased; }
  nav.tabs .selected {
    color: #c73e28; }
  nav.tabs ul {
    margin: 0;
    padding: 0; }
    nav.tabs ul ul {
      display: none; }
    nav.tabs ul li.open ul {
      display: block; }
  @media only screen and (max-width: 59.99em) {
    nav.tabs {
      padding: 0 0.55556rem 0.55556rem 0.55556rem; }
      nav.tabs .main-tab {
        border-bottom: 1px solid #dedede; }
      nav.tabs ul li {
        padding-left: 0; }
        nav.tabs ul li a {
          display: inline-block;
          padding: 0.55556rem 0 0.55556rem 0;
          width: 100%; }
          nav.tabs ul li a span.ss-icon {
            display: inline-block;
            float: right;
            font-size: 75%;
            padding-top: 0.22222rem; }
        nav.tabs ul li ul li {
          padding-left: 1.11111rem; }
          nav.tabs ul li ul li:last-child {
            padding-left: 1.11111rem;
            border: none; }
          nav.tabs ul li ul li:first-child a {
            padding-top: 0; } }
  @media only screen and (min-width: 60em) {
    nav.tabs {
      background: none; }
      nav.tabs ul li {
        border-right: 1px solid #dedede;
        display: inline-block;
        padding: 0 0.55556rem; }
        nav.tabs ul li:last-child {
          border: none; }
        nav.tabs ul li:first-child {
          padding-left: 0; }
        nav.tabs ul li.open {
          position: relative; }
          nav.tabs ul li.open ul {
            background: #FFF;
            border-radius: 4px;
            border: 1px solid #dedede;
            display: block;
            left: -0.27778em;
            padding: 0.27778rem 0.55556rem;
            position: absolute;
            white-space: nowrap;
            z-index: 1001; }
            nav.tabs ul li.open ul li {
              border: 0;
              display: block;
              margin: 0;
              padding: 0.27778rem 0 0.27778rem 0.27778rem; }
        nav.tabs ul li a {
          font-size: 15px;
          font-size: 0.83333rem; }
          nav.tabs ul li a span.ss-icon {
            font-size: 12.5px;
            font-size: 0.69444rem; } }

.ask-form select, .essay-form select {
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  -o-appearance: none;
  appearance: none;
  height: 39px;
  padding: 8px 40px 8px 8px;
  border-radius: 0;
  border: 1px solid #dedede;
  background-color: white;
  font-family: "Open Sans", sans-serif;
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAMCAMAAABRJ730AAAAOVBMVEX///9VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVXZSKW9AAAAEnRSTlMACgsMKSosLV5hY6GjpdXW1/XtQ+SHAAAAQUlEQVR4AWMgDfAKwQEPkjCzAExUgAlZObsgRFSQDdUYLogwJ7rx3CBRbgxbmfiFhPgYMV3DKijIgs2VHBwMlAAAWYQDejJlxwIAAAAASUVORK5CYII=);
  background-position: right;
  background-repeat: no-repeat; }
  .ask-form select:focus, .essay-form select:focus {
    border: 1px solid #2393bd; }

.ask-form input[type="file"].fileSelector, .essay-form input[type="file"].fileSelector {
  box-sizing: border-box;
  width: 100%; }

textarea {
  border: 1px solid #dedede;
  border-radius: 0;
  background-color: #FFF;
  font-weight: normal;
  outline: none;
  padding: 8px 8px 6px 8px; }

select {
  border: 1px solid #dedede;
  border-radius: 0;
  background-color: #FFF;
  font-weight: normal;
  outline: none;
  padding: 8px 8px 6px 8px; }
  select::-ms-expand {
    display: none; }

input {
  border: 1px solid #dedede;
  border-radius: 0;
  background-color: #FFF;
  font-weight: normal;
  outline: none;
  padding: 8px 8px 6px 8px; }
  input::-webkit-input-placeholder {
    color: #999; }
  input::-moz-placeholder {
    color: #999; }
  input:-moz-placeholder {
    color: #999; }
  input:-ms-input-placeholder {
    color: #999; }
  input:focus {
    border: 1px solid #2393bd; }
  input[disabled], input.disabled {
    cursor: not-allowed; }
  input[type="submit"], input[type="reset"] {
    display: inline-block;
    margin-bottom: 0;
    color: #FFF;
    background: #0094BA;
    text-align: center;
    -ms-touch-action: manipulation;
    touch-action: manipulation;
    cursor: pointer;
    transition-property: background-color, color;
    transition-duration: 0.2s;
    transition-timing-function: ease;
    border-radius: 0;
    border: 1px solid transparent;
    line-height: 1.2;
    font-size: 20px;
    font-size: 1.11111rem;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    font-weight: normal;
    padding: 12px 17px; }
    input[type="submit"]:hover, input[type="submit"]:focus, input[type="submit"]:active, input[type="submit"].active, input[type="reset"]:hover, input[type="reset"]:focus, input[type="reset"]:active, input[type="reset"].active {
      color: #FFF;
      background: #c73e28; }
    input[type="submit"]:visited, input[type="reset"]:visited {
      color: #FFF; }
    input[type="submit"].big, input[type="reset"].big {
      font-size: 22px;
      font-size: 1.22222rem; }
    input[type="submit"].small, input[type="reset"].small {
      font-size: 18px;
      font-size: 1rem;
      padding: 7px 10px; }
    input[type="submit"].x-small, input[type="reset"].x-small {
      font-size: 16px;
      font-size: 0.88889rem;
      padding: 5px 8px; }
    input[type="submit"].dark-blue, input[type="reset"].dark-blue {
      background-color: #3b5998; }
    input[type="submit"].white, input[type="reset"].white {
      color: #02749F;
      background-color: #FFF; }
      input[type="submit"].white:hover, input[type="submit"].white:focus, input[type="submit"].white:active, input[type="reset"].white:hover, input[type="reset"].white:focus, input[type="reset"].white:active {
        background-color: #c73e28;
        color: white; }
    input[type="submit"].red, input[type="reset"].red {
      background-color: #c73e28; }
      input[type="submit"].red:hover, input[type="submit"].red:focus, input[type="submit"].red:active, input[type="reset"].red:hover, input[type="reset"].red:focus, input[type="reset"].red:active {
        background-color: #006b87; }
    input[type="submit"].cancel, input[type="reset"].cancel {
      color: #1f1f1f;
      border: none;
      background-color: inherit;
      text-decoration: underline; }
    input[type="submit"].disabled, input[type="reset"].disabled {
      color: #FFF;
      background-color: #dedede;
      cursor: not-allowed; }
      input[type="submit"].disabled:hover, input[type="reset"].disabled:hover {
        background-color: #dedede; }
    @media only screen and (max-width: 40em) {
      input[type="submit"], input[type="reset"] {
        width: 100%; } }
    input[type="submit"].ss-icon, input[type="reset"].ss-icon {
      line-height: normal;
      margin: 0;
      font-size: 100%;
      display: inline;
      padding: 8px 10px 4px 10px; }
  input[type="file"] {
    width: 70%; }
  input.btn {
    font-family: "Open Sans", sans-serif; }
    @media only screen and (max-width: 40em) {
      input.btn {
        width: 100%; } }
  input#website {
    display: none; }

div.form {
  margin-top: 10px; }
  div.form ul {
    list-style: none;
    margin: 0;
    padding: 0; }
    div.form ul li {
      margin-bottom: 10px; }
      div.form ul li.separator {
        margin-top: 20px; }
  div.form label {
    color: #1f1f1f;
    font-size: 16px;
    font-size: 0.88889rem;
    font-weight: 600; }
    div.form label img {
      display: inline-block; }
    div.form label span.tip {
      color: #999;
      font-size: 12.5px;
      font-size: 0.69444rem; }
    div.form label.error {
      color: #c73e28; }
  div.form div.element label {
    font-weight: normal; }
  div.form input[type="text"], div.form input[type="password"], div.form input[type="email"], div.form textarea {
    width: 100%; }
    div.form input[type="text"].taken, div.form input[type="text"].invalid, div.form input[type="text"].error, div.form input[type="password"].taken, div.form input[type="password"].invalid, div.form input[type="password"].error, div.form input[type="email"].taken, div.form input[type="email"].invalid, div.form input[type="email"].error, div.form textarea.taken, div.form textarea.invalid, div.form textarea.error {
      border-color: red; }
    div.form input[type="text"]#getChapter, div.form input[type="text"]#getProblem, div.form input[type="password"]#getChapter, div.form input[type="password"]#getProblem, div.form input[type="email"]#getChapter, div.form input[type="email"]#getProblem, div.form textarea#getChapter, div.form textarea#getProblem {
      width: 50%; }
    div.form input[type="text"].qReference, div.form input[type="password"].qReference, div.form input[type="email"].qReference, div.form textarea.qReference {
      margin-bottom: 10px; }
  div.form input[type="radio"], div.form input[type="checkbox"] {
    margin: 5px; }
  @media only screen and (min-width: 60em) {
    div.form.indent {
      padding-left: 50px;
      border-left: 4px solid #f9f9f9;
      width: 60%; } }

section.info {
  border-radius: 5px;
  margin: 30px 0; }
  @media only screen and (min-width: 60em) {
    section.info::after {
      clear: both;
      content: "";
      display: table; } }
  section.info h2 {
    color: #c73e28;
    font-size: 20px;
    margin: 0 0 10px 0; }
    @media only screen and (min-width: 60em) {
      section.info h2 {
        width: 20%;
        float: left;
        margin-right: 5px; } }

.searchform {
  margin-bottom: 15px; }
  .searchform input[type="text"] {
    width: calc(100% - 45px); }

@media only screen and (min-width: 48em) {
  form#loginToSite, form.requestPassword, form#contactus {
    width: 50%; } }

.multi-select {
  max-height: 10em;
  padding: 0.2em 0.5em;
  margin: 0;
  overflow-y: scroll;
  overflow-x: hidden;
  overflow-wrap: break-word;
  border: 1px solid silver;
  background-color: #ffffff; }
  .multi-select label {
    margin: 0 0 0 0.2em; }

#validity {
  color: #c73e28; }

input.default {
  background: url(/images/img/blank.png) 0 0 no-repeat;
  padding-left: 65px; }

input.visa {
  background: url(/images/img/visa.png) 0 0 no-repeat;
  padding-left: 65px; }

input.mastercard {
  background: url(/images/img/mastercard.png) 0 0 no-repeat;
  padding-left: 65px; }

input.discover {
  background: url(/images/img/discover.png) 0 0 no-repeat;
  padding-left: 65px; }

input.americanexpress {
  background: url(/images/img/americanexpress.png) 0 0 no-repeat;
  padding-left: 65px; }

span.premium-indicator {
  display: block; }

img.premium-indicator {
  position: relative;
  top: -10px;
  right: 5px;
  float: right !important;
  width: 18px !important;
  height: 18px !important; }

span.profilepicContainer.thumb, span.premium-indicator.thumb {
  width: 60px; }

span.profilepicContainer.profile {
  width: 139px; }

.avatar-profile {
  background: #f2f2f2;
  border-radius: 4px;
  text-align: center;
  padding-top: 45px;
  font-size: 120px;
  line-height: 100px;
  margin: 0; }

.avatar-thumb {
  width: 48px;
  height: 48px;
  text-align: center;
  font-size: 48px;
  margin: 0; }
  .avatar-thumb .premium-indicator {
    top: -30px;
    right: -2px; }

section.container {
  margin-bottom: 20px;
  padding: 15px 20px;
  background: #f9f9f9;
  text-align: center; }
  section.container header {
    font-weight: 300;
    margin-bottom: 1em;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased; }
  section.container p {
    text-align: left; }
    section.container p.price, section.container p.center-p {
      text-align: center; }
  section.container ul, section.container ol {
    text-align: left; }
    section.container ul.unpadded, section.container ol.unpadded {
      padding-left: 1.3em; }
  section.container ul.facets {
    list-style: none;
    margin: 8px 0;
    padding: 0; }
    section.container ul.facets li a {
      background: url(/images/core/dot-facet.png) 0 4px no-repeat;
      display: block;
      padding-left: 15px;
      padding-bottom: 3px;
      text-indent: 0px; }
      section.container ul.facets li a.active {
        background-position: 0 -86px; }
  section.container .code {
    text-align: left;
    font-size: 15px;
    font-size: 0.83333rem;
    background: #FFF;
    padding: 0.55556em; }
  section.container h1, section.container h2, section.container h3, section.container h4, section.container h5, section.container h6 {
    margin: 0;
    color: #c73e28;
    text-align: left; }
  section.container a.btn {
    margin: 10px auto; }
  section.container.credits {
    background: #CCFFFF; }
  section.container.important, section.container.upgrade {
    background: #f8f3e6;
    clear: left; }
  section.container.popular h3, section.container.alt h3 {
    color: #ff8a00; }
  section.container.popular input, section.container.alt input {
    width: 195px; }
  section.container.popular input[type="submit"], section.container.alt input[type="submit"] {
    background: #ff8a00;
    width: auto; }
  section.container.related h3, section.container.general h3 {
    color: #2393bd; }

table.responsive {
  display: block;
  border: 1px solid #999;
  padding: 4px;
  margin-bottom: 20px; }
  @media only screen and (min-width: 60em) {
    table.responsive {
      display: table;
      padding: 0;
      border-collapse: collapse;
      border-spacing: 0; } }
  table.responsive thead, table.responsive tbody, table.responsive th, table.responsive td, table.responsive tr {
    display: block;
    border: none; }
    @media only screen and (min-width: 60em) {
      table.responsive thead, table.responsive tbody, table.responsive th, table.responsive td, table.responsive tr {
        border-collapse: collapse;
        border-spacing: 0; } }
  table.responsive caption {
    display: inline; }
    @media only screen and (min-width: 60em) {
      table.responsive caption {
        display: table-caption; } }
  @media only screen and (min-width: 60em) {
    table.responsive thead {
      display: table-header-group;
      vertical-align: middle; } }
  @media only screen and (min-width: 60em) {
    table.responsive tbody {
      display: table-row-group;
      vertical-align: middle; } }
  table.responsive thead tr {
    position: absolute;
    top: -9999px;
    left: -9999px; }
    @media only screen and (min-width: 60em) {
      table.responsive thead tr {
        position: static;
        background-color: #dedede; } }
  table.responsive tr th {
    padding: 0px; }
    @media only screen and (min-width: 60em) {
      table.responsive tr th {
        padding: 10px;
        display: table-cell;
        vertical-align: inherit;
        border: 1px solid #999; } }
  @media only screen and (min-width: 60em) {
    table.responsive th, table.responsive td {
      overflow: hidden;
      width: 140px; } }
  table.responsive tr {
    background-color: #FFF;
    border-bottom: 1px solid #999; }
    table.responsive tr:last-child {
      border-bottom: none; }
    table.responsive tr:nth-child(even) {
      background-color: #f9f9f9; }
    @media only screen and (min-width: 60em) {
      table.responsive tr {
        display: table-row;
        vertical-align: inherit;
        border-bottom: none; }
        table.responsive tr:nth-child(even) {
          background-color: #FFF; } }
  table.responsive td {
    border: none;
    border-bottom: 1px solid #eee;
    position: relative;
    text-align: left;
    overflow-wrap: break-word;
    word-wrap: break-word;
    word-break: break-all;
    word-break: normal;
    font-size: 15px;
    font-size: 0.83333rem; }
    table.responsive td:before {
      width: 55%;
      padding-right: 10px;
      font-weight: bold;
      content: attr(data-title);
      font-size: 15px;
      font-size: 0.83333rem; }
      @media only screen and (min-width: 60em) {
        table.responsive td:before {
          width: 0;
          content: none;
          position: static; } }
    @media only screen and (min-width: 60em) {
      table.responsive td {
        padding: 10px;
        display: table-cell;
        vertical-align: inherit;
        border: 1px solid #999; } }
    table.responsive td a {
      position: relative;
      z-index: 10; }

@media only screen and (min-width: 60em) {
  table.striped tbody tr:nth-child(even) {
    background-color: #f9f9f9; } }

@media only screen and (min-width: 60em) {
  table tr.conversions th {
    padding: 2px; } }

table.wide {
  width: 100%; }

table.stats {
  table-layout: fixed; }
  table.stats tr td {
    word-wrap: break-word; }

.pagination-numbered__meta {
  text-align: center;
  font-size: 12.5px;
  font-size: 0.69444rem;
  margin: 0 auto;
  padding-bottom: 0.16667em; }
  .pagination-numbered__meta::after {
    clear: both;
    content: "";
    display: table; }

.pagination-list {
  list-style-type: none;
  padding: 0;
  margin: 0 auto;
  text-align: center; }
  .pagination-list::after {
    clear: both;
    content: "";
    display: table; }
  .pagination-list__item {
    display: inline-block;
    background: #fff; }
  .pagination-list a {
    display: block;
    width: auto;
    padding: 0.27778em 0.44444em 0.33333em; }
    .pagination-list a:hover {
      background: #eee;
      color: #777; }
  .pagination-list .active {
    padding: 0.27778em 0.44444em 0.33333em; }

.content-paginate {
  margin-bottom: 20px; }
  .content-paginate a {
    padding-top: 10px;
    display: block; }
    .content-paginate a span {
      color: #1f1f1f;
      display: block; }
    .content-paginate a.pagination-prev {
      background: url(/images/img/arw-pagination-left.png) 0 50% no-repeat;
      padding-left: 35px;
      float: left;
      clear: left; }
      @media only screen and (min-width: 48em) {
        .content-paginate a.pagination-prev {
          clear: none;
          width: 50%; }
          .content-paginate a.pagination-prev.border {
            border-right: 1px solid #dcdcdc; }
          .content-paginate a.pagination-prev.border-none {
            border-right: none; } }
    .content-paginate a.pagination-next {
      background: url(/images/img/arw-pagination-right.png) 0 50% no-repeat;
      padding-left: 35px; }
      @media only screen and (min-width: 48em) {
        .content-paginate a.pagination-next {
          background: url(/images/img/arw-pagination-right.png) 100% 50% no-repeat;
          padding-right: 35px;
          text-align: right;
          float: right;
          width: 50%; } }
  .content-paginate .clear {
    clear: both; }

.cloaked {
  display: none;
  position: relative; }

#annotationBtn {
  cursor: pointer; }

.annotationNote {
  background: url("/images/badges/other/Annotator_32.png") 0% 2px no-repeat;
  padding-left: 40px;
  margin-bottom: 20px; }

.annotationOwlNote {
  background: url("/images/badges/other/Owleyes_64.png") 0% 2px no-repeat;
  padding-left: 70px;
  margin-bottom: 20px; }

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

.annotatedLabel {
  display: inline-block;
  background-image: url("/images/badges/other/Annotator_16.png");
  background-repeat: no-repeat;
  height: 16px;
  width: 16px;
  margin-left: 4px; }

.tooltip {
  color: black;
  background-color: yellow; }
  .tooltip.editing-annotation {
    background-color: #ffff99; }
  .tooltip:hover {
    cursor: pointer; }

.tooltip-disabled {
  color: black !important;
  background-color: white !important;
  cursor: text !important; }

.tooltip-html {
  background-color: yellow; }

.tooltip-question {
  background-color: #ffe8cc; }

.tooltip-quiz-question {
  background-color: #CCFFCC; }

@keyframes materialize {
  from {
    opacity: 0; }
  to {
    opacity: 1; } }

#annotation-readonly {
  word-wrap: break-word; }

#annotation-flyout {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  width: 100%;
  overflow-y: scroll;
  overflow-x: hidden;
  margin: 0;
  padding: 0.5em 0.5em 1.5em 0.5em;
  z-index: 999; }
  @media only screen and (min-width: 60em) {
    #annotation-flyout {
      position: relative;
      box-shadow: 1px 1px 5px silver;
      overflow: visible;
      margin: inherit;
      padding: 0 0.5em; } }
  #annotation-flyout.materialize {
    animation: materialize 0.7s; }
  #annotation-flyout .subject {
    padding: 0.5em 0; }
  #annotation-flyout .author {
    font-style: italic; }
  #annotation-flyout .viewport {
    margin: 0;
    padding: 0 0.2em;
    text-align: left; }
    #annotation-flyout .viewport p {
      margin: 0.5em 0;
      padding: 0; }
    @media only screen and (min-width: 48em) {
      #annotation-flyout .viewport .viewport {
        float: left; } }

.viewport.question [name="url"] {
  width: 100%; }

.viewport.quiz-question .ss-icon:hover {
  cursor: pointer; }

.viewport.quiz-question .empty-divider {
  border: 0;
  padding: 0;
  margin: 0.5em 0 0 0; }

.viewport.quiz-question .adjacent-field {
  overflow: hidden;
  padding-right: 0.5em; }

.viewport.quiz-question .find-question .submit {
  float: right; }

.viewport.quiz-question [name="questionID"] {
  width: 100%; }

.viewport.quiz-question [name="new-answer"] {
  width: 100%; }

.viewport.quiz-question .new-answer-options {
  padding-left: 0.5em; }

.viewport.quiz-question .new-answer .submit {
  float: right;
  padding-top: 0.3em; }

.viewport.quiz-question .answers {
  padding-left: 1.5em; }

.viewport.quiz-question .answer .delete-answer {
  float: right;
  color: #c73e28; }

.viewport.quiz-question .answer.correct .value {
  color: #2393bd; }

.viewport.quiz-question.display .answer {
  position: relative; }

.viewport.quiz-question.display .answer.selectable {
  list-style-type: none; }

.viewport.quiz-question.display .answer-choice {
  position: absolute;
  top: 0.3em;
  left: 0; }

.viewport.quiz-question.display .answer-text {
  display: block;
  padding-left: 1.5em; }

.viewport.quiz-question.display .responses {
  margin: 0;
  padding: 0; }

.viewport.quiz-question.display .response {
  list-style: none;
  padding: 0.2em 0; }

.viewport.quiz-question.display .response-badge {
  font-size: 0.6em;
  color: #FFF;
  border-radius: 0.6em;
  padding: 0.3em;
  width: 5em;
  display: inline-block;
  text-align: center; }

.viewport.quiz-question.display .response-badge.correct {
  background-color: #2393bd; }

.viewport.quiz-question.display .response-badge.incorrect {
  background-color: #c73e28; }

#annotation-flyout-controls {
  clear: both; }

.x-handlebars-template {
  display: none; }

#annotation-flyout .notifications {
  font-size: 0.8em; }
  #annotation-flyout .notifications .notification {
    display: none;
    padding: 1em;
    font-weight: bold;
    border-radius: 0.5em; }
  #annotation-flyout .notifications .notification.error {
    color: #FFF;
    background-color: #c73e28; }
  #annotation-flyout .notifications .notification.info {
    color: #1f1f1f;
    background-color: #fab93a; }
  #annotation-flyout .notifications .close {
    cursor: pointer;
    float: right; }

.adHWQ {
  margin-bottom: 20px; }

#enotes-paywall {
  display: none; }
  #enotes-paywall .paywall {
    margin-top: 20px; }

.waterfall-mount {
  clear: both; }

.redacted.obscured {
  color: transparent;
  text-shadow: 0 0 6px rgba(0, 0, 0, 0.5);
  -webkit-filter: blur(3px);
  filter: blur(3px);
  filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius='3'); }

.redacted.waterfall-preview,
.redact.obscured.waterfall-preview,
.waterfall-preview {
  color: inherit;
  text-shadow: none;
  max-height: 5.6em;
  overflow-y: hidden;
  -webkit-filter: blur(0px);
  filter: blur(0px);
  filter: progid:DXImageTransform.Microsoft.Blur(PixelRadius='0'); }

.t402-elided {
  clear: both; }

.chegg-ad select,
.chegg-ad input[type="text"] {
  margin: 0.2em; }

.chegg-ad .field-label {
  display: inline-block;
  margin-top: 0.5em; }

.chegg-ad [name="graduationYear"] {
  margin-top: 0.5em; }

.chegg-ad #chegg-gpa-range {
  display: inline-block;
  padding-left: 3em;
  font-size: 0.8em; }

.chegg-ad ul.media li {
  position: relative; }

.chegg-ad .split {
  display: inline-block; }

.chegg-ad .split.pct25 {
  width: 25%; }

.chegg-ad .split.pct50 {
  width: 50%; }

.chegg-ad .split.pct75 {
  width: 75%; }

.chegg-ad .split.pct80 {
  width: 80%; }

.chegg-ad .split.right {
  float: right;
  clear: right; }

.chegg-ad .split.left {
  float: left;
  clear: left; }

.chegg-ad.busy form {
  opacity: 0.5; }

.chegg-ad.busy * {
  cursor: wait; }

.chegg-ad .validation li {
  color: #c73e28; }

#solve-media-puzzle {
  margin: 1rem auto;
  text-align: center;
  padding: 0;
  width: 300px; }
  #solve-media-puzzle .instructions {
    margin-bottom: 0.5rem; }
  #solve-media-puzzle .error {
    display: none;
    background-color: #c73e28;
    color: #FFF;
    padding: 0.5rem;
    border-radius: 0.3rem;
    margin-top: 0.5rem; }
  #solve-media-puzzle button {
    margin-top: 0.5rem; }

.ad-prompt {
  margin-top: 10px; }
  .ad-prompt.hidden {
    display: none; }

.google-outstream-dialog .ad-popup.ui-dialog-content {
  padding: 0;
  width: 100% !important; }

#grammarly-ad-container .ad-popup__action-link {
  display: block;
  text-align: center; }

.addthis_custom_sharing {
  text-align: center;
  margin-top: 8px; }
  @media only screen and (min-width: 1080px) {
    .addthis_custom_sharing {
      position: absolute;
      left: -62px;
      top: 10px;
      width: 32px; }
      .addthis_custom_sharing a {
        margin: 3px 0; } }
  .addthis_custom_sharing.left {
    text-align: left; }

.insight {
  margin: 0.83333rem 0;
  overflow: auto;
  font-size: 18px;
  font-size: 1rem;
  clear: both;
  background: #f9f9f9;
  padding: 0.55556rem 1%; }
  .insight p, .insight .author {
    color: #3a4043; }
  .insight .author, .insight .more {
    font-size: 12.5px;
    color: #777; }
  .insight.featured {
    font-size: 15px;
    margin: 0.55556rem 0.55556rem 0.55556rem 0; }
    @media only screen and (min-width: 60em) {
      .insight.featured {
        float: left;
        max-width: 175px; } }
  .insight.open .headline {
    border-bottom: 1px solid #dedede; }
  .insight ul li {
    margin: 0 0 0.55556rem 0; }
  .insight .article-title-link__header {
    margin: 0 6% 0 2%;
    width: 86%;
    font-size: 18px;
    font-size: 1rem;
    font-weight: bold; }
  .insight .article-title-link__toggle {
    float: right;
    padding: 0;
    font-size: 18px;
    font-size: 1rem; }
  .insight .article-title-link__glance {
    font-family: "Open Sans", sans-serif;
    font-weight: normal;
    color: #1f1f1f; }
    .insight .article-title-link__glance::after {
      clear: both;
      content: "";
      display: table; }
  .insight .insightQuote {
    padding: 0 2%; }
  .insight .editable {
    cursor: pointer; }

@media only screen and (min-width: 60em) {
  .insight-glance .article-image {
    margin: 0 1.66667rem 0 1.66667rem; } }

.insight-pdf {
  text-align: center; }
  .insight-pdf__btn {
    background: #c73e28 !important; }

.content-jump-links {
  clear: both;
  display: block;
  padding: 0.55556rem 0.55556rem 0.27778rem 0.27778rem;
  margin: 1.11111rem 0 0.55556rem 0;
  border-radius: 6px;
  background-color: #f9f9f9; }
  .content-jump-links ol {
    display: block;
    list-style: none;
    counter-reset: item;
    padding: 0 0 0 0.55556rem; }
    .content-jump-links ol.nested {
      margin: 0; }
    .content-jump-links ol li {
      display: table-row; }
      .content-jump-links ol li:before {
        display: table-cell;
        content: counters(item, ".") ". ";
        counter-increment: item;
        padding-right: 0.27778rem;
        margin-left: -0.55556rem; }
  .content-jump-links .jump-contents {
    margin: 0 0.55556rem 0 0.27778rem; }
  .content-jump-links .jumps-insights {
    display: none;
    margin: 0;
    padding: 0; }

#jump-toggle, #insights-jmp-menu {
  cursor: pointer; }

#insights-jmp-menu {
  color: #2393bd; }

.page-banner {
  background-color: #0094BA;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  color: #FFF;
  padding: 1.66667em 0; }
  .page-banner .btn {
    margin: 0.55556em 0; }
  .page-banner.white {
    background-color: #FFF;
    color: #2e3336;
    padding: 30px 0 5px 0; }
    .page-banner.white h1 {
      color: #777; }
  .page-banner .author-link {
    color: #FFF; }

.page-banner-inner {
  margin: 0 auto;
  padding: 0.55556em;
  text-align: center;
  max-width: 960px; }
  .page-banner-inner h1, .page-banner-inner h2, .page-banner-inner h3, .page-banner-inner h4 {
    color: #FFF; }
  .page-banner-inner p {
    font-size: 18px;
    font-size: 1rem;
    margin: 0.83333em 0; }
  .page-banner-inner small {
    display: block; }
  .page-banner-inner.left-justify p {
    text-align: left; }

.page-banner-search {
  position: relative;
  margin: 2.5em auto 0;
  max-width: 33.33333em; }

.toggle-nav {
  color: #ccc;
  font-weight: bold;
  text-transform: uppercase;
  list-style-type: none;
  text-align: center;
  padding: 0;
  margin: 0 0 20px; }

.toggle-nav-item {
  display: inline-block; }
  .toggle-nav-item a {
    display: inline-block;
    padding: 5px 7.5px;
    color: #ccc;
    font-weight: bold; }
  .toggle-nav-item a:hover {
    color: #0094BA; }
  .toggle-nav-item a.active {
    color: black; }

.toggle-content {
  display: none; }
  .toggle-content.active {
    display: block; }

.subscription-container {
  margin-top: 40px; }
  .subscription-container::after {
    clear: both;
    content: "";
    display: table; }
  @media only screen and (min-width: 60em) {
    .subscription-container {
      margin-top: 60px; } }

.subscription {
  display: block;
  margin-top: 40px; }
  @media only screen and (min-width: 48em) {
    .subscription {
      width: 40%;
      float: left;
      margin: 20px 5% 0; } }

.subscription-box {
  background-color: #efefef;
  padding: 30px 15px; }

.subscription-label {
  color: #2e3336;
  font-size: 16px;
  font-weight: bold;
  line-height: 1;
  text-transform: uppercase;
  text-align: center;
  margin-bottom: 20px; }

.subscription-price {
  font-weight: 300;
  text-align: center;
  margin: 30px 0; }
  .subscription-price .price-value {
    color: #c73e28;
    font-size: 48px;
    line-height: 1; }
    @media only screen and (min-width: 60em) {
      .subscription-price .price-value {
        font-size: 60px; } }
  .subscription-price .price-term {
    color: #2e3336;
    font-size: 20px; }

.subscription-trial-container {
  text-align: center; }

.subscription-disclaimer {
  margin-top: 10px;
  color: #2e3336;
  text-align: center;
  font-weight: 300; }

.checkout-content {
  padding: 0.55556rem; }

.subscriptions {
  display: -webkit-box;
  display: -moz-box;
  display: box;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  box-orient: vertical;
  box-direction: normal;
  -moz-flex-direction: column;
  flex-direction: column;
  -ms-flex-direction: column;
  box-pack: distribute;
  -moz-justify-content: space-around;
  -ms-justify-content: space-around;
  -o-justify-content: space-around;
  justify-content: space-around;
  -ms-flex-pack: distribute;
  align-content: space-around;
  -ms-flex-line-pack: distribute; }
  @media only screen and (min-width: 60em) {
    .subscriptions {
      box-orient: horizontal;
      box-direction: normal;
      -moz-flex-direction: row;
      flex-direction: row;
      -ms-flex-direction: row;
      align-content: stretch;
      -ms-flex-line-pack: stretch; } }

.subscriptions-box {
  background: #dedede;
  background: #dedede;
  padding: 1.66667rem 0.83333rem;
  margin-bottom: 1rem; }
  @media only screen and (min-width: 60em) {
    .subscriptions-box {
      margin: 0;
      width: 23.88889rem; } }
  .subscriptions-box__title {
    color: #2e3336;
    font-size: 18px;
    font-size: 1rem;
    font-weight: bold;
    line-height: 1;
    text-transform: uppercase;
    text-align: center;
    margin-bottom: 1rem; }
  .subscriptions-box__controls {
    text-align: center;
    margin: 0 auto; }

.subscription-button {
  text-align: center;
  margin: 0 auto; }
  .subscription-button__label {
    display: inline-block;
    margin-bottom: 0;
    color: #FFF;
    background: #0094BA;
    text-align: center;
    -ms-touch-action: manipulation;
    touch-action: manipulation;
    cursor: pointer;
    transition-property: background-color, color;
    transition-duration: 0.2s;
    transition-timing-function: ease;
    border-radius: 0;
    border: 1px solid transparent;
    line-height: 1.2;
    font-size: 20px;
    font-size: 1.11111rem;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased;
    font-weight: normal;
    padding: 12px 17px; }
    .subscription-button__label:hover, .subscription-button__label:focus, .subscription-button__label:active, .subscription-button__label.active {
      color: #FFF;
      background: #c73e28; }
    .subscription-button__label:visited {
      color: #FFF; }
    .subscription-button__label.big {
      font-size: 22px;
      font-size: 1.22222rem; }
    .subscription-button__label.small {
      font-size: 18px;
      font-size: 1rem;
      padding: 7px 10px; }
    .subscription-button__label.x-small {
      font-size: 16px;
      font-size: 0.88889rem;
      padding: 5px 8px; }
    .subscription-button__label.dark-blue {
      background-color: #3b5998; }
    .subscription-button__label.white {
      color: #02749F;
      background-color: #FFF; }
      .subscription-button__label.white:hover, .subscription-button__label.white:focus, .subscription-button__label.white:active {
        background-color: #c73e28;
        color: white; }
    .subscription-button__label.red {
      background-color: #c73e28; }
      .subscription-button__label.red:hover, .subscription-button__label.red:focus, .subscription-button__label.red:active {
        background-color: #006b87; }
    .subscription-button__label.cancel {
      color: #1f1f1f;
      border: none;
      background-color: inherit;
      text-decoration: underline; }
    .subscription-button__label.disabled {
      color: #FFF;
      background-color: #dedede;
      cursor: not-allowed; }
      .subscription-button__label.disabled:hover {
        background-color: #dedede; }
  .subscription-button__radio {
    opacity: 0;
    display: block; }

.subscription-button__radio:checked + .subscription-button__label {
  background: #c73e28; }

.box-pricing {
  color: #2e3336;
  font-weight: 300;
  text-align: center;
  margin-bottom: 1.66667rem; }
  .box-pricing__price {
    color: #c73e28;
    font-size: 48px;
    font-size: 2.66667rem;
    padding: 0.55556rem 0; }
    @media only screen and (min-width: 60em) {
      .box-pricing__price {
        font-size: 60px;
        font-size: 3.33333rem; } }
  .box-pricing__term {
    font-size: 20px;
    font-size: 1.11111rem;
    padding: 0.55556rem 0; }
  .box-pricing__discount {
    font-size: 20px;
    font-size: 1.11111rem;
    font-weight: 400;
    color: #2393bd; }
  .box-pricing__period {
    color: #2e3336;
    font-size: 20px;
    font-size: 1.11111rem;
    margin: 0; }

.checkout-option.error {
  border-color: #c73e28; }

.subscription-error {
  margin: 0 auto;
  text-align: center;
  padding-top: 1rem; }

span.validation-error {
  display: block;
  font-weight: 600;
  color: #c73e28;
  font-size: 16px;
  font-size: 0.88889rem; }

.testimonials {
  clear: both;
  margin: 20px 0 30px;
  color: #2e3336;
  text-align: center;
  float: none; }
  .testimonials::after {
    clear: both;
    content: "";
    display: table; }

.testimonial {
  display: block;
  font-size: 21px;
  line-height: 1.25;
  margin: 20px 0;
  padding: 10px; }
  .testimonial.boxed p {
    position: relative;
    margin-bottom: 10px;
    padding: 15px 10px;
    background-color: #eee;
    border-radius: 4px; }
    .testimonial.boxed p:after {
      content: "";
      position: absolute;
      bottom: -13px;
      left: 50%;
      margin-left: -7px;
      border: 7px solid transparent;
      border-top: 7px solid #eee; }
  .testimonial p {
    margin-bottom: 5px; }
  .testimonial .quotee {
    font-size: 16px;
    font-style: italic; }
  @media only screen and (min-width: 48em) {
    .testimonial {
      float: left;
      padding: 30px;
      width: 50%; }
      .testimonial.three-col {
        padding: 30px 15px;
        width: 33.3%; } }

.image-showcase {
  text-align: center;
  overflow-x: scroll;
  overflow-y: hidden; }
  @media only screen and (min-width: 60em) {
    .image-showcase {
      overflow: hidden; } }
  .image-showcase figure {
    float: left;
    padding: 0.55556em;
    max-width: 11.11111em; }
    .image-showcase figure a {
      cursor: default;
      pointer-events: none; }
    .image-showcase figure img {
      -webkit-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
      width: 100%; }
    .image-showcase figure .meta {
      display: none; }
    .image-showcase figure figcaption {
      margin-top: 0.55556em; }
      .image-showcase figure figcaption a {
        color: white; }

.image-showcase-inner {
  z-index: 1;
  margin: 0 auto;
  width: 66.66667em; }

.big-icon {
  color: #0094BA;
  font-size: 48px; }
  @media only screen and (min-width: 60em) {
    .big-icon {
      font-size: 64px; } }
  .big-icon.bigger {
    font-size: 64px; }
    @media only screen and (min-width: 60em) {
      .big-icon.bigger {
        font-size: 84px; } }

.three-up {
  margin: 30px 0;
  font-size: 18px;
  font-weight: 300; }
  .three-up::after {
    clear: both;
    content: "";
    display: table; }
  .three-up.center {
    text-align: center; }

@media only screen and (min-width: 48em) {
  .three-up-column {
    float: left;
    width: 33.3%;
    padding: 10px 15px; } }

.three-up-hed {
  color: #2e3336;
  font-size: 21px;
  font-weight: bold;
  margin: 0 0 5px 0; }
  @media only screen and (min-width: 48em) {
    .three-up-hed {
      font-size: 24px; } }

.big-headline {
  color: #2e3336;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased;
  font-size: 30px;
  font-size: 1.66667rem;
  font-weight: 300;
  text-align: center; }
  @media only screen and (min-width: 60em) {
    .big-headline {
      font-size: 40px;
      font-size: 2.22222rem; } }
  .big-headline.secondary {
    color: #777;
    font-size: 24px;
    font-size: 1.33333rem; }
    @media only screen and (min-width: 60em) {
      .big-headline.secondary {
        font-size: 30px;
        font-size: 1.66667rem; } }

.free-week-offer {
  text-align: center; }
  .free-week-offer .blurb {
    font-size: 18px;
    display: block; }
  @media only screen and (min-width: 60em) {
    .free-week-offer .blurb {
      display: inline-block;
      vertical-align: middle;
      max-width: 55%; }
    .free-week-offer .btn {
      max-width: 40%; } }

.sidebar-section {
  margin-top: 1.38889em; }
  .sidebar-section:first-child {
    margin-top: 0; }
  .sidebar-section .dek:first-child {
    margin-top: 0; }
  .sidebar-section .dek.center {
    text-align: center; }
  .sidebar-section-header {
    color: #2e3336;
    text-transform: uppercase;
    font-size: 16px;
    font-size: 0.88889rem;
    font-weight: 600;
    text-align: left; }

@media only screen and (min-width: 60em) {
  .sidebar-padded {
    padding-left: 1.11111em; } }

.list-no-style {
  font-size: 18px;
  font-size: 1rem;
  line-height: 1.3;
  list-style-type: none;
  padding: 0; }
  .list-no-style li {
    margin-bottom: 7.5px; }

.list-large-type {
  font-size: 18px;
  font-size: 1rem; }
  .list-large-type li {
    margin-bottom: 10px; }

.list-zebra li {
  padding: 5px;
  margin-bottom: 0; }

.list-zebra li:nth-child(even) {
  background-color: #eee; }

.list-links {
  color: #999;
  font-size: 15px;
  font-size: 0.83333rem;
  font-weight: bold;
  margin-left: 5px; }
  .list-links span {
    vertical-align: top; }

@media only screen and (min-width: 60em) {
  .explode-tab-list nav.tabs > ul > li > a {
    display: block;
    font-size: 16px;
    font-size: 0.88889rem;
    margin-bottom: 5px; }
    .explode-tab-list nav.tabs > ul > li > a.openable {
      display: none; }
  .explode-tab-list nav.tabs li a.selected {
    color: black !important; }
    .explode-tab-list nav.tabs li a.selected:hover {
      color: #c73e28; }
  .explode-tab-list nav.tabs ul ul {
    display: block; }
  .explode-tab-list nav.tabs ul li {
    border-right: 0;
    padding: 0; }
    .explode-tab-list nav.tabs ul li li a {
      color: #777;
      padding: 0 4px; }
      .explode-tab-list nav.tabs ul li li a:hover {
        color: #c73e28; } }

#browse.popular ol {
  list-style-type: decimal !important;
  padding: 0 0 0 45px !important; }

@media only screen and (min-width: 60em) {
  .hide-for-desktop {
    display: none; } }

@media only screen and (max-width: 59.99em) {
  .hide-for-mobile {
    display: none; } }

form.search {
  position: relative; }
  form.search input[type="text"],
  form.search input[type="search"] {
    width: 100%;
    padding: 10px 15px;
    border: 1px solid #dedede;
    border-radius: 0;
    font-size: 1.06667em; }
    form.search input[type="text"]::-ms-clear,
    form.search input[type="search"]::-ms-clear {
      display: none; }
  form.search input[type="submit"] {
    position: absolute;
    right: 5px;
    top: 0;
    width: auto;
    background-color: transparent;
    border-radius: 0;
    color: #c73e28;
    font-size: 1.6em; }

#sidebar::after {
  clear: both;
  content: "";
  display: table; }

#sidebar .aside {
  background-color: #f9f9f9;
  text-align: center;
  padding: 0.83333em 1.11111em;
  margin-bottom: 1.11111em; }
  #sidebar .aside header {
    text-align: left;
    font-weight: normal;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased; }
    #sidebar .aside header h3 {
      font-size: 21.6px;
      font-size: 1.2rem; }
  #sidebar .aside p {
    text-align: left; }
  #sidebar .aside .media {
    text-align: left; }
  #sidebar .aside.standard {
    text-align: left; }
    #sidebar .aside.standard header h1, #sidebar .aside.standard header h2, #sidebar .aside.standard header h3, #sidebar .aside.standard header h4, #sidebar .aside.standard header h5 {
      color: #2393bd; }
  #sidebar .aside.upgrade {
    background-color: #f8f3e6; }
  #sidebar .aside.orange header h1, #sidebar .aside.orange header h2, #sidebar .aside.orange header h3, #sidebar .aside.orange header h4, #sidebar .aside.orange header h5 {
    color: #ff8a00; }
  #sidebar .aside.box {
    text-align: center; }
    #sidebar .aside.box header {
      text-align: center;
      font-weight: 300;
      margin-bottom: 1em; }
      #sidebar .aside.box header h1, #sidebar .aside.box header h2, #sidebar .aside.box header h3, #sidebar .aside.box header h4, #sidebar .aside.box header h5 {
        color: #1f1f1f; }
    #sidebar .aside.box p {
      margin: 0; }

#content-header h1 {
  color: #2e3336;
  margin-bottom: 0.27778em; }

html {
  background: #2e3336; }

html, body, #page-wrapper, nav.main {
  border: 0;
  height: 100%; }

#page-wrapper {
  position: relative; }
  #page-wrapper.nav-open {
    overflow: hidden; }

nav.main {
  background: #3a4043;
  font-family: "Open Sans", sans-serif;
  overflow-y: scroll;
  position: absolute;
  width: 100%;
  z-index: 1; }
  @media only screen and (min-width: 60em) {
    nav.main {
      display: none; } }
  .nav-open nav.main {
    -webkit-overflow-scrolling: touch; }
  nav.main > * {
    -webkit-transform: translateZ(0px); }
  nav.main .user {
    background: #2c3133;
    padding: 0.55556rem; }
    nav.main .user::after {
      clear: both;
      content: "";
      display: table; }
    nav.main .user img {
      float: left;
      height: 40px;
      width: 40px; }
    nav.main .user .info {
      margin-left: 10px;
      float: left; }
    nav.main .user span {
      display: block; }
      nav.main .user span.name {
        color: #FFF;
        font-size: 26px;
        font-weight: bold;
        -moz-osx-font-smoothing: grayscale;
        -webkit-font-smoothing: antialiased;
        line-height: 28px; }
      nav.main .user span.points {
        color: #d5eaf4;
        font-size: 12px;
        -moz-osx-font-smoothing: grayscale;
        -webkit-font-smoothing: antialiased;
        line-height: 12px; }
  nav.main ul {
    border-top: 1px solid #656b6e;
    margin: 0;
    padding: 0; }
    nav.main ul li {
      border-bottom: 1px solid #656b6e;
      font-size: 1rem;
      padding: 0; }
      nav.main ul li a {
        color: #fab93a;
        display: inline-block;
        font-weight: bold;
        padding: 10px 20px 10px 12px;
        width: 75%;
        -moz-osx-font-smoothing: grayscale;
        -webkit-font-smoothing: antialiased; }
        nav.main ul li a:hover {
          color: #fbcb6c; }
        nav.main ul li a span.ss-icon {
          display: inline-block;
          float: right;
          font-size: 75%;
          padding-top: 4px; }
      nav.main ul li.alt a {
        color: #58c0e7; }
        nav.main ul li.alt a:hover {
          color: #85d1ed; }
      nav.main ul li.open ul {
        display: block; }
      nav.main ul li ul {
        display: none;
        margin: 0;
        padding: 0; }
        nav.main ul li ul li {
          font-size: 16px;
          margin: 0; }
          nav.main ul li ul li a {
            padding-left: 20px;
            color: #fbcb6c; }
            nav.main ul li ul li a:hover {
              color: #fddc9d; }
          nav.main ul li ul li:last-child {
            border: none; }
    nav.main ul.logged-in {
      margin-top: 2.22222rem; }
      nav.main ul.logged-in li a {
        color: #b0c2ca; }
      nav.main ul.logged-in .mobile-notification {
        color: #FFF; }

div.socialCounter {
  font-size: 18px;
  font-size: 1rem;
  background: #D12626;
  padding: 0 0.27778rem;
  color: #FFF;
  border-radius: 0.22222rem;
  text-align: center; }

div.socialContainer {
  position: absolute;
  left: 1.94444rem; }
  @media only screen and (min-width: 60em) {
    div.socialContainer {
      position: static;
      margin: 1.38889rem 0 0 0.38889rem;
      float: right; } }

div[role=main] {
  background: #FFF;
  position: relative;
  left: 0;
  z-index: 2;
  transition: left 0.3s cubic-bezier(0.03, 0.33, 0.4, 0.9); }
  .nav-open div[role=main] {
    left: 75%;
    box-shadow: -5px 0 20px rgba(0, 0, 0, 0.75); }

/* START HEADER */
#banner {
  background: #3a4043;
  position: relative;
  z-index: 6; }
  #banner .wrapper {
    color: #f8f8f8;
    font-size: 21.6px;
    font-size: 1.2rem;
    line-height: 22px;
    margin: 0;
    padding: 10px;
    text-shadow: 0 2px 1px rgba(0, 0, 0, 0.5); }
    #banner .wrapper::after {
      clear: both;
      content: "";
      display: table; }
    @media only screen and (min-width: 60em) {
      #banner .wrapper {
        height: 80px;
        max-width: 960px;
        margin: 0 auto; } }
  #banner b {
    border-radius: 3px;
    cursor: pointer;
    display: inline-block;
    padding: 12px 10px 8px 10px;
    height: 40px;
    width: 40px;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased; }
    #banner b.nav {
      float: left; }
      @media only screen and (min-width: 60em) {
        #banner b.nav {
          display: none; } }
      .nav-open #banner b.nav {
        background-color: #2e3336;
        box-shadow: inset 0 0 21px rgba(0, 0, 0, 0.4); }
    #banner b.search {
      float: right; }
      @media only screen and (min-width: 60em) {
        #banner b.search {
          display: none; } }
  #banner a.logo {
    background: url(/images/img/logo-mobile@2x.png) 0 4px no-repeat;
    background-size: 141px 35.5px;
    float: left;
    height: 39.5px;
    margin: 0;
    margin-left: 50%;
    margin-left: calc(50% - 70.5px);
    position: absolute;
    text-indent: -314159px;
    width: 141px;
    display: block; }
    @media only screen and (min-width: 60em) {
      #banner a.logo {
        background: url(/images/img/logo@2x.png) 0 0 no-repeat;
        background-size: 186px 46px;
        height: 46px;
        margin-top: 10px;
        margin-left: 0;
        width: 186px; } }
  #banner nav {
    display: none;
    font-weight: bold;
    -moz-osx-font-smoothing: grayscale;
    -webkit-font-smoothing: antialiased; }
    @media only screen and (min-width: 60em) {
      #banner nav {
        display: inline-block;
        list-style: none; }
        #banner nav::after {
          clear: both;
          content: "";
          display: table; } }
    #banner nav ul {
      float: left;
      margin: 0;
      padding: 0; }
      #banner nav ul li {
        border-right: 1px solid #999;
        display: inline-block;
        font-size: 18px;
        font-size: 1rem;
        padding: 0 7px;
        text-shadow: none; }
        #banner nav ul li a {
          color: #fab93a; }
          #banner nav ul li a:hover {
            color: #FFF; }
        #banner nav ul li:last-child {
          border: none; }
    @media only screen and (min-width: 60em) {
      #banner nav.desktop {
        float: left;
        margin: 25px 0 0 240px;
        padding: 0;
        width: calc(100% - 410px); }
        #banner nav.desktop::after {
          clear: both;
          content: "";
          display: table; } }
    #banner nav.desktop ul.site li .ss-icon {
      font-size: 12px; }
    #banner nav.desktop ul.site li.selected a {
      color: #FFF; }
    #banner nav.desktop ul.site li.active a {
      color: #58c0e7; }
      #banner nav.desktop ul.site li.active a:hover {
        color: #FFF; }
    #banner nav.desktop ul.site li ul {
      display: none; }
    #banner nav.desktop ul.site li.open {
      position: relative; }
      #banner nav.desktop ul.site li.open ul {
        background: #3a4043;
        border-radius: 4px;
        display: block;
        left: -5px;
        margin: 0;
        padding: 5px 10px;
        position: absolute;
        width: 150px;
        z-index: 1001; }
        #banner nav.desktop ul.site li.open ul li {
          border: 0;
          font-size: 15px;
          font-size: 0.83333rem;
          display: block;
          margin: 0;
          padding: 5px 0 5px 5px; }
    #banner nav.user {
      display: none; }
      @media only screen and (min-width: 60em) {
        #banner nav.user {
          display: inline-block;
          margin-top: 25px;
          float: right;
          list-style: none; } }
      #banner nav.user ul.sign-in {
        float: left;
        margin: 0;
        padding: 0; }
        #banner nav.user ul.sign-in li {
          display: inline-block; }
          #banner nav.user ul.sign-in li:last-child {
            padding-right: 0; }
      #banner nav.user.logged-in {
        float: right;
        text-shadow: none;
        position: relative;
        margin-top: 1.38889rem; }
        #banner nav.user.logged-in .openable-visible:hover .openable, #banner nav.user.logged-in .openable-visible:hover span.ss-icon {
          color: #FFF; }
        #banner nav.user.logged-in .openable {
          font-size: 18px;
          font-size: 1rem;
          color: #fab93a; }
        #banner nav.user.logged-in span.ss-icon {
          font-size: 12.5px;
          font-size: 0.69444rem; }
        #banner nav.user.logged-in div.info {
          display: none; }
        #banner nav.user.logged-in ul.sub {
          background: #3a4043;
          border-radius: 4px;
          display: none;
          position: absolute;
          left: -10px;
          padding-top: 10px;
          width: 140px; }
          #banner nav.user.logged-in ul.sub li {
            border: none;
            display: block;
            font-size: 15px;
            font-size: 0.83333rem;
            margin-bottom: 10px; }
        #banner nav.user.logged-in.open ul.sub {
          display: block; }
          #banner nav.user.logged-in.open ul.sub .mobile-notification {
            color: #FFF; }

.site-search {
  background: #3a4043;
  border-top: 1px solid #3a4043;
  position: relative;
  margin-top: -40px;
  width: 100%;
  z-index: 5;
  transition: margin-top 0.3s cubic-bezier(0.03, 0.33, 0.4, 0.9); }
  @media only screen and (min-width: 60em) {
    .site-search {
      margin-top: -60px; } }
  .site-search.open {
    margin-top: 0; }
    .site-search.open .site-search__wrapper {
      box-shadow: 0 0 20px rgba(0, 0, 0, 0.75); }
      @media only screen and (min-width: 60em) {
        .site-search.open .site-search__wrapper {
          box-shadow: none; } }
  .site-search__wrapper {
    position: relative;
    width: 100%;
    padding: 0 5px 5px 5px;
    margin: 0 auto; }
    @media only screen and (min-width: 60em) {
      .site-search__wrapper {
        box-shadow: none;
        max-width: 960px;
        margin: 0 auto; } }
  .site-search__form {
    width: 100%;
    height: 40px; }
  .site-search__control {
    border: none;
    position: absolute; }
  .site-search__query {
    width: calc(100% - 55px);
    left: 5px; }
    @media only screen and (min-width: 60em) {
      .site-search__query {
        width: calc(100% - 65px);
        left: 10px; } }
  .site-search input[type="submit"].ss-icon {
    right: 5px;
    width: 40px;
    font-size: 0.9em;
    line-height: initial;
    vertical-align: baseline; }
    @media only screen and (min-width: 60em) {
      .site-search input[type="submit"].ss-icon {
        right: 10px; } }

/* END HEADER */
/* START FOOTER */
#footer {
  background: #3a4043;
  font-family: "Open Sans", sans-serif;
  padding: 40px 10px;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased; }
  #footer::after {
    clear: both;
    content: "";
    display: table; }
  @media only screen and (min-width: 48em) {
    #footer {
      padding: 40px 20px; } }
  #footer .wrapper {
    max-width: 960px;
    margin: 0 auto; }
  #footer .logo {
    background: url(/images/img/logo-mobile@2x.png) 0 0 no-repeat;
    background-size: 141px 35.5px;
    height: 39.5px;
    width: 141px; }
  #footer p {
    color: #FFF;
    font-size: 15px;
    font-size: 0.83333rem; }
    #footer p.ss-icon {
      clear: left;
      font-size: 28px;
      font-size: 1.55556rem;
      padding-top: 0;
      margin: 0; }
      #footer p.ss-icon a {
        color: #777; }
        #footer p.ss-icon a:hover {
          color: #2393bd; }
    #footer p.boilerplate {
      font-size: 12.5px;
      font-size: 0.69444rem;
      display: inline-block;
      line-height: 2em;
      color: #777; }
      #footer p.boilerplate a {
        color: #999; }
  #footer a {
    color: #fab93a; }
    #footer a:visited {
      color: #fbcb6c; }
  #footer ul {
    margin: 0;
    padding: 0;
    list-style: none;
    margin-bottom: 10px; }
    #footer ul.two-up {
      width: 50%;
      float: left; }
    #footer ul li {
      font-size: 15px;
      font-size: 0.83333rem;
      margin: 0 0 10px 0;
      padding: 0; }
  #footer section {
    margin: 0 0 20px 0;
    min-height: 0;
    padding: 0; }
    #footer section::after {
      clear: both;
      content: "";
      display: table; }
    @media only screen and (min-width: 60em) {
      #footer section.main {
        padding-right: 10px;
        float: left;
        width: 50%; } }
    @media only screen and (min-width: 48em) {
      #footer section.block {
        width: 50%;
        float: left; } }
    @media only screen and (min-width: 60em) {
      #footer section.block {
        width: 25%; } }
    #footer section h4 {
      color: #FFF;
      margin: 0 0 10px 0;
      font-size: 15px;
      font-size: 0.83333rem;
      font-weight: 600; }

/* END FOOTER */
#subfooter {
  background: #f9f9f9;
  font-family: "Open Sans", sans-serif;
  padding: 10px;
  -moz-osx-font-smoothing: grayscale;
  -webkit-font-smoothing: antialiased; }
  #subfooter h3 {
    padding: 10px 0px; }
  #subfooter .wrapper {
    max-width: 960px;
    margin: 0 auto; }
    #subfooter .wrapper::after {
      clear: both;
      content: "";
      display: table; }
  #subfooter ul {
    list-style: none;
    margin: 0 0 10px 0;
    padding: 0; }
    #subfooter ul li {
      font-size: 15px;
      font-size: 0.83333rem;
      margin: 0 0 8px 0;
      padding: 0 5px 0 0; }
    #subfooter ul::after {
      clear: both;
      content: "";
      display: table; }
    @media only screen and (min-width: 48em) {
      #subfooter ul {
        width: 50%;
        float: left; } }
    @media only screen and (min-width: 60em) {
      #subfooter ul {
        width: 20%; } }

#litebox-overlay {
  display: none;
  position: fixed; }
  #litebox-overlay.visible {
    display: inherit;
    top: 0;
    left: 0;
    bottom: 0;
    width: 100%;
    background: rgba(0, 0, 0, 0.6);
    z-index: 999998; }

#litebox-popup {
  display: none;
  position: fixed;
  overflow: hidden; }
  #litebox-popup.visible {
    display: inherit;
    z-index: 999999; }
  #litebox-popup .litebox-content {
    display: inherit;
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%; }

/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLmNzcyIsInNvdXJjZXMiOlsic2NyZWVuLnNjc3MiLCJub3JtYWxpemUuc2NzcyIsImg1YnAtZGVmYXVsdHMuc2NzcyIsIl9jb25mLnNjc3MiLCJzaGFyZWQuc2NzcyIsIl9pbml0LnNjc3MiLCJfbWl4aW5zLnNjc3MiLCJib3VyYm9uL19ib3VyYm9uLnNjc3MiLCJib3VyYm9uL3NldHRpbmdzL19wcmVmaXhlci5zY3NzIiwiYm91cmJvbi9zZXR0aW5ncy9fcHgtdG8tZW0uc2NzcyIsImJvdXJib24vc2V0dGluZ3MvX2Fzc2V0LXBpcGVsaW5lLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fYXNzaWduLWlucHV0cy5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2NvbnRhaW5zLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fY29udGFpbnMtZmFsc3kuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1sZW5ndGguc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19pcy1saWdodC5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2lzLW51bWJlci5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX2lzLXNpemUuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL19weC10by1lbS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3B4LXRvLXJlbS5zY3NzIiwiYm91cmJvbi9mdW5jdGlvbnMvX3NoYWRlLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fc3RyaXAtdW5pdHMuc2NzcyIsImJvdXJib24vZnVuY3Rpb25zL190aW50LnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fdW5wYWNrLnNjc3MiLCJib3VyYm9uL2Z1bmN0aW9ucy9fbW9kdWxhci1zY2FsZS5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19jb252ZXJ0LXVuaXRzLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2RpcmVjdGlvbmFsLXZhbHVlcy5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19mb250LXNvdXJjZS1kZWNsYXJhdGlvbi5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX2xpbmVhci1hbmdsZS1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fbGluZWFyLWdyYWRpZW50LXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JhZGlhbC1hcmctcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIuc2NzcyIsImJvdXJib24vaGVscGVycy9fcmVuZGVyLWdyYWRpZW50cy5zY3NzIiwiYm91cmJvbi9oZWxwZXJzL19zaGFwZS1zaXplLXN0cmlwcGVyLnNjc3MiLCJib3VyYm9uL2hlbHBlcnMvX3N0ci10by1udW0uc2NzcyIsImJvdXJib24vY3NzMy9fYW5pbWF0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX2FwcGVhcmFuY2Uuc2NzcyIsImJvdXJib24vY3NzMy9fYmFja2ZhY2UtdmlzaWJpbGl0eS5zY3NzIiwiYm91cmJvbi9jc3MzL19iYWNrZ3JvdW5kLnNjc3MiLCJib3VyYm9uL2NzczMvX2JhY2tncm91bmQtaW1hZ2Uuc2NzcyIsImJvdXJib24vY3NzMy9fYm9yZGVyLWltYWdlLnNjc3MiLCJib3VyYm9uL2NzczMvX2NhbGMuc2NzcyIsImJvdXJib24vY3NzMy9fY29sdW1ucy5zY3NzIiwiYm91cmJvbi9jc3MzL19maWx0ZXIuc2NzcyIsImJvdXJib24vY3NzMy9fZmxleC1ib3guc2NzcyIsImJvdXJib24vY3NzMy9fZm9udC1mYWNlLnNjc3MiLCJib3VyYm9uL2NzczMvX2ZvbnQtZmVhdHVyZS1zZXR0aW5ncy5zY3NzIiwiYm91cmJvbi9jc3MzL19oaWRwaS1tZWRpYS1xdWVyeS5zY3NzIiwiYm91cmJvbi9jc3MzL19oeXBoZW5zLnNjc3MiLCJib3VyYm9uL2NzczMvX2ltYWdlLXJlbmRlcmluZy5zY3NzIiwiYm91cmJvbi9jc3MzL19rZXlmcmFtZXMuc2NzcyIsImJvdXJib24vY3NzMy9fbGluZWFyLWdyYWRpZW50LnNjc3MiLCJib3VyYm9uL2NzczMvX3BlcnNwZWN0aXZlLnNjc3MiLCJib3VyYm9uL2NzczMvX3BsYWNlaG9sZGVyLnNjc3MiLCJib3VyYm9uL2NzczMvX3JhZGlhbC1ncmFkaWVudC5zY3NzIiwiYm91cmJvbi9jc3MzL19zZWxlY3Rpb24uc2NzcyIsImJvdXJib24vY3NzMy9fdGV4dC1kZWNvcmF0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX3RyYW5zZm9ybS5zY3NzIiwiYm91cmJvbi9jc3MzL190cmFuc2l0aW9uLnNjc3MiLCJib3VyYm9uL2NzczMvX3VzZXItc2VsZWN0LnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYm9yZGVyLWNvbG9yLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci1zdHlsZS5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2JvcmRlci13aWR0aC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2J1dHRvbnMuc2NzcyIsImJvdXJib24vYWRkb25zL19jbGVhcmZpeC5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX2VsbGlwc2lzLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fZm9udC1zdGFja3Muc2NzcyIsImJvdXJib24vYWRkb25zL19oaWRlLXRleHQuc2NzcyIsImJvdXJib24vYWRkb25zL19tYXJnaW4uc2NzcyIsImJvdXJib24vYWRkb25zL19wYWRkaW5nLnNjc3MiLCJib3VyYm9uL2FkZG9ucy9fcG9zaXRpb24uc2NzcyIsImJvdXJib24vYWRkb25zL19wcmVmaXhlci5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3JldGluYS1pbWFnZS5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3NpemUuc2NzcyIsImJvdXJib24vYWRkb25zL190ZXh0LWlucHV0cy5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3RpbWluZy1mdW5jdGlvbnMuc2NzcyIsImJvdXJib24vYWRkb25zL190cmlhbmdsZS5zY3NzIiwiYm91cmJvbi9hZGRvbnMvX3dvcmQtd3JhcC5zY3NzIiwiYm91cmJvbi9fYm91cmJvbi1kZXByZWNhdGVkLXVwY29taW5nLnNjc3MiLCJwbHVnaW5zL19qcXVlcnktdWkuc2NzcyIsInBsdWdpbnMvX3RpbnltY2Uuc2NzcyIsIl90eXBvZ3JhcGh5LnNjc3MiLCJjb21wb25lbnRzL19icmVhZGNydW1icy5zY3NzIiwiY29tcG9uZW50cy9fbWVkaWEuc2NzcyIsImNvbXBvbmVudHMvX21lc3NhZ2Vib3guc2NzcyIsImNvbXBvbmVudHMvX3RhYnMuc2NzcyIsImNvbXBvbmVudHMvX2Zvcm0uc2NzcyIsImNvbXBvbmVudHMvX3Byb2ZpbGUtcGljLnNjc3MiLCJjb21wb25lbnRzL19jb250YWluZXIuc2NzcyIsImNvbXBvbmVudHMvX3RhYmxlLnNjc3MiLCJjb21wb25lbnRzL19wYWdpbmF0aW9uLnNjc3MiLCJjb21wb25lbnRzL19hbm5vdGF0aW9ucy5zY3NzIiwiY29tcG9uZW50cy9fYWRzLnNjc3MiLCJjb21wb25lbnRzL19hZF9jaGVnZy5zY3NzIiwiY29tcG9uZW50cy9fYWRfc29sdmVfbWVkaWEuc2NzcyIsImNvbXBvbmVudHMvX2FkX2dvb2dsZV9vdXRzdHJlYW0uc2NzcyIsImNvbXBvbmVudHMvX2FkX3RydWV4LnNjc3MiLCJjb21wb25lbnRzL19hZF9ncmFtbWFybHkuc2NzcyIsImNvbXBvbmVudHMvX3NoYXJlYmFyLnNjc3MiLCJjb21wb25lbnRzL19pbnNpZ2h0cy5zY3NzIiwiY29tcG9uZW50cy9fanVtcC1saW5rcy5zY3NzIiwiY29tcG9uZW50cy9fcGFnZS1iYW5uZXIuc2NzcyIsImNvbXBvbmVudHMvX3RvZ2dsZS5zY3NzIiwiY29tcG9uZW50cy9fc3Vic2NyaXB0aW9ucy5zY3NzIiwiY29tcG9uZW50cy9fdGVzdGltb25pYWxzLnNjc3MiLCJjb21wb25lbnRzL19pbWFnZS1zaG93Y2FzZS5zY3NzIiwiY29tcG9uZW50cy9fYmlnLWljb24uc2NzcyIsImNvbXBvbmVudHMvX3RocmVlLXVwLnNjc3MiLCJjb21wb25lbnRzL19iaWctaGVhZGxpbmUuc2NzcyIsImNvbXBvbmVudHMvX2ZyZWUtd2Vlay1vZmZlci5zY3NzIiwiY29tcG9uZW50cy9fc2lkZWJhci1zZWN0aW9uLnNjc3MiLCJjb21wb25lbnRzL19saXN0cy5zY3NzIiwiY29tcG9uZW50cy9fbWVkaWEtaGlkZS5zY3NzIiwiY29tcG9uZW50cy9fc2VhcmNoLnNjc3MiLCJjb21wb25lbnRzL19zaWRlYmFyLnNjc3MiLCJjb21wb25lbnRzL19jb250ZW50LWhlYWRlci5zY3NzIiwiX25hdi5zY3NzIiwiX2Jhbm5lci5zY3NzIiwiX2Zvb3Rlci5zY3NzIiwiX2xpdGVib3guc2NzcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvL1xuLy8gVG9wLWxldmVsIENTUyBmaWxlIHRoYXQgY29tYmluZXMgYWxsIGdsb2JhbCBlTm90ZXMuY29tIHN0eWxlcyBhbmQgaW1wb3J0cy5cbi8vXG4vLyBBdXRob3I6IE5pY2hvbGFzIENsb3VkIDxuY2xvdWRAZW5vdGVzLmNvbT5cbi8vXG4vLyBTZWUgYWxzbzpcbi8vIC0gQW5ldzo6JGdsb2JhbFJlc291cmNlc1xuXG5AaW1wb3J0IFwibm9ybWFsaXplXCI7XG5AaW1wb3J0IFwiaDVicC1kZWZhdWx0c1wiO1xuQGltcG9ydCBcInNoYXJlZFwiO1xuXG4vLyBOT1RFOiBEaXJlY3QgY3NzIGltcG9ydHMgd2lsbCBiZSByZW5kZXJlZCBhcyBAaW1wb3J0IHVybCgpLlxuLy8gIFBhdGhzIGFyZSByZWxhdGl2ZSB0byBodG1sL2Nzcy8uXG5AaW1wb3J0IFwidWktbGlnaHRuZXNzL2pxdWVyeS11aS0xLjEwLjIuY3VzdG9tLm1pbi5jc3NcIjtcbkBpbXBvcnQgXCJ3ZWJmb250cy9zcy1zb2NpYWwuY3NzXCI7XG5AaW1wb3J0IFwid2ViZm9udHMvc3Mtc3RhbmRhcmQuY3NzXCI7XG4iLCIvKiEgbm9ybWFsaXplLmNzcyB2MS4xLjMgfCBNSVQgTGljZW5zZSB8IGdpdC5pby9ub3JtYWxpemUgKi9cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgNi83LzgvOSBhbmQgRmlyZWZveCAzLlxuICovXG5cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm5hdixcbnNlY3Rpb24sXG5zdW1tYXJ5IHtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLyoqXG4gKiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgNi83LzgvOSBhbmQgRmlyZWZveCAzLlxuICovXG5cbmF1ZGlvLFxuY2FudmFzLFxudmlkZW8ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAqZGlzcGxheTogaW5saW5lO1xuICAgICp6b29tOiAxO1xufVxuXG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5cbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDcvOC85LCBGaXJlZm94IDMsIGFuZCBTYWZhcmkgNC5cbiAqIEtub3duIGlzc3VlOiBubyBJRSA2IHN1cHBvcnQuXG4gKi9cblxuW2hpZGRlbl0ge1xuICAgIGRpc3BsYXk6IG5vbmU7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBCYXNlXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIENvcnJlY3QgdGV4dCByZXNpemluZyBvZGRseSBpbiBJRSA2Lzcgd2hlbiBib2R5IGBmb250LXNpemVgIGlzIHNldCB1c2luZ1xuICogICAgYGVtYCB1bml0cy5cbiAqIDIuIFByZXZlbnQgaU9TIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgb3JpZW50YXRpb24gY2hhbmdlLCB3aXRob3V0IGRpc2FibGluZ1xuICogICAgdXNlciB6b29tLlxuICovXG5cbmh0bWwge1xuICAgIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICAgIC1tcy10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvKiAyICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBgZm9udC1mYW1pbHlgIGluY29uc2lzdGVuY3kgYmV0d2VlbiBgdGV4dGFyZWFgIGFuZCBvdGhlciBmb3JtXG4gKiBlbGVtZW50cy5cbiAqL1xuXG5odG1sLFxuYnV0dG9uLFxuaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7XG59XG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW5zIGhhbmRsZWQgaW5jb3JyZWN0bHkgaW4gSUUgNi83LlxuICovXG5cbmJvZHkge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIExpbmtzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIEFkZHJlc3MgYG91dGxpbmVgIGluY29uc2lzdGVuY3kgYmV0d2VlbiBDaHJvbWUgYW5kIG90aGVyIGJyb3dzZXJzLlxuICovXG5cbmE6Zm9jdXMge1xuICAgIG91dGxpbmU6IHRoaW4gZG90dGVkO1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgd2hlbiBmb2N1c2VkIGFuZCBhbHNvIG1vdXNlIGhvdmVyZWQgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmE6YWN0aXZlLFxuYTpob3ZlciB7XG4gICAgb3V0bGluZTogMDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIFR5cG9ncmFwaHlcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBmb250IHNpemVzIGFuZCBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBJRSA2LzcuXG4gKiBBZGRyZXNzIGZvbnQgc2l6ZXMgd2l0aGluIGBzZWN0aW9uYCBhbmQgYGFydGljbGVgIGluIEZpcmVmb3ggNCssIFNhZmFyaSA1LFxuICogYW5kIENocm9tZS5cbiAqL1xuXG5oMSB7XG4gICAgZm9udC1zaXplOiAyZW07XG4gICAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cblxuaDIge1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgbWFyZ2luOiAwLjgzZW0gMDtcbn1cblxuaDMge1xuICAgIGZvbnQtc2l6ZTogMS4xN2VtO1xuICAgIG1hcmdpbjogMWVtIDA7XG59XG5cbmg0IHtcbiAgICBmb250LXNpemU6IDFlbTtcbiAgICBtYXJnaW46IDEuMzNlbSAwO1xufVxuXG5oNSB7XG4gICAgZm9udC1zaXplOiAwLjgzZW07XG4gICAgbWFyZ2luOiAxLjY3ZW0gMDtcbn1cblxuaDYge1xuICAgIGZvbnQtc2l6ZTogMC42N2VtO1xuICAgIG1hcmdpbjogMi4zM2VtIDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDcvOC85LCBTYWZhcmkgNSwgYW5kIENocm9tZS5cbiAqL1xuXG5hYmJyW3RpdGxlXSB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IGRvdHRlZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDMrLCBTYWZhcmkgNC81LCBhbmQgQ2hyb21lLlxuICovXG5cbmIsXG5zdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG5ibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDFlbSA0MHB4O1xufVxuXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgNSBhbmQgQ2hyb21lLlxuICovXG5cbmRmbiB7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqIEtub3duIGlzc3VlOiBubyBJRSA2Lzcgbm9ybWFsaXphdGlvbi5cbiAqL1xuXG5ociB7XG4gICAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICBoZWlnaHQ6IDA7XG59XG5cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDYvNy84LzkuXG4gKi9cblxubWFyayB7XG4gICAgYmFja2dyb3VuZDogI2ZmMDtcbiAgICBjb2xvcjogIzAwMDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIG1hcmdpbnMgc2V0IGRpZmZlcmVudGx5IGluIElFIDYvNy5cbiAqL1xuXG5wLFxucHJlIHtcbiAgICBtYXJnaW46IDFlbSAwO1xufVxuXG4vKipcbiAqIENvcnJlY3QgZm9udCBmYW1pbHkgc2V0IG9kZGx5IGluIElFIDYsIFNhZmFyaSA0LzUsIGFuZCBDaHJvbWUuXG4gKi9cblxuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIHNlcmlmO1xuICAgIF9mb250LWZhbWlseTogJ2NvdXJpZXIgbmV3JywgbW9ub3NwYWNlO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4vKipcbiAqIEltcHJvdmUgcmVhZGFiaWxpdHkgb2YgcHJlLWZvcm1hdHRlZCB0ZXh0IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5wcmUge1xuICAgIHdoaXRlLXNwYWNlOiBwcmU7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIHdvcmQtd3JhcDogYnJlYWstd29yZDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIENTUyBxdW90ZXMgbm90IHN1cHBvcnRlZCBpbiBJRSA2LzcuXG4gKi9cblxucSB7XG4gICAgcXVvdGVzOiBub25lO1xufVxuXG4vKipcbiAqIEFkZHJlc3MgYHF1b3Rlc2AgcHJvcGVydHkgbm90IHN1cHBvcnRlZCBpbiBTYWZhcmkgNC5cbiAqL1xuXG5xOmJlZm9yZSxcbnE6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGNvbnRlbnQ6IG5vbmU7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gKi9cblxuc21hbGwge1xuICAgIGZvbnQtc2l6ZTogODAlO1xufVxuXG4vKipcbiAqIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGFmZmVjdGluZyBgbGluZS1oZWlnaHRgIGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG5zdWIsXG5zdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG59XG5cbnN1cCB7XG4gICAgdG9wOiAtMC41ZW07XG59XG5cbnN1YiB7XG4gICAgYm90dG9tOiAtMC4yNWVtO1xufVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgTGlzdHNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBJRSA2LzcuXG4gKi9cblxuZGwsXG5tZW51LFxub2wsXG51bCB7XG4gICAgbWFyZ2luOiAxZW0gMDtcbn1cblxuZGQge1xuICAgIG1hcmdpbjogMCAwIDAgNDBweDtcbn1cblxuLyoqXG4gKiBBZGRyZXNzIHBhZGRpbmdzIHNldCBkaWZmZXJlbnRseSBpbiBJRSA2LzcuXG4gKi9cblxubWVudSxcbm9sLFxudWwge1xuICAgIHBhZGRpbmc6IDAgMCAwIDQwcHg7XG59XG5cbi8qKlxuICogQ29ycmVjdCBsaXN0IGltYWdlcyBoYW5kbGVkIGluY29ycmVjdGx5IGluIElFIDcuXG4gKi9cblxubmF2IHVsLFxubmF2IG9sIHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGxpc3Qtc3R5bGUtaW1hZ2U6IG5vbmU7XG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIDEuIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgNi83LzgvOSBhbmQgRmlyZWZveCAzLlxuICogMi4gSW1wcm92ZSBpbWFnZSBxdWFsaXR5IHdoZW4gc2NhbGVkIGluIElFIDcuXG4gKi9cblxuaW1nIHtcbiAgICBib3JkZXI6IDA7IC8qIDEgKi9cbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBiaWN1YmljOyAvKiAyICovXG59XG5cbi8qKlxuICogQ29ycmVjdCBvdmVyZmxvdyBkaXNwbGF5ZWQgb2RkbHkgaW4gSUUgOS5cbiAqL1xuXG5zdmc6bm90KDpyb290KSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZpZ3VyZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgNi83LzgvOSwgU2FmYXJpIDUsIGFuZCBPcGVyYSAxMS5cbiAqL1xuXG5maWd1cmUge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEZvcm1zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKipcbiAqIENvcnJlY3QgbWFyZ2luIGRpc3BsYXllZCBvZGRseSBpbiBJRSA2LzcuXG4gKi9cblxuZm9ybSB7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4vKipcbiAqIERlZmluZSBjb25zaXN0ZW50IGJvcmRlciwgbWFyZ2luLCBhbmQgcGFkZGluZy5cbiAqL1xuXG5maWVsZHNldCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgICBtYXJnaW46IDAgMnB4O1xuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjYyNWVtIDAuNzVlbTtcbn1cblxuLyoqXG4gKiAxLiBDb3JyZWN0IGNvbG9yIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgNi83LzgvOS5cbiAqIDIuIENvcnJlY3QgdGV4dCBub3Qgd3JhcHBpbmcgaW4gRmlyZWZveCAzLlxuICogMy4gQ29ycmVjdCBhbGlnbm1lbnQgZGlzcGxheWVkIG9kZGx5IGluIElFIDYvNy5cbiAqL1xuXG5sZWdlbmQge1xuICAgIGJvcmRlcjogMDsgLyogMSAqL1xuICAgIHBhZGRpbmc6IDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vcm1hbDsgLyogMiAqL1xuICAgICptYXJnaW4tbGVmdDogLTdweDsgLyogMyAqL1xufVxuXG4vKipcbiAqIDEuIENvcnJlY3QgZm9udCBzaXplIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gYWxsIGJyb3dzZXJzLlxuICogMi4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBJRSA2LzcsIEZpcmVmb3ggMyssIFNhZmFyaSA1LFxuICogICAgYW5kIENocm9tZS5cbiAqIDMuIEltcHJvdmUgYXBwZWFyYW5jZSBhbmQgY29uc2lzdGVuY3kgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5cbmJ1dHRvbixcbmlucHV0LFxuc2VsZWN0LFxudGV4dGFyZWEge1xuICAgIGZvbnQtc2l6ZTogMTAwJTsgLyogMSAqL1xuICAgIG1hcmdpbjogMDsgLyogMiAqL1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTsgLyogMyAqL1xuICAgICp2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOyAvKiAzICovXG59XG5cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDMrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cblxuYnV0dG9uLFxuaW5wdXQge1xuICAgIGxpbmUtaGVpZ2h0OiBub3JtYWw7XG59XG5cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gQ2hyb21lLCBTYWZhcmkgNSssIGFuZCBJRSA2Ky5cbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCA0KyBhbmQgT3BlcmEuXG4gKi9cblxuYnV0dG9uLFxuc2VsZWN0IHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTtcbn1cblxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICogNC4gUmVtb3ZlIGlubmVyIHNwYWNpbmcgaW4gSUUgNyB3aXRob3V0IGFmZmVjdGluZyBub3JtYWwgdGV4dCBpbnB1dHMuXG4gKiAgICBLbm93biBpc3N1ZTogaW5uZXIgc3BhY2luZyByZW1haW5zIGluIElFIDYuXG4gKi9cblxuYnV0dG9uLFxuaHRtbCBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdLCAvKiAxICovXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xuICAgIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xuICAgICpvdmVyZmxvdzogdmlzaWJsZTsgIC8qIDQgKi9cbn1cblxuLyoqXG4gKiBSZS1zZXQgZGVmYXVsdCBjdXJzb3IgZm9yIGRpc2FibGVkIGVsZW1lbnRzLlxuICovXG5cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gICAgY3Vyc29yOiBkZWZhdWx0O1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYm94IHNpemluZyBzZXQgdG8gY29udGVudC1ib3ggaW4gSUUgOC85LlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS5cbiAqIDMuIFJlbW92ZSBleGNlc3MgcGFkZGluZyBpbiBJRSA3LlxuICogICAgS25vd24gaXNzdWU6IGV4Y2VzcyBwYWRkaW5nIHJlbWFpbnMgaW4gSUUgNi5cbiAqL1xuXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXG5pbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8qIDEgKi9cbiAgICBwYWRkaW5nOiAwOyAvKiAyICovXG4gICAgKmhlaWdodDogMTNweDsgLyogMyAqL1xuICAgICp3aWR0aDogMTNweDsgLyogMyAqL1xufVxuXG4vKipcbiAqIDEuIEFkZHJlc3MgYGFwcGVhcmFuY2VgIHNldCB0byBgc2VhcmNoZmllbGRgIGluIFNhZmFyaSA1IGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSA1IGFuZCBDaHJvbWVcbiAqICAgIChpbmNsdWRlIGAtbW96YCB0byBmdXR1cmUtcHJvb2YpLlxuICovXG5cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl0ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOyAvKiAxICovXG4gICAgLW1vei1ib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgICAtd2Via2l0LWJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXG4gICAgYm94LXNpemluZzogY29udGVudC1ib3g7XG59XG5cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSA1IGFuZCBDaHJvbWVcbiAqIG9uIE9TIFguXG4gKi9cblxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24ge1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbn1cblxuLyoqXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgYm9yZGVyIGluIEZpcmVmb3ggMysuXG4gKi9cblxuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlcjogMDtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4vKipcbiAqIDEuIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA2LzcvOC85LlxuICogMi4gSW1wcm92ZSByZWFkYWJpbGl0eSBhbmQgYWxpZ25tZW50IGluIGFsbCBicm93c2Vycy5cbiAqL1xuXG50ZXh0YXJlYSB7XG4gICAgb3ZlcmZsb3c6IGF1dG87IC8qIDEgKi9cbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOyAvKiAyICovXG59XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBUYWJsZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qKlxuICogUmVtb3ZlIG1vc3Qgc3BhY2luZyBiZXR3ZWVuIHRhYmxlIGNlbGxzLlxuICovXG5cbnRhYmxlIHtcbiAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xufVxuIiwiQGltcG9ydCBcImNvbmZcIjtcblxuLy8gUmVtb3ZlIHRleHQtc2hhZG93IGluIHNlbGVjdGlvbiBoaWdobGlnaHQ6IGg1YnAuY29tL2lcbi8vIFRoZXNlIHNlbGVjdGlvbiBydWxlIHNldHMgaGF2ZSB0byBiZSBzZXBhcmF0ZS5cbi8vIEN1c3RvbWl6ZSB0aGUgYmFja2dyb3VuZCBjb2xvciB0byBtYXRjaCB5b3VyIGRlc2lnbi5cbjo6LW1vei1zZWxlY3Rpb24ge1xuICAgIGJhY2tncm91bmQ6ICRzZWxlY3RfY29sb3I7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmU7XG59XG5cbjo6c2VsZWN0aW9uIHtcbiAgICBiYWNrZ3JvdW5kOiAkc2VsZWN0X2NvbG9yO1xuICAgIHRleHQtc2hhZG93OiBub25lO1xufVxuXG4vLyBBIGJldHRlciBsb29raW5nIGRlZmF1bHQgaG9yaXpvbnRhbCBydWxlXG5ociB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjY2NjO1xuICAgIG1hcmdpbjogMWVtIDA7XG4gICAgcGFkZGluZzogMDtcbn1cblxuLy8gUmVtb3ZlIHRoZSBnYXAgYmV0d2VlbiBpbWFnZXMsIHZpZGVvcywgYXVkaW8gYW5kIGNhbnZhcyBhbmQgdGhlIGJvdHRvbSBvZlxuLy8gdGhlaXIgY29udGFpbmVyczogaDVicC5jb20vaS80NDBcbmF1ZGlvLFxuY2FudmFzLFxuaW1nLFxudmlkZW8ge1xuICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG5cbi8vIFJlbW92ZSBkZWZhdWx0IGZpZWxkc2V0IHN0eWxlcy5cbmZpZWxkc2V0IHtcbiAgICBib3JkZXI6IDA7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi8vIEFsbG93IG9ubHkgdmVydGljYWwgcmVzaXppbmcgb2YgdGV4dGFyZWFzLlxudGV4dGFyZWEge1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG59XG5cbi8vIEhlbHBlciBjbGFzc2VzXG5cbi8vIEltYWdlIHJlcGxhY2VtZW50XG4uaXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIGJvcmRlcjogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIC8qIElFIDYvNyBmYWxsYmFjayAqL1xuICAgICp0ZXh0LWluZGVudDogLTk5OTlweDtcbn1cblxuLmlyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMDtcbiAgICBoZWlnaHQ6IDE1MCU7XG59XG5cbi8vIEhpZGUgZnJvbSBib3RoIHNjcmVlbnJlYWRlcnMgYW5kIGJyb3dzZXJzOiBoNWJwLmNvbS91XG4vLyBOb3RlOiB2aXNpYmlsaXR5OiBoaWRkZW4gcmVtb3ZlZCBieSBlTm90ZXMuIFRoaXMgd2FzIGFkZGVkIHRvIHByZXZlbnQgYSBzY3JlZW4gcmVhZGVyIGVkZ2UgY2FzZSxcbi8vIGJ1dCBvdXIgdXNlIG9mIGhpZGRlbiBkb2VzIG5vdCBzZWVtIHRvIGFwcGx5IGhlcmUuIFJlbW92aW5nIHRoaXMgYWxsb3dzIGpRdWVyeSBtZXRob2RzIHN1Y2ggYXNcbi8vIHRvZ2dsZSwgZXRjLiB0byB3b3JrIG9uIGVsZW1lbnRzIHdpdGggY2xhc3M9XCJoaWRkZW5cIi5cbi5oaWRkZW4ge1xuICAgIGRpc3BsYXk6IG5vbmUgLyohaW1wb3J0YW50Ki87XG59XG5cbi8vIEhpZGUgb25seSB2aXN1YWxseSwgYnV0IGhhdmUgaXQgYXZhaWxhYmxlIGZvciBzY3JlZW5yZWFkZXJzOiBoNWJwLmNvbS92XG4udmlzdWFsbHloaWRkZW4ge1xuICAgIGJvcmRlcjogMDtcbiAgICBjbGlwOiByZWN0KDAgMCAwIDApO1xuICAgIGhlaWdodDogMXB4O1xuICAgIG1hcmdpbjogLTFweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxcHg7XG59XG5cbi8vIEV4dGVuZHMgdGhlIC52aXN1YWxseWhpZGRlbiBjbGFzcyB0byBhbGxvdyB0aGUgZWxlbWVudCB0byBiZSBmb2N1c2FibGVcbi8vIHdoZW4gbmF2aWdhdGVkIHRvIHZpYSB0aGUga2V5Ym9hcmQ6IGg1YnAuY29tL3Bcbi52aXN1YWxseWhpZGRlbi5mb2N1c2FibGU6YWN0aXZlLFxuLnZpc3VhbGx5aGlkZGVuLmZvY3VzYWJsZTpmb2N1cyB7XG4gICAgY2xpcDogYXV0bztcbiAgICBoZWlnaHQ6IGF1dG87XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgd2lkdGg6IGF1dG87XG59XG5cbi8vIEhpZGUgdmlzdWFsbHkgYW5kIGZyb20gc2NyZWVucmVhZGVycywgYnV0IG1haW50YWluIGxheW91dFxuLmludmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuXG4vLyBDbGVhcmZpeDogY29udGFpbiBmbG9hdHNcblxuLy8gRm9yIG1vZGVybiBicm93c2Vyc1xuLy8gMS4gVGhlIHNwYWNlIGNvbnRlbnQgaXMgb25lIHdheSB0byBhdm9pZCBhbiBPcGVyYSBidWcgd2hlbiB0aGVcbi8vICAgIGBjb250ZW50ZWRpdGFibGVgIGF0dHJpYnV0ZSBpcyBpbmNsdWRlZCBhbnl3aGVyZSBlbHNlIGluIHRoZSBkb2N1bWVudC5cbi8vICAgIE90aGVyd2lzZSBpdCBjYXVzZXMgc3BhY2UgdG8gYXBwZWFyIGF0IHRoZSB0b3AgYW5kIGJvdHRvbSBvZiBlbGVtZW50c1xuLy8gICAgdGhhdCByZWNlaXZlIHRoZSBgY2xlYXJmaXhgIGNsYXNzLlxuLy8gMi4gVGhlIHVzZSBvZiBgdGFibGVgIHJhdGhlciB0aGFuIGBibG9ja2AgaXMgb25seSBuZWNlc3NhcnkgaWYgdXNpbmdcbi8vICAgIGA6YmVmb3JlYCB0byBjb250YWluIHRoZSB0b3AtbWFyZ2lucyBvZiBjaGlsZCBlbGVtZW50cy5cblxuLmNsZWFyZml4OmJlZm9yZSxcbi5jbGVhcmZpeDphZnRlciB7XG4gICAgY29udGVudDogXCIgXCI7IC8qIDEgKi9cbiAgICBkaXNwbGF5OiB0YWJsZTsgLyogMiAqL1xufVxuXG4uY2xlYXJmaXg6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xufVxuXG4vLyBGb3IgSUUgNi83IG9ubHlcbi8vIEluY2x1ZGUgdGhpcyBydWxlIHRvIHRyaWdnZXIgaGFzTGF5b3V0IGFuZCBjb250YWluIGZsb2F0cy5cbi5jbGVhcmZpeCB7XG4gICAgKnpvb206IDE7XG59XG5cbmlmcmFtZXtcbiAgICBib3JkZXI6MDtcbiAgICBwYWRkaW5nOjBweDtcbn1cbiIsIi8vICMgZU5vdGVzIGRlZmF1bHQgY29uZmlndXJhdGlvblxuLy8gQXV0aG9yczpcbi8vICAtIE11bGUgRGVzaWduIDxtdWxlZGVzaWduLmNvbT5cbi8vICAtIE1hdHRoZXcgRm9uZGEgPG1mb25kYUBlbm90ZXMuY29tPlxuLy8gIC0gTWVnYW4gTydTdWxsaXZhbiA8bW9zdWxsaXZhbkBlbm90ZXMuY29tPlxuLy8gIC0gQnJhZCBTYXRvcmlzIDxic2F0b3Jpc0Blbm90ZXMuY29tPlxuLy8gIC0gTHVpeiBMb3BlcyA8bGxvcGVzQGVub3Rlcy5jb20+XG5cblxuLy8gIyMgTW9kdWxhciBNZWRpYSBRdWVyeSBCcmVha3BvaW50c1xuLy8gTW9iaWxlLWZpcnN0IG1lZGlhIHF1ZXJ5IGJyZWFrcG9pbnRzLiBXZSd2ZSBjaG9zZW4gY29sbG9xdWlhbCBuYW1lc1xuLy8gZm9yIHRoZXNlIGJ1dCBhcmUgdXNpbmcgZW0tYmFzZWQgbWVhc3VyZW1lbnRzIGZvciBtb3JlIGNvbnRlbnQgYXdhcmVcbi8vIGRlc2lnbi4gRm9yIG1vcmUsIHNlZSBMeXphIEdhcmRuZXI6XG4vLyBodHRwOi8vYmxvZy5jbG91ZGZvdXIuY29tL3RoZS1lbXMtaGF2ZS1pdC1wcm9wb3J0aW9uYWwtbWVkaWEtcXVlcmllcy1mdHcvXG4vL1xuLy8gU2VlIHRoZSBtb2R1bGFyIG1lZGlhIHF1ZXJpZXMgc2VjdGlvbiBpbiBfbWl4aW5zLnNjc3MgZm9yIG1vcmUgb25cbi8vIGhvdyB0aGVzZSB3b3JrXG4vL1xuLy8gWW91IGFyZSBieSBubyBtZWFucyByZXF1aXJlZCB0byB1c2UgZXZlcnkgYnJlYWtwb2ludCwgaW4gZmFjdCwgd2UnZFxuLy8gZGlzY291cmFnZSB0aGF0LCB3ZSd2ZSBwcm92aWRlZCBhIHJlYXNvbmFibGUgc3RhcnRpbmcgcG9pbnQuXG4kbW9iaWxlX3dpZGU6IFwibWluLXdpZHRoOiAzMmVtXCI7ICAgICAvLyA1MTJweFxuJHRhYmxldDogXCJtaW4td2lkdGg6IDQ4ZW1cIjsgICAgICAgICAgLy8gNzY4cHhcbiRkZXNrdG9wOiBcIm1pbi13aWR0aDogNjBlbVwiOyAgICAgICAgIC8vIDk2MHB4XG4kbm90X2Rlc2t0b3A6IFwibWF4LXdpZHRoOiA1OS45OWVtXCI7ICAvLyA5NjBweFxuJHRhYmxldF93aWRlOiBcIm1pbi13aWR0aDogNjRlbVwiOyAgICAgLy8gMTAyNHB4XG4kZGVza3RvcF93aWRlOiBcIm1pbi13aWR0aDogNzVlbVwiOyAgICAvLyAxMjAwcHhcbiRtb2JpbGVfb25seTogXCJtYXgtd2lkdGg6IDQwZW1cIjsgICAgIC8vIDY0MHB4XG5cbi8vIGtlZXAgYSBsaXN0IG9mIGFsbCBicmVha3BvaW50cyBmb3IgYWR2YW5jZWQgZmVhdHVyZXNcbi8vIHRoZSBmaXJzdCBpcyBmb3Igbm9uLW1xIGRldmljZXNcbiRicmVha3BvaW50czogKCRtb2JpbGVfd2lkZSwgJHRhYmxldCwgJGRlc2t0b3AsICRub3RfZGVza3RvcCksICggJHRhYmxldF93aWRlLCAkZGVza3RvcF93aWRlICk7XG5cbi8vICMjIEJveCBNb2RlbFxuLy8gYm9yZGVyLWJveCBzaXppbmcgY2F1c2VzIGRpdnMgdG8gdXNlIGEgdGFibGUtc3R5bGUgYm94IG1vZGVsLCB3aGVyZVxuLy8gdGhlIHBhZGRpbmcgYW5kIGJvcmRlcnMgYXJlIGFjY291bnRlZCBmb3IgaW4gdGhlIHdpZHRoIG9mIGFuIGVsZW1lbnQsXG4vLyB3aGljaCBtYWtlcyBmbGV4aWJsZSBsYXlvdXRzIG11Y2ggZWFzaWVyIGVzcGVjaWFsbHkgd2hlbiBjb21iaW5lZCB3aXRoXG4vLyB0aGUgQ1NTIGNhbGMgZnVuY3Rpb25cbi8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvQ1NTL2JveC1zaXppbmdcbi8vXG4vLyBJZiB5b3UgcHJlZmVyIHRoZSBzdGFuZGFyZCBib3ggbW9kZWwsIHNldCB0bzogY29udGVudC1ib3hcbiRib3hfc2l6aW5nOiBib3JkZXItYm94O1xuXG4vLyAjIyBDb3JlIENvbmZpZ3VyYXRpb25cbi8vIENvcmUgY29uZmlndXJhdGlvbiBzdWNoIGFzIGNvbG9ycywgZm9udHMsIGV0Yy4gQ29yZSB2YXJpYWJsZXMgc2hvdWxkIG5vdCBiZVxuLy8gdXNlZCBkaXJlY3RseS4gSW5zdGVhZCwgbmV3IHZhcmlhYmxlcyBzaG91bGQgYmUgY3JlYXRlZCB0aGF0IHJlZmVyIHRvIHRoZXNlIHZhcmlhYmxlc1xuLy8gYW5kIGFyZSBuYW1lZCBzZW1hbnRpY2FsbHkuIEZvciBleGFtcGxlLCBpZiB3ZSB3YW50ZWQgYWxsIGxpbmtzIHRvIGJlIGVOb3RlcyBibHVlLCB3ZVxuLy8gd291bGQgZGVmaW5lIGEgbmV3IGAkbGlua19jb2xvcmAgdmFyaWFibGUgYW5kIHNldCBpdCB0byBgJGJsdWVgLlxuXG4vLyAjIyMgQ29sb3JzXG4vLyBUaGUgdmFyaWFibGVzIGJlbG93IGRlZmluZSB0aGUgY29sb3IgcGFsYXR0ZSB1c2VkIGJ5IGVOb3Rlcy5cbiRyZWQ6ICNjNzNlMjg7XG4keWVsbG93OiAjZmFiOTNhO1xuJGJsdWU6ICMyMzkzYmQ7XG4kbGlnaHRfYmx1ZTogIzU4YzBlNztcbiRkYXJrX2JsdWU6ICMzYjU5OTg7XG4kYWxtb3N0X2FxdWFtYXJpbmU6ICMwMDk0QkE7XG4kZGFya19hbG1vc3RfYXF1YW1hcmluZTogZGFya2VuKCRhbG1vc3RfYXF1YW1hcmluZSwgMTAlKTtcbiRhcXVhbWFyaW5lOiAjMDI3NDlGO1xuJGxpZ2h0X2dyYXk6ICM5OTk7XG4kbGlnaHRlc3RfZ3JheTogI2RlZGVkZTtcbiRsaWdodGVzdF9ibHVlOiAjQ0NGRkZGO1xuJGdyYXk6ICMzYTQwNDM7XG4kZGFya19ncmF5OiAjMmUzMzM2O1xuJGFsdF9ncmF5OiAjNzc3O1xuJGJsYWNrOiAjMWYxZjFmO1xuJG9yYW5nZTogI2ZmOGEwMDtcbiR3aGl0ZTogI0ZGRjtcbiRtaW50OiAjQ0NGRkNDO1xuXG5cbi8vICMjIFR5cG9ncmFwaHlcbi8vIEZvbnRzXG4vLyBUaGUgdmFyaWFibGVzIGJlbGV3IGRlZmluZSB0aGUgZm9udHMgYW5kIGZvbnQgc2l6ZXMgdXNlZCBieSBlTm90ZXNcbiRvcGVuX3NhbnM6IFwiT3BlbiBTYW5zXCIsIHNhbnMtc2VyaWY7XG4kY29weV9mb250OiAkb3Blbl9zYW5zO1xuXG4vLyBGb250LXNpemVzXG4vLyBodHRwOi8vd3d3Lm1vZHVsYXJzY2FsZS5jb20vPzE4JnB4JjEuMiZ3ZWImdGV4dFxuJGJhc2VfZm9udF9zaXplOiAxOHB4ICFkZWZhdWx0OyAgICAvLyBiYXNlIGZvbnQtc2l6ZVxuJGgxX2ZvbnRfc2l6ZTogMzcuMzI1cHg7XG4kaDJfZm9udF9zaXplOiAzMS4xMDRweDtcbiRoM19mb250X3NpemU6IDI1LjkycHg7XG4kaDRfZm9udF9zaXplOiAyMS42cHg7XG4kbGFyZ2VfZm9udF9zaXplOiAyMS42cHg7XG4kbWVkaXVtX2ZvbnRfc2l6ZTogJGJhc2VfZm9udF9zaXplO1xuJHNtYWxsX2ZvbnRfc2l6ZTogMTVweDtcbiR4X3NtYWxsX2ZvbnRfc2l6ZTogMTIuNXB4O1xuXG4vLyBMaW5lIGhlaWdodFxuJGJhc2VfbGluZV9oZWlnaHQ6IDEuNDVlbTtcbiRoZWRfbGluZV9oZWlnaHQ6IDEuMjtcblxuLy8gIyMgU2VtYW50aWMgVmFyaWFibGVzXG4vLyBWYXJpYWJsZSBuYW1lcyBzaG91bGQgZGUgZGVzY3JpcHRpdmUgb2Ygd2hhdCB0aGUgdmFyaWFibGUgaXMgZm9yLCBhbmQgc2hvdWxkIHVzZSBvbmx5IGNvcmVcbi8vIHZhcmlhYmxlcyBhcyB2YWx1ZXMuXG4kaGVkX2NvbG9yOiAkcmVkOyAgICAgICAgICAgICAgICAgICAgICAgLy8gZGVmYXVsdCBjb2xvciBmb3IgaGVhZGxpbmVzXG4kY29weV9jb2xvcjogJGJsYWNrOyAgICAgICAgICAgICAgICAgICAgLy8gZGVmYXVsdCBjb2xvciBmb3IgYm9keSBjb3B5XG4kc2VsZWN0X2NvbG9yOiAjZmZjYzg5OyAgICAgICAgICAgICAgICAgLy8gY3Vyc29yIGhpZ2hsaWdodCBjb2xvclxuJGJ1dHRvbl9jb2xvcjogJGJsdWU7ICAgICAgICAgICAgICAgICAgIC8vIGRlZmF1bHQgY29sb3IgZm9yIGJ1dHRvbnMuIFRPRE86IHdoZW4gYmx1ZSB2cyBvdGhlciBjb2xvcnNcbiRtZXRhX2NvbG9yOiAkbGlnaHRfZ3JheTsgICAgICAgICAgICAgICAvLyBjb2xvciBmb3IgbW9yZSBzdWJ0bGUgdGV4dFxuJGhpZ2hsaWdodF9jb2xvcjogJGJsdWU7ICAgICAgICAgICAgICAgIC8vIGNvbG9yIGZvciBpbXBvcnRhbnQgLyBoaWdobGlnaHRlZCB0ZXh0XG5cbiRhc2lkZV9iZ19jb2xvcl9zdGFuZGFyZDogI2Y5ZjlmOTsgICAgICAvLyBzdGFuZGFyZCBhc2lkZSBiYWNrZ3JvdW5kIGNvbG9yXG4kYXNpZGVfYmdfY29sb3JfaW1wb3J0YW50OiAjZjhmM2U2OyAgICAgLy8gaW1wb3J0YW50IChlLmcuIGNhbGwgdG8gam9pbikgYXNpZGUgYmFja2dyb3VuZCBjb2xvclxuJGNvbnRlbnRfYmdfY29sb3I6ICR3aGl0ZTsgICAgICAgICAgICAgIC8vIGJhY2tncm91bmQgY29sb3Igb2YgbWFpbiBjb250ZW50IGFyZWFcbiRidXR0b25fYmdfY29sb3I6ICRhbG1vc3RfYXF1YW1hcmluZTtcbiRidXR0b25faG92ZXJfYmdfY29sb3I6ICRyZWQ7XG4kYnV0dG9uX2FjdGl2ZV9iZ19jb2xvcjogIzAwNWQ4MDtcblxuJG1zZ19ib3hfc3RhbmRhcmQ6ICNmOWY5Zjk7ICAgICAgICAgICAgIC8vc2l0ZS13aWRlIG1lc3NhZ2UgYm94ZXNcbiRtc2dfYm94X2Vycm9yOiAjZjhmM2U2O1xuJG1zZ19ib3hfYWxlcnQ6ICNmOGYzZTY7XG5cbiRsaW5rX2NvbG9yOiAkYmx1ZTtcbiRsaW5rX2NvbG9yX3Zpc2l0ZWQ6IGxpZ2h0ZW4oJGJsdWUsIDEwJSk7XG4kbGlua19jb2xvcl9ob3ZlcjogJHJlZDtcbiRsaW5rX2NvbG9yX2FjdGl2ZTogJHJlZDtcbiRsaW5rX2hlYWRlcl9jb2xvcl9ob3ZlcjogJHdoaXRlO1xuJGxpbmtfZGVjb3JhdGlvbjogbm9uZTtcblxuJGJvcmRlcl9yYWRpdXM6IDA7XG4kYnV0dG9uX2JvcmRlcl9yYWRpdXM6ICRib3JkZXJfcmFkaXVzO1xuJGRyb3Bkb3duX3JhZGl1czogJGJvcmRlcl9yYWRpdXM7XG5cbiRzaWRlYmFyX3dpZHRoOiAzMDBweDsgICAgICAvL3dpZHRoIG9mIHJpZ2h0IHNpZGViYXJcbiRzaWRlYmFyX3NwYWNpbmc6IDIwcHg7ICAgICAvL3NwYWNpbmcgYmV0d2VlbiByaWdodCBzaWRlYmFyIGFuZCBtYWluIGNvbHVtblxuJHRhYmxldF9zaWRlX21hcmdpbjogNDBweDsgIC8vbGVmdCBhbmQgcmlnaHQgbWFyZ2lucyBvbiBhIHRhYmxldCwgbXVsZSBoYWQgdGhpcyBhdCA4MCwgd2hpY2ggc2VlbXMgYSBsaWtlIGEgbG90IC0gYnJzXG5cbi8vICMjIEJvdXJib24gU2V0dGluZ3Ncbi8vIEJvdXJib24gYmFzZSBmb250LXNpemVcbiRlbV9iYXNlOiAkYmFzZV9mb250X3NpemUgIWRlZmF1bHQ7XG5cbi8vIGJ5IGRlZmF1bHQsIGFzc3VtZSBtZWRpYSBxdWVyeSBzdXBwb3J0XG4vLyBzZXQgdGhpcyB0byBmYWxzZSBpbiBhbHRlcm5hdGUgc3R5bGVzaGVldHMgbWVhbnQgZm9yIGRldmljZXMgd2l0aG91dFxuLy8gbWVkaWEgcXVlcnkgc3VwcG9ydFxuJG1xX3N1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbiIsIi8vIERlZmF1bHQgc3R5bGluZyBvZiBlbGVtZW50cyAoY29sb3JzLCBzaXplcywgZXRjLikgYW5kIGEgbGlzdCBvZiBpbmNsdWRlcyBvZiBzdHlsZXMgZm9yXG4vLyB2YXJpb3VzIGNvbXBvbmVudHMgdXNlZCB0aHJvdWdob3V0IGVOb3Rlcy5cbi8vXG4vLyBBdXRob3JzOlxuLy8gIC0gTXVsZSBEZXNpZ24gPG11bGVkZXNpZ24uY29tPlxuLy8gIC0gTWF0dGhldyBGb25kYSA8bWZvbmRhQGVub3Rlcy5jb20+XG4vLyAgLSBCcmFkIFNhdG9yaXMgPGJzYXRvcmlzQGVub3Rlcy5jb20+XG4vLyAgLSBNZWdhbiBPJ1N1bGxpdmFuIDxtb3N1bGxpdmFuQGVub3Rlcy5jb20+XG4vLyAgLSBOaWNob2xhcyBDbG91ZCA8bmNsb3VkQGVub3Rlcy5jb20+XG4vLyAgLSBMdWl6IExvcGVzIDxsbG9wZXNAZW5vdGVzLmNvbT5cbi8vXG4vLyBTZWUgYWxzbzpcbi8vICAtIHNjcmVlbi5zY3NzXG5cbkBpbXBvcnQgXCJpbml0XCI7XG5cbi8vIHNldCB1cCB0aGUgbWVkaWEgcXVlcnkgbGlzdGVuZXJcbi8vIGVhY2ggYnJlYWtwb2ludCBhc3NpZ25zIGEgZGlmZmVybnQgd2lkdGggdG8gI21xXG4vLyB3aGVuIGl0IHRyYW5zaXRpb25zIHRvIHRoYXQgbmV3IHdpZHRoLCBpdCBjYWxscyBhIEpTIGxpc3RlbmVyXG4vLyBzbyB5b3UgY2FuIHdyaXRlIEpTIHNwZWNpZmljIHRvIGVhY2ggYnJlYWtwb2ludFxuI21xe1xuICAgIC8vIGZpcnN0LCBzZXQgdXAgYSB2ZXJ5IGZhc3QgdHJhbnNpdGlvbi4gVGhpcyBpcyB3aGF0IEpTIHdpbGwgbGlzdGVuIGZvclxuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24od2lkdGggMC4wMW1zKTtcbiAgICAvLyBtYWtlIHN1cmUgaXQgaGFzIGEgd2lkdGggdG8gdHJhbnNpdGlvbiBmcm9tXG4gICAgd2lkdGg6IDA7XG5cbiAgICAvLyBnaXZlIGl0IGEgbW9iaWxlLWZpcnN0IGRlZmF1bHQgdmFsdWVcbiAgICAmOmJlZm9yZXtcbiAgICAgICAgY29udGVudDogXCJtaW4td2lkdGg6IDIwZW1cIjtcbiAgICB9XG4gICAgLy8gbG9vcCB0aHJvdWdoIGFsbCB0aGUgYnJlYWtwb2ludHMgYW5kIGFzc2lnbiB0aGF0IGJyZWFrcG9pbnQgYXMgdGhlXG4gICAgLy8gYGNvbnRlbnRgIHZhbHVlOyBgY29udGVudGAgd2lsbCBiZSBoZWFyZCBieSB0aGUgbGlzdGVuZXJcbiAgICAvLyBhbHNvIG1ha2Ugc3VyZSBlYWNoIGJyZWFrcG9pbnQgaGFzIGEgdW5pcXVlIHdpZHRoIHNvIGl0IGFjdHVhbGx5XG4gICAgLy8gdHJhbnNpdGlvbnMgYW5kIGNhbGxzIHRoZSBsaXN0ZW5lclxuICAgICRpOiAxO1xuICAgIC8vIGlmIHRoZSBsaXN0IGlzIGFjdHVhbGx5IHR3byBsaXN0c1xuICAgIEBpZiBsZW5ndGgobnRoKCRicmVha3BvaW50cywgMSkpICE9IDEge1xuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludF9saXN0IGluICRicmVha3BvaW50cyB7XG4gICAgICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludF9saXN0e1xuICAgICAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKCN7JGJyZWFrcG9pbnR9KSB7XG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiAkaSArIHB4O1xuICAgICAgICAgICAgICAgICAgICAmOmJlZm9yZXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiI3skYnJlYWtwb2ludH1cIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAkaTogJGkgKyAxO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIC8vIG90aGVyd2lzZSwgaXQncyBqdXN0IGEgbGlzdFxuICAgIC8vIHRoaXMgc2hvdWxkIHByb2JhYmx5IGJlIHJlY3Vyc2l2ZSwgYnV0IFNBU1MncyBzeW50YXggYW5kXG4gICAgLy8gbGlzdCB0cmVhdG1lbnQgaHVydHMgbXkgaGVhZFxuICAgIEBlbHNle1xuICAgICAgICBAZWFjaCAkYnJlYWtwb2ludCBpbiAkYnJlYWtwb2ludHMge1xuICAgICAgICAgICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKCN7JGJyZWFrcG9pbnR9KSB7XG4gICAgICAgICAgICAgICAgI21xe1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogJGkgKyBweDtcbiAgICAgICAgICAgICAgICAgICAgJjpiZWZvcmV7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZW50OiBcIiN7JGJyZWFrcG9pbnR9XCI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAkaTogJGkgKyAxO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBzZXQgdGhlIGJveCBzaXppbmcgYXMgZGVmaW5lZCBpbiBjb25mLiBEZWZhdWx0cyB0byBib3JkZXItYm94LFxuLy8gd2hpY2ggbWFrZXMgZmxleGlibGUgbGF5b3V0cyBtdWNoIGVhc2llci5cbip7XG4gICAgICAgLW1vei1ib3gtc2l6aW5nOiAkYm94X3NpemluZztcbiAgICAtd2Via2l0LWJveC1zaXppbmc6ICRib3hfc2l6aW5nO1xuICAgICAgICAgICAgYm94LXNpemluZzogJGJveF9zaXppbmc7XG59XG5cbi5ub3Njcm9sbCB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLndhaXQge1xuICAgIGN1cnNvcjogd2FpdDtcbn1cblxuLy8gaGFjayBmb3IgaW9zXG4vLyBzZWU6IGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzMwNDczMzcvZG9lcy1vdmVyZmxvd2hpZGRlbi1hcHBsaWVkLXRvLWJvZHktd29yay1vbi1pcGhvbmUtc2FmYXJpXG5odG1sLm5vc2Nyb2xsLFxuYm9keS5ub3Njcm9sbCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5tZXRhe1xuICAgIGNvbG9yOiAkbWV0YV9jb2xvcjtcbn1cblxuLm1ldGEteC1zbWFsbHtcbiAgICBjb2xvcjogJG1ldGFfY29sb3I7XG4gICAgQGluY2x1ZGUgZm9udC14LXNtYWxsO1xufVxuXG4ubWV0YS1zbWFsbHtcbiAgICBjb2xvcjogJG1ldGFfY29sb3I7XG4gICAgQGluY2x1ZGUgZm9udC1zbWFsbDtcbn1cblxuLmhpZ2hsaWdodHtcbiAgICBjb2xvcjogJGJsdWU7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnRpdGxle1xuICAgIEBpbmNsdWRlIGZvbnQtbWVkaXVtO1xufVxuXG4vLyBEZWZhdWx0IHN0eWxpbmcgZm9yIGxpbmtzXG5he1xuICAgIGNvbG9yOiAgJGxpbmtfY29sb3I7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiAkbGlua19kZWNvcmF0aW9uO1xuXG4gICAgJjp2aXNpdGVke1xuICAgICAgICBjb2xvcjogJGxpbmtfY29sb3JfdmlzaXRlZDtcbiAgICB9XG5cbiAgICAmOmhvdmVye1xuICAgICAgICBjb2xvcjogJGxpbmtfY29sb3JfaG92ZXI7XG4gICAgfVxuXG4gICAgJjphY3RpdmV7XG4gICAgICAgIGNvbG9yOiAkbGlua19jb2xvcl9hY3RpdmU7XG4gICAgfVxuICAgICYuYnRuIHtcbiAgICAgICAgQGluY2x1ZGUgYnRuKCk7XG4gICAgfVxufVxuXG5idXR0b24sIGlucHV0W3R5cGU9XCJidXR0b25cIl0ge1xuICAgIEBpbmNsdWRlIGJ0bigpO1xuXG4gICAgJi5idG4ge1xuICAgICAgICBmb250LWZhbWlseTogJGNvcHlfZm9udDtcbiAgICB9XG59XG5cbmEuZ3BsdXN7XG4gICAgY29sb3I6JGJsYWNrO1xuICAgIGZvbnQtc2l6ZTokc21hbGxfZm9udF9zaXplO1xufVxuXG4uaGlkZXtcbiAgICBAaW5jbHVkZSBtcSgkbm90X2Rlc2t0b3Ape1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbn1cblxuLmNlbnRlcntcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5hZC1zaWRlYmFyLCAuYWQtY29udGVudHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgcGFkZGluZy10b3A6IDEwcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTBweCAhaW1wb3J0YW50O1xufVxuXG5wLmNhdGVnb3JpZXN7XG4gICAgY29sb3I6JGdyYXk7XG4gICAgZm9udC13ZWlnaHQ6Ym9sZDtcbiAgICB0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKDEycHgpO1xufVxuXG5kaXYudmFsdWFibGVUaXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjODg4O1xuICAgIGJhY2tncm91bmQ6ICNGN0Y3Q0M7XG4gICAgcGFkZGluZzogMHB4IDNweDtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxMnB4KTtcbiAgICBjb2xvcjogIzJGMkYyRjtcbn1cblxuLnRpcHtcbiAgICBjb2xvcjogJGJsdWU7XG4gICAgJjpob3ZlcntcbiAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgfVxufVxuXG4vL0dlbmVzaXMgTWVkaWFcbi5jdW5sb2NrX21haW5fY29udGVudHtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjVweDtcbn1cblxuLy9nb29nbGUgc3VydmV5c1xuZGl2LnA0MDJfcHJlbWl1bXtcbiAgICBtYXJnaW4tdG9wOiAxNXB4O1xufVxuXG5kaXYuY2xlYXIge1xuICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG59XG5cbkBpbXBvcnQgXCJwbHVnaW5zL2pxdWVyeS11aVwiO1xuQGltcG9ydCBcInBsdWdpbnMvdGlueW1jZVwiO1xuXG5AaW1wb3J0IFwidHlwb2dyYXBoeVwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYnJlYWRjcnVtYnNcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL21lZGlhXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9tZXNzYWdlYm94XCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy90YWJzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9mb3JtXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9wcm9maWxlLXBpY1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvY29udGFpbmVyXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy90YWJsZVwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvcGFnaW5hdGlvblwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvYW5ub3RhdGlvbnNcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2Fkc1wiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvc2hhcmViYXJcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2luc2lnaHRzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9qdW1wLWxpbmtzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9wYWdlLWJhbm5lclwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvdG9nZ2xlXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9zdWJzY3JpcHRpb25zXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy90ZXN0aW1vbmlhbHNcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2ltYWdlLXNob3djYXNlXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9iaWctaWNvblwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvdGhyZWUtdXBcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2JpZy1oZWFkbGluZVwiO1xuQGltcG9ydCBcImNvbXBvbmVudHMvZnJlZS13ZWVrLW9mZmVyXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9zaWRlYmFyLXNlY3Rpb25cIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2xpc3RzXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9tZWRpYS1oaWRlXCI7XG5AaW1wb3J0IFwiY29tcG9uZW50cy9zZWFyY2hcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL3NpZGViYXJcIjtcbkBpbXBvcnQgXCJjb21wb25lbnRzL2NvbnRlbnQtaGVhZGVyXCI7XG5AaW1wb3J0IFwibmF2XCI7XG5AaW1wb3J0IFwiYmFubmVyXCI7XG5AaW1wb3J0IFwiZm9vdGVyXCI7XG5AaW1wb3J0IFwibGl0ZWJveFwiOyIsIi8vXG4vLyBGaWxlIHVzZWQgdG8gc2V0dXAgdGhlIHJlc3Qgb2YgdGhlIHNjc3MgZmlsZXMsIGl0IGdpdmVzIHRoZW0gYWNjZXNzIHRvIHRoZSBjb25maWd1cmF0aW9uXG4vLyB2YXJpYWJsZXMsIHRoZSBhdmFpbGFibGUgbWl4aW5zLCBhbmQgdGhlIGJvdXJib24gdXRpbGl0aWVzXG4vL1xuLy8gQGF1dGhvciBMdWl6IExvcGVzIDxsbG9wZXNAZW5vdGVzLmNvbT5cbi8vIEBjb3B5cmlnaHQgKGMpMjAxNSBlTm90ZXMuY29tXG4vL1xuXG5AaW1wb3J0IFwiY29uZlwiO1xuQGltcG9ydCBcIm1peGluc1wiO1xuQGltcG9ydCBcImJvdXJib24vYm91cmJvblwiO1xuIiwiLy8gTW9kdWxhciBtZWRpYSBxdWVyaWVzXG4vLyBVc2VkIGZvciBjcmVhdGluZyBtb2R1bGFyIENTUyB0byBncm91cCBtZWRpYSBxdWVyaWVzIHdpdGhcbi8vIENTUyBlbGVtZW50cyBpbnN0ZWFkIG9mIGdyb3VwaW5nIGVsZW1lbnRzIHVuZGVyIG1lZGlhIHF1ZXJpZXMuXG4vLyBGb3IgbW9yZSBvbiBncm91cGluZyBtZWRpYSBxdWVyaWVzIG1vZHVsYXJseSwgc2VlIFNub29rOlxuLy8gaHR0cHM6Ly9zbWFjc3MuY29tL2Jvb2svc3RhdGUjbWVkaWFcbi8vXG4vLyBBIHNldCBvZiBzb21ld2hhdCBvcGluaW9uYXRlZCBkZWZhdWx0IGJyZWFrcG9pbnRzIGlzIHNldCBpblxuLy8gX2NvbmYuc2Nzc1xuLy9cbi8vIEFkZGl0aW9uYWxseSwgYnkgc2V0dGluZyAkbXFfc3VwcG9ydDogZmFsc2U7IGluIHlvdXIgc3R5bGVzaGVldCxcbi8vIHRoZSBmdW5jdGlvbiB3aWxsIG5vdCBnZW5lcmF0ZSBtZWRpYSBxdWVyaWVzIGFuZCB3aWxsIG9ubHkgb3V0cHV0IHRoZVxuLy8gc3R5bGVzLCBjcmVhdGluZyBhIHBhZ2UgZm9yIHRoZSB3aWRlc3QgYnJlYWtwb2ludC4gVGhpcyBpcyBoYW5keSBmb3Jcbi8vIGdlbmVyYXRpbmcgSUUtc3BlY2lmaWMgc3l0bGVzaGVldHMsIGZvciBpbnN0YW5jZVxuLy9cbi8vIEBtaXhpbiAgIG1xXG4vLyBAcGFyYW0gICAkYnJlYWtwb2ludCAgICAgYnJlYWtwb2ludCB0byB3cmFwIHRoZSBDU1Ncbi8vXG4vLyBAdXNhZ2Vcbi8vIC8qIGJyZWFrcG9pbnQgZGVmaW5pdGlvbnMsIHNldCBpbiBfY29uZi5zY3NzICovXG4vLyAkdGFibGV0OiBcIm9ubHkgc2NyZWVuIGFuZCAoIG1pbi13aWR0aDogNDBlbSApXCI7XG4vLyAkZGVza3RvcDogXCJvbmx5IHNjcmVlbiBhbmQgKCBtaW4td2lkdGg6IDY1ZW0gKVwiO1xuLy9cbi8vIC8qIENTUyBmb3IgYSBzcGVjaWZpYyBwYWdlIG1vZHVsZSAqL1xuLy8gI21vZHVsZXtcbi8vICAgICAvKiBtb2JpbGUtZmlyc3Qgc3R5bGUqXG4vLyAgICAgd2lkdGg6IDEwMCVcbi8vXG4vLyAgICAgQGluY2x1ZGUgbXEoJHRhYmxldCl7XG4vLyAgICAgICAgICB3aWR0aDogNTAlO1xuLy8gICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4vLyAgICAgfVxuLy8gICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKXtcbi8vICAgICAgICAgIHdpZHRoOiAzMyU7XG4vLyAgICAgfVxuLy8gfVxuLy9cblxuQGltcG9ydCBcImNvbmZcIjtcblxuQG1peGluIGZvbnQteC1zbWFsbHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJHhfc21hbGxfZm9udF9zaXplKTtcbn1cblxuQG1peGluIGZvbnQtc21hbGx7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCRzbWFsbF9mb250X3NpemUpO1xufVxuXG5AbWl4aW4gZm9udC1tZWRpdW17XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCRtZWRpdW1fZm9udF9zaXplKTtcbn1cblxuQG1peGluIGZvbnQtbGFyZ2V7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCRsYXJnZV9mb250X3NpemUpO1xufVxuXG5AbWl4aW4gZm9udC1kZWZhdWx0e1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNnB4KTtcbn1cblxuQG1peGluIG1xKCRicmVha3BvaW50KXtcbiAgICAvLyBiZXN0IGNhc2UsIGp1c3Qgd3JpdGUgb3V0IHRoZSBzdHlsZXMgd2l0aCB0aGUgJGJyZWFrcG9pbnRcbiAgICBAaWYoJG1xX3N1cHBvcnQpe1xuICAgICAgICBAbWVkaWEgb25seSBzY3JlZW4gYW5kICgjeyRicmVha3BvaW50fSkge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gb3RoZXJ3aXNlLCB3ZSBuZWVkIHRvIGFjY291bnQgZm9yIGRldmljZXMgdGhhdCBkb24ndCBzdXBwb3J0IG1xJ3NcbiAgICBAZWxzZSB7XG4gICAgICAgIC8vIGlmIHRoZSBicmVha3BvaW50IGxpc3QgY29udGFpbnMgYSBzdWJsaXN0IGZvciBub24tbXEgZGV2aWNlc1xuICAgICAgICAvLyBsb29wIHRocm91Z2ggdGhhdCBhbmQgb25seSB3cml0ZSBvdXQgdGhlIHN0eWxlcyB0aGF0IG1hdGNoXG4gICAgICAgIEBpZiBsZW5ndGgobnRoKCRicmVha3BvaW50cywgMSkpICE9IDEge1xuICAgICAgICAgICAgJGRvX2JyZWFrcG9pbnQ6IGZhbHNlO1xuICAgICAgICAgICAgQGVhY2ggJGJwIGluIG50aCgkYnJlYWtwb2ludHMsIDEpIHtcbiAgICAgICAgICAgICAgICBAaWYgJGJwID09ICRicmVha3BvaW50e1xuICAgICAgICAgICAgICAgICAgICAkZG9fYnJlYWtwb2ludDogdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgJGRvX2JyZWFrcG9pbnQgPT0gdHJ1ZXtcbiAgICAgICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAvLyBvdGhlcndpc2UsIGp1c3Qgd3JpdGUgb3V0IGV2ZXJ5IGJyZWFrcG9pbnQgd2l0aG91dCB0aGUgbWVkaWEgcXVlcmllc1xuICAgICAgICBAZWxzZXtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyBodHRwOi8vbWF4dm9sdGFyLmNvbS9zYW5kYm94L2ZvbnRzbW9vdGhpbmcvXG5AbWl4aW4gYW50aWFsaWFzZWQge1xuICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG4gICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG59XG5cbi8vQ1NTIHN0eWxpbmcgZm9yIEhvbWV3b3JrIEhlbHAgdGh1bWJzIHJhdGluZ1xuQG1peGluIHRodW1icyB7XG4gICAgY29sb3I6ICRsaWdodGVzdF9ncmF5O1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgLypiYWNrZ3JvdW5kOiAjZjlmOWY5OyovXG4gICAgcGFkZGluZzogNXB4IDNweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgd2lkdGg6IDc0cHg7XG4gICAgaXtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBtYXJnaW46IDAgMy41cHg7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAgICAgJi5kb3due1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDVweDtcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgICAgICAgJjpob3ZlciwgJi5hY3RpdmV7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi51cHtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgICAgICAgIHBhZGRpbmctdG9wOiAycHg7XG4gICAgICAgICAgICAmOmhvdmVyLCAmLmFjdGl2ZXtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgc3BhbntcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgICBjb2xvcjogJGNvcHlfY29sb3I7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxNXB4KTtcbiAgICB9XG59XG5cbkBtaXhpbiB0aHVtYlJhdGluZygkcmF0aW5nLCAkY29sb3Ipe1xuICAgICAudGh1bWJze1xuICAgICAgICAgaXtcbiAgICAgICAgICAgICAmLiN7JHJhdGluZ317XG4gICAgICAgICAgICAgICAgIGNvbG9yOiAkY29sb3I7XG4gICAgICAgICAgICB9XG4gICAgICAgICB9XG4gICAgIH1cbn1cblxuQG1peGluIHN0YXJSYXRpbmcge1xuICAgIC5zdGFyLXJhdGluZy13cmFwcGVye1xuICAgICAgICBtYXJnaW4tdG9wOjE1cHg7XG4gICAgICAgIG92ZXJmbG93OmhpZGRlbjtcbiAgICAgICAgc3BhbntcbiAgICAgICAgICAgIGJhY2tncm91bmQ6dXJsKC9pbWFnZXMvY29yZS9yYXRpbmctc3RhcnNfc2V0LnBuZykgMCAwIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIGRpc3BsYXk6YmxvY2s7XG4gICAgICAgICAgICBmbG9hdDpsZWZ0O1xuICAgICAgICAgICAgaGVpZ2h0OjEzcHg7XG4gICAgICAgICAgICB3aWR0aDoxNXB4O1xuICAgICAgICAgICAgJi5ze1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246MCAtMTNweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gU2V0cyB0aGUgZm9udC1zaXplIHByb3BlcnR5IHVzaW5nIHJlbSBhbmQgcHggYXMgYSBmYWxsLWJhY2tcbi8vXG4vLyBAbWl4aW4gZm9udC1zaXplXG4vLyBAcGFyYW0gJHNpemUgICAgIHRoZSBmb250LXNpemUgaW4gcGl4ZWxzXG5AbWl4aW4gZm9udC1zaXplKCRzaXplKXtcbiAgICBAaWYgdW5pdGxlc3MoJHNpemUpIHtcbiAgICAgICAgQHdhcm4gXCJgI3skc2l6ZX1gIG11c3QgYmUgc3BlY2lmaWVkIGluIHBpeGVscy5cIjtcbiAgICB9XG4gICAgZm9udC1zaXplOiAkc2l6ZTtcbiAgICBmb250LXNpemU6IHJlbSgkc2l6ZSk7XG59XG5cbkBtaXhpbiBiYWNrZ3JvdW5kKCl7XG4gICAgI2JhY2tncm91bmR7XG4gICAgICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKXtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgvaW1hZ2VzL2ltZy9jbGFzc3Jvb20tYmx1cnJlZC5qcGcpIDAgMCBuby1yZXBlYXQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkO1xuICAgICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI2ZvcmVncm91bmQge1xuICAgICAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCl7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICB6LWluZGV4OiAyO1xuICAgICAgICAgICAgdG9wOiAwO1xuICAgICAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuXG4vLyBsYXlvdXQtb25lLWNvbCBjcmVhdGVzIGEgb25lIGNvbHVtbiBsYXlvdXRcbkBtaXhpbiBsYXlvdXQoJHNpZGViYXJfd2lkdGg6ICRzaWRlYmFyX3dpZHRoLCAkc2lkZWJhcl9zcGFjaW5nOiAkc2lkZWJhcl9zcGFjaW5nKXtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kO1xuXG4gICAgI2NvbnRlbnQtaGVhZGVye1xuICAgICAgICBAaW5jbHVkZSBtcSgkdGFibGV0KXtcbiAgICAgICAgICAgIG1hcmdpbjogMCAkdGFibGV0X3NpZGVfbWFyZ2luO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKXtcbiAgICAgICAgICAgIG1hcmdpbjowIDAgMTBweCAwO1xuICAgICAgICAgICAgcGFkZGluZzowO1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodGVzdF9ncmF5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI2NvbnRlbnR7XG4gICAgICAgIHBhZGRpbmc6IDEwcHg7XG5cbiAgICAgICAgQGluY2x1ZGUgbXEoJGRlc2t0b3Ape1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgICAgICBwYWRkaW5nOiAyMHB4O1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA5NjBweDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjY29udGVudC1tYWlue1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICAgICAgQGluY2x1ZGUgbXEoJHRhYmxldCl7XG4gICAgICAgICAgICBwYWRkaW5nOiAwICR0YWJsZXRfc2lkZV9tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCl7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAkc2l6ZTogJHNpZGViYXJfd2lkdGggKyAkc2lkZWJhcl9zcGFjaW5nO1xuICAgICAgICAgICAgQGluY2x1ZGUgY2FsYyh3aWR0aCwgJzEwMCUgLSAjeyRzaXplfScpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgI3NpZGViYXJ7XG4gICAgICAgIEBpbmNsdWRlIG1xKCR0YWJsZXQpe1xuICAgICAgICAgICAgbWFyZ2luOiA4cHggJHRhYmxldF9zaWRlX21hcmdpbiAwICR0YWJsZXRfc2lkZV9tYXJnaW47XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCl7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB3aWR0aDogJHNpZGViYXJfd2lkdGg7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIEJveGVzIGxheW91dCB1c2VzIG11bHRpcGxlIGNvbnRhaW5lcnMgaW5zdGVhZCBvZiBvbmUgYmlnIG9uZS5cbi8vIFNlZSBkYXNoYm9hcmQgZm9yIGV4YW1wbGVcbkBtaXhpbiBsYXlvdXQtYm94ZXMoJHNpZGViYXJfd2lkdGg6IDIzMHB4LCAkc2lkZWJhcl9zcGFjaW5nOiAyMHB4KXtcbiAgICBAaW5jbHVkZSBiYWNrZ3JvdW5kO1xuXG4gICAgI2NvbnRlbnR7XG4gICAgICAgIEBpbmNsdWRlIG1xKCR0YWJsZXQpe1xuICAgICAgICAgICAgbWFyZ2luOiAxMHB4ICR0YWJsZXRfc2lkZV9tYXJnaW47XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKXtcbiAgICAgICAgICAgIG1hcmdpbjogMTBweCBhdXRvO1xuICAgICAgICAgICAgbWF4LXdpZHRoOiA5NjBweDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICNjb250ZW50LW1haW57XG4gICAgICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKXtcbiAgICAgICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgICAgICRkaWZmOiAkc2lkZWJhcl93aWR0aCArIDIwcHg7XG4gICAgICAgICAgICBAaW5jbHVkZSBjYWxjKHdpZHRoLCAnMTAwJSAtICN7JGRpZmZ9Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAjc2lkZWJhcntcbiAgICAgICAgZGlzcGxheTogbm9uZTtcblxuICAgICAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCl7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAkc2lkZWJhcl93aWR0aDtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5cblxuQG1peGluIHF1aXpTdGF0c0xpc3RpbmcoKXtcbiAgICBzcGFuLnRpdGxlIHB7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6ICRibHVlO1xuICAgIH1cbiAgICBzcGFuLmJlc3RTY29yZSwgc3Bhbi5zdWJUaXRsZXtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHBhZGRpbmctdG9wOiA1cHg7XG4gICAgICAgIGNvbG9yOiAkbGlnaHRfZ3JheTtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE0cHgpO1xuICAgIH1cbn1cblxuLy8gTWVkaWEgUXVlcnkgZm9yIG1vYmlsZV9vbmx5IHRoYXQgc2V0cyB3aWR0aDogMTAwJSBtb3N0bHkgdXNlZCBvbiBidXR0b25zXG5AbWl4aW4gZnVsbFdpZHRoTW9iaWxlKCkge1xuICAgIEBpbmNsdWRlIG1xKCRtb2JpbGVfb25seSkge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59XG5cbi8vYmFzZSBidXR0b24gc3R5bGVzXG5AbWl4aW4gYnRuKCkge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAwOyAvLyBpbnB1dC5idG5cbiAgICBjb2xvcjogJHdoaXRlO1xuICAgIGJhY2tncm91bmQ6ICRidXR0b25fYmdfY29sb3I7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLXByb3BlcnR5KGJhY2tncm91bmQtY29sb3IsIGNvbG9yKTtcbiAgICBAaW5jbHVkZSB0cmFuc2l0aW9uLWR1cmF0aW9uKDAuMnMpO1xuICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tdGltaW5nLWZ1bmN0aW9uKGVhc2UpO1xuICAgIGJvcmRlci1yYWRpdXM6ICRidXR0b25fYm9yZGVyX3JhZGl1cztcbiAgICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMHB4KTtcbiAgICBAaW5jbHVkZSBhbnRpYWxpYXNlZDtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoMTJweCAxN3B4KTtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyxcbiAgICAmOmFjdGl2ZSxcbiAgICAmLmFjdGl2ZXtcbiAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgYmFja2dyb3VuZDogJGJ1dHRvbl9ob3Zlcl9iZ19jb2xvcjtcbiAgICB9XG5cbiAgICAmOnZpc2l0ZWR7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgJi5iaWd7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMnB4KTtcbiAgICB9XG5cbiAgICAmLnNtYWxse1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMThweCk7XG4gICAgICAgIHBhZGRpbmc6IDdweCAxMHB4O1xuICAgIH1cblxuICAgICYueC1zbWFsbHtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDE2cHgpO1xuICAgICAgICBwYWRkaW5nOiA1cHggOHB4O1xuICAgIH1cblxuICAgICYuZGFyay1ibHVle1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya19ibHVlO1xuICAgIH1cblxuICAgICYud2hpdGV7XG4gICAgICAgIGNvbG9yOiAkYXF1YW1hcmluZTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuXG4gICAgICAgICY6aG92ZXIsXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6YWN0aXZle1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9ob3Zlcl9iZ19jb2xvcjtcbiAgICAgICAgICAgIGNvbG9yOiB3aGl0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYucmVkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJ1dHRvbl9ob3Zlcl9iZ19jb2xvcjtcblxuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzLFxuICAgICAgICAmOmFjdGl2ZXtcbiAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkZGFya19hbG1vc3RfYXF1YW1hcmluZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYuY2FuY2VsIHtcbiAgICAgICAgY29sb3I6ICRjb3B5X2NvbG9yO1xuICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIH1cblxuICAgICYuZGlzYWJsZWQge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHRlc3RfZ3JheTtcbiAgICAgICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRsaWdodGVzdF9ncmF5O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gaW5wdXRfYm9yZGVyKCkge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaWdodGVzdF9ncmF5O1xuICAgIGJvcmRlci1yYWRpdXM6ICRidXR0b25fYm9yZGVyX3JhZGl1cztcbn1cblxuQG1peGluIGlucHV0X2NvbmYoKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHdoaXRlO1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBwYWRkaW5nOiA4cHggOHB4IDZweCA4cHg7XG59XG5cbkBtaXhpbiBzaWRlYmFyX3JlbGF0ZWQge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIHBhZGRpbmctbGVmdDogNDVweDtcbiAgICAmICsgLnJlbGF0ZWQge1xuICAgICAgICBtYXJnaW4tdG9wOiA0NXB4O1xuICAgIH1cbiAgICBoMyB7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiBub25lO1xuICAgIH1cbiAgICAuc2VjdGlvbi1pY29uIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IDA7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgzMnB4KTtcbiAgICAgICAgY29sb3I6ICNjY2M7XG4gICAgfVxufVxuXG5AbWl4aW4gZm9ybV9zaWRlYmFyIHtcbiAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCkge1xuICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgd2lkdGg6IDMwJTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMTVweDtcbiAgICB9XG59XG5cbkBtaXhpbiBmb3JtX21haW4ge1xuICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKSB7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICB3aWR0aDogNzAlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDE1cHg7XG4gICAgfVxufVxuXG5AbWl4aW4gZm9ybV9zaWRlYmFyX2d1aWRlbGluZXMge1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgxOHB4KTtcbiAgICBtYXJnaW4tYm90dG9tOiAzMHB4O1xuICAgIHN0cm9uZyB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgfVxuICAgIGxpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgbXEoJGRlc2t0b3ApIHtcbiAgICAgICAgb2wge1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIHNzLWNlbGwtaWNvbntcbiAgICBjb2xvcjogJGFsbW9zdF9hcXVhbWFyaW5lO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyNHB4KTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIG1hcmdpbi1yaWdodDo1cHg7XG59XG5cbkBtaXhpbiBob3Jpem9udGFsLWNlbnRlciB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi8vIG1peGluIHVzZWQgZm9yIGNyZWF0aW5nIG11bHRpLWNvbHVtbiBsYXlvdXQgb24gZGVza3RvcCBhbmQgc2luZ2xlIGNvbHVtbiBvbiBtb2JpbGVcbkBtaXhpbiBmbGV4LXNwYWNlLWFyb3VuZCB7XG4gICAgQGluY2x1ZGUgZGlzcGxheShmbGV4KTtcbiAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihjb2x1bW4pO1xuICAgIEBpbmNsdWRlIGp1c3RpZnktY29udGVudChzcGFjZS1hcm91bmQpO1xuICAgIEBpbmNsdWRlIGFsaWduLWNvbnRlbnQoc3BhY2UtYXJvdW5kKTtcbiAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCkge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWRpcmVjdGlvbihyb3cpO1xuICAgICAgICBAaW5jbHVkZSBhbGlnbi1jb250ZW50KHN0cmV0Y2gpO1xuICAgIH1cbn1cbiIsIi8vIEJvdXJib24gNC4yLjVcbi8vIGh0dHA6Ly9ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMS0yMDE1IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbkBpbXBvcnQgXCJzZXR0aW5ncy9wcmVmaXhlclwiO1xuQGltcG9ydCBcInNldHRpbmdzL3B4LXRvLWVtXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvYXNzZXQtcGlwZWxpbmVcIjtcblxuQGltcG9ydCBcImZ1bmN0aW9ucy9hc3NpZ24taW5wdXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zLWZhbHN5XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxlbmd0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1saWdodFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1udW1iZXJcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtc2l6ZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1yZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc2hhZGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5wYWNrXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcblxuQGltcG9ydCBcImhlbHBlcnMvY29udmVydC11bml0c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZGlyZWN0aW9uYWwtdmFsdWVzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9mb250LXNvdXJjZS1kZWNsYXJhdGlvblwiO1xuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWFuZ2xlLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1hcmctcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmVuZGVyLWdyYWRpZW50c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvc3RyLXRvLW51bVwiO1xuXG5AaW1wb3J0IFwiY3NzMy9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tmYWNlLXZpc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmRcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvY2FsY1wiO1xuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJjc3MzL2hpZHBpLW1lZGlhLXF1ZXJ5XCI7XG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9pbWFnZS1yZW5kZXJpbmdcIjtcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImNzczMvcGxhY2Vob2xkZXJcIjtcbkBpbXBvcnQgXCJjc3MzL3JhZGlhbC1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvc2VsZWN0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90ZXh0LWRlY29yYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zZm9ybVwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNpdGlvblwiO1xuQGltcG9ydCBcImNzczMvdXNlci1zZWxlY3RcIjtcblxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItY29sb3JcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItc3R5bGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXdpZHRoXCI7XG5AaW1wb3J0IFwiYWRkb25zL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZWxsaXBzaXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1zdGFja3NcIjtcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XG5AaW1wb3J0IFwiYWRkb25zL21hcmdpblwiO1xuQGltcG9ydCBcImFkZG9ucy9wYWRkaW5nXCI7XG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XG5AaW1wb3J0IFwiYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RleHQtaW5wdXRzXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvd29yZC13cmFwXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdsb2JhbCB2YXJpYWJsZXMgdG8gZW5hYmxlIG9yIGRpc2FibGUgdmVuZG9yIHByZWZpeGVzXG5cbiRwcmVmaXgtZm9yLXdlYmtpdDogICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1vemlsbGE6ICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW1pY3Jvc29mdDogdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLW9wZXJhOiAgICAgdHJ1ZSAhZGVmYXVsdDtcbiRwcmVmaXgtZm9yLXNwZWM6ICAgICAgdHJ1ZSAhZGVmYXVsdDtcbiIsIiRlbS1iYXNlOiAxNnB4ICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQSBnbG9iYWwgc2V0dGluZyB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgYCRhc3NldC1waXBlbGluZWAgdmFyaWFibGUgZm9yIGFsbCBmdW5jdGlvbnMgdGhhdCBhY2NlcHQgaXQuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiRhc3NldC1waXBlbGluZTogZmFsc2UgIWRlZmF1bHQ7XG4iLCJAZnVuY3Rpb24gYXNzaWduLWlucHV0cygkaW5wdXRzLCAkcHNldWRvOiBudWxsKSB7XG4gICRsaXN0OiAoKTtcblxuICBAZWFjaCAkaW5wdXQgaW4gJGlucHV0cyB7XG4gICAgJGlucHV0OiB1bnF1b3RlKCRpbnB1dCk7XG4gICAgJGlucHV0OiBpZigkcHNldWRvLCAkaW5wdXQgKyBcIjpcIiArICRwc2V1ZG8sICRpbnB1dCk7XG4gICAgJGxpc3Q6IGFwcGVuZCgkbGlzdCwgJGlucHV0LCBjb21tYSk7XG4gIH1cblxuICBAcmV0dXJuICRsaXN0O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBjb250YWlucyBhIHZhbHVlKHMpLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkdmFsdWVzXG4vLy8gICBBIHNpbmdsZSB2YWx1ZSBvciBsaXN0IG9mIHZhbHVlcyB0byBjaGVjayBmb3IuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIGNvbnRhaW5zKCRsaXN0LCAkdmFsdWUpXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMoJGxpc3QsICR2YWx1ZXMuLi4pIHtcbiAgQGVhY2ggJHZhbHVlIGluICR2YWx1ZXMge1xuICAgIEBpZiB0eXBlLW9mKGluZGV4KCRsaXN0LCAkdmFsdWUpKSAhPSBcIm51bWJlclwiIHtcbiAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiB0cnVlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGlmIGEgbGlzdCBkb2VzIG5vdCBjb250YWlucyBhIHZhbHVlLlxuLy8vXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRsaXN0XG4vLy8gICBUaGUgbGlzdCB0byBjaGVjayBhZ2FpbnN0LlxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGNvbnRhaW5zLWZhbHN5KCRsaXN0KSB7XG4gIEBlYWNoICRpdGVtIGluICRsaXN0IHtcbiAgICBAaWYgbm90ICRpdGVtIHtcbiAgICAgIEByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIGZhbHNlO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBsZW5ndGguXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG5cbkBmdW5jdGlvbiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpICE9IFwibnVsbFwiIGFuZCAoc3RyLXNsaWNlKCR2YWx1ZSArIFwiXCIsIDEsIDQpID09IFwiY2FsY1wiXG4gICAgICAgb3IgaW5kZXgoYXV0byBpbmhlcml0IGluaXRpYWwgMCwgJHZhbHVlKVxuICAgICAgIG9yICh0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90KHVuaXRsZXNzKCR2YWx1ZSkpKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm9ncmFtYXRpY2FsbHkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgY29sb3IgaXMgbGlnaHQgb3IgZGFyay5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9yb2JvdHMudGhvdWdodGJvdC5jb20vY2xvc2VyLWxvb2stY29sb3ItbGlnaHRuZXNzXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yIChIZXgpfSAkY29sb3Jcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgaXMtbGlnaHQoJGNvbG9yKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcbiAgJC1sb2NhbC1yZWQ6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ncmVlbjogZ3JlZW4ocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtYmx1ZTogYmx1ZShyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1saWdodG5lc3M6ICgkLWxvY2FsLXJlZCAqIDAuMjEyNiArICQtbG9jYWwtZ3JlZW4gKiAwLjcxNTIgKyAkLWxvY2FsLWJsdWUgKiAwLjA3MjIpIC8gMjU1O1xuXG4gIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MgPiAwLjY7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuXG5AZnVuY3Rpb24gaXMtbnVtYmVyKCR2YWx1ZSkge1xuICBAcmV0dXJuIGNvbnRhaW5zKFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiIDAgMSAyIDMgNCA1IDYgNyA4IDksICR2YWx1ZSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIHNpemUuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHZhbHVlXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcblxuQGZ1bmN0aW9uIGlzLXNpemUoJHZhbHVlKSB7XG4gIEByZXR1cm4gaXMtbGVuZ3RoKCR2YWx1ZSlcbiAgICAgICAgICBvciBjb250YWlucyhcImZpbGxcIiBcImZpdC1jb250ZW50XCIgXCJtaW4tY29udGVudFwiIFwibWF4LWNvbnRlbnRcIiwgJHZhbHVlKTtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSBlbSgxMikgd2hlbiB0aGUgcGFyZW50IGlzIDE2cHhcbi8vIGlmIHRoZSBwYXJlbnQgaXMgYW5vdGhlciB2YWx1ZSBzYXkgMjRweCB3cml0ZSBlbSgxMiwgMjQpXG5cbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZW0tYmFzZSkge1xuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuICBAcmV0dXJuICgkcHh2YWwgLyAkYmFzZSkgKiAxZW07XG59XG4iLCIvLyBDb252ZXJ0IHBpeGVscyB0byByZW1zXG4vLyBlZy4gZm9yIGEgcmVsYXRpb25hbCB2YWx1ZSBvZiAxMnB4IHdyaXRlIHJlbSgxMilcbi8vIEFzc3VtZXMgJGVtLWJhc2UgaXMgdGhlIGZvbnQtc2l6ZSBvZiA8aHRtbD5cblxuQGZ1bmN0aW9uIHJlbSgkcHh2YWwpIHtcbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cblxuICAkYmFzZTogJGVtLWJhc2U7XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFyZW07XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggYmxhY2suXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2YgYmxhY2sgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogc2hhZGUoI2ZmYmI1MiwgNjAlKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzY2NGEyMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXR1cm4ge0NvbG9yfVxuXG5AZnVuY3Rpb24gc2hhZGUoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjMDAwLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFN0cmlwcyB0aGUgdW5pdCBmcm9tIGEgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFdpdGggVW5pdCl9ICR2YWx1ZVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAkZGltZW5zaW9uOiBzdHJpcC11bml0cygxMGVtKTtcbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgICRkaW1lbnNpb246IDEwO1xuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyIChVbml0bGVzcyl9XG5cbkBmdW5jdGlvbiBzdHJpcC11bml0cygkdmFsdWUpIHtcbiAgQHJldHVybiAoJHZhbHVlIC8gKCR2YWx1ZSAqIDAgKyAxKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBNaXhlcyBhIGNvbG9yIHdpdGggd2hpdGUuXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3Jcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIChQZXJjZW50YWdlKX0gJHBlcmNlbnRcbi8vLyAgIFRoZSBhbW91bnQgb2Ygd2hpdGUgdG8gYmUgbWl4ZWQgaW4uXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogdGludCgjNmVjYWE2LCA0MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjYThkZmM5O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiB0aW50KCRjb2xvciwgJHBlcmNlbnQpIHtcbiAgQHJldHVybiBtaXgoI2ZmZiwgJGNvbG9yLCAkcGVyY2VudCk7XG59XG4iLCIvLyBSZXR1cm4gdmVuZG9yLXByZWZpeGVkIHByb3BlcnR5IG5hbWVzIGlmIGFwcHJvcHJpYXRlXG4vLyBFeGFtcGxlOiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCh0cmFuc2Zvcm0sIGNvbG9yLCBiYWNrZ3JvdW5kKSwgbW96KSAtPiAtbW96LXRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmRcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wcywgJHZlbmRvcjogZmFsc2UpIHtcbiAgJG5ldy1wcm9wczogKCk7XG5cbiAgQGVhY2ggJHByb3AgaW4gJHByb3BzIHtcbiAgICAkbmV3LXByb3BzOiBhcHBlbmQoJG5ldy1wcm9wcywgdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yKSwgY29tbWEpO1xuICB9XG5cbiAgQHJldHVybiAkbmV3LXByb3BzO1xufVxuXG5AZnVuY3Rpb24gdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lKCRwcm9wLCAkdmVuZG9yOiBmYWxzZSkge1xuICAvLyBwdXQgb3RoZXIgcHJvcGVydGllcyB0aGF0IG5lZWQgdG8gYmUgcHJlZml4ZWQgaGVyZSBhc3dlbGxcbiAgQGlmICR2ZW5kb3IgYW5kICRwcm9wID09IHRyYW5zZm9ybSB7XG4gICAgQHJldHVybiB1bnF1b3RlKCctJyskdmVuZG9yKyctJyskcHJvcCk7XG4gIH1cbiAgQGVsc2Uge1xuICAgIEByZXR1cm4gJHByb3A7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENvbnZlcnRzIHNob3J0aGFuZCB0byB0aGUgNC12YWx1ZSBzeW50YXguXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRzaG9ydGhhbmRcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IHVucGFjaygxZW0gMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luOiAxZW0gMmVtIDFlbSAyZW07XG4vLy8gICB9XG5cbkBmdW5jdGlvbiB1bnBhY2soJHNob3J0aGFuZCkge1xuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAyIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAzKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcbiAgfVxufVxuIiwiLy8gU2NhbGluZyBWYXJpYWJsZXNcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcbiRtaW5vci10aGlyZDogICAgICAxLjI7XG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xuJG9jdGF2ZTogICAgICAgICAgIDI7XG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XG4kZG91YmxlLW9jdGF2ZTogICAgNDtcblxuJG1vZHVsYXItc2NhbGUtcmF0aW86ICRwZXJmZWN0LWZvdXJ0aCAhZGVmYXVsdDtcbiRtb2R1bGFyLXNjYWxlLWJhc2U6IGVtKCRlbS1iYXNlKSAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIG1vZHVsYXItc2NhbGUoJGluY3JlbWVudCwgJHZhbHVlOiAkbW9kdWxhci1zY2FsZS1iYXNlLCAkcmF0aW86ICRtb2R1bGFyLXNjYWxlLXJhdGlvKSB7XG4gICR2MTogbnRoKCR2YWx1ZSwgMSk7XG4gICR2MjogbnRoKCR2YWx1ZSwgbGVuZ3RoKCR2YWx1ZSkpO1xuICAkdmFsdWU6ICR2MTtcblxuICAvLyBzY2FsZSAkdjIgdG8ganVzdCBhYm92ZSAkdjFcbiAgQHdoaWxlICR2MiA+ICR2MSB7XG4gICAgJHYyOiAoJHYyIC8gJHJhdGlvKTsgLy8gd2lsbCBiZSBvZmYtYnktMVxuICB9XG4gIEB3aGlsZSAkdjIgPCAkdjEge1xuICAgICR2MjogKCR2MiAqICRyYXRpbyk7IC8vIHdpbGwgZml4IG9mZi1ieS0xXG4gIH1cblxuICAvLyBjaGVjayBBRlRFUiBzY2FsaW5nICR2MiB0byBwcmV2ZW50IGRvdWJsZS1jb3VudGluZyBjb3JuZXItY2FzZVxuICAkZG91YmxlLXN0cmFuZGVkOiAkdjIgPiAkdjE7XG5cbiAgQGlmICRpbmNyZW1lbnQgPiAwIHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRpbmNyZW1lbnQge1xuICAgICAgQGlmICRkb3VibGUtc3RyYW5kZWQgYW5kICgkdjEgKiAkcmF0aW8pID4gJHYyIHtcbiAgICAgICAgJHZhbHVlOiAkdjI7XG4gICAgICAgICR2MjogKCR2MiAqICRyYXRpbyk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHYxOiAoJHYxICogJHJhdGlvKTtcbiAgICAgICAgJHZhbHVlOiAkdjE7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGlmICRpbmNyZW1lbnQgPCAwIHtcbiAgICAvLyBhZGp1c3QgJHYyIHRvIGp1c3QgYmVsb3cgJHYxXG4gICAgQGlmICRkb3VibGUtc3RyYW5kZWQge1xuICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICB9XG5cbiAgICBAZm9yICRpIGZyb20gJGluY3JlbWVudCB0aHJvdWdoIC0xIHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxIC8gJHJhdGlvKSA8ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgLyAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAvICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBzdHItdG8tbnVtIGZuLlxuLy8gU291cmNlOiBodHRwOi8vc2Fzc21laXN0ZXIuY29tL2dpc3QvOTY0NzQwOFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIF9jb252ZXJ0LXVuaXRzKCRudW1iZXIsICR1bml0KSB7XG4gICRzdHJpbmdzOiBcInB4XCIsIFwiY21cIiwgXCJtbVwiLCBcIiVcIiwgXCJjaFwiLCBcInBpY2FcIiwgXCJpblwiLCBcImVtXCIsIFwicmVtXCIsIFwicHRcIiwgXCJwY1wiLCBcImV4XCIsIFwidndcIiwgXCJ2aFwiLCBcInZtaW5cIiwgXCJ2bWF4XCIsIFwiZGVnXCIsIFwicmFkXCIsIFwiZ3JhZFwiLCBcInR1cm5cIjtcbiAgJHVuaXRzOiAgIDFweCwgMWNtLCAxbW0sIDElLCAxY2gsIDFwaWNhLCAxaW4sIDFlbSwgMXJlbSwgMXB0LCAxcGMsIDFleCwgMXZ3LCAxdmgsIDF2bWluLCAxdm1heCwgMWRlZywgMXJhZCwgMWdyYWQsIDF0dXJuO1xuICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkdW5pdCk7XG5cbiAgQGlmIG5vdCAkaW5kZXgge1xuICAgIEB3YXJuIFwiVW5rbm93biB1bml0IGAjeyR1bml0fWAuXCI7XG4gICAgQHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRudW1iZXIpICE9IFwibnVtYmVyXCIge1xuICAgIEB3YXJuIFwiYCN7JG51bWJlcn0gaXMgbm90IGEgbnVtYmVyYFwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAcmV0dXJuICRudW1iZXIgKiBudGgoJHVuaXRzLCAkaW5kZXgpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gRGlyZWN0aW9uYWwtcHJvcGVydHkgbWl4aW5zIGFyZSBzaG9ydGhhbmRzIGZvciB3cml0aW5nIHByb3BlcnRpZXMgbGlrZSB0aGUgZm9sbG93aW5nXG4vLy9cbi8vLyBAaWdub3JlIFlvdSBjYW4gYWxzbyB1c2UgYGZhbHNlYCBpbnN0ZWFkIG9mIGBudWxsYC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgZGlyZWN0aW9uYWwgdmFsdWVzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXN0eWxlKGRvdHRlZCBudWxsKTtcbi8vLyAgICAgQGluY2x1ZGUgbWFyZ2luKG51bGwgMCAxMHB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogZG90dGVkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkb3R0ZWQ7XG4vLy8gICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAwO1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG4vLy9cbi8vLyBAcmV0dXJuIHtMaXN0fVxuXG5AZnVuY3Rpb24gY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKSB7XG4gICRvdXRwdXQ6IG51bGw7XG5cbiAgJGE6IG50aCgkdmFscywgMSk7XG4gICRiOiBpZihsZW5ndGgoJHZhbHMpIDwgMiwgJGEsIG50aCgkdmFscywgMikpO1xuICAkYzogaWYobGVuZ3RoKCR2YWxzKSA8IDMsICRhLCBudGgoJHZhbHMsIDMpKTtcbiAgJGQ6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCBpZihsZW5ndGgoJHZhbHMpIDwgNCwgMiwgNCkpKTtcblxuICBAaWYgJGEgPT0gMCB7ICRhOiAwOyB9XG4gIEBpZiAkYiA9PSAwIHsgJGI6IDA7IH1cbiAgQGlmICRjID09IDAgeyAkYzogMDsgfVxuICBAaWYgJGQgPT0gMCB7ICRkOiAwOyB9XG5cbiAgQGlmICRhID09ICRiIGFuZCAkYSA9PSAkYyBhbmQgJGEgPT0gJGQgeyAkb3V0cHV0OiAkYTsgICAgICAgICAgfVxuICBAZWxzZSBpZiAkYSA9PSAkYyBhbmQgJGIgPT0gJGQgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiOyAgICAgICB9XG4gIEBlbHNlIGlmICRiID09ICRkICAgICAgICAgICAgICAgICAgICAgIHsgJG91dHB1dDogJGEgJGIgJGM7ICAgIH1cbiAgQGVsc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYyAkZDsgfVxuXG4gIEByZXR1cm4gJG91dHB1dDtcbn1cblxuLy8vIE91dHB1dCBkaXJlY3Rpb25hbCBwcm9wZXJ0aWVzLCBmb3IgaW5zdGFuY2UgYG1hcmdpbmAuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkcHJlXG4vLy8gICBQcmVmaXggdG8gdXNlXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRzdWZcbi8vLyAgIFN1ZmZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIHZhbHVlc1xuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb2xsYXBzZS1kaXJlY3Rpb25hbHNcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbnRhaW5zLWZhbHN5XG5cbkBtaXhpbiBkaXJlY3Rpb25hbC1wcm9wZXJ0eSgkcHJlLCAkc3VmLCAkdmFscykge1xuICAvLyBQcm9wZXJ0eSBOYW1lc1xuICAkdG9wOiAgICAkcHJlICsgXCItdG9wXCIgICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYm90dG9tOiAkcHJlICsgXCItYm90dG9tXCIgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkbGVmdDogICAkcHJlICsgXCItbGVmdFwiICAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkcmlnaHQ6ICAkcHJlICsgXCItcmlnaHRcIiAgKyBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuICAkYWxsOiAgICAkcHJlICsgICAgICAgICAgICAgaWYoJHN1ZiwgXCItI3skc3VmfVwiLCBcIlwiKTtcblxuICAkdmFsczogY29sbGFwc2UtZGlyZWN0aW9uYWxzKCR2YWxzKTtcblxuICBAaWYgY29udGFpbnMtZmFsc3koJHZhbHMpIHtcbiAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHRvcH06IG50aCgkdmFscywgMSk7IH1cblxuICAgIEBpZiBsZW5ndGgoJHZhbHMpID09IDEge1xuICAgICAgQGlmIG50aCgkdmFscywgMSkgeyAjeyRyaWdodH06IG50aCgkdmFscywgMSk7IH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skcmlnaHR9OiBudGgoJHZhbHMsIDIpOyB9XG4gICAgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMiB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMSk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDIpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCAyKTsgfVxuICAgIH0gQGVsc2UgaWYgbGVuZ3RoKCR2YWxzKSA9PSAzIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDMpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAzKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDQge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCA0KSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgNCk7IH1cbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgICN7JGFsbH06ICR2YWxzO1xuICB9XG59XG4iLCIvLyBVc2VkIGZvciBjcmVhdGluZyB0aGUgc291cmNlIHN0cmluZyBmb3IgZm9udHMgdXNpbmcgQGZvbnQtZmFjZVxuLy8gUmVmZXJlbmNlOiBodHRwOi8vZ29vLmdsL1J1MWJLUFxuXG5AZnVuY3Rpb24gZm9udC11cmwtcHJlZml4ZXIoJGFzc2V0LXBpcGVsaW5lKSB7XG4gIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgQHJldHVybiBmb250LXVybDtcbiAgfSBAZWxzZSB7XG4gICAgQHJldHVybiB1cmw7XG4gIH1cbn1cblxuQGZ1bmN0aW9uIGZvbnQtc291cmNlLWRlY2xhcmF0aW9uKFxuICAkZm9udC1mYW1pbHksXG4gICRmaWxlLXBhdGgsXG4gICRhc3NldC1waXBlbGluZSxcbiAgJGZpbGUtZm9ybWF0cyxcbiAgJGZvbnQtdXJsKSB7XG5cbiAgJHNyYzogKCk7XG5cbiAgJGZvcm1hdHMtbWFwOiAoXG4gICAgZW90OiAgIFwiI3skZmlsZS1wYXRofS5lb3Q/I2llZml4XCIgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG4gICAgd29mZjI6IFwiI3skZmlsZS1wYXRofS53b2ZmMlwiIGZvcm1hdChcIndvZmYyXCIpLFxuICAgIHdvZmY6ICBcIiN7JGZpbGUtcGF0aH0ud29mZlwiIGZvcm1hdChcIndvZmZcIiksXG4gICAgdHRmOiAgIFwiI3skZmlsZS1wYXRofS50dGZcIiBmb3JtYXQoXCJ0cnVldHlwZVwiKSxcbiAgICBzdmc6ICAgXCIjeyRmaWxlLXBhdGh9LnN2ZyMjeyRmb250LWZhbWlseX1cIiBmb3JtYXQoXCJzdmdcIilcbiAgKTtcblxuICBAZWFjaCAka2V5LCAkdmFsdWVzIGluICRmb3JtYXRzLW1hcCB7XG4gICAgQGlmIGNvbnRhaW5zKCRmaWxlLWZvcm1hdHMsICRrZXkpIHtcbiAgICAgICRmaWxlLXBhdGg6IG50aCgkdmFsdWVzLCAxKTtcbiAgICAgICRmb250LWZvcm1hdDogbnRoKCR2YWx1ZXMsIDIpO1xuXG4gICAgICBAaWYgJGFzc2V0LXBpcGVsaW5lID09IHRydWUge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgZm9udC11cmwoJGZpbGUtcGF0aCkgJGZvbnQtZm9ybWF0LCBjb21tYSk7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgJHNyYzogYXBwZW5kKCRzcmMsIHVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRzcmM7XG59XG4iLCJAZnVuY3Rpb24gX2dyYWRpZW50LXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXR5cGUsICRncmFkaWVudC1wb3NpdGlvbnMpIHtcbiAgQGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSBsaW5lYXIpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtcG9zaXRpb25zXG4gIGFuZCAoJGdyYWRpZW50LXR5cGUgPT0gcmFkaWFsKVxuICBhbmQgKHR5cGUtb2YoJGdyYWRpZW50LXBvc2l0aW9ucykgIT0gY29sb3IpIHtcbiAgICAkZ3JhZGllbnQtcG9zaXRpb25zOiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvc2l0aW9ucyk7XG4gIH1cbiAgQHJldHVybiAkZ3JhZGllbnQtcG9zaXRpb25zO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItYW5nbGUtcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCkge1xuICAkb2Zmc2V0OiBudWxsO1xuICAkdW5pdC1zaG9ydDogIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMiwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR1bml0LWxvbmc6ICAgc3RyLXNsaWNlKCRmaXJzdC12YWwsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkgLSAzLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcblxuICBAaWYgKCR1bml0LWxvbmcgPT0gXCJncmFkXCIpIG9yXG4gICAgICAoJHVuaXQtbG9uZyA9PSBcInR1cm5cIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LWxvbmcgPT0gXCJncmFkXCIsIC0xMDBncmFkICogMywgLTAuNzV0dXJuKTtcbiAgfVxuXG4gIEBlbHNlIGlmICgkdW5pdC1zaG9ydCA9PSBcImRlZ1wiKSBvclxuICAgICAgICAgICAoJHVuaXQtc2hvcnQgPT0gXCJyYWRcIikge1xuICAgICRvZmZzZXQ6IGlmKCR1bml0LXNob3J0ID09IFwiZGVnXCIsIC05MCAqIDMsIDEuNnJhZCk7XG4gIH1cblxuICBAaWYgJG9mZnNldCB7XG4gICAgJG51bTogX3N0ci10by1udW0oJGZpcnN0LXZhbCk7XG5cbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgKCRvZmZzZXQgLSAkbnVtKSArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG59XG4iLCJAZnVuY3Rpb24gX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKSB7XG4gICRpbWFnZTogdW5xdW90ZSgkaW1hZ2UpO1xuICAkZ3JhZGllbnRzOiAoKTtcbiAgJHN0YXJ0OiBzdHItaW5kZXgoJGltYWdlLCBcIihcIik7XG4gICRlbmQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiLFwiKTtcbiAgJGZpcnN0LXZhbDogc3RyLXNsaWNlKCRpbWFnZSwgJHN0YXJ0ICsgMSwgJGVuZCAtIDEpO1xuXG4gICRwcmVmaXg6IHN0ci1zbGljZSgkaW1hZ2UsIDEsICRzdGFydCk7XG4gICRzdWZmaXg6IHN0ci1zbGljZSgkaW1hZ2UsICRlbmQsIHN0ci1sZW5ndGgoJGltYWdlKSk7XG5cbiAgJGhhcy1tdWx0aXBsZS12YWxzOiBzdHItaW5kZXgoJGZpcnN0LXZhbCwgXCIgXCIpO1xuICAkaGFzLXNpbmdsZS1wb3NpdGlvbjogdW5xdW90ZShfcG9zaXRpb24tZmxpcHBlcigkZmlyc3QtdmFsKSArIFwiXCIpO1xuICAkaGFzLWFuZ2xlOiBpcy1udW1iZXIoc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsIDEpKTtcblxuICBAaWYgJGhhcy1tdWx0aXBsZS12YWxzIHtcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscyk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLXNpbmdsZS1wb3NpdGlvbiAhPSBcIlwiIHtcbiAgICAkcG9zOiB1bnF1b3RlKCRoYXMtc2luZ2xlLXBvc2l0aW9uICsgXCJcIik7XG5cbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaGFzLWFuZ2xlIHtcbiAgICAvLyBSb3RhdGUgZGVncmVlIGZvciB3ZWJraXRcbiAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgICRncmFkaWVudHM6IChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgQHJldHVybiAkZ3JhZGllbnRzO1xufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItcG9zaXRpb25zLXBhcnNlcigkcG9zKSB7XG4gICR0eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRzcGVjOiBudWxsO1xuICAkZGVncmVlOiBudWxsO1xuICAkc2lkZTogbnVsbDtcbiAgJGNvcm5lcjogbnVsbDtcbiAgJGxlbmd0aDogbGVuZ3RoKCRwb3MpO1xuICAvLyBQYXJzZSBTaWRlIGFuZCBjb3JuZXIgcG9zaXRpb25zXG4gIEBpZiAoJGxlbmd0aCA+IDEpIHtcbiAgICBAaWYgbnRoKCRwb3MsIDEpID09IFwidG9cIiB7IC8vIE5ld2VyIHN5bnRheFxuICAgICAgJHNpZGU6IG50aCgkcG9zLCAyKTtcblxuICAgICAgQGlmICRsZW5ndGggPT0gMiB7IC8vIGVnLiB0byB0b3BcbiAgICAgICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGFiaWxpdHlcbiAgICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDIpKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMyB7IC8vIGVnLiB0byB0b3AgbGVmdFxuICAgICAgICAkY29ybmVyOiBudGgoJHBvcywgMyk7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIGlmICRsZW5ndGggPT0gMiB7IC8vIE9sZGVyIHN5bnRheCAoXCJ0b3AgbGVmdFwiKVxuICAgICAgJHNpZGU6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAxKSk7XG4gICAgICAkY29ybmVyOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgIH1cblxuICAgIEBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IHRvcFwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJ0b3AgcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJyaWdodCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIHJpZ2h0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwibGVmdCBib3R0b21cIikgb3IgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwiYm90dG9tIGxlZnRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICAkc3BlYzogdG8gJHNpZGUgJGNvcm5lcjtcbiAgfVxuICBAZWxzZSBpZiAkbGVuZ3RoID09IDEge1xuICAgIC8vIFN3YXAgZm9yIGJhY2t3YXJkcyBjb21wYXRhYmlsaXR5XG4gICAgQGlmICR0eXBlID09IHN0cmluZyB7XG4gICAgICAkZGVncmVlOiAkcG9zO1xuICAgICAgJHNwZWM6IHRvIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkZGVncmVlOiAtMjcwIC0gJHBvczsgLy9yb3RhdGUgdGhlIGdyYWRpZW50IG9wcG9zaXRlIGZyb20gc3BlY1xuICAgICAgJHNwZWM6ICRwb3M7XG4gICAgfVxuICB9XG4gICRkZWdyZWU6IHVucXVvdGUoJGRlZ3JlZSArIFwiLFwiKTtcbiAgJHNwZWM6ICAgdW5xdW90ZSgkc3BlYyArIFwiLFwiKTtcbiAgQHJldHVybiAkZGVncmVlICRzcGVjO1xufVxuXG5AZnVuY3Rpb24gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcykge1xuICBAcmV0dXJuIGlmKCRwb3MgPT0gbGVmdCwgcmlnaHQsIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IHJpZ2h0LCBsZWZ0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSB0b3AsIGJvdHRvbSwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gYm90dG9tLCB0b3AsIG51bGwpO1xufVxuIiwiLy8gUHJpdmF0ZSBmdW5jdGlvbiBmb3IgbGluZWFyLWdyYWRpZW50LXBhcnNlclxuQGZ1bmN0aW9uIF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyKCRpbWFnZSwgJGZpcnN0LXZhbCwgJHByZWZpeCwgJHN1ZmZpeCwgJGhhcy1tdWx0aXBsZS12YWxzKSB7XG4gICR2YWwtMTogc3RyLXNsaWNlKCRmaXJzdC12YWwsIDEsICRoYXMtbXVsdGlwbGUtdmFscyAtIDEpO1xuICAkdmFsLTI6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAkaGFzLW11bHRpcGxlLXZhbHMgKyAxLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpKTtcbiAgJHZhbC0zOiBudWxsO1xuICAkaGFzLXZhbC0zOiBzdHItaW5kZXgoJHZhbC0yLCBcIiBcIik7XG5cbiAgQGlmICRoYXMtdmFsLTMge1xuICAgICR2YWwtMzogc3RyLXNsaWNlKCR2YWwtMiwgJGhhcy12YWwtMyArIDEsIHN0ci1sZW5ndGgoJHZhbC0yKSk7XG4gICAgJHZhbC0yOiBzdHItc2xpY2UoJHZhbC0yLCAxLCAkaGFzLXZhbC0zIC0gMSk7XG4gIH1cblxuICAkcG9zOiBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTEpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMikgX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0zKTtcbiAgJHBvczogdW5xdW90ZSgkcG9zICsgXCJcIik7XG5cbiAgLy8gVXNlIG9sZCBzcGVjIGZvciB3ZWJraXRcbiAgQGlmICR2YWwtMSA9PSBcInRvXCIge1xuICAgIEByZXR1cm4gKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICAvLyBCcmluZyB0aGUgY29kZSB1cCB0byBzcGVjXG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkaW1hZ2UsXG4gICAgICBzcGVjLWltYWdlOiAkcHJlZml4ICsgXCJ0byBcIiArICRwb3MgKyAkc3VmZml4XG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpIHtcbiAgQGVhY2ggJHZhbHVlIGluICRnMSwgJGcyIHtcbiAgICAkZmlyc3QtdmFsOiBudGgoJHZhbHVlLCAxKTtcbiAgICAkcG9zLXR5cGU6ICB0eXBlLW9mKCRmaXJzdC12YWwpO1xuICAgICRzcGVjLWF0LWluZGV4OiBudWxsO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGlmIHNwZWMgd2FzIHBhc3NlZCB0byBtaXhpblxuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbGlzdCB7XG4gICAgICAkc3BlYy1hdC1pbmRleDogaWYoaW5kZXgoJHZhbHVlLCBhdCksIGluZGV4KCR2YWx1ZSwgYXQpLCBmYWxzZSk7XG4gICAgfVxuICAgIEBpZiAkc3BlYy1hdC1pbmRleCB7XG4gICAgICBAaWYgJHNwZWMtYXQtaW5kZXggPiAxIHtcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAoJHNwZWMtYXQtaW5kZXggLSAxKSB7XG4gICAgICAgICAgJHNoYXBlLXNpemU6ICRzaGFwZS1zaXplIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICRzcGVjLWF0LWluZGV4ID09IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gKCRzcGVjLWF0LWluZGV4ICsgMSkgdGhyb3VnaCBsZW5ndGgoJHZhbHVlKSB7XG4gICAgICAgICAgJHBvczogJHBvcyBudGgoJHZhbHVlLCAkaSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgICRnMTogbnVsbDtcbiAgICB9XG5cbiAgICAvLyBJZiBub3Qgc3BlYyBjYWxjdWxhdGUgY29ycmVjdCB2YWx1ZXNcbiAgICBAZWxzZSB7XG4gICAgICBAaWYgKCRwb3MtdHlwZSAhPSBjb2xvcikgb3IgKCRmaXJzdC12YWwgIT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgICAgIEBpZiAoJHBvcy10eXBlID09IG51bWJlcilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjZW50ZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJ0b3BcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJyaWdodFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImJvdHRvbVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImxlZnRcIikge1xuXG4gICAgICAgICAgJHBvczogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICRwb3MgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBAZWxzZSBpZlxuICAgICAgICAgICAoJGZpcnN0LXZhbCA9PSBcImVsbGlwc2VcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjaXJjbGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjbG9zZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LXNpZGVcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJmYXJ0aGVzdC1jb3JuZXJcIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb250YWluXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiY292ZXJcIikge1xuXG4gICAgICAgICAgJHNoYXBlLXNpemU6ICR2YWx1ZTtcblxuICAgICAgICAgIEBpZiAkdmFsdWUgPT0gJGcxIHtcbiAgICAgICAgICAgICRnMTogbnVsbDtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAZWxzZSBpZiAkdmFsdWUgPT0gJGcyIHtcbiAgICAgICAgICAgICRnMjogbnVsbDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQHJldHVybiAkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemU7XG59XG4iLCJAZnVuY3Rpb24gX3JhZGlhbC1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3MpIHtcbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcbiAgICAgICAgICAgICB1bnF1b3RlKGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LFwiLCBudWxsKSk7XG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuXG4gICRzcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skcG9zLXNwZWN9XCI7XG5cbiAgLy8gQWRkIGNvbW1hXG4gIEBpZiAoJHNwZWMgIT0gXCIgIFwiKSB7XG4gICAgJHNwZWM6IFwiI3skc3BlY30sXCI7XG4gIH1cblxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaXMtc3BlYy1zeW50YXg6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcImF0XCIpO1xuXG4gIEBpZiAkaXMtc3BlYy1zeW50YXggYW5kICRpcy1zcGVjLXN5bnRheCA+IDEge1xuICAgICRrZXl3b3JkOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGlzLXNwZWMtc3ludGF4IC0gMik7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAgICRwb3M6IGFwcGVuZCgkcG9zLCAka2V5d29yZCwgY29tbWEpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaXMtc3BlYy1zeW50YXggPT0gMSB7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiBzdHItaW5kZXgoJGltYWdlLCBcImNvdmVyXCIpIG9yIHN0ci1pbmRleCgkaW1hZ2UsIFwiY29udGFpblwiKSB7XG4gICAgQHdhcm4gXCJSYWRpYWwtZ3JhZGllbnQgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byBjb25mb3JtIHRvIGxhdGVzdCBzcGVjLlwiO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiBudWxsLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIi8vIFVzZXIgZm9yIGxpbmVhciBhbmQgcmFkaWFsIGdyYWRpZW50cyB3aXRoaW4gYmFja2dyb3VuZC1pbWFnZSBvciBib3JkZXItaW1hZ2UgcHJvcGVydGllc1xuXG5AZnVuY3Rpb24gX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50cywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3I6IGZhbHNlKSB7XG4gICRwcmUtc3BlYzogbnVsbDtcbiAgJHNwZWM6IG51bGw7XG4gICR2ZW5kb3ItZ3JhZGllbnRzOiBudWxsO1xuICBAaWYgJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyIHtcbiAgICBAaWYgJGdyYWRpZW50LXBvc2l0aW9ucyB7XG4gICAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwge1xuICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgQGlmICR2ZW5kb3Ige1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiAtI3skdmVuZG9yfS0jeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRwcmUtc3BlY30gJGdyYWRpZW50cyk7XG4gIH1cbiAgQGVsc2UgaWYgJHZlbmRvciA9PSBmYWxzZSB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IFwiI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skc3BlY30gI3skZ3JhZGllbnRzfSlcIjtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogdW5xdW90ZSgkdmVuZG9yLWdyYWRpZW50cyk7XG4gIH1cbiAgQHJldHVybiAkdmVuZG9yLWdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSkge1xuICAkc2hhcGUtc2l6ZS1zcGVjOiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHNoYXBlLXNpemUge1xuICAgIEBpZiAoJHZhbHVlID09IFwiY292ZXJcIikgb3IgKCR2YWx1ZSA9PSBcImNvbnRhaW5cIikge1xuICAgICAgJHZhbHVlOiBudWxsO1xuICAgIH1cbiAgICAkc2hhcGUtc2l6ZS1zcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skdmFsdWV9XCI7XG4gIH1cbiAgQHJldHVybiAkc2hhcGUtc2l6ZS1zcGVjO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBsaW5lYXIvcmFkaWFsLWdyYWRpZW50LXBhcnNlcnMuXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX3N0ci10by1udW0oJHN0cmluZykge1xuICAvLyBNYXRyaWNlc1xuICAkc3RyaW5nczogXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCI7XG4gICRudW1iZXJzOiAgMCAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcgICA4ICAgOTtcblxuICAvLyBSZXN1bHRcbiAgJHJlc3VsdDogMDtcbiAgJGRpdmlkZXI6IDA7XG4gICRtaW51czogZmFsc2U7XG5cbiAgLy8gTG9vcGluZyB0aHJvdWdoIGFsbCBjaGFyYWN0ZXJzXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkc3RyaW5nKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSk7XG4gICAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJGNoYXJhY3Rlcik7XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSBcIi1cIiB7XG4gICAgICAkbWludXM6IHRydWU7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGNoYXJhY3RlciA9PSBcIi5cIiB7XG4gICAgICAkZGl2aWRlcjogMTtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgbm90ICRpbmRleCB7XG4gICAgICAgICRyZXN1bHQ6IGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbiAgICAgICAgQHJldHVybiBfY29udmVydC11bml0cygkcmVzdWx0LCBzdHItc2xpY2UoJHN0cmluZywgJGkpKTtcbiAgICAgIH1cblxuICAgICAgJG51bWJlcjogbnRoKCRudW1iZXJzLCAkaW5kZXgpO1xuXG4gICAgICBAaWYgJGRpdmlkZXIgPT0gMCB7XG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMDtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAvLyBNb3ZlIHRoZSBkZWNpbWFsIGRvdCB0byB0aGUgbGVmdFxuICAgICAgICAkZGl2aWRlcjogJGRpdmlkZXIgKiAxMDtcbiAgICAgICAgJG51bWJlcjogJG51bWJlciAvICRkaXZpZGVyO1xuICAgICAgfVxuXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG59XG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXG5cbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1uYW1lKCRuYW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tbmFtZSwgJG5hbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZHVyYXRpb24sICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgkdmFsdWVzLi4uKSB7XG4gIC8vIGluZmluaXRlIHwgPG51bWJlcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCwgJHZhbHVlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kaXJlY3Rpb24oJGRpcmVjdGlvbnMuLi4pIHtcbiAgLy8gbm9ybWFsIHwgYWx0ZXJuYXRlXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kaXJlY3Rpb24sICRkaXJlY3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXBsYXktc3RhdGUoJHN0YXRlcy4uLikge1xuICAvLyBydW5uaW5nIHwgcGF1c2VkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1wbGF5LXN0YXRlLCAkc3RhdGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZGVsYXksICR0aW1lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1maWxsLW1vZGUoJG1vZGVzLi4uKSB7XG4gIC8vIG5vbmUgfCBmb3J3YXJkcyB8IGJhY2t3YXJkcyB8IGJvdGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWZpbGwtbW9kZSwgJG1vZGVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGFwcGVhcmFuY2UoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFwcGVhcmFuY2UsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYmFja2ZhY2UtdmlzaWJpbGl0eSwgJHZpc2liaWxpdHksIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kcyB1c2luZyBzaG9ydGhhbmRcbi8vIG5vdGF0aW9uLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZCgkYmFja2dyb3VuZHMuLi4pIHtcbiAgJHdlYmtpdC1iYWNrZ3JvdW5kczogKCk7XG4gICRzcGVjLWJhY2tncm91bmRzOiAoKTtcblxuICBAZWFjaCAkYmFja2dyb3VuZCBpbiAkYmFja2dyb3VuZHMge1xuICAgICR3ZWJraXQtYmFja2dyb3VuZDogKCk7XG4gICAgJHNwZWMtYmFja2dyb3VuZDogKCk7XG4gICAgJGJhY2tncm91bmQtdHlwZTogdHlwZS1vZigkYmFja2dyb3VuZCk7XG5cbiAgICBAaWYgJGJhY2tncm91bmQtdHlwZSA9PSBzdHJpbmcgb3IgJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0IHtcbiAgICAgICRiYWNrZ3JvdW5kLXN0cjogaWYoJGJhY2tncm91bmQtdHlwZSA9PSBsaXN0LCBudGgoJGJhY2tncm91bmQsIDEpLCAkYmFja2dyb3VuZCk7XG5cbiAgICAgICR1cmwtc3RyOiAgICAgICBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJhY2tncm91bmQtc3RyLCAxLCA2KTtcblxuICAgICAgQGlmICR1cmwtc3RyID09IFwidXJsXCIge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJyYWRpYWxcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9yYWRpYWwtZ3JhZGllbnQtcGFyc2VyKFwiI3skYmFja2dyb3VuZH1cIik7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogbWFwLWdldCgkZ3JhZGllbnRzLCB3ZWJraXQtaW1hZ2UpO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIHtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAkYmFja2dyb3VuZDtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgJHNwZWMtYmFja2dyb3VuZDogICAkYmFja2dyb3VuZDtcbiAgICB9XG5cbiAgICAkd2Via2l0LWJhY2tncm91bmRzOiBhcHBlbmQoJHdlYmtpdC1iYWNrZ3JvdW5kcywgJHdlYmtpdC1iYWNrZ3JvdW5kLCBjb21tYSk7XG4gICAgJHNwZWMtYmFja2dyb3VuZHM6ICAgYXBwZW5kKCRzcGVjLWJhY2tncm91bmRzLCAgICRzcGVjLWJhY2tncm91bmQsICAgY29tbWEpO1xuICB9XG5cbiAgYmFja2dyb3VuZDogJHdlYmtpdC1iYWNrZ3JvdW5kcztcbiAgYmFja2dyb3VuZDogJHNwZWMtYmFja2dyb3VuZHM7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kLWltYWdlIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZCBpbWFnZXMgd2l0aFxuLy8gZ3JhZGllbnRzLCBvciBmb3Igc3RyaW5naW5nIG11bHRpcGxlIGdyYWRpZW50cyB0b2dldGhlci5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQtaW1hZ2UoJGltYWdlcy4uLikge1xuICAkd2Via2l0LWltYWdlczogKCk7XG4gICRzcGVjLWltYWdlczogKCk7XG5cbiAgQGVhY2ggJGltYWdlIGluICRpbWFnZXMge1xuICAgICR3ZWJraXQtaW1hZ2U6ICgpO1xuICAgICRzcGVjLWltYWdlOiAoKTtcblxuICAgIEBpZiAodHlwZS1vZigkaW1hZ2UpID09IHN0cmluZykge1xuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkaW1hZ2UsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkaW1hZ2UsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICRpbWFnZTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgJGltYWdlO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogIG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHdlYmtpdC1pbWFnZXM6IGFwcGVuZCgkd2Via2l0LWltYWdlcywgJHdlYmtpdC1pbWFnZSwgY29tbWEpO1xuICAgICRzcGVjLWltYWdlczogICBhcHBlbmQoJHNwZWMtaW1hZ2VzLCAgICRzcGVjLWltYWdlLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtaW1hZ2U6ICR3ZWJraXQtaW1hZ2VzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAkc3BlYy1pbWFnZXM7XG59XG4iLCJAbWl4aW4gYm9yZGVyLWltYWdlKCRib3JkZXJzLi4uKSB7XG4gICR3ZWJraXQtYm9yZGVyczogKCk7XG4gICRzcGVjLWJvcmRlcnM6ICgpO1xuXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xuICAgICR3ZWJraXQtYm9yZGVyOiAoKTtcbiAgICAkc3BlYy1ib3JkZXI6ICgpO1xuICAgICRib3JkZXItdHlwZTogdHlwZS1vZigkYm9yZGVyKTtcblxuICAgIEBpZiAkYm9yZGVyLXR5cGUgPT0gc3RyaW5nIG9yIGxpc3Qge1xuICAgICAgJGJvcmRlci1zdHI6IGlmKCRib3JkZXItdHlwZSA9PSBsaXN0LCBudGgoJGJvcmRlciwgMSksICRib3JkZXIpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgIH1cblxuICAgICR3ZWJraXQtYm9yZGVyczogYXBwZW5kKCR3ZWJraXQtYm9yZGVycywgJHdlYmtpdC1ib3JkZXIsIGNvbW1hKTtcbiAgICAkc3BlYy1ib3JkZXJzOiAgIGFwcGVuZCgkc3BlYy1ib3JkZXJzLCAgICRzcGVjLWJvcmRlciwgICBjb21tYSk7XG4gIH1cblxuICAtd2Via2l0LWJvcmRlci1pbWFnZTogJHdlYmtpdC1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1pbWFnZTogJHNwZWMtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4vL0V4YW1wbGVzOlxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpIDIwIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSAyMCAzMCA0MCA1MCBzdHJldGNoIHJvdW5kKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShyYWRpYWwtZ3JhZGllbnQodG9wLCBjb3Zlciwgb3JhbmdlLCB5ZWxsb3csIG9yYW5nZSkpO1xuIiwiQG1peGluIGNhbGMoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgI3skcHJvcGVydHl9OiAtd2Via2l0LWNhbGMoI3skdmFsdWV9KTtcbiAgI3skcHJvcGVydHl9OiBjYWxjKCN7JHZhbHVlfSk7XG59XG4iLCJAbWl4aW4gY29sdW1ucygkYXJnOiBhdXRvKSB7XG4gIC8vIDxjb2x1bW4tY291bnQ+IHx8IDxjb2x1bW4td2lkdGg+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbnMsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tY291bnQoJGludDogYXV0bykge1xuICAvLyBhdXRvIHx8IGludGVnZXJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLWNvdW50LCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWdhcCgkbGVuZ3RoOiBub3JtYWwpIHtcbiAgLy8gbm9ybWFsIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZ2FwLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWZpbGwoJGFyZzogYXV0bykge1xuICAvLyBhdXRvIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZmlsbCwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlKCRhcmcpIHtcbiAgLy8gPGJvcmRlci13aWR0aD4gfHwgPGJvcmRlci1zdHlsZT4gfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZSwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1ydWxlLWNvbG9yKCRjb2xvcikge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1jb2xvciwgJGNvbG9yLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtc3R5bGUoJHN0eWxlOiBub25lKSB7XG4gIC8vIG5vbmUgfCBoaWRkZW4gfCBkYXNoZWQgfCBkb3R0ZWQgfCBkb3VibGUgfCBncm9vdmUgfCBpbnNldCB8IGluc2V0IHwgb3V0c2V0IHwgcmlkZ2UgfCBzb2xpZFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtd2lkdGggKCR3aWR0aDogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS13aWR0aCwgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXNwYW4oJGFyZzogbm9uZSkge1xuICAvLyBub25lIHx8IGFsbFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tc3BhbiwgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi13aWR0aCgkbGVuZ3RoOiBhdXRvKSB7XG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi13aWR0aCwgJGxlbmd0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cbiIsIkBtaXhpbiBmaWx0ZXIoJGZ1bmN0aW9uOiBub25lKSB7XG4gIC8vIDxmaWx0ZXItZnVuY3Rpb24+IFs8ZmlsdGVyLWZ1bmN0aW9uXSogfCBub25lXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZpbHRlciwgJGZ1bmN0aW9uLCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcblxuLy8gQ3VzdG9tIHNob3J0aGFuZCBub3RhdGlvbiBmb3IgZmxleGJveFxuQG1peGluIGJveCgkb3JpZW50OiBpbmxpbmUtYXhpcywgJHBhY2s6IHN0YXJ0LCAkYWxpZ246IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgZGlzcGxheS1ib3g7XG4gIEBpbmNsdWRlIGJveC1vcmllbnQoJG9yaWVudCk7XG4gIEBpbmNsdWRlIGJveC1wYWNrKCRwYWNrKTtcbiAgQGluY2x1ZGUgYm94LWFsaWduKCRhbGlnbik7XG59XG5cbkBtaXhpbiBkaXNwbGF5LWJveCB7XG4gIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICBkaXNwbGF5OiAtbW96LWJveDtcbiAgZGlzcGxheTogLW1zLWZsZXhib3g7IC8vIElFIDEwXG4gIGRpc3BsYXk6IGJveDtcbn1cblxuQG1peGluIGJveC1vcmllbnQoJG9yaWVudDogaW5saW5lLWF4aXMpIHtcbi8vIGhvcml6b250YWx8dmVydGljYWx8aW5saW5lLWF4aXN8YmxvY2stYXhpc3xpbmhlcml0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICRvcmllbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtcGFjaygkcGFjazogc3RhcnQpIHtcbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8anVzdGlmeVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtcGFjaywgJHBhY2ssIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBhY2s6ICRwYWNrOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWFsaWduKCRhbGlnbjogc3RyZXRjaCkge1xuLy8gc3RhcnR8ZW5kfGNlbnRlcnxiYXNlbGluZXxzdHJldGNoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsaWduLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1hbGlnbjogJGFsaWduOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWRpcmVjdGlvbigkZGlyZWN0aW9uOiBub3JtYWwpIHtcbi8vIG5vcm1hbHxyZXZlcnNlfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkZGlyZWN0aW9uOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWxpbmVzKCRsaW5lczogc2luZ2xlKSB7XG4vLyBzaW5nbGV8bXVsdGlwbGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkbGluZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBib3gtb3JkaW5hbC1ncm91cCgkaW50OiAxKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmRpbmFsLWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1vcmRlcjogJGludDsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1mbGV4KCR2YWx1ZTogMCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gQ1NTMyBGbGV4aWJsZSBCb3ggTW9kZWwgYW5kIHByb3BlcnR5IGRlZmF1bHRzXG4vLyBVbmlmaWVkIGF0dHJpYnV0ZXMgZm9yIDIwMDksIDIwMTEsIGFuZCAyMDEyIGZsYXZvdXJzLlxuXG4vLyAyMDA5IC0gZGlzcGxheSAoYm94IHwgaW5saW5lLWJveClcbi8vIDIwMTEgLSBkaXNwbGF5IChmbGV4Ym94IHwgaW5saW5lLWZsZXhib3gpXG4vLyAyMDEyIC0gZGlzcGxheSAoZmxleCB8IGlubGluZS1mbGV4KVxuQG1peGluIGRpc3BsYXkoJHZhbHVlKSB7XG4vLyBmbGV4IHwgaW5saW5lLWZsZXhcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgLy8gMjAwOVxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgIGRpc3BsYXk6IGJveDtcblxuICAgIC8vIDIwMTJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWJveDtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIH0gQGVsc2Uge1xuICAgIGRpc3BsYXk6ICR2YWx1ZTtcbiAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG5cbiAgLy8gR3JhYiBmbGV4LWdyb3cgZm9yIG9sZGVyIGJyb3dzZXJzLlxuICAkZmxleC1ncm93OiBudGgoJHZhbHVlLCAxKTtcblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LCAkZmxleC1ncm93LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKSwgMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JpZW50ICggaG9yaXpvbnRhbCB8IHZlcnRpY2FsIHwgaW5saW5lLWF4aXMgfCBibG9jay1heGlzKVxuLy8gICAgICAtIGJveC1kaXJlY3Rpb24gKG5vcm1hbCB8IHJldmVyc2UpXG4vLyAyMDExIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC1kaXJlY3Rpb24gKHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2UpXG5AbWl4aW4gZmxleC1kaXJlY3Rpb24oJHZhbHVlOiByb3cpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkdmFsdWUtMjAwOTogJHZhbHVlO1xuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICAkZGlyZWN0aW9uOiBub3JtYWw7XG5cbiAgQGlmICR2YWx1ZSA9PSByb3cge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInJvdy1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiBob3Jpem9udGFsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IGNvbHVtbiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImNvbHVtbi1yZXZlcnNlXCIge1xuICAgICR2YWx1ZS0yMDA5OiB2ZXJ0aWNhbDtcbiAgICAkZGlyZWN0aW9uOiByZXZlcnNlO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JpZW50LCAkdmFsdWUtMjAwOSwgd2Via2l0IG1veiBzcGVjKTtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWRpcmVjdGlvbiwgJGRpcmVjdGlvbiwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZGlyZWN0aW9uLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWRpcmVjdGlvbjogJHZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWxpbmVzIChzaW5nbGUgfCBtdWx0aXBsZSlcbi8vIDIwMTEgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG4vLyAyMDEyIC0gZmxleC13cmFwIChub3dyYXAgfCB3cmFwIHwgd3JhcC1yZXZlcnNlKVxuQG1peGluIGZsZXgtd3JhcCgkdmFsdWU6IG5vd3JhcCkge1xuICAvLyBBbHQgdmFsdWVzXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBub3dyYXAge1xuICAgICRhbHQtdmFsdWU6IHNpbmdsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwid3JhcC1yZXZlcnNlXCIge1xuICAgICRhbHQtdmFsdWU6IG11bHRpcGxlO1xuICB9XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWxpbmVzLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LXdyYXAsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMSAtIFRPRE86IHBhcnNlIHZhbHVlcyBpbnRvIGZsZXgtZGlyZWN0aW9uL2ZsZXgtd3JhcFxuLy8gMjAxMiAtIGZsZXgtZmxvdyAoZmxleC1kaXJlY3Rpb24gfHwgZmxleC13cmFwKVxuQG1peGluIGZsZXgtZmxvdygkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1mbG93LCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbi8vIDIwMDkgLSBib3gtb3JkaW5hbC1ncm91cCAoaW50ZWdlcilcbi8vIDIwMTEgLSBmbGV4LW9yZGVyIChpbnRlZ2VyKVxuLy8gMjAxMiAtIG9yZGVyIChpbnRlZ2VyKVxuQG1peGluIG9yZGVyKCRpbnQ6IDApIHtcbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKG9yZGVyLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1vcmRlcjogJGludDtcbn1cblxuLy8gMjAxMiAtIGZsZXgtZ3JvdyAobnVtYmVyKVxuQG1peGluIGZsZXgtZ3JvdygkbnVtYmVyOiAwKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtZ3JvdywgJG51bWJlciwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcG9zaXRpdmU6ICRudW1iZXI7XG59XG5cbi8vIDIwMTIgLSBmbGV4LXNocmluayAobnVtYmVyKVxuQG1peGluIGZsZXgtc2hyaW5rKCRudW1iZXI6IDEpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtYmFzaXMsICR3aWR0aCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtcHJlZmVycmVkLXNpemU6ICR3aWR0aDtcbn1cblxuLy8gMjAwOSAtIGJveC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDExIC0gZmxleC1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkpXG4vLyAyMDEyIC0ganVzdGlmeS1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kKVxuQG1peGluIGp1c3RpZnktY29udGVudCgkdmFsdWU6IGZsZXgtc3RhcnQpIHtcblxuICAvLyBBbHQgdmFsdWVzLlxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICRhbHQtdmFsdWU6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGVuZDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1iZXR3ZWVuXCIge1xuICAgICRhbHQtdmFsdWU6IGp1c3RpZnk7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYXJvdW5kXCIge1xuICAgICRhbHQtdmFsdWU6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1wYWNrLCAkYWx0LXZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoanVzdGlmeS1jb250ZW50LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtcGFjazogJGFsdC12YWx1ZTtcbn1cblxuLy8gMjAwOSAtIGJveC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDExIC0gZmxleC1hbGlnbiAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24taXRlbXMgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1pdGVtcygkdmFsdWU6IHN0cmV0Y2gpIHtcblxuICAkYWx0LXZhbHVlOiAkdmFsdWU7XG5cbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9XG5cbiAgLy8gMjAwOVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1pdGVtcywgJHZhbHVlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWFsaWduOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDExIC0gZmxleC1pdGVtLWFsaWduIChhdXRvIHwgc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2gpXG4vLyAyMDEyIC0gYWxpZ24tc2VsZiAoYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1zZWxmKCR2YWx1ZTogYXV0bykge1xuXG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gIEBpZiAkdmFsdWUgPT0gXCJmbGV4LXN0YXJ0XCIge1xuICAgICR2YWx1ZS0yMDExOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkdmFsdWUtMjAxMTogZW5kO1xuICB9XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihhbGlnbi1zZWxmLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApXG4gIC1tcy1mbGV4LWl0ZW0tYWxpZ246ICR2YWx1ZS0yMDExO1xufVxuXG4vLyAyMDExIC0gZmxleC1saW5lLXBhY2sgKHN0YXJ0IHwgZW5kIHwgY2VudGVyIHwganVzdGlmeSB8IGRpc3RyaWJ1dGUgfCBzdHJldGNoKVxuLy8gMjAxMiAtIGFsaWduLWNvbnRlbnQgKGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWNvbnRlbnQoJHZhbHVlOiBzdHJldGNoKSB7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cbiIsIkBtaXhpbiBmb250LWZhY2UoXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJHdlaWdodDogbm9ybWFsLFxuICAkc3R5bGU6IG5vcm1hbCxcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcblxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xuXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgICAgICRmb250LWZhbWlseSxcbiAgICAgICRmaWxlLXBhdGgsXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXG4gICAgICAkZmlsZS1mb3JtYXRzLFxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBtaXhpbiBmb250LWZlYXR1cmUtc2V0dGluZ3MoJHNldHRpbmdzLi4uKSB7XG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAwIHsgJHNldHRpbmdzOiBub25lOyB9XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZvbnQtZmVhdHVyZS1zZXR0aW5ncywgJHNldHRpbmdzLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiLy8gSGlEUEkgbWl4aW4uIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxuQG1peGluIGhpZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKC13ZWJraXQtbWluLWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kIChtaW4tLW1vei1kZXZpY2UtcGl4ZWwtcmF0aW86ICRyYXRpbyksXG4gIG9ubHkgc2NyZWVuIGFuZCAoLW8tbWluLWRldmljZS1waXhlbC1yYXRpbzogI3skcmF0aW99LzEpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiByb3VuZCgkcmF0aW8gKiA5NmRwaSkpLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi1yZXNvbHV0aW9uOiAkcmF0aW8gKiAxZHBweCkge1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCJAbWl4aW4gaHlwaGVucygkaHlwaGVuYXRpb246IG5vbmUpIHtcbiAgLy8gbm9uZSB8IG1hbnVhbCB8IGF1dG9cbiAgQGluY2x1ZGUgcHJlZml4ZXIoaHlwaGVucywgJGh5cGhlbmF0aW9uLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQG1peGluIGltYWdlLXJlbmRlcmluZyAoJG1vZGU6YXV0bykge1xuXG4gIEBpZiAoJG1vZGUgPT0gY3Jpc3AtZWRnZXMpIHtcbiAgICAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyAvLyBJRTgrXG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLW8tY3Jpc3AtZWRnZXM7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0O1xuICAgIGltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXM7XG4gIH1cblxuICBAZWxzZSB7XG4gICAgaW1hZ2UtcmVuZGVyaW5nOiAkbW9kZTtcbiAgfVxufVxuIiwiLy8gQWRkcyBrZXlmcmFtZXMgYmxvY2tzIGZvciBzdXBwb3J0ZWQgcHJlZml4ZXMsIHJlbW92aW5nIHJlZHVuZGFudCBwcmVmaXhlcyBpbiB0aGUgYmxvY2sncyBjb250ZW50XG5AbWl4aW4ga2V5ZnJhbWVzKCRuYW1lKSB7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdDogICAgJHByZWZpeC1mb3Itd2Via2l0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhOiAgICRwcmVmaXgtZm9yLW1vemlsbGE7XG4gICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1pY3Jvc29mdDogJHByZWZpeC1mb3ItbWljcm9zb2Z0O1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYTogICAgICRwcmVmaXgtZm9yLW9wZXJhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjOiAgICAgICRwcmVmaXgtZm9yLXNwZWM7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXdlYmtpdCB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLXdlYmtpdDogdHJ1ZSAhZ2xvYmFsO1xuICAgIEAtd2Via2l0LWtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSB7XG4gICAgQGluY2x1ZGUgZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpO1xuICAgICRwcmVmaXgtZm9yLW1vemlsbGE6IHRydWUgIWdsb2JhbDtcbiAgICBALW1vei1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbW96aWxsYTogICAkb3JpZ2luYWwtcHJlZml4LWZvci1tb3ppbGxhICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3ItbWljcm9zb2Z0OiAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1vcGVyYSAgICAgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itc3BlYzogICAgICAkb3JpZ2luYWwtcHJlZml4LWZvci1zcGVjICAgICAgIWdsb2JhbDtcblxuICBAaWYgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyB7XG4gICAgQGtleWZyYW1lcyAjeyRuYW1lfSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIkBtaXhpbiBsaW5lYXItZ3JhZGllbnQoJHBvcywgJGcxLCAkZzI6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnMzogbnVsbCwgJGc0OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzU6IG51bGwsICRnNjogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc3OiBudWxsLCAkZzg6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnOTogbnVsbCwgJGcxMDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG4gIC8vIERldGVjdCB3aGF0IHR5cGUgb2YgdmFsdWUgZXhpc3RzIGluICRwb3NcbiAgJHBvcy10eXBlOiB0eXBlLW9mKG50aCgkcG9zLCAxKSk7XG4gICRwb3Mtc3BlYzogbnVsbDtcbiAgJHBvcy1kZWdyZWU6IG51bGw7XG5cbiAgLy8gSWYgJHBvcyBpcyBtaXNzaW5nIGZyb20gbWl4aW4sIHJlYXNzaWduIHZhcnMgYW5kIGFkZCBkZWZhdWx0IHBvc2l0aW9uXG4gIEBpZiAoJHBvcy10eXBlID09IGNvbG9yKSBvciAobnRoKCRwb3MsIDEpID09IFwidHJhbnNwYXJlbnRcIikgIHtcbiAgICAkZzEwOiAkZzk7ICRnOTogJGc4OyAkZzg6ICRnNzsgJGc3OiAkZzY7ICRnNjogJGc1O1xuICAgICRnNTogJGc0OyAkZzQ6ICRnMzsgJGczOiAkZzI7ICRnMjogJGcxOyAkZzE6ICRwb3M7XG4gICAgJHBvczogbnVsbDtcbiAgfVxuXG4gIEBpZiAkcG9zIHtcbiAgICAkcG9zaXRpb25zOiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcyk7XG4gICAgJHBvcy1kZWdyZWU6IG50aCgkcG9zaXRpb25zLCAxKTtcbiAgICAkcG9zLXNwZWM6ICAgbnRoKCRwb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgJGZ1bGw6ICRnMSwgJGcyLCAkZzMsICRnNCwgJGc1LCAkZzYsICRnNywgJGc4LCAkZzksICRnMTA7XG5cbiAgLy8gU2V0ICRnMSBhcyB0aGUgZGVmYXVsdCBmYWxsYmFjayBjb2xvclxuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZzEsIDEpO1xuXG4gIC8vIElmICRmYWxsYmFjayBpcyBhIGNvbG9yIHVzZSB0aGF0IGNvbG9yIGFzIHRoZSBmYWxsYmFjayBjb2xvclxuICBAaWYgKHR5cGUtb2YoJGZhbGxiYWNrKSA9PSBjb2xvcikgb3IgKCRmYWxsYmFjayA9PSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAkZmFsbGJhY2stY29sb3I6ICRmYWxsYmFjaztcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQoJHBvcy1kZWdyZWUgJGZ1bGwpOyAvLyBTYWZhcmkgNS4xKywgQ2hyb21lXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQoI3skcG9zLXNwZWN9I3skZnVsbH0pXCIpO1xufVxuIiwiQG1peGluIHBlcnNwZWN0aXZlKCRkZXB0aDogbm9uZSkge1xuICAvLyBub25lIHwgPGxlbmd0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gcGxhY2Vob2xkZXIge1xuICAkcGxhY2Vob2xkZXJzOiBcIjotd2Via2l0LWlucHV0XCIgXCI6LW1velwiIFwiLW1velwiIFwiLW1zLWlucHV0XCI7XG4gIEBlYWNoICRwbGFjZWhvbGRlciBpbiAkcGxhY2Vob2xkZXJzIHtcbiAgICAmOiN7JHBsYWNlaG9sZGVyfS1wbGFjZWhvbGRlciB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIFJlcXVpcmVzIFNhc3MgMy4xK1xuQG1peGluIHJhZGlhbC1ncmFkaWVudCgkZzEsICRnMixcbiAgICAgICAgICAgICAgICAgICAgICAgJGczOiBudWxsLCAkZzQ6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNTogbnVsbCwgJGc2OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzc6IG51bGwsICRnODogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc5OiBudWxsLCAkZzEwOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkcG9zOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkc2hhcGUtc2l6ZTogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGZhbGxiYWNrOiBudWxsKSB7XG5cbiAgJGRhdGE6IF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpO1xuICAkZzE6ICBudGgoJGRhdGEsIDEpO1xuICAkZzI6ICBudGgoJGRhdGEsIDIpO1xuICAkcG9zOiBudGgoJGRhdGEsIDMpO1xuICAkc2hhcGUtc2l6ZTogbnRoKCRkYXRhLCA0KTtcblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTdHJpcCBkZXByZWNhdGVkIGNvdmVyL2NvbnRhaW4gZm9yIHNwZWNcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZpcnN0LWNvbG9yOiBudGgoJGZ1bGwsIDEpO1xuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZmlyc3QtY29sb3IsIDEpO1xuXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgLy8gQWRkIENvbW1hcyBhbmQgc3BhY2VzXG4gICRzaGFwZS1zaXplOiBpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSwgXCIsIG51bGwpO1xuICAkcG9zOiAgICAgICAgaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCk7XG4gICRwb3Mtc3BlYzogICBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG4gICRzaGFwZS1zaXplLXNwZWM6IGlmKCgkc2hhcGUtc2l6ZS1zcGVjICE9IFwiIFwiKSBhbmQgKCRwb3MgPT0gbnVsbCksIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSwgXCIsIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSBcIik7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQodW5xdW90ZSgjeyRwb3N9I3skc2hhcGUtc2l6ZX0jeyRmdWxsfSkpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwicmFkaWFsLWdyYWRpZW50KCN7JHNoYXBlLXNpemUtc3BlY30jeyRwb3Mtc3BlY30jeyRmdWxsfSlcIik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XHJcblxyXG4vLy8gT3V0cHV0cyB0aGUgc3BlYyBhbmQgcHJlZml4ZWQgdmVyc2lvbnMgb2YgdGhlIGA6OnNlbGVjdGlvbmAgcHNldWRvLWVsZW1lbnQuXHJcbi8vL1xyXG4vLy8gQHBhcmFtIHtCb29sfSAkY3VycmVudC1zZWxlY3RvciBbZmFsc2VdXHJcbi8vLyAgIElmIHNldCB0byBgdHJ1ZWAsIGl0IHRha2VzIHRoZSBjdXJyZW50IGVsZW1lbnQgaW50byBjb25zaWRlcmF0aW9uLlxyXG4vLy9cclxuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxyXG4vLy8gICAuZWxlbWVudCB7XHJcbi8vLyAgICAgQGluY2x1ZGUgc2VsZWN0aW9uKHRydWUpIHtcclxuLy8vICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgICAgfVxyXG4vLy8gICB9XHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxyXG4vLy8gICAuZWxlbWVudDo6LW1vei1zZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyAgIC5lbGVtZW50OjpzZWxlY3Rpb24ge1xyXG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmJiNTI7XHJcbi8vLyAgIH1cclxuXHJcbkBtaXhpbiBzZWxlY3Rpb24oJGN1cnJlbnQtc2VsZWN0b3I6IGZhbHNlKSB7XHJcbiAgQGlmICRjdXJyZW50LXNlbGVjdG9yIHtcclxuICAgICY6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQG1peGluIHRleHQtZGVjb3JhdGlvbigkdmFsdWUpIHtcbi8vIDx0ZXh0LWRlY29yYXRpb24tbGluZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1zdHlsZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1jb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLCAkdmFsdWUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tbGluZSgkbGluZTogbm9uZSkge1xuLy8gbm9uZSB8fCB1bmRlcmxpbmUgfHwgb3ZlcmxpbmUgfHwgbGluZS10aHJvdWdoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1saW5lLCAkbGluZSwgbW96KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1zdHlsZSgkc3R5bGU6IHNvbGlkKSB7XG4vLyBzb2xpZCB8fCBkb3VibGUgfHwgZG90dGVkIHx8IGRhc2hlZCB8fCB3YXZ5XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRleHQtZGVjb3JhdGlvbi1zdHlsZSwgJHN0eWxlLCBtb3ogd2Via2l0KTtcbn1cblxuQG1peGluIHRleHQtZGVjb3JhdGlvbi1jb2xvcigkY29sb3I6IGN1cnJlbnRDb2xvcikge1xuLy8gY3VycmVudENvbG9yIHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWNvbG9yLCAkY29sb3IsIG1veik7XG59XG4iLCJAbWl4aW4gdHJhbnNmb3JtKCRwcm9wZXJ0eTogbm9uZSkge1xuICAvLyBub25lIHwgPHRyYW5zZm9ybS1mdW5jdGlvbj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNmb3JtLCAkcHJvcGVydHksIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcbn1cblxuQG1peGluIHRyYW5zZm9ybS1vcmlnaW4oJGF4ZXM6IDUwJSkge1xuICAvLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxuICAvLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxuICAvLyB6LWF4aXMgLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1vcmlnaW4sICRheGVzLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tc3R5bGUoJHN0eWxlOiBmbGF0KSB7XG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC8vIEZpeCBmb3IgdmVuZG9yLXByZWZpeCB0cmFuc2Zvcm0gcHJvcGVydHlcbiAgJG5lZWRzLXByZWZpeGVzOiBmYWxzZTtcbiAgJHdlYmtpdDogKCk7XG4gICRtb3o6ICgpO1xuICAkc3BlYzogKCk7XG5cbiAgLy8gQ3JlYXRlIGxpc3RzIGZvciB2ZW5kb3ItcHJlZml4ZWQgdHJhbnNmb3JtXG4gIEBlYWNoICRsaXN0IGluICRwcm9wZXJ0aWVzIHtcbiAgICBAaWYgbnRoKCRsaXN0LCAxKSA9PSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICRuZWVkcy1wcmVmaXhlczogdHJ1ZTtcbiAgICAgICRsaXN0MTogLXdlYmtpdC10cmFuc2Zvcm07XG4gICAgICAkbGlzdDI6IC1tb3otdHJhbnNmb3JtO1xuICAgICAgJGxpc3QzOiAoKTtcblxuICAgICAgQGVhY2ggJHZhciBpbiAkbGlzdCB7XG4gICAgICAgICRsaXN0Mzogam9pbigkbGlzdDMsICR2YXIpO1xuXG4gICAgICAgIEBpZiAkdmFyICE9IFwidHJhbnNmb3JtXCIge1xuICAgICAgICAgICRsaXN0MTogam9pbigkbGlzdDEsICR2YXIpO1xuICAgICAgICAgICRsaXN0Mjogam9pbigkbGlzdDIsICR2YXIpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdDEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0Mik7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QzKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR3ZWJraXQ6IGFwcGVuZCgkd2Via2l0LCAkbGlzdCwgY29tbWEpO1xuICAgICAgJG1vejogICAgYXBwZW5kKCRtb3osICAgICRsaXN0LCBjb21tYSk7XG4gICAgICAkc3BlYzogICBhcHBlbmQoJHNwZWMsICAgJGxpc3QsIGNvbW1hKTtcbiAgICB9XG4gIH1cblxuICBAaWYgJG5lZWRzLXByZWZpeGVzIHtcbiAgICAtd2Via2l0LXRyYW5zaXRpb246ICR3ZWJraXQ7XG4gICAgICAgLW1vei10cmFuc2l0aW9uOiAkbW96O1xuICAgICAgICAgICAgdHJhbnNpdGlvbjogJHNwZWM7XG4gIH0gQGVsc2Uge1xuICAgIEBpZiBsZW5ndGgoJHByb3BlcnRpZXMpID49IDEge1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcHJvcGVydGllczogYWxsIDAuMTVzIGVhc2Utb3V0IDBzO1xuICAgICAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbiwgJHByb3BlcnRpZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG4gICAgfVxuICB9XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLXByb3BlcnR5KCRwcm9wZXJ0aWVzLi4uKSB7XG4gIC13ZWJraXQtdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJ3ZWJraXRcIik7XG4gICAgIC1tb3otdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgXCJtb3pcIik7XG4gICAgICAgICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogdHJhbnNpdGlvbi1wcm9wZXJ0eS1uYW1lcygkcHJvcGVydGllcywgZmFsc2UpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kdXJhdGlvbigkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0IHwgY3ViaWMtYmV6aWVyKClcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZTogbm9uZSkge1xuICBAaW5jbHVkZSBwcmVmaXhlcih1c2VyLXNlbGVjdCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLWNvbG9yYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItY29sb3IoI2E2MGI1NSAjNzZjZDljIG51bGwgI2U4YWUxYSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1sZWZ0LWNvbG9yOiAjZThhZTFhO1xuLy8vICAgICBib3JkZXItcmlnaHQtY29sb3I6ICM3NmNkOWM7XG4vLy8gICAgIGJvcmRlci10b3AtY29sb3I6ICNhNjBiNTU7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItY29sb3JgXG5cbkBtaXhpbiBib3JkZXItY29sb3IoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBjb2xvciwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXJhZGl1c2Agb24gYm90aCBjb3JuZXJzIG9uIHRoZSBzaWRlIG9mIGEgYm94LlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRyYWRpaVxuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLXRvcC1yYWRpdXMoNXB4KTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQtdHdvIHtcbi8vLyAgICAgQGluY2x1ZGUgYm9yZGVyLWxlZnQtcmFkaXVzKDNweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudC1vbmUge1xuLy8vICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiA1cHg7XG4vLy8gICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiA1cHg7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogM3B4O1xuLy8vICAgfVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXJhZGl1c2BcblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItcmlnaHQtcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1sZWZ0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItc3R5bGVgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkYXNoZWQgbnVsbCBzb2xpZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IHNvbGlkO1xuLy8vICAgICBib3JkZXItdG9wLXN0eWxlOiBkYXNoZWQ7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBib3JkZXItc3R5bGVgXG5cbkBtaXhpbiBib3JkZXItc3R5bGUoJHZhbHMuLi4pIHtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBzdHlsZSwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXdpZHRoYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItd2lkdGgoMWVtIG51bGwgMjBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIwcHg7XG4vLy8gICAgIGJvcmRlci10b3Atd2lkdGg6IDFlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci13aWR0aGBcblxuQG1peGluIGJvcmRlci13aWR0aCgkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHdpZHRoLCAkdmFscy4uLik7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgYnV0dG9ucy4gUGxlYXNlIG5vdGUgdGhhdCB5b3UgbXVzdCB1c2UgaW50ZXJwb2xhdGlvbiBvbiB0aGUgdmFyaWFibGU6IGAjeyRhbGwtYnV0dG9uc31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtYnV0dG9uc30ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1mb2N1c30sXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1ob3Zlcn0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtYnV0dG9ucy1hY3RpdmV9IHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGJ1dHRvbixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06Zm9jdXMsXG4vLy8gICBidXR0b246aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpob3ZlciB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGJ1dHRvbjphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmFjdGl2ZSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG4vLy9cbi8vLyBAdG9kbyBSZW1vdmUgZG91YmxlIGFzc2lnbmVkIHZhcmlhYmxlcyAoTGluZXMgNTnigJM2MikgaW4gdjUuMC4wXG5cbiRidXR0b25zLWxpc3Q6ICdidXR0b24nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJidXR0b25cIl0nLFxuICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJyZXNldFwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSc7XG5cbiRhbGwtYnV0dG9uczogICAgICAgIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCk7XG4kYWxsLWJ1dHRvbnMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLWJ1dHRvbnMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGZvY3VzKTtcbiRhbGwtYnV0dG9ucy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgaG92ZXIpO1xuXG4kYWxsLWJ1dHRvbi1pbnB1dHM6ICAgICAgICAkYWxsLWJ1dHRvbnM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiAkYWxsLWJ1dHRvbnMtYWN0aXZlO1xuJGFsbC1idXR0b24taW5wdXRzLWZvY3VzOiAgJGFsbC1idXR0b25zLWZvY3VzO1xuJGFsbC1idXR0b24taW5wdXRzLWhvdmVyOiAgJGFsbC1idXR0b25zLWhvdmVyO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gaW5jbHVkZSBhIGNsZWFyZml4IGZvciBjb250YWluaW5nIGZsb2F0cy5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9jc3Ntb2pvLmNvbS9sYXRlc3RfbmV3X2NsZWFyZml4X3NvX2Zhci9cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgICBjb250ZW50OiBcIlwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cblxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRydW5jYXRlcyB0ZXh0IGFuZCBhZGRzIGFuIGVsbGlwc2lzIHRvIHJlcHJlc2VudCBvdmVyZmxvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzEwMCVdXG4vLy8gICBNYXgtd2lkdGggZm9yIHRoZSBzdHJpbmcgdG8gcmVzcGVjdCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZWxsaXBzaXM7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgICAgd29yZC13cmFwOiBub3JtYWw7XG4vLy8gICB9XG5cbkBtaXhpbiBlbGxpcHNpcygkd2lkdGg6IDEwMCUpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VvcmdpYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kZ2VvcmdpYTogXCJHZW9yZ2lhXCIsIFwiQ2FtYnJpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIlRpbWVzXCIsIHNlcmlmO1xuXG4vLy8gSGVsdmV0aWNhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRoZWx2ZXRpY2E6IFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJSb2JvdG9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTHVjaWRhIEdyYW5kZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbHVjaWRhLWdyYW5kZTogXCJMdWNpZGEgR3JhbmRlXCIsIFwiVGFob21hXCIsIFwiVmVyZGFuYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBNb25vc3BhY2UgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJG1vbm9zcGFjZTogXCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm9cIiwgXCJDb25zb2xhc1wiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlO1xuXG4vLy8gVmVyZGFuYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdmVyZGFuYTogXCJWZXJkYW5hXCIsIFwiR2VuZXZhXCIsIHNhbnMtc2VyaWY7XG4iLCIvLy8gSGlkZXMgdGhlIHRleHQgaW4gYW4gZWxlbWVudCwgY29tbW9ubHkgdXNlZCB0byBzaG93IGFuIGltYWdlLiBTb21lIGVsZW1lbnRzIHdpbGwgbmVlZCBibG9jay1sZXZlbCBzdHlsZXMgYXBwbGllZC5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly96ZWxkbWFuLmNvbS8yMDEyLzAzLzAxL3JlcGxhY2luZy10aGUtOTk5OXB4LWhhY2stbmV3LWltYWdlLXJlcGxhY2VtZW50XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgaGlkZS10ZXh0O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LWluZGVudDogMTAxJTtcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBoZWlnaHQgYXJndW1lbnQgaW4gdjUuMC4wXG5cbkBtaXhpbiBoaWRlLXRleHQoJGhlaWdodDogbnVsbCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWluZGVudDogMTAxJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaWYgJGhlaWdodCB7XG4gICAgQHdhcm4gXCJUaGUgYGhpZGUtdGV4dGAgbWl4aW4gaGFzIGNoYW5nZWQgYW5kIG5vIGxvbmdlciByZXF1aXJlcyBhIGhlaWdodC4gVGhlIGhlaWdodCBhcmd1bWVudCB3aWxsIG5vIGxvbmdlciBiZSBhY2NlcHRlZCBpbiB2NS4wLjBcIjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgbWFyZ2luYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAxMHB4IDNlbSAyMHZoKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogM2VtO1xuLy8vICAgICBtYXJnaW4tbGVmdDogMjB2aDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgbWFyZ2luYFxuXG5AbWl4aW4gbWFyZ2luKCR2YWxzLi4uKSB7XG4gIEBpbmNsdWRlIGRpcmVjdGlvbmFsLXByb3BlcnR5KG1hcmdpbiwgZmFsc2UsICR2YWxzLi4uKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYHBhZGRpbmdgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHBhZGRpbmcoMTJ2aCBudWxsIDEwcHggNSUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBwYWRkaW5nLWJvdHRvbTogMTBweDtcbi8vLyAgICAgcGFkZGluZy1sZWZ0OiA1JTtcbi8vLyAgICAgcGFkZGluZy10b3A6IDEydmg7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSB7bWl4aW59IGRpcmVjdGlvbmFsLXByb3BlcnR5XG4vLy9cbi8vLyBAb3V0cHV0IGBwYWRkaW5nYFxuXG5AbWl4aW4gcGFkZGluZygkdmFscy4uLikge1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShwYWRkaW5nLCBmYWxzZSwgJHZhbHMuLi4pO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHNldHRpbmcgYW4gZWxlbWVudOKAmXMgcG9zaXRpb24uIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7UG9zaXRpb259ICRwb3NpdGlvbiBbcmVsYXRpdmVdXG4vLy8gICBBIENTUyBwb3NpdGlvbiB2YWx1ZVxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkY29vcmRpbmF0ZXMgW251bGwgbnVsbCBudWxsIG51bGxdXG4vLy8gICBMaXN0IG9mIHZhbHVlcyB0aGF0IGNvcnJlc3BvbmQgdG8gdGhlIDQtdmFsdWUgc3ludGF4IGZvciB0aGUgZWRnZXMgb2YgYSBib3hcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCBudWxsIG51bGwgMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGxlZnQ6IDEwZW07XG4vLy8gICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbi8vLyAgICAgdG9wOiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBpcy1sZW5ndGhcbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IHVucGFja1xuXG5AbWl4aW4gcG9zaXRpb24oJHBvc2l0aW9uOiByZWxhdGl2ZSwgJGNvb3JkaW5hdGVzOiBudWxsIG51bGwgbnVsbCBudWxsKSB7XG4gIEBpZiB0eXBlLW9mKCRwb3NpdGlvbikgPT0gbGlzdCB7XG4gICAgJGNvb3JkaW5hdGVzOiAkcG9zaXRpb247XG4gICAgJHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgfVxuXG4gICRjb29yZGluYXRlczogdW5wYWNrKCRjb29yZGluYXRlcyk7XG5cbiAgJG9mZnNldHM6IChcbiAgICB0b3A6ICAgIG50aCgkY29vcmRpbmF0ZXMsIDEpLFxuICAgIHJpZ2h0OiAgbnRoKCRjb29yZGluYXRlcywgMiksXG4gICAgYm90dG9tOiBudGgoJGNvb3JkaW5hdGVzLCAzKSxcbiAgICBsZWZ0OiAgIG50aCgkY29vcmRpbmF0ZXMsIDQpXG4gICk7XG5cbiAgcG9zaXRpb246ICRwb3NpdGlvbjtcblxuICBAZWFjaCAkb2Zmc2V0LCAkdmFsdWUgaW4gJG9mZnNldHMge1xuICAgIEBpZiBpcy1sZW5ndGgoJHZhbHVlKSB7XG4gICAgICAjeyRvZmZzZXR9OiAkdmFsdWU7XG4gICAgfVxuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIG1peGluIGZvciBnZW5lcmF0aW5nIHZlbmRvciBwcmVmaXhlcyBvbiBub24tc3RhbmRhcmRpemVkIHByb3BlcnRpZXMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5XG4vLy8gICBQcm9wZXJ0eSB0byBwcmVmaXhcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlXG4vLy8gICBWYWx1ZSB0byB1c2Vcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHByZWZpeGVzXG4vLy8gICBQcmVmaXhlcyB0byBkZWZpbmVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci13ZWJraXRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1vemlsbGFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itb3BlcmFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXNwZWNcblxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgIHtcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XG59XG4iLCJAbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsLCAkcmV0aW5hLXN1ZmZpeDogXzJ4LCAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSkge1xuICBAaWYgJGFzc2V0LXBpcGVsaW5lIHtcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgfSBAZWxzZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogICAgICAgdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH1cblxuICBAaW5jbHVkZSBoaWRwaSB7XG4gICAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgICBAaWYgJHJldGluYS1maWxlbmFtZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGltYWdlLXVybChcIiN7JHJldGluYS1maWxlbmFtZX0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRmaWxlbmFtZX0jeyRyZXRpbmEtc3VmZml4fS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLXNpemU6ICRiYWNrZ3JvdW5kLXNpemU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFNldHMgdGhlIGB3aWR0aGAgYW5kIGBoZWlnaHRgIG9mIHRoZSBlbGVtZW50LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc2l6ZVxuLy8vICAgQSBsaXN0IG9mIGF0IG1vc3QgMiBzaXplIHZhbHVlcy5cbi8vL1xuLy8vICAgSWYgdGhlcmUgaXMgb25seSBhIHNpbmdsZSB2YWx1ZSBpbiBgJHNpemVgIGl0IGlzIHVzZWQgZm9yIGJvdGggd2lkdGggYW5kIGhlaWdodC4gQWxsIHVuaXRzIGFyZSBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5maXJzdC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZSgyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaXplKGF1dG8gMTBlbSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIHdpZHRoOiAyZW07XG4vLy8gICAgIGhlaWdodDogMmVtO1xuLy8vICAgfVxuLy8vXG4vLy8gICAuc2Vjb25kLWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogYXV0bztcbi8vLyAgICAgaGVpZ2h0OiAxMGVtO1xuLy8vICAgfVxuLy8vXG4vLy8gQHRvZG8gUmVmYWN0b3IgaW4gNS4wLjAgdG8gdXNlIGEgY29tbWEtc2VwYXJhdGVkIGFyZ3VtZW50XG5cbkBtaXhpbiBzaXplKCR2YWx1ZSkge1xuICAkd2lkdGg6IG50aCgkdmFsdWUsIDEpO1xuICAkaGVpZ2h0OiAkd2lkdGg7XG5cbiAgQGlmIGxlbmd0aCgkdmFsdWUpID4gMSB7XG4gICAgJGhlaWdodDogbnRoKCR2YWx1ZSwgMik7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkaGVpZ2h0KSB7XG4gICAgaGVpZ2h0OiAkaGVpZ2h0O1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyRoZWlnaHR9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJGhlaWdodGAgcGFyYW1ldGVyIGluIHRoZSBgc2l6ZWAgbWl4aW4uXCI7XG4gIH1cblxuICBAaWYgaXMtc2l6ZSgkd2lkdGgpIHtcbiAgICB3aWR0aDogJHdpZHRoO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiBcImAjeyR3aWR0aH1gIGlzIG5vdCBhIHZhbGlkIGxlbmd0aCBmb3IgdGhlIGAkd2lkdGhgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHZW5lcmF0ZXMgdmFyaWFibGVzIGZvciBhbGwgdGV4dC1iYXNlZCBpbnB1dHMuIFBsZWFzZSBub3RlIHRoYXQgeW91IG11c3QgdXNlIGludGVycG9sYXRpb24gb24gdGhlIHZhcmlhYmxlOiBgI3skYWxsLXRleHQtaW5wdXRzfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0c30ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtZm9jdXN9LFxuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWhvdmVyfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1hY3RpdmV9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXSxcbi8vLyAgIHRleHRhcmVhIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmZvY3VzLFxuLy8vICAgdGV4dGFyZWE6Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06aG92ZXIsXG4vLy8gICB0ZXh0YXJlYTpob3ZlciB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl06YWN0aXZlLFxuLy8vICAgdGV4dGFyZWE6YWN0aXZlIHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJHRleHQtaW5wdXRzLWxpc3Q6ICdpbnB1dFt0eXBlPVwiY29sb3JcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZVwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJlbWFpbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJtb250aFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJudW1iZXJcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic2VhcmNoXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRlbFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZXh0XCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidXJsXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cIndlZWtcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dDpub3QoW3R5cGVdKScsXG4gICAgICAgICAgICAgICAgICAgJ3RleHRhcmVhJztcblxuJGFsbC10ZXh0LWlucHV0czogICAgICAgIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QpO1xuJGFsbC10ZXh0LWlucHV0cy1hY3RpdmU6IGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLXRleHQtaW5wdXRzLWZvY3VzOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgZm9jdXMpO1xuJGFsbC10ZXh0LWlucHV0cy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJHRleHQtaW5wdXRzLWxpc3QsIGhvdmVyKTtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIENTUyBjdWJpYy1iZXppZXIgdGltaW5nIGZ1bmN0aW9ucy4gVGltaW5nIGZ1bmN0aW9ucyBjb3VydGVzeSBvZiBqcXVlcnkuZWFzaWUgKGdpdGh1Yi5jb20vamF1a2lhL2Vhc2llKVxuLy8vXG4vLy8gVGltaW5nIGZ1bmN0aW9ucyBhcmUgdGhlIHNhbWUgYXMgZGVtb2VkIGhlcmU6IGh0dHA6Ly9qcXVlcnl1aS5jb20vcmVzb3VyY2VzL2RlbW9zL2VmZmVjdC9lYXNpbmcuaHRtbFxuLy8vXG4vLy8gQHR5cGUgY3ViaWMtYmV6aWVyXG5cbiRlYXNlLWluLXF1YWQ6ICAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wODUsIDAuNjgwLCAwLjUzMCk7XG4kZWFzZS1pbi1jdWJpYzogICAgIGN1YmljLWJlemllcigwLjU1MCwgIDAuMDU1LCAwLjY3NSwgMC4xOTApO1xuJGVhc2UtaW4tcXVhcnQ6ICAgICBjdWJpYy1iZXppZXIoMC44OTUsICAwLjAzMCwgMC42ODUsIDAuMjIwKTtcbiRlYXNlLWluLXF1aW50OiAgICAgY3ViaWMtYmV6aWVyKDAuNzU1LCAgMC4wNTAsIDAuODU1LCAwLjA2MCk7XG4kZWFzZS1pbi1zaW5lOiAgICAgIGN1YmljLWJlemllcigwLjQ3MCwgIDAuMDAwLCAwLjc0NSwgMC43MTUpO1xuJGVhc2UtaW4tZXhwbzogICAgICBjdWJpYy1iZXppZXIoMC45NTAsICAwLjA1MCwgMC43OTUsIDAuMDM1KTtcbiRlYXNlLWluLWNpcmM6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAgMC4wNDAsIDAuOTgwLCAwLjMzNSk7XG4kZWFzZS1pbi1iYWNrOiAgICAgIGN1YmljLWJlemllcigwLjYwMCwgLTAuMjgwLCAwLjczNSwgMC4wNDUpO1xuXG4kZWFzZS1vdXQtcXVhZDogICAgIGN1YmljLWJlemllcigwLjI1MCwgIDAuNDYwLCAwLjQ1MCwgMC45NDApO1xuJGVhc2Utb3V0LWN1YmljOiAgICBjdWJpYy1iZXppZXIoMC4yMTUsICAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWFydDogICAgY3ViaWMtYmV6aWVyKDAuMTY1LCAgMC44NDAsIDAuNDQwLCAxLjAwMCk7XG4kZWFzZS1vdXQtcXVpbnQ6ICAgIGN1YmljLWJlemllcigwLjIzMCwgIDEuMDAwLCAwLjMyMCwgMS4wMDApO1xuJGVhc2Utb3V0LXNpbmU6ICAgICBjdWJpYy1iZXppZXIoMC4zOTAsICAwLjU3NSwgMC41NjUsIDEuMDAwKTtcbiRlYXNlLW91dC1leHBvOiAgICAgY3ViaWMtYmV6aWVyKDAuMTkwLCAgMS4wMDAsIDAuMjIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtY2lyYzogICAgIGN1YmljLWJlemllcigwLjA3NSwgIDAuODIwLCAwLjE2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWJhY2s6ICAgICBjdWJpYy1iZXppZXIoMC4xNzUsICAwLjg4NSwgMC4zMjAsIDEuMjc1KTtcblxuJGVhc2UtaW4tb3V0LXF1YWQ6ICBjdWJpYy1iZXppZXIoMC40NTUsICAwLjAzMCwgMC41MTUsIDAuOTU1KTtcbiRlYXNlLWluLW91dC1jdWJpYzogY3ViaWMtYmV6aWVyKDAuNjQ1LCAgMC4wNDUsIDAuMzU1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVhcnQ6IGN1YmljLWJlemllcigwLjc3MCwgIDAuMDAwLCAwLjE3NSwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXF1aW50OiBjdWJpYy1iZXppZXIoMC44NjAsICAwLjAwMCwgMC4wNzAsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1zaW5lOiAgY3ViaWMtYmV6aWVyKDAuNDQ1LCAgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XG4kZWFzZS1pbi1vdXQtZXhwbzogIGN1YmljLWJlemllcigxLjAwMCwgIDAuMDAwLCAwLjAwMCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LWNpcmM6ICBjdWJpYy1iZXppZXIoMC43ODUsICAwLjEzNSwgMC4xNTAsIDAuODYwKTtcbiRlYXNlLWluLW91dC1iYWNrOiAgY3ViaWMtYmV6aWVyKDAuNjgwLCAtMC41NTAsIDAuMjY1LCAxLjU1MCk7XG4iLCJAbWl4aW4gdHJpYW5nbGUoJHNpemUsICRjb2xvciwgJGRpcmVjdGlvbikge1xuICAkd2lkdGg6IG50aCgkc2l6ZSwgMSk7XG4gICRoZWlnaHQ6IG50aCgkc2l6ZSwgbGVuZ3RoKCRzaXplKSk7XG4gICRmb3JlZ3JvdW5kLWNvbG9yOiBudGgoJGNvbG9yLCAxKTtcbiAgJGJhY2tncm91bmQtY29sb3I6IGlmKGxlbmd0aCgkY29sb3IpID09IDIsIG50aCgkY29sb3IsIDIpLCB0cmFuc3BhcmVudCk7XG4gIGhlaWdodDogMDtcbiAgd2lkdGg6IDA7XG5cbiAgQGlmICgkZGlyZWN0aW9uID09IHVwKSBvciAoJGRpcmVjdGlvbiA9PSBkb3duKSBvciAoJGRpcmVjdGlvbiA9PSByaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gbGVmdCkge1xuICAgICR3aWR0aDogJHdpZHRoIC8gMjtcbiAgICAkaGVpZ2h0OiBpZihsZW5ndGgoJHNpemUpID4gMSwgJGhlaWdodCwgJGhlaWdodC8yKTtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItbGVmdDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IHJpZ2h0IHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSBkb3duIHtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGxlZnQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSB1cC1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gdXAtbGVmdCkge1xuICAgIGJvcmRlci10b3A6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG5cbiAgICBAaWYgJGRpcmVjdGlvbiA9PSB1cC1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gdXAtbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCkgb3IgKCRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0KSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IGRvd24tcmlnaHQge1xuICAgICAgYm9yZGVyLWxlZnQ6ICAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24tbGVmdCB7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtdXApIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1kb3duKSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJGhlaWdodCAkd2lkdGg7XG4gIH0gQGVsc2UgaWYgKCRkaXJlY3Rpb24gPT0gaW5zZXQtcmlnaHQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1sZWZ0KSB7XG4gICAgYm9yZGVyLWNvbG9yOiAkYmFja2dyb3VuZC1jb2xvciAkZm9yZWdyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvciAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIGJvcmRlci13aWR0aDogJHdpZHRoICRoZWlnaHQ7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGFuIGVhc3kgd2F5IHRvIGNoYW5nZSB0aGUgYHdvcmQtd3JhcGAgcHJvcGVydHkuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHdyYXAgW2JyZWFrLXdvcmRdXG4vLy8gICBWYWx1ZSBmb3IgdGhlIGB3b3JkLWJyZWFrYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLndyYXBwZXIge1xuLy8vICAgICBAaW5jbHVkZSB3b3JkLXdyYXAoYnJlYWstd29yZCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbi8vLyAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuLy8vICAgfVxuXG5AbWl4aW4gd29yZC13cmFwKCR3cmFwOiBicmVhay13b3JkKSB7XG4gIG92ZXJmbG93LXdyYXA6ICR3cmFwO1xuICB3b3JkLXdyYXA6ICR3cmFwO1xuXG4gIEBpZiAkd3JhcCA9PSBicmVhay13b3JkIHtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gIH0gQGVsc2Uge1xuICAgIHdvcmQtYnJlYWs6ICR3cmFwO1xuICB9XG59XG4iLCIvLyBUaGUgZm9sbG93aW5nIGZlYXR1cmVzIGhhdmUgYmVlbiBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgTUFKT1IgdmVyc2lvbiByZWxlYXNlXG5cbkBtaXhpbiBpbmxpbmUtYmxvY2sge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cbiAgQHdhcm4gXCJUaGUgaW5saW5lLWJsb2NrIG1peGluIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQG1peGluIGJ1dHRvbiAoJHN0eWxlOiBzaW1wbGUsICRiYXNlLWNvbG9yOiAjNDI5NGYwLCAkdGV4dC1zaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICRiYXNlLWNvbG9yO1xuICAgICR0ZXh0LXNpemU6ICRzdHlsZTtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxuXG4gIEB3YXJuIFwiVGhlIGJ1dHRvbiBtaXhpbiBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gdGhlIG5leHQgbWFqb3IgdmVyc2lvbiByZWxlYXNlXCI7XG59XG5cbi8vIFNlbGVjdG9yIFN0eWxlIEJ1dHRvblxuQG1peGluIGJ1dHRvbnN0eWxlKCR0eXBlLCAkYi1jb2xvciwgJHQtc2l6ZSwgJHBhZCkge1xuICAvLyBHcmF5c2NhbGUgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gc2hpbnkgYW5kICRiLWNvbG9yID09IGdyYXlzY2FsZSgkYi1jb2xvcikge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBwaWxsIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBpZiAkdHlwZSA9PSBmbGF0IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCB0cnVlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIC8vIENvbG9yZWQgYnV0dG9uXG4gIEBpZiAkdHlwZSA9PSBzaW1wbGUge1xuICAgIEBpbmNsdWRlIHNpbXBsZSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gc2hpbnkge1xuICAgIEBpbmNsdWRlIHNoaW55KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBwaWxsIHtcbiAgICBAaW5jbHVkZSBwaWxsKCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAZWxzZSBpZiAkdHlwZSA9PSBmbGF0IHtcbiAgICBAaW5jbHVkZSBmbGF0KCRiLWNvbG9yLCBmYWxzZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cbn1cblxuLy8gU2ltcGxlIEJ1dHRvblxuQG1peGluIHNpbXBsZSgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXI6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgOSUsICAkbGlnaHRuZXNzOiAtMTQlKTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC04JSwgICRsaWdodG5lc3M6ICAxNSUpO1xuICAkc3RvcC1ncmFkaWVudDogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTExJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAgMTUlLCAkbGlnaHRuZXNzOiAtMTglKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXIpO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3IsICRzdG9wLWdyYWRpZW50KTtcbiAgcGFkZGluZzogJHBhZGRpbmc7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgMXB4IDAgJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNCUsICRsaWdodG5lc3M6IC01JSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC03JSwgJGxpZ2h0bmVzczogIDUlKTtcbiAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDglLCAkbGlnaHRuZXNzOiAtMTQlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkaW5zZXQtc2hhZG93LWhvdmVyOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctaG92ZXIpO1xuICAgICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvci1ob3ZlciwgJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3ctaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA5JSwgJGxpZ2h0bmVzczogLTE0JSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDclLCAkbGlnaHRuZXNzOiAtMTclKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgOHB4IDRweCAkaW5zZXQtc2hhZG93LWFjdGl2ZSwgaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gIH1cbn1cblxuLy8gU2hpbnkgQnV0dG9uXG5AbWl4aW4gc2hpbnkoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTE3LCAkZ3JlZW46IC0xMTEsICRibHVlOiAtODEpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTI2LCAkZ3JlZW46IC0xMjcsICRibHVlOiAtMTIyKTtcbiAgJGZvdXJ0aC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTc5LCAgJGdyZWVuOiAtNzAsICAkYmx1ZTogLTQ2KTtcbiAgJGluc2V0LXNoYWRvdzogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogIDM3LCAgJGdyZWVuOiAgMjksICAkYmx1ZTogIDEyKTtcbiAgJHNlY29uZC1zdG9wOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTU2LCAgJGdyZWVuOiAtNTAsICAkYmx1ZTogLTMzKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTE0MCwgJGdyZWVuOiAtMTQxLCAkYmx1ZTogLTExNCk7XG4gICR0aGlyZC1zdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC04NiwgICRncmVlbjogLTc1LCAgJGJsdWU6IC00OCk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkZm91cnRoLXN0b3A6ICAgZ3JheXNjYWxlKCRmb3VydGgtc3RvcCk7XG4gICAgJGluc2V0LXNoYWRvdzogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93KTtcbiAgICAkc2Vjb25kLXN0b3A6ICAgZ3JheXNjYWxlKCRzZWNvbmQtc3RvcCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICAgICR0aGlyZC1zdG9wOiAgICBncmF5c2NhbGUoJHRoaXJkLXN0b3ApO1xuICB9XG5cbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGJhc2UtY29sb3IgMCUsICRzZWNvbmQtc3RvcCA1MCUsICR0aGlyZC1zdG9wIDUwJSwgJGZvdXJ0aC1zdG9wIDEwMCUpO1xuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdztcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTMsICRncmVlbjogLTE1LCAkYmx1ZTogLTE4KTtcbiAgICAkc2Vjb25kLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTY2LCAkZ3JlZW46IC02MiwgJGJsdWU6IC01MSk7XG4gICAgJHRoaXJkLXN0b3AtaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC05MywgJGdyZWVuOiAtODUsICRibHVlOiAtNjYpO1xuICAgICRmb3VydGgtc3RvcC1ob3ZlcjogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICRncmVlbjogLTgwLCAkYmx1ZTogLTYzKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGZpcnN0LXN0b3AtaG92ZXI6ICBncmF5c2NhbGUoJGZpcnN0LXN0b3AtaG92ZXIpO1xuICAgICAgJHNlY29uZC1zdG9wLWhvdmVyOiBncmF5c2NhbGUoJHNlY29uZC1zdG9wLWhvdmVyKTtcbiAgICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wLWhvdmVyKTtcbiAgICAgICRmb3VydGgtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRmb3VydGgtc3RvcC1ob3Zlcik7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50KHRvcCwgJGZpcnN0LXN0b3AtaG92ZXIgIDAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzZWNvbmQtc3RvcC1ob3ZlciA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXJkLXN0b3AtaG92ZXIgIDUwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZm91cnRoLXN0b3AtaG92ZXIgMTAwJSk7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xMTEsICRncmVlbjogLTExNiwgJGJsdWU6IC0xMjIpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMjBweCAwICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFBpbGwgQnV0dG9uXG5AbWl4aW4gcGlsbCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG4gICRib3JkZXItYm90dG9tOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTExJSwgJGxpZ2h0bmVzczogLTI2JSk7XG4gICRib3JkZXItc2lkZXM6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIxJSwgJGxpZ2h0bmVzczogLTIxJSk7XG4gICRib3JkZXItdG9wOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTMwJSwgJGxpZ2h0bmVzczogLTE1JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IC0xLCAkc2F0dXJhdGlvbjogLTElLCAgJGxpZ2h0bmVzczogIDclKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTQlLCAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgJHRleHQtc2hhZG93OiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtMTklLCAkbGlnaHRuZXNzOiAtMTUlKTtcblxuICBAaWYgaXMtbGlnaHQoJGJhc2UtY29sb3IpIHtcbiAgICAkY29sb3I6ICAgICAgIGhzbCgwLCAwLCAyMCUpO1xuICAgICR0ZXh0LXNoYWRvdzogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogMTAlLCAkbGlnaHRuZXNzOiA0JSk7XG4gIH1cblxuICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAkYm9yZGVyLWJvdHRvbTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgZ3JheXNjYWxlKCRib3JkZXItc2lkZXMpO1xuICAgICRib3JkZXItdG9wOiAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHN0b3AtZ3JhZGllbnQ6IGdyYXlzY2FsZSgkc3RvcC1ncmFkaWVudCk7XG4gICAgJHRleHQtc2hhZG93OiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3cpO1xuICB9XG5cbiAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGlnaHRuZXNzOiAtNC41JSk7XG4gICAgJGJvcmRlci1ib3R0b206ICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAgMTMuNSUsICRsaWdodG5lc3M6IC0zMiUpO1xuICAgICRib3JkZXItc2lkZXM6ICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA0LCAkc2F0dXJhdGlvbjogLTIlLCAgICAkbGlnaHRuZXNzOiAtMjclKTtcbiAgICAkYm9yZGVyLXRvcDogICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xNyUsICAgJGxpZ2h0bmVzczogLTIxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgICAgICAgICAgICRzYXR1cmF0aW9uOiAtMSUsICAgICRsaWdodG5lc3M6ICAzJSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDgsICRzYXR1cmF0aW9uOiAtNCUsICAgICRsaWdodG5lc3M6IC0xNS41JSk7XG4gICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogIDUsICRzYXR1cmF0aW9uOiAtNSUsICAgICRsaWdodG5lc3M6IC0yMiUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgZ3JheXNjYWxlKCRiYXNlLWNvbG9yLWhvdmVyKTtcbiAgICAgICRib3JkZXItYm90dG9tOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20pO1xuICAgICAgJGJvcmRlci1zaWRlczogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAgICRib3JkZXItdG9wOiAgICAgICAgICBncmF5c2NhbGUoJGJvcmRlci10b3ApO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgICAgJHRleHQtc2hhZG93LWhvdmVyOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci10b3A7XG4gICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLXRvcCAkYm9yZGVyLXNpZGVzICRib3JkZXItYm90dG9tO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctaG92ZXI7XG4gIH1cblxuICAmOmFjdGl2ZTpub3QoOmRpc2FibGVkKSxcbiAgJjpmb2N1czpub3QoOmRpc2FibGVkKSB7XG4gICAgJGFjdGl2ZS1jb2xvcjogICAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDQsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0xMCUpO1xuICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA2LCAgJHNhdHVyYXRpb246IC0yLjUlLCAkbGlnaHRuZXNzOiAtMzAlKTtcbiAgICAkYm9yZGVyLWJvdHRvbS1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogMTEsICRzYXR1cmF0aW9uOiAgNiUsICAgJGxpZ2h0bmVzczogLTMxJSk7XG4gICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDksICAkc2F0dXJhdGlvbjogIDIlLCAgICRsaWdodG5lc3M6IC0yMS41JSk7XG4gICAgJHRleHQtc2hhZG93LWFjdGl2ZTogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDUsICAkc2F0dXJhdGlvbjogLTEyJSwgICRsaWdodG5lc3M6IC0yMS41JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgZ3JheXNjYWxlKCRhY3RpdmUtY29sb3IpO1xuICAgICAgJGJvcmRlci1hY3RpdmU6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBncmF5c2NhbGUoJGJvcmRlci1ib3R0b20tYWN0aXZlKTtcbiAgICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3ctYWN0aXZlKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgZ3JheXNjYWxlKCR0ZXh0LXNoYWRvdy1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQ6ICRhY3RpdmUtY29sb3I7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRib3JkZXItYm90dG9tLWFjdGl2ZTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgNnB4IDNweCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAtMXB4IDFweCAkdGV4dC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIEZsYXQgQnV0dG9uXG5AbWl4aW4gZmxhdCgkYmFzZS1jb2xvciwgJGdyYXlzY2FsZTogZmFsc2UsICR0ZXh0c2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gICRjb2xvcjogICAgICAgICBoc2woMCwgMCwgMTAwJSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yO1xuICBib3JkZXItcmFkaXVzOiAzcHg7XG4gIGJvcmRlcjogMDtcbiAgY29sb3I6ICRjb2xvcjtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXNpemU6ICR0ZXh0c2l6ZTtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XG5cbiAgJjpob3Zlcjpub3QoOmRpc2FibGVkKXtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogNCUsICRsaWdodG5lc3M6IDUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGJhc2UtY29sb3ItaG92ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRiYXNlLWNvbG9yLWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGdyYXlzY2FsZSgkYmFzZS1jb2xvci1hY3RpdmUpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWFjdGl2ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gIH1cbn1cblxuLy8gRmxleGlibGUgZ3JpZFxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgJHdpZHRoOiAkY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gICRjb250YWluZXItd2lkdGg6ICRjb250YWluZXItY29sdW1ucyAqICRmZy1jb2x1bW4gKyAoJGNvbnRhaW5lci1jb2x1bW5zIC0gMSkgKiAkZmctZ3V0dGVyO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG5cbiAgQHdhcm4gXCJUaGUgZmxleC1ncmlkIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuLy8gRmxleGlibGUgZ3V0dGVyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG5cbiAgQHdhcm4gXCJUaGUgZmxleC1ndXR0ZXIgZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZVwiO1xufVxuXG5AZnVuY3Rpb24gZ3JpZC13aWR0aCgkbikge1xuICBAcmV0dXJuICRuICogJGd3LWNvbHVtbiArICgkbiAtIDEpICogJGd3LWd1dHRlcjtcblxuICBAd2FybiBcIlRoZSBncmlkLXdpZHRoIGZ1bmN0aW9uIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uIHJlbGVhc2VcIjtcbn1cblxuQGZ1bmN0aW9uIGdvbGRlbi1yYXRpbygkdmFsdWUsICRpbmNyZW1lbnQpIHtcbiAgQHJldHVybiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZSwgJHJhdGlvOiAkZ29sZGVuKTtcblxuICBAd2FybiBcIlRoZSBnb2xkZW4tcmF0aW8gZnVuY3Rpb24gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gUGxlYXNlIHVzZSB0aGUgbW9kdWxhci1zY2FsZSBmdW5jdGlvbiwgaW5zdGVhZC5cIjtcbn1cblxuQG1peGluIGJveC1zaXppbmcoJGJveCkge1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtc2l6aW5nLCAkYm94LCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIEB3YXJuIFwiVGhlIGJveC1zaXppbmcgbWl4aW4gaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIHRoZSBuZXh0IG1ham9yIHZlcnNpb24gcmVsZWFzZS4gVGhpcyBwcm9wZXJ0eSBjYW4gbm93IGJlIHVzZWQgdW4tcHJlZml4ZWQuXCI7XG59XG4iLCIvLyBDU1MgZm9yIHN0eWxpbmcgb2YganF1ZXJ5LXVpIGVsZW1lbnRzXG4jR0Jfd2luZG93e1xuICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuI0dCX2ZyYW1le1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbn1cbiNHQl93aW5kb3cgaW1nI0dCX2xvYWRlcntcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwcHg7XG4gICAgbWFyZ2luOiAyMHB4IGF1dG87XG59XG5cbi51aS1kaWFsb2ctdGl0bGViYXJ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjokYmx1ZTtcbn1cblxuLnVpLXdpZGdldC1oZWFkZXJ7XG4gICAgYmFja2dyb3VuZDpub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6JGJsdWU7XG4gICAgYm9yZGVyOjFweCBzb2xpZCAkYmx1ZTtcbn1cbiIsIi8vIFRpbnlNQ0Ugc3BlY2lmaWMgc3R5bGluZy4gQ3VycmVudGx5IHRoaXMganVzdCBoaWRlcyB0aGUgcGF0aCBlbGVtZW50c1xuLy8gd2UgZG9uJ3Qgd2FudCBkaXNwbGF5ZWQgaW4gdGhlIGVkaXRvci4gQW55IGZ1dHVyZSBUaW55TUNFIHN0eWxpbmdcbi8vIHNob3VsZCBnbyBoZXJlIGFzIHdlbGxcblxuLm1jZS1wYXRoID4gLm1jZS1wYXRoLWl0ZW0sIC5tY2UtcGF0aCA+IC5tY2UtZGl2aWRlcntcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5tY2Utd29yZGNvdW50e1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDBweCAhaW1wb3J0YW50O1xufVxuIiwiLy9cbi8vIFR5cG9ncmFwaHkgcGFydGlhbFxuLy9cblxuQGltcG9ydCBcImluaXRcIjtcblxuaHRtbCB7XG4gICAgZm9udC1zaXplOiAkYmFzZV9mb250X3NpemU7XG59XG5cbmJvZHkge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRjb250ZW50X2JnX2NvbG9yO1xuICAgIGxpbmUtaGVpZ2h0OiAkYmFzZV9saW5lX2hlaWdodDtcbiAgICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgICBmb250LWZhbWlseTogJGNvcHlfZm9udDtcbiAgICBjb2xvcjogJGNvcHlfY29sb3I7XG59XG5cbnAge1xuICAgIG1hcmdpbi1ib3R0b206IDEuM2VtO1xufVxuXG4vLyBoZWFkZXIgcGxhY2Vob2xkZXJcbiVoZWQge1xuICAgIGZvbnQtd2VpZ2h0OiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAkaGVkX2xpbmVfaGVpZ2h0O1xuICAgIG1hcmdpbjogMCAwIDAuMmVtIDA7XG59XG5cbmgxLCBoMiwgaDMsIGg0IHtcbiAgICBjb2xvcjogJGhlZF9jb2xvcjtcbn1cblxuaDEsIC5oMSB7XG4gICAgQGV4dGVuZCAlaGVkO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgkaDFfZm9udF9zaXplKTtcbn1cbmgyLCAuaDIge1xuICAgIEBleHRlbmQgJWhlZDtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoJGgyX2ZvbnRfc2l6ZSk7XG59XG5oMywgLmgzIHtcbiAgICBAZXh0ZW5kICVoZWQ7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCRoM19mb250X3NpemUpO1xufVxuaDQsIC5oNCB7XG4gICAgQGV4dGVuZCAlaGVkO1xuICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgkaDRfZm9udF9zaXplKTtcbn1cbnNtYWxsLCAuZm9udC1zbWFsbCB7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCRzbWFsbF9mb250X3NpemUpO1xufVxuIiwiI2JyZWFkY3J1bWJze1xuICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG4gICAgQGluY2x1ZGUgZm9udC1zaXplKCR4X3NtYWxsX2ZvbnRfc2l6ZSk7XG4gICAgQGluY2x1ZGUgcGFkZGluZyg4cHggMCAwIDApO1xuICAgIEBpbmNsdWRlIG1hcmdpbigwIDAgMTBweCAwKTtcbiAgICBoMXtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoJHhfc21hbGxfZm9udF9zaXplKTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGxpZ2h0ZXI7XG4gICAgfVxuICAgICYudHJ1bmNhdGVke1xuICAgICAgICBwYWRkaW5nLXRvcDogMTJweDtcbiAgICB9XG5cbiAgICAuc2VsZWN0ZWR7XG4gICAgICAgIGNvbG9yOiAkcmVkO1xuICAgIH1cbn1cblxuLy8gYnJlYWRjcnVtYnMgYmxvY2tcbi5icmVhZGNydW1icyB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbiAgICBAaW5jbHVkZSBmb250LXNtYWxsO1xuICAgIEBpbmNsdWRlIHBhZGRpbmcoMC41ZW0gMCAwIDApO1xuICAgIEBpbmNsdWRlIG1hcmdpbigwIDAgMC41NmVtIDApO1xufVxuXG4uYnJlYWRjcnVtYnNfX2NydW1ie1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBmb250LXdlaWdodDogbm9ybWFsO1xufVxuXG4uYnJlYWRjcnVtYnNfX2NydW1iLS13aGl0ZXtcbiAgICBAZXh0ZW5kIC5icmVhZGNydW1ic19fY3J1bWI7XG4gICAgY29sb3I6ICR3aGl0ZTtcbn1cblxuLy8gdGhpcyBmZWVscyBsaWtlIGEgaGFja1xuYS5icmVhZGNydW1ic19fY3J1bWItLXdoaXRle1xuICAgICY6dmlzaXRlZCB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJGxpbmtfY29sb3JfaG92ZXI7XG4gICAgfVxufVxuIiwiLy8gIyBNZWRpYSBCbG9ja1xudWwubWVkaWF7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG5cbiAgICBwe1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yZW07XG4gICAgICAgIG1hcmdpbjogMCAwIDVweCAwO1xuICAgIH1cblxuICAgIC50aHVtYm5haWx7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4O1xuICAgICAgICBpbWd7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDYwcHg7XG4gICAgICAgIH1cbiAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgfVxuXG4gICAgLndpdGgtdGh1bWJuYWlse1xuICAgICAgICBtYXJnaW46IDAgMCAxMHB4IDc1cHg7XG4gICAgfVxuXG5cbiAgICBsaXtcbiAgICAgICAgcGFkZGluZzogMTBweCAwO1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xuICAgIH1cblxuICAgICYuZGl2aWRlZHtcbiAgICAgICAgbGl7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpZ2h0ZXN0X2dyYXk7XG4gICAgICAgICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gUGxhY2Vob2xkZXJzXG4lY2FyZF9fY2VsbCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wO1xufVxuXG4lY2FyZF9jbGVhcmZpeCB7XG4gICAgem9vbTogMTtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIEBpbmNsdWRlIGNsZWFyZml4O1xufVxuXG4vL1xuLy8gQkVNIG1lZGlhIGJsb2NrXG4vLyBAZXhhbXBsZVxuLy8gPGRpdiBjbGFzcz1cImNhcmRcIj5cbi8vICAgPGRpdiBjbGFzcz1cImNhcmRfX29iamVjdCBjYXJkLS1sZWZ0XCI+XG4vLyAgICAgPGEgaHJlZj1cIi4uLlwiPjxpbWcgc3JjPVwiLi4uXCIgY2xhc3M9XCJjYXJkX19vYmplY3QtaXMtdGh1bWJuYWlsXCI+PC9hPlxuLy8gICA8L2Rpdj5cbi8vICAgPGRpdiBjbGFzcz1cImNhcmRfX2JvZHlcIj5cbi8vICAgICA8aDMgY2xhc3M9XCJjYXJkX19oZWFkZXJcIj5NeSBIZWFkaW5nPC9oMz5cbi8vICAgICA8cCBjbGFzcz1cImNhcmRfX2Rlc2NcIj4uLi48L3A+XG4vLyAgIDwvZGl2PlxuLy8gPC9kaXY+XG4vL1xuLmNhcmQge1xuICAgIG1hcmdpbi10b3A6IGVtKDEwKTtcblxuICAgIEBleHRlbmQgJWNhcmRfY2xlYXJmaXg7XG5cbiAgICAmOmZpcnN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICB9XG5cbiAgICAmX19vYmplY3Qge1xuICAgICAgICBAZXh0ZW5kICVjYXJkX2NsZWFyZml4O1xuICAgICAgICBAZXh0ZW5kICVjYXJkX19jZWxsO1xuXG4gICAgICAgICYtaXMtdGh1bWJuYWlsIHtcbiAgICAgICAgICAgIG1heC13aWR0aDogZW0oNjApO1xuICAgICAgICB9XG5cbiAgICAgICAgJi1pcy1mZWF0dXJlIHtcbiAgICAgICAgICAgIHdpZHRoOiBlbSg2MCk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1xKCR0YWJsZXQpIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogZW0oMTUwKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX2JvZHkge1xuICAgICAgICBAZXh0ZW5kICVjYXJkX2NsZWFyZml4O1xuICAgICAgICBAZXh0ZW5kICVjYXJkX19jZWxsO1xuICAgIH1cblxuICAgICZfX2hlYWRlciB7XG4gICAgICAgIG1hcmdpbjogMCAwIGVtKDUpIDA7XG4gICAgfVxuXG4gICAgJl9fZGVzYyB7XG4gICAgICAgIG1hcmdpbjogZW0oNSkgMDtcbiAgICB9XG5cbiAgICAmLS1sZWZ0IHtcbiAgICAgICAgcGFkZGluZy1yaWdodDogZW0oMTApO1xuICAgICAgICBAZXh0ZW5kICVjYXJkX19jZWxsO1xuICAgIH1cblxuICAgICYtLXJpZ2h0IHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiBlbSgxMCk7XG4gICAgICAgIEBleHRlbmQgJWNhcmRfX2NlbGw7XG4gICAgfVxuXG4gICAgJi0tbWlkZGxlIHtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICB9XG5cbiAgICAmLS1ib3R0b20ge1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgIH1cblxuICAgICYtaXMtbGlzdCB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogMDtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICB9XG59XG4iLCJkaXYubWVzc2FnZWJveHtcbiAgICBtYXJnaW46IDIwcHggYXV0bztcbiAgICBwYWRkaW5nOiAxMHB4IDE1cHg7XG4gICAgYmFja2dyb3VuZDogJG1zZ19ib3hfc3RhbmRhcmQ7XG5cbiAgICBoMixcbiAgICBoM3tcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodGVzdF9ncmF5O1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgZm9udC1zaXplOjEuMmVtO1xuICAgIH1cblxuICAgICYuZXJyb3IsXG4gICAgJi53YXJuaW5ne1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbXNnX2JveF9lcnJvcjtcblxuICAgICAgICBoMixcbiAgICAgICAgaDN7XG4gICAgICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgICAgICAgICBjb2xvcjogJHJlZDtcbiAgICAgICAgfVxuICAgICAgICBwcmV7XG4gICAgICAgICAgICBmb250LXNpemU6IDFyZW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmFsZXJ0e1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbXNnX2JveF9hbGVydDtcbiAgICB9XG5cbiAgICBwe1xuICAgICAgICBtYXJnaW4tbGVmdDogOHB4O1xuICAgIH1cbn1cblxuIiwiLm5hdi1idXR0b24ge1xuICAgIHBhZGRpbmc6IHJlbSgxMHB4KSByZW0oMTBweCk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQ6ICRtc2dfYm94X3N0YW5kYXJkO1xuXG4gICAgQGluY2x1ZGUgbXEoJHRhYmxldCkge1xuICAgICAgICBjbGVhcjogbGVmdDtcbiAgICB9XG4gICAgQGluY2x1ZGUgbXEoJGRlc2t0b3ApIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB9XG5cbiAgICAmX19yb3dzIHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbn1cblxubmF2LnRhYnN7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZy1ib3R0b206IHJlbSgxMHB4KTtcbiAgICBjbGVhcjogYm90aDtcbiAgICBiYWNrZ3JvdW5kOiAkbXNnX2JveF9zdGFuZGFyZDtcblxuICAgIGF7XG4gICAgICAgIEBpbmNsdWRlIGFudGlhbGlhc2VkO1xuICAgIH1cblxuICAgIC5zZWxlY3RlZHtcbiAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgfVxuXG4gICAgdWx7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgdWx7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG5cbiAgICAgICAgbGl7XG4gICAgICAgICAgICAmLm9wZW57XG4gICAgICAgICAgICAgICAgdWx7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBpbmNsdWRlIG1xKCRub3RfZGVza3RvcCl7XG4gICAgICAgIHBhZGRpbmc6IDAgcmVtKDEwcHgpIHJlbSgxMHB4KSByZW0oMTBweCk7XG4gICAgICAgIC5tYWluLXRhYiB7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGxpZ2h0ZXN0X2dyYXk7XG4gICAgICAgIH1cbiAgICAgICAgdWx7XG4gICAgICAgICAgICBsaXtcbiAgICAgICAgICAgICAgICBhe1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IHJlbSgxMHB4KSAwIHJlbSgxMHB4KSAwO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgICAgICAgICAgc3Bhbi5zcy1pY29ue1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiA3NSU7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogcmVtKDRweCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIHVse1xuICAgICAgICAgICAgICAgICAgICBsaXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDIwcHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxke1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmctbGVmdDogcmVtKDIwcHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICY6Zmlyc3QtY2hpbGR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbXEoJGRlc2t0b3Ape1xuICAgICAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgICAgICB1bHtcbiAgICAgICAgICAgIGxpe1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRsaWdodGVzdF9ncmF5O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIHJlbSgxMHB4KTtcbiAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZHtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAmLm9wZW57XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgdWx7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkd2hpdGU7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHRlc3RfZ3JheTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogZW0oLTVweCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0oNXB4KSByZW0oMTBweCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgICAgICAgICAgICAgei1pbmRleDogMTAwMTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiByZW0oNXB4KSAwIHJlbSg1cHgpIHJlbSg1cHgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc21hbGw7XG4gICAgICAgICAgICAgICAgICAgIHNwYW4uc3MtaWNvbntcbiAgICAgICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQteC1zbWFsbDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vICMgRm9ybXNcbi8vIGBfZm9ybS5zY3NzYCBjb250YWlucyBzdHlsaW5nIGZvciBmb3JtIGVsZW1lbnRzXG5cbi5hc2stZm9ybSwgLmVzc2F5LWZvcm17XG4gICAgIHNlbGVjdCB7XG4gICAgICAgICBAaW5jbHVkZSBhcHBlYXJhbmNlKG5vbmUpO1xuICAgICAgICAgaGVpZ2h0OiAzOXB4O1xuICAgICAgICAgcGFkZGluZzogOHB4IDQwcHggOHB4IDhweDtcbiAgICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAjZGVkZWRlO1xuICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XG4gICAgICAgICBmb250LWZhbWlseTogJG9wZW5fc2FucztcbiAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJZQUFBQU1DQU1BQUFCUko3MzBBQUFBT1ZCTVZFWC8vLzlWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlhaU0tXOUFBQUFFblJTVGxNQUNnc01LU29zTFY1aFk2R2pwZFhXMS9YdFErU0hBQUFBUVVsRVFWUjRBV01nRGZBS3dRRVBrakN6QUV4VWdBbFpPYnNnUkZTUURkVVlMb2d3SjdyeDNDQlJiZ3hibWZpRmhQZ1lNVjNES2lqSWdzMlZIQndNbEFBQVdZUURlakpseHdJQUFBQUFTVVZPUks1Q1lJST0pO1xuICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogcmlnaHQ7XG4gICAgICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgIzIzOTNiZDtcbiAgICAgICAgIH1cbiAgICAgfVxuICAgIGlucHV0W3R5cGU9XCJmaWxlXCJdLmZpbGVTZWxlY3RvciB7IC8vIG92ZXJxdWFsaWZ5aW5nIHRvIG92ZXJyaWRlXG4gICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxudGV4dGFyZWEge1xuICAgIEBpbmNsdWRlIGlucHV0X2JvcmRlcjtcbiAgICBAaW5jbHVkZSBpbnB1dF9jb25mO1xufVxuc2VsZWN0IHtcbiAgICBAaW5jbHVkZSBpbnB1dF9ib3JkZXI7XG4gICAgQGluY2x1ZGUgaW5wdXRfY29uZjtcblxuICAgIC8vIElFIGRyb3Bkb3duXG4gICAgJjo6LW1zLWV4cGFuZCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxufVxuaW5wdXQge1xuICAgIEBpbmNsdWRlIGlucHV0X2JvcmRlcjtcbiAgICBAaW5jbHVkZSBpbnB1dF9jb25mO1xuXG4gICAgQGluY2x1ZGUgcGxhY2Vob2xkZXIge1xuICAgICAgICBjb2xvcjogJGxpZ2h0X2dyYXk7XG4gICAgfVxuXG4gICAgJjpmb2N1c3tcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGJsdWU7XG4gICAgfVxuXG4gICAgJltkaXNhYmxlZF0sXG4gICAgJi5kaXNhYmxlZCB7XG4gICAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIH1cblxuXG4gICAgJlt0eXBlPVwic3VibWl0XCJdLCAmW3R5cGU9XCJyZXNldFwiXXtcbiAgICAgICAgQGluY2x1ZGUgYnRuKCk7XG4gICAgICAgIEBpbmNsdWRlIGZ1bGxXaWR0aE1vYmlsZTtcbiAgICAgICAgJi5zcy1pY29ue1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6bm9ybWFsO1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgZm9udC1zaXplOjEwMCU7XG4gICAgICAgICAgICBkaXNwbGF5OmlubGluZTtcbiAgICAgICAgICAgIHBhZGRpbmc6OHB4IDEwcHggNHB4IDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmW3R5cGU9XCJmaWxlXCJde1xuICAgICAgICB3aWR0aDogNzAlO1xuICAgIH1cblxuICAgICYuYnRue1xuICAgICAgQGluY2x1ZGUgZnVsbFdpZHRoTW9iaWxlO1xuICAgICAgZm9udC1mYW1pbHk6ICRjb3B5X2ZvbnQ7XG4gICAgfVxuXG4gICAgJiN3ZWJzaXRlIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi8vIGRpdi5mb3JtIGlzIGluY2x1ZGVkIG9uIGFsbCBIVE1MX1F1aWNrRm9ybSBmb3Jtc1xuZGl2LmZvcm17XG4gICAgbWFyZ2luLXRvcDoxMHB4O1xuXG4gICAgdWx7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICBsaXtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICAgICAgICAgICYuc2VwYXJhdG9ye1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBsYWJlbHtcbiAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgQGluY2x1ZGUgZm9udC1kZWZhdWx0O1xuICAgICAgICBmb250LXdlaWdodDogNjAwO1xuXG4gICAgICAgIGltZ3tcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgfVxuXG4gICAgICAgIHNwYW4udGlwe1xuICAgICAgICAgICAgY29sb3I6ICRsaWdodF9ncmF5O1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC14LXNtYWxsO1xuICAgICAgICB9XG4gICAgICAgICYuZXJyb3Ige1xuICAgICAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBkaXYuZWxlbWVudHtcbiAgICAgICAgbGFiZWx7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXRbdHlwZT1cInRleHRcIl0sIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXSwgaW5wdXRbdHlwZT1cImVtYWlsXCJdLCB0ZXh0YXJlYXtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICYudGFrZW4sICYuaW52YWxpZCwgJi5lcnJvcntcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogcmVkO1xuICAgICAgICB9XG4gICAgICAgICYjZ2V0Q2hhcHRlciwmI2dldFByb2JsZW17XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICB9XG4gICAgICAgICYucVJlZmVyZW5jZXtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpbnB1dFt0eXBlPVwicmFkaW9cIl0sIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXXtcbiAgICAgICAgbWFyZ2luOiA1cHg7XG4gICAgfVxuXG4gICAgJi5pbmRlbnR7XG4gICAgICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKXtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogNTBweDtcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0OiA0cHggc29saWQgJGFzaWRlX2JnX2NvbG9yX3N0YW5kYXJkO1xuICAgICAgICAgICAgd2lkdGg6IDYwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuc2VjdGlvbi5pbmZve1xuICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICBtYXJnaW46IDMwcHggMDtcbiAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCl7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG4gICAgfVxuXG4gICAgaDJ7XG4gICAgICAgIGNvbG9yOiAkcmVkO1xuICAgICAgICBmb250LXNpemU6IDIwcHg7XG4gICAgICAgIG1hcmdpbjogMCAwIDEwcHggMDtcblxuICAgICAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCl7XG4gICAgICAgICAgICB3aWR0aDogMjAlO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDVweDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnNlYXJjaGZvcm17XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBpbnB1dFt0eXBlPVwidGV4dFwiXXtcbiAgICAgICAgQGluY2x1ZGUgY2FsYyh3aWR0aCwgXCIxMDAlIC0gNDVweFwiKTtcbiAgICB9XG59XG5cbi8vc29tZSBmb3JtcyBhcmUgb24gYSBzaW5nbGUgY29sIHBhZ2U6IFRPRE8gZmluZCBhIGJldHRlciB3YXkgdG8gaGFuZGxlIHRoaXNcbkBpbmNsdWRlIG1xKCR0YWJsZXQpe1xuICAgIGZvcm0jbG9naW5Ub1NpdGUsZm9ybS5yZXF1ZXN0UGFzc3dvcmQsZm9ybSNjb250YWN0dXN7XG4gICAgICAgIHdpZHRoOjUwJTtcbiAgICB9XG59XG5cbi5tdWx0aS1zZWxlY3Qge1xuICAgIG1heC1oZWlnaHQ6IDEwZW07XG4gICAgcGFkZGluZzogMC4yZW0gMC41ZW07XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCBzaWx2ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcblxuICAgIGxhYmVsIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgMCAwLjJlbTtcbiAgICB9XG59XG5cbiN2YWxpZGl0eXtcbiAgICBjb2xvcjogJHJlZDtcbn1cblxuaW5wdXQuZGVmYXVsdHtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoL2ltYWdlcy9pbWcvYmxhbmsucG5nKSAwIDAgbm8tcmVwZWF0O1xuICAgIHBhZGRpbmctbGVmdDogNjVweDtcbn1cblxuaW5wdXQudmlzYXtcbiAgICBiYWNrZ3JvdW5kOiB1cmwoL2ltYWdlcy9pbWcvdmlzYS5wbmcpIDAgMCBuby1yZXBlYXQ7XG4gICAgcGFkZGluZy1sZWZ0OiA2NXB4O1xufVxuXG5pbnB1dC5tYXN0ZXJjYXJke1xuICAgIGJhY2tncm91bmQ6IHVybCgvaW1hZ2VzL2ltZy9tYXN0ZXJjYXJkLnBuZykgMCAwIG5vLXJlcGVhdDtcbiAgICBwYWRkaW5nLWxlZnQ6IDY1cHg7XG59XG5cbmlucHV0LmRpc2NvdmVye1xuICAgIGJhY2tncm91bmQ6IHVybCgvaW1hZ2VzL2ltZy9kaXNjb3Zlci5wbmcpIDAgMCBuby1yZXBlYXQ7XG4gICAgcGFkZGluZy1sZWZ0OiA2NXB4O1xufVxuXG5pbnB1dC5hbWVyaWNhbmV4cHJlc3N7XG4gICAgYmFja2dyb3VuZDogdXJsKC9pbWFnZXMvaW1nL2FtZXJpY2FuZXhwcmVzcy5wbmcpIDAgMCBuby1yZXBlYXQ7XG4gICAgcGFkZGluZy1sZWZ0OiA2NXB4O1xufVxuIiwic3Bhbi5wcmVtaXVtLWluZGljYXRvcntcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuaW1nLnByZW1pdW0taW5kaWNhdG9ye1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0b3A6IC0xMHB4O1xuICAgIHJpZ2h0OiA1cHg7XG4gICAgZmxvYXQ6IHJpZ2h0ICFpbXBvcnRhbnQ7XG4gICAgd2lkdGg6IDE4cHggIWltcG9ydGFudDtcbiAgICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbn1cblxuc3Bhbi5wcm9maWxlcGljQ29udGFpbmVyLnRodW1iLCBzcGFuLnByZW1pdW0taW5kaWNhdG9yLnRodW1iIHtcbiAgICB3aWR0aDogNjBweDtcbn1cblxuc3Bhbi5wcm9maWxlcGljQ29udGFpbmVyLnByb2ZpbGUge1xuICAgIHdpZHRoOiAxMzlweDtcbn1cblxuLmF2YXRhci1wcm9maWxle1xuICAgIGJhY2tncm91bmQ6ICNmMmYyZjI7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBwYWRkaW5nLXRvcDogNDVweDtcbiAgICBmb250LXNpemU6IDEyMHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxMDBweDtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5hdmF0YXItdGh1bWJ7XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgbWFyZ2luOiAwO1xuXG4gICAgLnByZW1pdW0taW5kaWNhdG9ye1xuICAgICAgICB0b3A6IC0zMHB4O1xuICAgICAgICByaWdodDogLTJweDtcbiAgICB9XG59XG4iLCJzZWN0aW9uLmNvbnRhaW5lcntcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIHBhZGRpbmc6IDE1cHggMjBweDtcbiAgICBiYWNrZ3JvdW5kOiAkYXNpZGVfYmdfY29sb3Jfc3RhbmRhcmQ7XG4gICAgdGV4dC1hbGlnbjpjZW50ZXI7XG5cbiAgICBoZWFkZXIge1xuICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxZW07XG4gICAgICAgIEBpbmNsdWRlIGFudGlhbGlhc2VkO1xuICAgIH1cblxuICAgIHB7XG4gICAgICAgIHRleHQtYWxpZ246bGVmdDtcbiAgICAgICAgJi5wcmljZSwgJi5jZW50ZXItcHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246Y2VudGVyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdWwsb2x7XG4gICAgICAgIHRleHQtYWxpZ246bGVmdDtcbiAgICAgICAgJi51bnBhZGRlZHtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDoxLjNlbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVsLmZhY2V0c3tcbiAgICAgICAgbGlzdC1zdHlsZTpub25lO1xuICAgICAgICBtYXJnaW46IDhweCAwO1xuICAgICAgICBwYWRkaW5nOjA7XG4gICAgICAgIGxpIGF7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOnVybCgvaW1hZ2VzL2NvcmUvZG90LWZhY2V0LnBuZykgMCA0cHggbm8tcmVwZWF0O1xuICAgICAgICAgICAgZGlzcGxheTpibG9jaztcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDoxNXB4O1xuICAgICAgICAgICAgcGFkZGluZy1ib3R0b206M3B4O1xuICAgICAgICAgICAgdGV4dC1pbmRlbnQ6MHB4O1xuICAgICAgICAgICAgJi5hY3RpdmV7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjowIC04NnB4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNvZGUge1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICBAaW5jbHVkZSBmb250LXNtYWxsKCk7XG4gICAgICAgIGJhY2tncm91bmQ6ICR3aGl0ZTtcbiAgICAgICAgcGFkZGluZzogZW0oMTBweCk7XG4gICAgfVxuXG4gICAgaDEsaDIsaDMsaDQsaDUsaDZ7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICAgIHRleHQtYWxpZ246bGVmdDtcbiAgICB9XG5cbiAgICBhLmJ0bntcbiAgICAgICAgbWFyZ2luOiAxMHB4IGF1dG87XG4gICAgfVxuXG4gICAgJi5jcmVkaXRze1xuICAgICAgICBiYWNrZ3JvdW5kOiAkbGlnaHRlc3RfYmx1ZTtcbiAgICB9XG5cbiAgICAmLmltcG9ydGFudCxcbiAgICAmLnVwZ3JhZGV7XG4gICAgICAgIGJhY2tncm91bmQ6ICRhc2lkZV9iZ19jb2xvcl9pbXBvcnRhbnQ7XG4gICAgICAgIGNsZWFyOiBsZWZ0O1xuICAgIH1cblxuICAgICYucG9wdWxhcixcbiAgICAmLmFsdHtcbiAgICAgICAgaDN7XG4gICAgICAgICAgICBjb2xvcjogJG9yYW5nZTtcbiAgICAgICAgfVxuICAgICAgICBpbnB1dHtcbiAgICAgICAgICAgIHdpZHRoOiAxOTVweDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl17XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAkb3JhbmdlO1xuICAgICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLnJlbGF0ZWQsXG4gICAgJi5nZW5lcmFse1xuICAgICAgICBoM3tcbiAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vU2VlOiBodHRwOi8vY3NzLXRyaWNrcy5jb20vcmVzcG9uc2l2ZS1kYXRhLXRhYmxlcy8gJiBodHRwOi8vZWx2ZXJ5Lm5ldC9kZW1vL3Jlc3BvbnNpdmUtdGFibGVzL1xuXG50YWJsZS5yZXNwb25zaXZle1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRsaWdodF9ncmF5O1xuICAgIHBhZGRpbmc6IDRweDtcbiAgICBtYXJnaW4tYm90dG9tOjIwcHg7XG5cbiAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCl7XG4gICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgICAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICB9XG4gICAgdGhlYWQsIHRib2R5LCB0aCwgdGQsIHRye1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCl7XG4gICAgICAgICAgICBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlO1xuICAgICAgICAgICAgYm9yZGVyLXNwYWNpbmc6IDA7XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2FwdGlvbntcbiAgICAgICAgZGlzcGxheTppbmxpbmU7XG4gICAgICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKXtcbiAgICAgICAgICAgIGRpc3BsYXk6dGFibGUtY2FwdGlvbjtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0aGVhZHtcbiAgICAgICAgQGluY2x1ZGUgbXEoJGRlc2t0b3Ape1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0Ym9keXtcbiAgICAgICAgQGluY2x1ZGUgbXEoJGRlc2t0b3Ape1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGUtcm93LWdyb3VwO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0aGVhZCB0cntcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB0b3A6IC05OTk5cHg7XG4gICAgICAgIGxlZnQ6IC05OTk5cHg7XG4gICAgICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKXtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkbGlnaHRlc3RfZ3JheTtcbiAgICAgICAgfVxuICAgIH1cbiAgICB0ciB0aHtcbiAgICAgICAgcGFkZGluZzogMHB4O1xuICAgICAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCl7XG4gICAgICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBpbmhlcml0O1xuICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0X2dyYXk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdGgsdGR7XG4gICAgICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKXtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgICAgICB3aWR0aDogMTQwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgdHJ7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRsaWdodF9ncmF5O1xuICAgICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgICAgICBib3JkZXItYm90dG9tOm5vbmU7XG4gICAgICAgIH1cbiAgICAgICAgJjpudGgtY2hpbGQoZXZlbil7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXNpZGVfYmdfY29sb3Jfc3RhbmRhcmQ7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbXEoJGRlc2t0b3ApIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgICAgICAgICAgIHZlcnRpY2FsLWFsaWduOiBpbmhlcml0O1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgICAgICY6bnRoLWNoaWxkKGV2ZW4pe1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICB0ZHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0ZXh0LWFsaWduOmxlZnQ7XG4gICAgICAgIEBpbmNsdWRlIHdvcmQtd3JhcChicmVhay13b3JkKTtcbiAgICAgICAgd29yZC1icmVhazogbm9ybWFsO1xuICAgICAgICBAaW5jbHVkZSBmb250LXNtYWxsKCk7XG4gICAgICAgICY6YmVmb3Jle1xuICAgICAgICAgICAgd2lkdGg6IDU1JTtcbiAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10aXRsZSk7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNtYWxsKCk7XG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCl7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDA7XG4gICAgICAgICAgICAgICAgY29udGVudDogbm9uZTtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKXtcbiAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IGluaGVyaXQ7XG4gICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkbGlnaHRfZ3JheTtcbiAgICAgICAgfVxuICAgICAgICBhIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIHotaW5kZXg6IDEwO1xuICAgICAgICB9XG4gICAgfVxufVxuXG50YWJsZS5zdHJpcGVke1xuICAgIHRib2R5IHRye1xuICAgICAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCl7XG4gICAgICAgICAgICAmOm50aC1jaGlsZChldmVuKXtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXNpZGVfYmdfY29sb3Jfc3RhbmRhcmQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cblxudGFibGUge1xuICAgIHRyLmNvbnZlcnNpb25zIHRoe1xuICAgICAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCkge1xuICAgICAgICAgICAgcGFkZGluZzogMnB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG50YWJsZS53aWRle1xuICAgIHdpZHRoOiAxMDAlO1xufVxuXG50YWJsZS5zdGF0c3tcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgIHRyIHRkIHtcbiAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIH1cbn1cbiIsIi5wYWdpbmF0aW9uLW51bWJlcmVke1xuXG4gICAgJl9fbWV0YXtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICAgICAgQGluY2x1ZGUgZm9udC14LXNtYWxsO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgcGFkZGluZy1ib3R0b206IGVtKDMpO1xuICAgIH1cbn1cblxuLnBhZ2luYXRpb24tbGlzdHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICAmX19pdGVte1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgfVxuICAgIGF7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aWR0aDogYXV0bztcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZyhlbSg1KSBlbSg4KSBlbSg2KSk7XG4gICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiAjZWVlO1xuICAgICAgICAgICAgY29sb3I6ICRhbHRfZ3JheTtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuYWN0aXZle1xuICAgICAgICAvLyB3ZSBoYXZlIHRvIG1hdGNoIHRoZSBwYWRkaW5nIG9mIHRoZSBhbmNob3JcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZyhlbSg1KSBlbSg4KSBlbSg2KSk7XG4gICAgfVxufVxuXG4uY29udGVudC1wYWdpbmF0ZSB7XG4gICAgYSB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICAgICAgJi5wYWdpbmF0aW9uLXByZXZ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoL2ltYWdlcy9pbWcvYXJ3LXBhZ2luYXRpb24tbGVmdC5wbmcpIDAgNTAlIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMzVweDtcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgY2xlYXI6IGxlZnQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgkdGFibGV0KSB7XG4gICAgICAgICAgICAgICAgY2xlYXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgICAgICAmLmJvcmRlcntcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI2RjZGNkYztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJi5ib3JkZXItbm9uZXtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAmLnBhZ2luYXRpb24tbmV4dHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1xKCR0YWJsZXQpIHtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoL2ltYWdlcy9pbWcvYXJ3LXBhZ2luYXRpb24tcmlnaHQucG5nKSAxMDAlIDUwJSBuby1yZXBlYXQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogMzVweDtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHVybCgvaW1hZ2VzL2ltZy9hcnctcGFnaW5hdGlvbi1yaWdodC5wbmcpIDAgNTAlIG5vLXJlcGVhdDtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMzVweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAuY2xlYXJ7XG4gICAgICAgIGNsZWFyOiBib3RoO1xuICAgIH1cbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuIiwiLmNsb2FrZWQge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4jYW5ub3RhdGlvbkJ0biB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4uYW5ub3RhdGlvbk5vdGV7XG4gICAgYmFja2dyb3VuZDogdXJsKFwiL2ltYWdlcy9iYWRnZXMvb3RoZXIvQW5ub3RhdG9yXzMyLnBuZ1wiKSAwJSAycHggbm8tcmVwZWF0O1xuICAgIHBhZGRpbmctbGVmdDogNDBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuLmFubm90YXRpb25Pd2xOb3Rle1xuICAgIGJhY2tncm91bmQ6IHVybChcIi9pbWFnZXMvYmFkZ2VzL290aGVyL093bGV5ZXNfNjQucG5nXCIpIDAlIDJweCBuby1yZXBlYXQ7XG4gICAgcGFkZGluZy1sZWZ0OiA3MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG4ub3dsZXllcy1jdGF7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uYW5ub3RhdGVkTGFiZWx7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi9pbWFnZXMvYmFkZ2VzL290aGVyL0Fubm90YXRvcl8xNi5wbmdcIik7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgbWFyZ2luLWxlZnQ6IDRweDtcbn1cblxuLnRvb2x0aXAge1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7XG4gICAgJi5lZGl0aW5nLWFubm90YXRpb257XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICNmZmZmOTk7XG4gICAgfVxuXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB9XG59XG5cbi50b29sdGlwLWRpc2FibGVke1xuICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiB0ZXh0ICFpbXBvcnRhbnQ7XG59XG5cbi50b29sdGlwLWh0bWx7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93O1xufVxuXG4udG9vbHRpcC1xdWVzdGlvbntcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRvcmFuZ2UsIDQwJSk7XG59XG5cbi50b29sdGlwLXF1aXotcXVlc3Rpb24ge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRtaW50O1xufVxuXG4vLyBzaWRlYmFyIGFubm90YXRpb25zXG5cbkBpbmNsdWRlIGtleWZyYW1lcyhtYXRlcmlhbGl6ZSkge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4jYW5ub3RhdGlvbi1yZWFkb25seXtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG59XG5cblxuI2Fubm90YXRpb24tZmx5b3V0IHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAuNWVtIDAuNWVtIDEuNWVtIDAuNWVtO1xuICAgIHotaW5kZXg6IDk5OTtcblxuICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm94LXNoYWRvdzogMXB4IDFweCA1cHggc2lsdmVyO1xuICAgICAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgICAgICAgbWFyZ2luOiBpbmhlcml0O1xuICAgICAgICBwYWRkaW5nOiAwIDAuNWVtO1xuICAgIH1cblxuICAgICYubWF0ZXJpYWxpemUge1xuICAgICAgICBAaW5jbHVkZSBhbmltYXRpb24obWF0ZXJpYWxpemUgLjdzKTtcbiAgICB9XG5cbiAgICAuc3ViamVjdCB7XG4gICAgICAgIHBhZGRpbmc6IDAuNWVtIDA7XG4gICAgfVxuXG4gICAgLmF1dGhvciB7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG5cbiAgICAudmlld3BvcnQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDAgMC4yZW07XG4gICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW46IDAuNWVtIDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgQGluY2x1ZGUgbXEoJHRhYmxldCkge1xuICAgICAgICAgICAgLnZpZXdwb3J0IHtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLnZpZXdwb3J0LnF1ZXN0aW9uIHtcbiAgICBbbmFtZT1cInVybFwiXSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbn1cblxuLnZpZXdwb3J0LnF1aXotcXVlc3Rpb24ge1xuICAgIC5zcy1pY29uIHtcbiAgICAgICAgJjpob3ZlciB7XG4gICAgICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmVtcHR5LWRpdmlkZXIge1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIG1hcmdpbjogMC41ZW0gMCAwIDA7XG4gICAgfVxuICAgIC5hZGphY2VudC1maWVsZCB7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICAgIH1cbiAgICAuZmluZC1xdWVzdGlvbiAuc3VibWl0IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgIH1cbiAgICBbbmFtZT1cInF1ZXN0aW9uSURcIl0ge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG4gICAgW25hbWU9XCJuZXctYW5zd2VyXCJdIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgIC5uZXctYW5zd2VyLW9wdGlvbnMge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICAgIH1cbiAgICAubmV3LWFuc3dlciAuc3VibWl0IHtcbiAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICBwYWRkaW5nLXRvcDogMC4zZW07XG4gICAgfVxuICAgIC5hbnN3ZXJzIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAxLjVlbTtcbiAgICB9XG4gICAgLmFuc3dlciAuZGVsZXRlLWFuc3dlciB7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgfVxuICAgIC5hbnN3ZXIuY29ycmVjdCAudmFsdWUge1xuICAgICAgICBjb2xvcjogJGJsdWU7XG4gICAgfVxuXG4gICAgJi5kaXNwbGF5IHtcbiAgICAgICAgLmFuc3dlciB7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cbiAgICAgICAgLmFuc3dlci5zZWxlY3RhYmxlIHtcbiAgICAgICAgICAgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgICAuYW5zd2VyLWNob2ljZSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICB0b3A6IDAuM2VtO1xuICAgICAgICAgICAgbGVmdDogMDtcbiAgICAgICAgfVxuICAgICAgICAuYW5zd2VyLXRleHQge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEuNWVtO1xuICAgICAgICB9XG4gICAgICAgIC5yZXNwb25zZXMge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgfVxuICAgICAgICAucmVzcG9uc2Uge1xuICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAuMmVtIDA7XG4gICAgICAgIH1cbiAgICAgICAgLnJlc3BvbnNlLWJhZGdlIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMC42ZW07XG4gICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMC42ZW07XG4gICAgICAgICAgICBwYWRkaW5nOiAwLjNlbTtcbiAgICAgICAgICAgIHdpZHRoOiA1ZW07XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIH1cbiAgICAgICAgLnJlc3BvbnNlLWJhZGdlLmNvcnJlY3Qge1xuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGJsdWU7XG4gICAgICAgIH1cbiAgICAgICAgLnJlc3BvbnNlLWJhZGdlLmluY29ycmVjdCB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4jYW5ub3RhdGlvbi1mbHlvdXQtY29udHJvbHMge1xuICAgIGNsZWFyOiBib3RoO1xufVxuXG4ueC1oYW5kbGViYXJzLXRlbXBsYXRlIHtcbiAgICBkaXNwbGF5OiBub25lO1xufVxuXG4jYW5ub3RhdGlvbi1mbHlvdXQgLm5vdGlmaWNhdGlvbnMge1xuICAgIGZvbnQtc2l6ZTogMC44ZW07XG5cbiAgICAubm90aWZpY2F0aW9uIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMWVtO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC41ZW07XG4gICAgfVxuICAgIC5ub3RpZmljYXRpb24uZXJyb3Ige1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkcmVkO1xuICAgIH1cbiAgICAubm90aWZpY2F0aW9uLmluZm8ge1xuICAgICAgICBjb2xvcjogJGJsYWNrO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkeWVsbG93O1xuICAgIH1cbiAgICAuY2xvc2Uge1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGZsb2F0OiByaWdodDtcbiAgICB9XG59XG4iLCIuYWRIV1F7XG4gICAgbWFyZ2luLWJvdHRvbToyMHB4O1xufVxuXG4jZW5vdGVzLXBheXdhbGwge1xuICAgIGRpc3BsYXk6bm9uZTtcblxuICAgIC5wYXl3YWxsIHtcbiAgICAgICAgbWFyZ2luLXRvcDogMjBweDtcbiAgICB9XG59XG5cbi53YXRlcmZhbGwtbW91bnQge1xuICAgIGNsZWFyOiBib3RoO1xufVxuXG4ucmVkYWN0ZWQub2JzY3VyZWQge1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0ZXh0LXNoYWRvdzogMCAwIDZweCByZ2JhKDAsIDAsIDAsIDAuNSk7XG4gICAgZmlsdGVyOiBibHVyKDNweCk7XG4gICAgZmlsdGVyOnByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CbHVyKFBpeGVsUmFkaXVzPSczJyk7XG59XG5cbi5yZWRhY3RlZC53YXRlcmZhbGwtcHJldmlldyxcbi5yZWRhY3Qub2JzY3VyZWQud2F0ZXJmYWxsLXByZXZpZXcsXG4ud2F0ZXJmYWxsLXByZXZpZXcge1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIG1heC1oZWlnaHQ6IDUuNmVtO1xuICAgIG92ZXJmbG93LXk6IGhpZGRlbjtcbiAgICBmaWx0ZXI6IGJsdXIoMHB4KTtcbiAgICBmaWx0ZXI6IHByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5CbHVyKFBpeGVsUmFkaXVzPScwJyk7XG59XG5cbi50NDAyLWVsaWRlZCB7XG4gICAgY2xlYXI6IGJvdGg7XG59XG5cbkBpbXBvcnQgJ2FkX2NoZWdnJztcbkBpbXBvcnQgJ2FkX3NvbHZlX21lZGlhJztcbkBpbXBvcnQgJ2FkX2dvb2dsZV9vdXRzdHJlYW0nO1xuQGltcG9ydCAnYWRfdHJ1ZXgnO1xuQGltcG9ydCAnYWRfZ3JhbW1hcmx5JzsiLCIuY2hlZ2ctYWQgc2VsZWN0LFxuLmNoZWdnLWFkIGlucHV0W3R5cGU9XCJ0ZXh0XCJdIHtcbiAgICBtYXJnaW46IDAuMmVtO1xufVxuXG4uY2hlZ2ctYWQgLmZpZWxkLWxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgbWFyZ2luLXRvcDogMC41ZW07XG59XG5cbi5jaGVnZy1hZCBbbmFtZT1cImdyYWR1YXRpb25ZZWFyXCJdIHtcbiAgICBtYXJnaW4tdG9wOiAwLjVlbTtcbn1cblxuLmNoZWdnLWFkICNjaGVnZy1ncGEtcmFuZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nLWxlZnQ6IDNlbTtcbiAgICBmb250LXNpemU6IDAuOGVtO1xufVxuXG4uY2hlZ2ctYWQgdWwubWVkaWEge1xuICAgIGxpIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIH1cbn1cblxuLmNoZWdnLWFkIC5zcGxpdCB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4uY2hlZ2ctYWQgLnNwbGl0LnBjdDI1IHtcbiAgICB3aWR0aDogMjUlO1xufVxuXG4uY2hlZ2ctYWQgLnNwbGl0LnBjdDUwIHtcbiAgICB3aWR0aDogNTAlO1xufVxuXG4uY2hlZ2ctYWQgLnNwbGl0LnBjdDc1IHtcbiAgICB3aWR0aDogNzUlO1xufVxuXG4uY2hlZ2ctYWQgLnNwbGl0LnBjdDgwIHtcbiAgICB3aWR0aDogODAlO1xufVxuXG4uY2hlZ2ctYWQgLnNwbGl0LnJpZ2h0IHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgY2xlYXI6IHJpZ2h0O1xufVxuXG4uY2hlZ2ctYWQgLnNwbGl0LmxlZnQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGNsZWFyOiBsZWZ0O1xufVxuXG4uY2hlZ2ctYWQuYnVzeSB7XG4gICAgZm9ybSB7XG4gICAgICAgIG9wYWNpdHk6IDAuNTtcbiAgICB9XG5cbiAgICAqIHtcbiAgICAgICAgY3Vyc29yOiB3YWl0O1xuICAgIH1cbn1cblxuLmNoZWdnLWFkIC52YWxpZGF0aW9uIHtcbiAgICBsaSB7XG4gICAgICAgIGNvbG9yOiAkcmVkO1xuICAgIH1cbn0iLCIjc29sdmUtbWVkaWEtcHV6emxlIHtcbiAgICBtYXJnaW46IDFyZW0gYXV0bztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMDtcbiAgICB3aWR0aDogMzAwcHg7XG5cbiAgICAuaW5zdHJ1Y3Rpb25zIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41cmVtO1xuICAgIH1cblxuICAgIC5lcnJvciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRyZWQ7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgIHBhZGRpbmc6IDAuNXJlbTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMC4zcmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgfVxuXG4gICAgYnV0dG9ue1xuICAgICAgICBtYXJnaW4tdG9wOiAwLjVyZW07XG4gICAgfVxufVxuIiwiLmFkLXByb21wdCB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcblxuICAgICYuaGlkZGVuIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG5cbi5nb29nbGUtb3V0c3RyZWFtLWRpYWxvZyB7XG4gICAgLy8udWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIHtcbiAgICAvLyAgICBkaXNwbGF5OiBub25lO1xuICAgIC8vfVxuXG4gICAgLmFkLXBvcHVwLnVpLWRpYWxvZy1jb250ZW50IHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAvLy5hZENvbnRhaW5lciA+IGRpdiB7XG4gICAgLy8gICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gICAgLy8gICAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgLy8gICAgYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgLy8gICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIC8vICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7XG4gICAgLy99XG59IiwiIiwiI2dyYW1tYXJseS1hZC1jb250YWluZXIge1xuXG4gICAgLmFkLXBvcHVwIHtcblxuICAgICAgICAmX19hY3Rpb24tbGluayB7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cbn0iLCIuYWRkdGhpc19jdXN0b21fc2hhcmluZyB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDhweDtcblxuICAgIEBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTA4MHB4KSB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgbGVmdDogLTYycHg7XG4gICAgICAgIHRvcDogMTBweDtcblxuICAgICAgICB3aWR0aDogMzJweDtcblxuICAgICAgICBhIHtcbiAgICAgICAgICAgIG1hcmdpbjogM3B4IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAmLmxlZnR7XG4gICAgICAgIHRleHQtYWxpZ246bGVmdDtcbiAgICB9ICAgXG59XG4iLCIuaW5zaWdodCB7XG4gICAgbWFyZ2luOiByZW0oMTVweCkgMDtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICBAaW5jbHVkZSBmb250LW1lZGl1bTtcbiAgICBjbGVhcjogYm90aDtcbiAgICBiYWNrZ3JvdW5kOiAkYXNpZGVfYmdfY29sb3Jfc3RhbmRhcmQ7XG4gICAgcCwgLmF1dGhvciB7XG4gICAgICAgIGNvbG9yOiAkZ3JheTtcbiAgICB9XG4gICAgLmF1dGhvciwgLm1vcmUge1xuICAgICAgICBmb250LXNpemU6ICR4X3NtYWxsX2ZvbnRfc2l6ZTtcbiAgICAgICAgY29sb3I6ICRhbHRfZ3JheTtcbiAgICB9XG4gICAgJi5mZWF0dXJlZCB7XG4gICAgICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKXtcbiAgICAgICAgICAgIGZsb2F0OmxlZnQ7XG4gICAgICAgICAgICBtYXgtd2lkdGg6IDE3NXB4O1xuICAgICAgICB9XG4gICAgICAgIGZvbnQtc2l6ZTogJHNtYWxsX2ZvbnRfc2l6ZTsgLy9mb250LXNpemUgb3JpZ2luYWxseSAxNlxuICAgICAgICBtYXJnaW46IHJlbSgxMHB4KSByZW0oMTBweCkgcmVtKDEwcHgpIDA7XG4gICAgfVxuXG4gICAgJi5vcGVuIHtcbiAgICAgICAgLmhlYWRsaW5lIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkbGlnaHRlc3RfZ3JheTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVsIGxpIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgcmVtKDEwcHgpIDA7XG4gICAgfVxuXG4gICAgcGFkZGluZzogcmVtKDEwcHgpIDElO1xuXG4gICAgLmFydGljbGUtdGl0bGUtbGluayB7XG4gICAgICAgICZfX2hlYWRlciB7XG4gICAgICAgICAgICBtYXJnaW46IDAgNiUgMCAyJTtcbiAgICAgICAgICAgIHdpZHRoOiA4NiU7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LW1lZGl1bTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICB9XG4gICAgICAgICZfX3RvZ2dsZSB7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1tZWRpdW07XG4gICAgICAgIH1cbiAgICAgICAgJl9fZ2xhbmNlIHtcbiAgICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xuICAgICAgICAgICAgIGZvbnQtZmFtaWx5OiAkb3Blbl9zYW5zO1xuICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICAgY29sb3I6ICRibGFjaztcbiAgICAgICAgIH1cbiAgICB9XG5cbiAgICAuaW5zaWdodFF1b3Rle1xuICAgICAgICBwYWRkaW5nOiAwIDIlO1xuICAgIH1cblxuICAgIC5lZGl0YWJsZXtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIH1cbn1cblxuLmluc2lnaHQtZ2xhbmNlIHtcbiAgICAuYXJ0aWNsZS1pbWFnZSB7XG4gICAgICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKSB7XG4gICAgICAgICAgICBtYXJnaW46IDAgcmVtKDMwcHgpIDAgcmVtKDMwcHgpO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uaW5zaWdodC1wZGYge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAmX19idG4ge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkcmVkICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuIiwiLy8gIyBKdW1wIExpbmtzXG4vLyBgX2p1bXAtbGlua3Muc2Nzc2AgY29udGFpbnMgc3R5bGluZyBmb3IgdGhlIGNvbnRlbnRzJyBqdW1wIGxpbmtzIGJveFxuXG4uY29udGVudC1qdW1wLWxpbmtze1xuICAgIG9se1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgY291bnRlci1yZXNldDogaXRlbTtcbiAgICAgICAgcGFkZGluZzogMCAwIDAgcmVtKDEwcHgpO1xuXG4gICAgICAgICYubmVzdGVkIHtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGxpIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLXJvdztcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiB0YWJsZS1jZWxsO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGNvdW50ZXJzKGl0ZW0sIFwiLlwiKSBcIi4gXCI7XG4gICAgICAgICAgICAgICAgY291bnRlci1pbmNyZW1lbnQ6IGl0ZW07XG4gICAgICAgICAgICAgICAgcGFkZGluZy1yaWdodDogcmVtKDVweCk7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IHJlbSgtMTBweCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgY2xlYXI6IGJvdGg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogcmVtKDEwcHgpIHJlbSgxMHB4KSByZW0oNXB4KSByZW0oNXB4KTtcbiAgICBtYXJnaW46IHJlbSgyMHB4KSAwIHJlbSgxMHB4KSAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXNpZGVfYmdfY29sb3Jfc3RhbmRhcmQ7XG5cbiAgICAuanVtcC1jb250ZW50c3tcbiAgICAgICAgbWFyZ2luOiAwIHJlbSgxMHB4KSAwIHJlbSg1cHgpO1xuICAgIH1cblxuICAgIC5qdW1wcy1pbnNpZ2h0c3tcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbn1cblxuI2p1bXAtdG9nZ2xlLCAjaW5zaWdodHMtam1wLW1lbnV7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xufVxuXG4jaW5zaWdodHMtam1wLW1lbnV7XG4gICAgY29sb3I6ICRibHVlO1xufVxuXG4iLCIucGFnZS1iYW5uZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRhbG1vc3RfYXF1YW1hcmluZTtcblxuICAgIEBpbmNsdWRlIGFudGlhbGlhc2VkO1xuXG4gICAgY29sb3I6ICR3aGl0ZTtcblxuICAgIHBhZGRpbmc6IGVtKDMwKSAwO1xuXG4gICAgLmJ0biB7XG4gICAgICAgIEBpbmNsdWRlIG1hcmdpbihlbSgxMCkgMCk7XG4gICAgfVxuXG4gICAgJi53aGl0ZSB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRjb250ZW50X2JnX2NvbG9yO1xuICAgICAgICBjb2xvcjogJGRhcmtfZ3JheTtcbiAgICAgICAgcGFkZGluZzogMzBweCAwIDVweCAwO1xuXG4gICAgICAgIGgxIHtcbiAgICAgICAgICAgIGNvbG9yOiAkYWx0X2dyYXk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAuYXV0aG9yLWxpbmsge1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgIH1cbn1cblxuLnBhZ2UtYmFubmVyLWlubmVyIHtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBwYWRkaW5nOiBlbSgxMCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1heC13aWR0aDogOTYwcHg7XG5cbiAgICBoMSwgaDIsIGgzLCBoNCB7XG4gICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgfVxuXG4gICAgcCB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtbWVkaXVtO1xuICAgICAgICBAaW5jbHVkZSBtYXJnaW4oZW0oMTUpIDApO1xuICAgIH1cblxuICAgIHNtYWxsIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgJi5sZWZ0LWp1c3RpZnl7XG4gICAgICAgIHB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4ucGFnZS1iYW5uZXItc2VhcmNoIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgbWFyZ2luKGVtKDQ1KSBhdXRvIDApO1xuICAgIG1heC13aWR0aDogZW0oNjAwKTtcbn1cbiIsIi50b2dnbGUtbmF2IHtcbiAgY29sb3I6ICNjY2M7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW46IDAgMCAyMHB4O1xufVxuXG4udG9nZ2xlLW5hdi1pdGVtIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuXG4gIGEge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwYWRkaW5nOiA1cHggNy41cHg7XG4gICAgY29sb3I6ICNjY2M7XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIH1cblxuICBhOmhvdmVyIHtcbiAgICBjb2xvcjogJGFsbW9zdF9hcXVhbWFyaW5lO1xuICB9XG5cbiAgYS5hY3RpdmUge1xuICAgIGNvbG9yOiBibGFjaztcbiAgfVxufVxuXG4udG9nZ2xlLWNvbnRlbnQge1xuICBkaXNwbGF5OiBub25lO1xuXG4gICYuYWN0aXZlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxufVxuIiwiLnN1YnNjcmlwdGlvbi1jb250YWluZXIge1xuICBAaW5jbHVkZSBjbGVhcmZpeDtcblxuICBtYXJnaW4tdG9wOiA0MHB4O1xuXG4gIEBpbmNsdWRlIG1xKCRkZXNrdG9wKSB7XG4gICAgbWFyZ2luLXRvcDogNjBweDtcbiAgfVxufVxuXG4uc3Vic2NyaXB0aW9uIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDQwcHg7XG5cbiAgQGluY2x1ZGUgbXEoJHRhYmxldCkge1xuICAgIHdpZHRoOiA0MCU7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgbWFyZ2luOiAyMHB4IDUlIDA7XG4gIH1cbn1cblxuLnN1YnNjcmlwdGlvbi1ib3gge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZWZlZmVmO1xuICBwYWRkaW5nOiAzMHB4IDE1cHg7XG59XG5cbi5zdWJzY3JpcHRpb24tbGFiZWwge1xuICBjb2xvcjogJGRhcmtfZ3JheTtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLnN1YnNjcmlwdGlvbi1wcmljZSB7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luOiAzMHB4IDA7XG5cbiAgLnByaWNlLXZhbHVlIHtcbiAgICBjb2xvcjogJHJlZDtcbiAgICBmb250LXNpemU6IDQ4cHg7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG5cbiAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCkge1xuICAgICAgZm9udC1zaXplOiA2MHB4O1xuICAgIH1cbiAgfVxuXG4gIC5wcmljZS10ZXJtIHtcbiAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gIH1cbn1cblxuLnN1YnNjcmlwdGlvbi10cmlhbC1jb250YWluZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5zdWJzY3JpcHRpb24tZGlzY2xhaW1lciB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIGNvbG9yOiAkZGFyay1ncmF5O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbi8vIE5ldyBTdHlsZXNcbi5jaGVja291dC1jb250ZW50IHtcbiAgICBAaW5jbHVkZSBwYWRkaW5nKHJlbSgxMCkpO1xufVxuLnN1YnNjcmlwdGlvbnMge1xuICAgIEBpbmNsdWRlIGZsZXgtc3BhY2UtYXJvdW5kKCk7XG59XG5cbi5zdWJzY3JpcHRpb25zLWJveCB7XG4gICAgQGluY2x1ZGUgYmFja2dyb3VuZCgkbGlnaHRlc3RfZ3JheSk7XG4gICAgQGluY2x1ZGUgcGFkZGluZyhyZW0oMzApIHJlbSgxNSkpO1xuICAgIG1hcmdpbi1ib3R0b206IHJlbSgkYmFzZV9mb250X3NpemUpO1xuXG4gICAgQGluY2x1ZGUgbXEoJGRlc2t0b3ApIHtcbiAgICAgICAgQGluY2x1ZGUgbWFyZ2luKDApO1xuICAgICAgICB3aWR0aDogcmVtKDQzMHB4KTtcbiAgICB9XG5cbiAgICAmX190aXRsZSB7XG4gICAgICAgIGNvbG9yOiAkZGFyay1ncmF5O1xuICAgICAgICBAaW5jbHVkZSBmb250LW1lZGl1bTtcbiAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IHJlbSgkYmFzZV9mb250X3NpemUpO1xuICAgIH1cblxuICAgICZfX2NvbnRyb2xzIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW46IDAgYXV0bztcblxuICAgIH1cbn1cblxuLnN1YnNjcmlwdGlvbi1idXR0b24ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW46IDAgYXV0bztcblxuICAgICZfX2xhYmVsIHtcbiAgICAgICAgQGluY2x1ZGUgYnRuO1xuICAgIH1cblxuICAgICZfX3JhZGlvIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxufVxuLy8gVmlzdWFsIHJlcHJlc2VudGF0aW9uIG9mIGEgc2VsZWN0ZWQgc3Vic2NyaXB0aW9uXG4uc3Vic2NyaXB0aW9uLWJ1dHRvbl9fcmFkaW86Y2hlY2tlZCArIC5zdWJzY3JpcHRpb24tYnV0dG9uX19sYWJlbCB7XG4gICAgYmFja2dyb3VuZDogJGJ1dHRvbl9ob3Zlcl9iZ19jb2xvcjtcbn1cblxuLmJveC1wcmljaW5nIHtcbiAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBtYXJnaW4tYm90dG9tOiByZW0oMzApO1xuXG4gICAgJl9fcHJpY2Uge1xuICAgICAgICBjb2xvcjogJHJlZDtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDQ4cHgpO1xuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKHJlbSgxMHB4KSAwKTtcblxuICAgICAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDYwcHgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fdGVybSB7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtc2l6ZSgyMHB4KTtcbiAgICAgICAgQGluY2x1ZGUgcGFkZGluZyhyZW0oMTBweCkgMCk7XG4gICAgfVxuXG4gICAgJl9fZGlzY291bnQge1xuICAgICAgICBAaW5jbHVkZSBmb250LXNpemUoMjBweCk7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICB9XG5cbiAgICAmX19wZXJpb2Qge1xuICAgICAgICBjb2xvcjogJGRhcmstZ3JheTtcbiAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDIwcHgpO1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgfVxufVxuXG4uY2hlY2tvdXQtb3B0aW9uIHtcbiAgICAmLmVycm9yIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkcmVkO1xuICAgIH1cbn1cblxuLnN1YnNjcmlwdGlvbi1lcnJvciB7XG4gICAgbWFyZ2luOiAwIGF1dG87XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHBhZGRpbmctdG9wOiByZW0oJG1lZGl1bV9mb250X3NpemUpO1xufVxuXG5zcGFuIHtcbiAgICAvLyB1Z2x5IGhhY2sgdG8gYmV0dGVyIGRpc3BsYXkgZXJyb3IgbWVzc2FnZXNcbiAgICAmLnZhbGlkYXRpb24tZXJyb3Ige1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgY29sb3I6ICRyZWQ7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtZGVmYXVsdDtcbiAgICB9XG59XG4iLCIudGVzdGltb25pYWxzIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIGNsZWFyOiBib3RoO1xuICBtYXJnaW46IDIwcHggMCAzMHB4O1xuXG4gIGNvbG9yOiAkZGFya19ncmF5O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIGZsb2F0OiBub25lO1xufVxuXG4udGVzdGltb25pYWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1zaXplOiAyMXB4O1xuICBsaW5lLWhlaWdodDogMS4yNTtcblxuICBtYXJnaW46IDIwcHggMDtcbiAgcGFkZGluZzogMTBweDtcblxuICAmLmJveGVkIHAge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIHBhZGRpbmc6IDE1cHggMTBweDtcblxuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuXG4gICAgJjphZnRlciB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgYm90dG9tOiAtMTNweDtcbiAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIG1hcmdpbi1sZWZ0OiAtN3B4O1xuXG4gICAgICBib3JkZXI6IDdweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgICAgIGJvcmRlci10b3A6IDdweCBzb2xpZCAjZWVlO1xuICAgIH1cbiAgfVxuXG4gIHAge1xuICAgIG1hcmdpbi1ib3R0b206IDVweDtcbiAgfVxuXG4gIC5xdW90ZWUge1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIH1cblxuICBAaW5jbHVkZSBtcSgkdGFibGV0KSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG5cbiAgICBwYWRkaW5nOiAzMHB4O1xuICAgIHdpZHRoOiA1MCU7XG5cbiAgICAmLnRocmVlLWNvbCB7XG4gICAgICBwYWRkaW5nOiAzMHB4IDE1cHg7XG4gICAgICB3aWR0aDogMzMuMyU7XG4gICAgfVxuICB9XG59XG4iLCIuaW1hZ2Utc2hvd2Nhc2Uge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG92ZXJmbG93LXg6IHNjcm9sbDtcbiAgb3ZlcmZsb3cteTogaGlkZGVuO1xuICBAaW5jbHVkZSBtcSgkZGVza3RvcCl7XG4gICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgZmlndXJlIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICBwYWRkaW5nOiBlbSgxMHB4KTtcbiAgICBtYXgtd2lkdGg6IGVtKDIwMHB4KTtcblxuICAgIGEgeyAvLyBkaXNhYmxlIGxpbmtzXG4gICAgICBjdXJzb3I6IGRlZmF1bHQ7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgQGluY2x1ZGUgdXNlci1zZWxlY3Qobm9uZSk7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG5cbiAgICAubWV0YSB7IGRpc3BsYXk6IG5vbmU7IH0gLy8gZ2V0IHJpZCBvZiB0aGUgJ2ZlYXR1cmVkIHN0dWR5IGd1aWRlJyBsaW5lXG5cbiAgICBmaWdjYXB0aW9uIHtcbiAgICAgIG1hcmdpbi10b3A6IGVtKDEwcHgpO1xuXG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6IHdoaXRlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uaW1hZ2Utc2hvd2Nhc2UtaW5uZXIge1xuICB6LWluZGV4OiAxO1xuICBtYXJnaW46IDAgYXV0bztcbiAgd2lkdGg6IGVtKDEyMDBweCk7XG59XG4iLCIuYmlnLWljb24ge1xuICBjb2xvcjogJGFsbW9zdF9hcXVhbWFyaW5lO1xuICBmb250LXNpemU6IDQ4cHg7XG5cbiAgQGluY2x1ZGUgbXEoJGRlc2t0b3ApIHtcbiAgICBmb250LXNpemU6IDY0cHg7XG4gIH1cblxuICAmLmJpZ2dlciB7XG4gICAgZm9udC1zaXplOiA2NHB4O1xuXG4gICAgQGluY2x1ZGUgbXEoJGRlc2t0b3ApIHtcbiAgICAgIGZvbnQtc2l6ZTogODRweDtcbiAgICB9XG4gIH1cbn1cbiIsIi50aHJlZS11cCB7XG4gIEBpbmNsdWRlIGNsZWFyZml4O1xuICBtYXJnaW46IDMwcHggMDtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogMzAwO1xuXG4gICYuY2VudGVyIHtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbn1cblxuLnRocmVlLXVwLWNvbHVtbiB7XG4gIEBpbmNsdWRlIG1xKCR0YWJsZXQpIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogMzMuMyU7XG4gICAgcGFkZGluZzogMTBweCAxNXB4O1xuICB9XG59XG5cbi50aHJlZS11cC1oZWQge1xuICBjb2xvcjogJGRhcmtfZ3JheTtcbiAgZm9udC1zaXplOiAyMXB4O1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbWFyZ2luOiAwIDAgNXB4IDA7XG5cbiAgQGluY2x1ZGUgbXEoJHRhYmxldCkge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgfVxufVxuIiwiLmJpZy1oZWFkbGluZSB7XG4gIGNvbG9yOiAkZGFya19ncmF5O1xuICBAaW5jbHVkZSBhbnRpYWxpYXNlZDtcbiAgQGluY2x1ZGUgZm9udC1zaXplKDMwcHgpO1xuICBmb250LXdlaWdodDogMzAwO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgQGluY2x1ZGUgbXEoJGRlc2t0b3ApIHtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoNDBweCk7XG4gIH1cblxuICAmLnNlY29uZGFyeSB7XG4gICAgY29sb3I6ICRhbHRfZ3JheTtcbiAgICBAaW5jbHVkZSBmb250LXNpemUoMjRweCk7XG5cbiAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCkge1xuICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDMwcHgpOztcbiAgICB9XG4gIH1cbn1cbiIsIi5mcmVlLXdlZWstb2ZmZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgLmJsdXJiIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICBAaW5jbHVkZSBtcSgkZGVza3RvcCkge1xuICAgIC5ibHVyYiB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgbWF4LXdpZHRoOiA1NSU7XG4gICAgfVxuXG4gICAgLmJ0biB7XG4gICAgICBtYXgtd2lkdGg6IDQwJTtcbiAgICB9XG4gIH1cbn1cbiIsIi5zaWRlYmFyLXNlY3Rpb24ge1xuICAgIG1hcmdpbi10b3A6IGVtKDI1KTtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgIH1cblxuICAgIC5kZWsge1xuXG4gICAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuY2VudGVyIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICYtaGVhZGVyIHtcbiAgICAgICAgY29sb3I6ICRkYXJrX2dyYXk7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICAgIEBpbmNsdWRlIGZvbnQtZGVmYXVsdDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICB9XG5cbn1cblxuLy8gU2lkZWJhciB2YXJpYW50IGFkZHMgYSBsaXR0bGUgbW9yZSByb29tXG4uc2lkZWJhci1wYWRkZWQge1xuICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKSB7XG4gICAgICAgIHBhZGRpbmctbGVmdDogZW0oMjApO1xuICAgIH1cbn1cbiIsIi5saXN0LW5vLXN0eWxlIHtcbiAgQGluY2x1ZGUgZm9udC1tZWRpdW07XG4gIGxpbmUtaGVpZ2h0OiAxLjM7XG5cbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBwYWRkaW5nOiAwO1xuXG4gIGxpIHtcbiAgICBtYXJnaW4tYm90dG9tOiA3LjVweDtcbiAgfVxufVxuXG4ubGlzdC1sYXJnZS10eXBlIHtcbiAgQGluY2x1ZGUgZm9udC1tZWRpdW07XG5cbiAgbGkge1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gIH1cbn1cblxuLmxpc3QtemVicmEge1xuICBsaSB7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gIH1cblxuICBsaTpudGgtY2hpbGQoZXZlbikge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWU7XG4gIH1cbn1cblxuLmxpc3QtbGlua3Mge1xuICBjb2xvcjogJGxpZ2h0X2dyYXk7XG4gIEBpbmNsdWRlIGZvbnQtc21hbGw7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBtYXJnaW4tbGVmdDogNXB4O1xuXG4gIHNwYW4ge1xuICAgIHZlcnRpY2FsLWFsaWduOiB0b3A7XG4gIH1cbn1cblxuLmV4cGxvZGUtdGFiLWxpc3Qge1xuICBAaW5jbHVkZSBtcSgkZGVza3RvcCkge1xuICAgIG5hdi50YWJzID4gdWwgPiBsaSA+IGEge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBAaW5jbHVkZSBmb250LWRlZmF1bHQ7XG4gICAgICBtYXJnaW4tYm90dG9tOiA1cHg7XG5cbiAgICAgICYub3BlbmFibGUge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgIG5hdi50YWJzIGxpIGEuc2VsZWN0ZWQge1xuICAgICAgY29sb3I6IGJsYWNrICFpbXBvcnRhbnQ7XG5cbiAgICAgICY6aG92ZXIgeyBjb2xvcjogJHJlZDsgfVxuICAgIH1cblxuICAgIG5hdi50YWJzIHVsIHVsIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIH1cblxuICAgIG5hdi50YWJzIHVsIGxpIHtcbiAgICAgIGJvcmRlci1yaWdodDogMDtcbiAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgIGxpIGEge1xuICAgICAgICBjb2xvcjogIzc3NztcbiAgICAgICAgcGFkZGluZzogMCA0cHg7XG5cbiAgICAgICAgJjpob3ZlciB7IGNvbG9yOiAkcmVkOyB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiNicm93c2UucG9wdWxhciBvbCB7XG4gIGxpc3Qtc3R5bGUtdHlwZTogZGVjaW1hbCAhaW1wb3J0YW50O1xuICBwYWRkaW5nOiAwIDAgMCA0NXB4ICFpbXBvcnRhbnQ7XG59XG5cbiIsIi5oaWRlLWZvci1kZXNrdG9wIHtcbiAgQGluY2x1ZGUgbXEoJGRlc2t0b3ApIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG5cbi5oaWRlLWZvci1tb2JpbGUge1xuICBAaW5jbHVkZSBtcSgkbm90X2Rlc2t0b3ApIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCIvLyB1c2luZyBtdWxlLXJlZGVzaWduIHNlYXJjaFxuZm9ybS5zZWFyY2gge1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuICBpbnB1dFt0eXBlPVwidGV4dFwiXSxcbiAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMTBweCAxNXB4O1xuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGxpZ2h0ZXN0X2dyYXk7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIGZvbnQtc2l6ZTogZW0oMTYsMTUpO1xuXG4gICAgLy8gSUUgY2xlYXIgZmllbGRcbiAgICAmOjotbXMtY2xlYXIge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogNXB4O1xuICAgIHRvcDogMDtcblxuICAgIHdpZHRoOiBhdXRvO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcblxuICAgIGNvbG9yOiAkcmVkO1xuICAgIGZvbnQtc2l6ZTogZW0oMjQsMTUpO1xuICB9XG59XG4iLCIjc2lkZWJhciB7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXg7XG5cbiAgICAuYXNpZGUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXNpZGVfYmdfY29sb3Jfc3RhbmRhcmQ7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcblxuICAgICAgICBAaW5jbHVkZSBwYWRkaW5nKGVtKDE1KSBlbSgyMCkpO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiBlbSgyMCk7XG5cbiAgICAgICAgaGVhZGVyIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICAgICAgQGluY2x1ZGUgYW50aWFsaWFzZWQ7XG5cbiAgICAgICAgICAgIGgzIHtcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LWxhcmdlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgICAgICBwIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICAubWVkaWEge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgfVxuXG4gICAgICAgICYuc3RhbmRhcmQge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcblxuICAgICAgICAgICAgaGVhZGVyIHtcblxuICAgICAgICAgICAgICAgIGgxLGgyLGgzLGg0LGg1IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRibHVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYudXBncmFkZSB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYXNpZGVfYmdfY29sb3JfaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgJi5vcmFuZ2Uge1xuICAgICAgICAgICAgaGVhZGVyIHtcblxuICAgICAgICAgICAgICAgIGgxLGgyLGgzLGg0LGg1IHtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRvcmFuZ2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5ib3gge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICAgICAgICBoZWFkZXIge1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogMzAwO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IGVtKCRiYXNlX2ZvbnRfc2l6ZSk7XG5cbiAgICAgICAgICAgICAgICBoMSxoMixoMyxoNCxoNSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkY29weV9jb2xvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBwIHtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIjY29udGVudC1oZWFkZXIge1xuICAgIGgxIHtcbiAgICAgICAgY29sb3I6ICRkYXJrX2dyYXk7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IGVtKDVweCk7XG4gICAgfVxufVxuIiwiQGltcG9ydCBcImNvbmZcIjtcblxuJG5hdl93aWR0aDogNzUlO1xuXG5odG1se1xuICAgIGJhY2tncm91bmQ6ICRkYXJrX2dyYXk7XG59XG5cbmh0bWwsIGJvZHksICNwYWdlLXdyYXBwZXIsIG5hdi5tYWlue1xuICAgIGJvcmRlcjogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG59XG5cbiNwYWdlLXdyYXBwZXJ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgJi5uYXYtb3BlbntcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG59XG5cbm5hdi5tYWlue1xuICAgIGJhY2tncm91bmQ6ICMzYTQwNDM7XG4gICAgZm9udC1mYW1pbHk6ICRvcGVuX3NhbnM7XG4gICAgb3ZlcmZsb3cteTogc2Nyb2xsO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICB6LWluZGV4OiAxO1xuXG4gICAgLy8ga2VlcCB0aGUgbmF2IGZyb20gZmxhc2hpbmdcbiAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCl7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuXG4gICAgLm5hdi1vcGVuICYge1xuICAgICAgICAvLyBtYWtlIHRoZSBzY3JvbGxpbmcgc21vb3RoLCBidXQgb25seSBvbiBvcGVuIHNvIGl0IGRvZXNuJ3RcbiAgICAgICAgLy8gYnJlYWsgJ3RvcC1jbG9jay1zY3JvbGwtdG8tdG9wJyBmdW5jdGlvbmFsaXR5XG4gICAgICAgIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5nOiB0b3VjaDtcbiAgICB9XG5cbiAgICA+ICoge1xuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlWigwcHgpO1xuICAgIH1cblxuICAgIC51c2Vye1xuICAgICAgICBiYWNrZ3JvdW5kOiAjMmMzMTMzO1xuICAgICAgICBwYWRkaW5nOiByZW0oMTApO1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xuXG4gICAgICAgIGltZ3tcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIH1cblxuICAgICAgICAuaW5mb3tcbiAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxMHB4O1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBzcGFue1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICYubmFtZXtcbiAgICAgICAgICAgICAgICBjb2xvcjogI0ZGRjtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYW50aWFsaWFzZWQ7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDI4cHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAmLnBvaW50c3tcbiAgICAgICAgICAgICAgICBjb2xvcjogI2Q1ZWFmNDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDEycHg7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgYW50aWFsaWFzZWQ7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEycHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1bHtcbiAgICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICM2NTZiNmU7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICBsaXtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjNjU2YjZlO1xuICAgICAgICAgICAgZm9udC1zaXplOiByZW0oMTgpO1xuICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgICBjb2xvcjogJHllbGxvdztcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMTBweCAyMHB4IDEwcHggMTJweDtcbiAgICAgICAgICAgICAgICB3aWR0aDogNzUlO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGFudGlhbGlhc2VkO1xuXG4gICAgICAgICAgICAgICAgJjpob3ZlcntcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGxpZ2h0ZW4oJHllbGxvdywgMTAlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzcGFuLnNzLWljb257XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgICAgICAgICAgICAgICBmb250LXNpemU6IDc1JTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZy10b3A6IDRweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYuYWx0e1xuICAgICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkbGlnaHRfYmx1ZTtcblxuICAgICAgICAgICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGxpZ2h0ZW4oJGxpZ2h0X2JsdWUsIDEwJSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICYub3BlbntcbiAgICAgICAgICAgICAgICB1bHtcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB1bHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwO1xuXG4gICAgICAgICAgICAgICAgbGl7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwO1xuXG4gICAgICAgICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDIwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogbGlnaHRlbigkeWVsbG93LCAxMCUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBsaWdodGVuKCR5ZWxsb3csIDIwJSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmOmxhc3QtY2hpbGR7XG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG5vbmU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmxvZ2dlZC1pbntcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSg0MCk7XG4gICAgICAgICAgICBsaXtcbiAgICAgICAgICAgICAgICBhe1xuICAgICAgICAgICAgICAgICAgICBjb2xvcjogI2IwYzJjYTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAubW9iaWxlLW5vdGlmaWNhdGlvbiB7XG4gICAgICAgICAgICAgICAgY29sb3I6ICR3aGl0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfVxufVxuXG5kaXYuc29jaWFsQ291bnRlcntcbiAgICBAaW5jbHVkZSBmb250LW1lZGl1bTtcbiAgICBiYWNrZ3JvdW5kOiAjRDEyNjI2O1xuICAgIHBhZGRpbmc6IDAgcmVtKDVweCk7XG4gICAgY29sb3I6ICNGRkY7XG4gICAgYm9yZGVyLXJhZGl1czogcmVtKDRweCk7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5kaXYuc29jaWFsQ29udGFpbmVye1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiByZW0oMzVweCk7XG4gICAgQGluY2x1ZGUgbXEoJGRlc2t0b3ApIHtcbiAgICAgICAgcG9zaXRpb246IHN0YXRpYztcbiAgICAgICAgbWFyZ2luOiByZW0oMjVweCkgMCAwIHJlbSg3cHgpO1xuICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgfVxufVxuXG4vLyB0aGlzIGhvbGRzIHRoZSBjb250ZW50cyBvZiB0aGUgcGFnZVxuLy8gb24gbW9iaWxlL3RhYmxldCwgdGhpcyBpcyB3aGF0IHNsaWRlcyByaWdodCB3aGVuIHRoZSB1c2VyIGFjdGl2YXRlcyB0aGUgbmF2XG5kaXZbcm9sZT1tYWluXXtcbiAgICBiYWNrZ3JvdW5kOiAjRkZGO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDI7XG5cbiAgICAvLyBoYW5kbGUgdGhlIG9wZW4gbmF2IHRyYW5zaXRpb25cbiAgICAvLyB0aGUgYmV6aWVyIGN1cnZlIGdpdmVzIGl0IGEgY3VzdG9tIGFuaW1hdGlvbiB0aW1pbmdcbiAgICAtd2Via2l0LXRyYW5zaXRpb246IGxlZnQgLjNzIGN1YmljLWJlemllciguMDMsIC4zMywgLjQwLCAuOTApO1xuICAgIHRyYW5zaXRpb246IGxlZnQgLjNzIGN1YmljLWJlemllciguMDMsIC4zMywgLjQwLCAuOTApO1xuXG4gICAgLy8gdGhlIG5hdi1vcGVuIGNsYXNzIGdldHMgYXBwbGllZCB0byAjcGFnZS13cmFwcGVyLCBhIHBhcmVudCBkaXYgb2YgZXZlcnlcbiAgICAvLyBlbGVtZW50IG9uIHRoZSBwYWdlXG4gICAgLm5hdi1vcGVuICZ7XG4gICAgICAgIGxlZnQ6ICRuYXZfd2lkdGg7XG4gICAgICAgIGJveC1zaGFkb3c6IC01cHggMCAyMHB4IHJnYmEoMCwwLDAsLjc1KTtcbiAgICAgICAgLy8gaGVscHMgcHJldmVudCBmbGlja2VyIG9uIG1vYmlsZVxuICAgICAgICAvLyAtd2Via2l0LWJhY2tmYWNlLXZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICB9XG59XG4iLCIvLyB0aGUgZ2xvYmFsIGhlYWRlciBmaWxlLCB0aGlzIHNob3VsZCBkZWZpbmUgdGhlIG92ZXJhbGxcbi8vIGxvb2sgb2YgdGhlIHNpdGUgaGVhZGVyXG4vLyBmdW5jdGlvbmFsIHN0eWxlcyBtYXkgYmUgb3ZlcndyaXR0ZW4gYnkgbmF2aWdhdGlvbiBwYXR0ZXJuXG4vLyBzdHlsZXMgKGUuZy4gbmF2X29mZl9jYW52YXNfbGVmdClcblxuLyogU1RBUlQgSEVBREVSICovXG4jYmFubmVye1xuICAgIGJhY2tncm91bmQ6ICRncmF5O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiA2O1xuXG4gICAgLndyYXBwZXJ7XG4gICAgICAgIGNvbG9yOiAjZjhmOGY4O1xuICAgICAgICBAaW5jbHVkZSBmb250LWxhcmdlO1xuICAgICAgICBsaW5lLWhlaWdodDogMjJweDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBwYWRkaW5nOiAxMHB4O1xuICAgICAgICB0ZXh0LXNoYWRvdzogMCAycHggMXB4IHJnYmEoMCwwLDAsLjUpO1xuICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xuXG4gICAgICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKXtcbiAgICAgICAgICAgIGhlaWdodDogODBweDtcbiAgICAgICAgICAgIG1heC13aWR0aDogOTYwcHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGJ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTBweCA4cHggMTBweDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4O1xuICAgICAgICB3aWR0aDogNDBweDtcbiAgICAgICAgQGluY2x1ZGUgYW50aWFsaWFzZWQ7XG5cblxuICAgICAgICAmLm5hdntcbiAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCl7XG4gICAgICAgICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gZ2l2ZSB0aGUgb3BlbiBuYXYgYW4gYWN0aXZlIHN0YXRlXG4gICAgICAgICAgICAubmF2LW9wZW4gJntcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMmUzMzM2O1xuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAyMXB4IHJnYmEoMCwwLDAsLjQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5zZWFyY2h7XG4gICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhLmxvZ297XG4gICAgICAgIGJhY2tncm91bmQ6IHVybCgvaW1hZ2VzL2ltZy9sb2dvLW1vYmlsZUAyeC5wbmcpIDAgNHB4IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiAxNDFweCAzNS41cHg7XG4gICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICBoZWlnaHQ6IDM5LjVweDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xuICAgICAgICBAaW5jbHVkZSBjYWxjKG1hcmdpbi1sZWZ0LCAnNTAlIC0gNzAuNXB4Jyk7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdGV4dC1pbmRlbnQ6IC0zMTQxNTlweDtcbiAgICAgICAgd2lkdGg6IDE0MXB4O1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCl7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoL2ltYWdlcy9pbWcvbG9nb0AyeC5wbmcpIDAgMCBuby1yZXBlYXQ7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDE4NnB4IDQ2cHg7XG4gICAgICAgICAgICBoZWlnaHQ6IDQ2cHg7XG4gICAgICAgICAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICAgICAgICB3aWR0aDogMTg2cHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuYXZ7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuXG4gICAgICAgIEBpbmNsdWRlIGFudGlhbGlhc2VkO1xuXG4gICAgICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKXtcbiAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgICAgICBAaW5jbHVkZSBjbGVhcmZpeCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdWx7XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgIHBhZGRpbmc6IDA7XG5cbiAgICAgICAgICAgIGxpe1xuICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICRsaWdodF9ncmF5O1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LW1lZGl1bTtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwIDdweDtcbiAgICAgICAgICAgICAgICB0ZXh0LXNoYWRvdzogbm9uZTtcblxuICAgICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkeWVsbG93O1xuICAgICAgICAgICAgICAgICAgICAmOmhvdmVye1xuICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRsaW5rX2hlYWRlcl9jb2xvcl9ob3ZlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuZGVza3RvcHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKXtcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDI1cHggMCAwIDI0MHB4O1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgY2FsYyh3aWR0aCwgJzEwMCUgLSA0MTBweCcpO1xuICAgICAgICAgICAgICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHVsLnNpdGV7XG5cbiAgICAgICAgICAgICAgICBsaXtcblxuICAgICAgICAgICAgICAgICAgICAuc3MtaWNvbntcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgICAgICAgICAgJi5zZWxlY3RlZHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICNGRkY7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAmLmFjdGl2ZXtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRsaWdodF9ibHVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkbGlua19oZWFkZXJfY29sb3JfaG92ZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdWx7XG4gICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgJi5vcGVue1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB1bHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JheTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA0cHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdDogLTVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNXB4IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxNTBweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB6LWluZGV4OiAxMDAxO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zbWFsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogNXB4IDAgNXB4IDVweDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYudXNlcntcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKXtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMjVweDtcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdWwuc2lnbi1pbntcbiAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMDtcblxuICAgICAgICAgICAgICAgIGxpe1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmLmxvZ2dlZC1pbntcbiAgICAgICAgICAgICAgICBmbG9hdDogcmlnaHQ7XG4gICAgICAgICAgICAgICAgdGV4dC1zaGFkb3c6IG5vbmU7XG4gICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbSgyNXB4KTtcbiAgICAgICAgICAgICAgICAub3BlbmFibGUtdmlzaWJsZTpob3ZlciB7XG4gICAgICAgICAgICAgICAgICAgIC5vcGVuYWJsZSwgc3Bhbi5zcy1pY29uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkbGlua19oZWFkZXJfY29sb3JfaG92ZXI7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAub3BlbmFibGUge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LW1lZGl1bTtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICR5ZWxsb3c7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc3Bhbi5zcy1pY29ue1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXgtc21hbGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZGl2LmluZm97XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdWwuc3Vie1xuICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiAkZ3JheTtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IC0xMHB4O1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDE0MHB4O1xuXG4gICAgICAgICAgICAgICAgICAgIGxpe1xuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb250LXNtYWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICYub3BlbntcbiAgICAgICAgICAgICAgICAgICAgdWwuc3Vie1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC5tb2JpbGUtbm90aWZpY2F0aW9uIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4uc2l0ZS1zZWFyY2gge1xuICAgIGJhY2tncm91bmQ6ICRncmF5O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkZ3JheTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luLXRvcDogLTQwcHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgei1pbmRleDogNTtcbiAgICAvLyBoYW5kbGUgdGhlIG9wZW4gdHJhbnNpdGlvblxuICAgIC8vIHRoZSBiZXppZXIgY3VydmUgZ2l2ZXMgaXQgYSBjdXN0b20gYW5pbWF0aW9uIHRpbWluZ1xuICAgIC13ZWJraXQtdHJhbnNpdGlvbjogbWFyZ2luLXRvcCAuM3MgY3ViaWMtYmV6aWVyKC4wMywgLjMzLCAuNDAsIC45MCk7XG4gICAgdHJhbnNpdGlvbjogbWFyZ2luLXRvcCAuM3MgY3ViaWMtYmV6aWVyKC4wMywgLjMzLCAuNDAsIC45MCk7XG5cbiAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCkge1xuICAgICAgICBtYXJnaW4tdG9wOiAtNjBweDtcbiAgICB9XG5cbiAgICAmLm9wZW4ge1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuXG4gICAgICAgIC5zaXRlLXNlYXJjaF9fd3JhcHBlciB7XG4gICAgICAgICAgICBib3gtc2hhZG93OiAwIDAgMjBweCByZ2JhKDAsMCwwLC43NSk7XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1xKCRkZXNrdG9wKXtcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBub25lO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fd3JhcHBlciB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDAgNXB4IDVweCA1cHg7XG5cbiAgICAgICAgLy8gY2VudGVyIGZvcm1cbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICAgICAgQGluY2x1ZGUgbXEoJGRlc2t0b3Ape1xuICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgICAgICAgIG1heC13aWR0aDogOTYwcHg7XG4gICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgJl9fZm9ybSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgfVxuXG4gICAgJl9fY29udHJvbCB7XG4gICAgICAgIGJvcmRlcjogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIH1cblxuICAgICZfX3F1ZXJ5IHtcbiAgICAgICAgQGluY2x1ZGUgY2FsYyh3aWR0aCwgJzEwMCUgLSA1NXB4Jyk7XG4gICAgICAgIGxlZnQ6IDVweDtcblxuICAgICAgICBAaW5jbHVkZSBtcSgkZGVza3RvcCkge1xuICAgICAgICAgICAgQGluY2x1ZGUgY2FsYyh3aWR0aCwgJzEwMCUgLSA2NXB4Jyk7XG4gICAgICAgICAgICBsZWZ0OiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gdXNpbmcgZmllbGQgc2VsZWN0b3IgYmVjYXVzZVxuICAgIC8vIHN0eWxlcyBlbHNld2hlcmUgYXJlIHNwZWNpZmllZFxuICAgIC8vIHRoaXMgd2F5IDovXG4gICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXS5zcy1pY29uIHtcbiAgICAgICAgcmlnaHQ6IDVweDtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiBpbml0aWFsO1xuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG5cbiAgICAgICAgQGluY2x1ZGUgbXEoJGRlc2t0b3ApIHtcbiAgICAgICAgICAgIHJpZ2h0OiAxMHB4O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vKiBFTkQgSEVBREVSICovXG4iLCIvKiBTVEFSVCBGT09URVIgKi9cbiNmb290ZXJ7XG4gICAgQGluY2x1ZGUgY2xlYXJmaXgoKTtcbiAgICBiYWNrZ3JvdW5kOiAkZ3JheTtcbiAgICBmb250LWZhbWlseTogJG9wZW5fc2FucztcbiAgICBwYWRkaW5nOiA0MHB4IDEwcHg7XG5cbiAgICBAaW5jbHVkZSBhbnRpYWxpYXNlZDtcblxuICAgIEBpbmNsdWRlIG1xKCR0YWJsZXQpe1xuICAgICAgICBwYWRkaW5nOiA0MHB4IDIwcHg7XG4gICAgfVxuXG4gICAgLndyYXBwZXJ7XG4gICAgICAgIG1heC13aWR0aDogOTYwcHg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cblxuICAgIC5sb2dve1xuICAgICAgICBiYWNrZ3JvdW5kOiB1cmwoL2ltYWdlcy9pbWcvbG9nby1tb2JpbGVAMngucG5nKSAwIDAgbm8tcmVwZWF0O1xuICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IDE0MXB4IDM1LjVweDtcbiAgICAgICAgaGVpZ2h0OiAzOS41cHg7XG4gICAgICAgIHdpZHRoOiAxNDFweDtcbiAgICB9XG5cbiAgICBwe1xuICAgICAgICBjb2xvcjogJHdoaXRlO1xuICAgICAgICBAaW5jbHVkZSBmb250LXNtYWxsO1xuXG4gICAgICAgICYuc3MtaWNvbntcbiAgICAgICAgICAgIGNsZWFyOiBsZWZ0O1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC1zaXplKDI4cHgpO1xuICAgICAgICAgICAgcGFkZGluZy10b3A6IDA7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG5cbiAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRhbHRfZ3JheTtcblxuICAgICAgICAgICAgICAgICY6aG92ZXJ7XG4gICAgICAgICAgICAgICAgICAgIGNvbG9yOiAkYmx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAmLmJvaWxlcnBsYXRle1xuICAgICAgICAgICAgQGluY2x1ZGUgZm9udC14LXNtYWxsO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDJlbTtcbiAgICAgICAgICAgIGNvbG9yOiAkYWx0X2dyYXk7XG5cbiAgICAgICAgICAgIGF7XG4gICAgICAgICAgICAgICAgY29sb3I6ICRsaWdodF9ncmF5O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXtcbiAgICAgICAgY29sb3I6ICR5ZWxsb3c7XG5cbiAgICAgICAgJjp2aXNpdGVke1xuICAgICAgICAgICAgY29sb3I6IGxpZ2h0ZW4oJHllbGxvdywgMTAlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHVse1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG5cbiAgICAgICAgJi50d28tdXB7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cblxuICAgICAgICBsaXtcbiAgICAgICAgICAgIEBpbmNsdWRlIGZvbnQtc21hbGw7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxMHB4IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBzZWN0aW9ue1xuICAgICAgICBtYXJnaW46IDAgMCAyMHB4IDA7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG5cbiAgICAgICAgJi5tYWlue1xuICAgICAgICAgICAgQGluY2x1ZGUgbXEoJGRlc2t0b3Ape1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgICAgICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICYuYmxvY2t7XG4gICAgICAgICAgICBAaW5jbHVkZSBtcSgkdGFibGV0KXtcbiAgICAgICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgbXEoJGRlc2t0b3Ape1xuICAgICAgICAgICAgICAgIHdpZHRoOiAyNSU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBoNHtcbiAgICAgICAgICAgIGNvbG9yOiAkd2hpdGU7XG4gICAgICAgICAgICBtYXJnaW46IDAgMCAxMHB4IDA7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNtYWxsO1xuICAgICAgICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgfVxuICAgIH1cbn1cbi8qIEVORCBGT09URVIgKi9cblxuI3N1YmZvb3RlcntcbiAgICBiYWNrZ3JvdW5kOiAkYXNpZGVfYmdfY29sb3Jfc3RhbmRhcmQ7XG4gICAgZm9udC1mYW1pbHk6ICRvcGVuX3NhbnM7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBAaW5jbHVkZSBhbnRpYWxpYXNlZDtcblxuICAgIGgze1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDBweDtcbiAgICB9XG5cbiAgICAud3JhcHBlcntcbiAgICAgICAgbWF4LXdpZHRoOiA5NjBweDtcbiAgICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG4gICAgfVxuXG4gICAgdWx7XG4gICAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG5cbiAgICAgICAgbGl7XG4gICAgICAgICAgICBAaW5jbHVkZSBmb250LXNtYWxsO1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgOHB4IDA7XG4gICAgICAgICAgICBwYWRkaW5nOiAwIDVweCAwIDA7XG4gICAgICAgIH1cblxuICAgICAgICBtYXJnaW46IDAgMCAxMHB4IDA7XG4gICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgIEBpbmNsdWRlIGNsZWFyZml4KCk7XG5cbiAgICAgICAgQGluY2x1ZGUgbXEoJHRhYmxldCl7XG4gICAgICAgICAgICB3aWR0aDogNTAlO1xuICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgbXEoJGRlc2t0b3Ape1xuICAgICAgICAgICAgd2lkdGg6IDIwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIiNsaXRlYm94LW92ZXJsYXkge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuXG4gICAgJi52aXNpYmxlIHtcbiAgICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICBib3R0b206IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuNik7XG4gICAgICAgIHotaW5kZXg6IDk5OTk5ODtcbiAgICB9XG59XG5cbiNsaXRlYm94LXBvcHVwIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgJi52aXNpYmxlIHtcbiAgICAgICAgZGlzcGxheTogaW5oZXJpdDtcbiAgICAgICAgei1pbmRleDogOTk5OTk5O1xuICAgIH1cblxuICAgIC5saXRlYm94LWNvbnRlbnQge1xuICAgICAgICBkaXNwbGF5OiBpbmhlcml0O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogMDtcbiAgICAgICAgYm90dG9tOiAwO1xuICAgICAgICBsZWZ0OiAwO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICB9XG59Il0sIm1hcHBpbmdzIjoiQUNBQSw0REFBNEQ7QUFFNUQ7O2dGQUVnRjtBQUVoRjs7R0FFRztBRE1ILE9BQU8sQ0FBUCxpREFBTztBQUNQLE9BQU8sQ0FBUCwyQkFBTztBQUNQLE9BQU8sQ0FBUCw2QkFBTztBQ05QLEFBQUEsT0FBTztBQUNQLEFBQUEsS0FBSztBQUNMLEFBQUEsT0FBTztBQUNQLEFBQUEsVUFBVTtBQUNWLEFBQUEsTUFBTTtBQUNOLEFBQUEsTUFBTTtBQUNOLEFBQUEsTUFBTTtBQUNOLEFBQUEsTUFBTTtBQUNOLEFBQUEsSUFBSTtBQUNKLEFBQUEsR0FBRztBQUNILEFBQUEsT0FBTztBQUNQLEFBQUEsT0FBTyxDQUFDO0VBQ0osT0FBTyxFQUFFLEtBQU0sR0FDbEI7O0FBRUQ7O0dBRUc7QUFFSCxBQUFBLEtBQUs7QUFDTCxBQUFBLE1BQU07QUFDTixBQUFBLEtBQUssQ0FBQztFQUNGLE9BQU8sRUFBRSxZQUFhO0VBQ3RCLFFBQVEsRUFBRSxNQUFPO0VBQ2pCLEtBQUssRUFBRSxDQUFFLEdBQ1o7O0FBRUQ7OztHQUdHO0FBRUgsQUFBb0IsS0FBZixBQUFBLElBQUssRUFBQSxBQUFBLEFBQVMsUUFBUixBQUFBLEdBQVc7RUFDbEIsT0FBTyxFQUFFLElBQUs7RUFDZCxNQUFNLEVBQUUsQ0FBRSxHQUNiOztBQUVEOzs7R0FHRztDQUVILEFBQUEsQUFBTyxNQUFOLEFBQUEsRUFBUTtFQUNMLE9BQU8sRUFBRSxJQUFLLEdBQ2pCOztBQUVEOztnRkFFZ0Y7QUFFaEY7Ozs7O0dBS0c7QUFFSCxBQUFBLElBQUksQ0FBQztFQUNELFNBQVMsRUFBRSxJQUFLO0VBQUUsT0FBTztF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 */
