/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Set default font family to sans-serif.
 * 2. Prevent iOS and IE text size adjust after device orientation change,
 *    without disabling user zoom.
 */
@import url('https://fonts.googleapis.com/css?family=Lato:300,400,700&subset=latin-ext');
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */
}
/**
 * Remove default margin.
 */
body {
  margin: 0;
}
/* HTML5 display definitions
   ========================================================================== */
/**
 * Correct `block` display not defined for any HTML5 element in IE 8/9.
 * Correct `block` display not defined for `details` or `summary` in IE 10/11
 * and Firefox.
 * Correct `block` display not defined for `main` in IE 11.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}
/**
 * 1. Correct `inline-block` display not defined in IE 8/9.
 * 2. Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  /* 1 */
  vertical-align: baseline;
  /* 2 */
}
/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */
audio:not([controls]) {
  display: none;
  height: 0;
}
/**
 * Address `[hidden]` styling not present in IE 8/9/10.
 * Hide the `template` element in IE 8/9/10/11, Safari, and Firefox < 22.
 */
[hidden],
template {
  display: none;
}
/* Links
   ========================================================================== */
/**
 * Remove the gray background color from active links in IE 10.
 */
a {
  background-color: transparent;
}
/**
 * Improve readability of focused elements when they are also in an
 * active/hover state.
 */
a:active,
a:hover {
  outline: 0;
}
/* Text-level semantics
   ========================================================================== */
/**
 * Address styling not present in IE 8/9/10/11, Safari, and Chrome.
 */
abbr[title] {
  border-bottom: 1px dotted;
}
/**
 * Address style set to `bolder` in Firefox 4+, Safari, and Chrome.
 */
b,
strong {
  font-weight: bold;
}
/**
 * Address styling not present in Safari and Chrome.
 */
dfn {
  font-style: italic;
}
/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari, and Chrome.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
}
/**
 * Address styling not present in IE 8/9.
 */
mark {
  background: #ff0;
  color: #000;
}
/**
 * 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;
}
/* Embedded content
   ========================================================================== */
/**
 * Remove border when inside `a` element in IE 8/9/10.
 */
img {
  border: 0;
}
/**
 * Correct overflow not hidden in IE 9/10/11.
 */
svg:not(:root) {
  overflow: hidden;
}
/* Grouping content
   ========================================================================== */
/**
 * Address margin not present in IE 8/9 and Safari.
 */
figure {
  margin: 1em 40px;
}
/**
 * Address differences between Firefox and other browsers.
 */
hr {
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  height: 0;
}
/**
 * Contain overflow in all browsers.
 */
pre {
  overflow: auto;
}
/**
 * Address odd `em`-unit font size rendering in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  font-size: 1em;
}
/* Forms
   ========================================================================== */
/**
 * Known limitation: by default, Chrome and Safari on OS X allow very limited
 * styling of `select`, unless a `border` property is set.
 */
/**
 * 1. Correct color not being inherited.
 *    Known issue: affects color of disabled elements.
 * 2. Correct font properties not being inherited.
 * 3. Address margins set differently in Firefox 4+, Safari, and Chrome.
 */
button,
input,
optgroup,
select,
textarea {
  color: inherit;
  /* 1 */
  font: inherit;
  /* 2 */
  margin: 0;
  /* 3 */
}
/**
 * Address `overflow` set to `hidden` in IE 8/9/10/11.
 */
button {
  overflow: visible;
}
/**
 * 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 Firefox, IE 8/9/10/11, and Opera.
 * Correct `select` style inheritance in Firefox.
 */
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.
 */
button,
html input[type="button"],
input[type="reset"],
input[type="submit"] {
  -webkit-appearance: button;
  /* 2 */
  cursor: pointer;
  /* 3 */
}
/**
 * Re-set default cursor for disabled elements.
 */
button[disabled],
html input[disabled] {
  cursor: default;
}
/**
 * Remove inner padding and border in Firefox 4+.
 */
button::-moz-focus-inner,
input::-moz-focus-inner {
  border: 0;
  padding: 0;
}
/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */
input {
  line-height: normal;
}
/**
 * It's recommended that you don't attempt to style these elements.
 * Firefox's implementation doesn't respect box-sizing, padding, or width.
 *
 * 1. Address box sizing set to `content-box` in IE 8/9/10.
 * 2. Remove excess padding in IE 8/9/10.
 */
input[type="checkbox"],
input[type="radio"] {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */
}
/**
 * Fix the cursor style for Chrome's increment/decrement buttons. For certain
 * `font-size` values of the `input`, it causes the cursor style of the
 * decrement button to change from `default` to `text`.
 */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  height: auto;
}
/**
 * 1. Address `appearance` set to `searchfield` in Safari and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari and Chrome.
 */
input[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  -webkit-box-sizing: content-box;
          box-sizing: content-box;
  /* 2 */
}
/**
 * Remove inner padding and search cancel button in Safari and Chrome on OS X.
 * Safari (but not Chrome) clips the cancel button when the search input has
 * padding (and `textfield` appearance).
 */
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}
/**
 * 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 8/9/10/11.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */
legend {
  border: 0;
  /* 1 */
  padding: 0;
  /* 2 */
}
/**
 * Remove default vertical scrollbar in IE 8/9/10/11.
 */
textarea {
  overflow: auto;
}
/**
 * Don't inherit the `font-weight` (applied by a rule above).
 * NOTE: the default cannot safely be changed in Chrome and Safari on OS X.
 */
optgroup {
  font-weight: bold;
}
/* Tables
   ========================================================================== */
/**
 * Remove most spacing between table cells.
 */
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td,
th {
  padding: 0;
}
@-ms-viewport {
  width: device-width;
}
HTML {
  overflow: -moz-scrollbars-vertical;
}
BODY {
  image-rendering: -moz-crisp-edges;
  image-rendering: -o-crisp-edges;
  image-rendering: -webkit-optimize-contrast;
  -ms-interpolation-mode: nearest-neighbor;
}
@media screen and (-webkit-min-device-pixel-ratio: 1) {
  HTML {
    overflow-y: scroll;
  }
  SELECT {
    padding-right: 30px !important;
  }
}
BUTTON,
INPUT,
SELECT,
TEXTAREA {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  line-height: normal !important;
  max-width: 100%;
  font-size: 100%;
  margin: 0;
  vertical-align: middle;
}
*:first-child + HTML INPUT[type="checkbox"] {
  margin: 0;
}
*:first-child + HTML INPUT[type="radio"] {
  margin: 0;
}
SELECT {
  -webkit-appearance: none;
  -moz-appearance: window;
  text-indent: 0.01px;
  text-overflow: '';
  background: #fff;
}
SELECT::-ms-expand {
  display: none;
}
SELECT:focus {
  outline: none;
  border-color: #aaa;
}
SELECT:focus OPTION {
  background: #fff;
}
@media (-webkit-min-device-pixel-ratio: 0) {
  select {
    padding-right: 30px;
    text-overflow: ellipsis;
    overflow: hidden;
    background: #fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAGCAYAAAAsVdWjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGVJREFUeNpidHV1FWRgYDgDxK5AfI8BOwgF4vJdu3aZMBABmID4PRCvhhqshMPAVUDcyUAkYIHSFVAaZLAJkothBoZBLSbJUGwGG5NjILqh6AYLkmMgNkNhBr+HBgHJBoIAQIABAAMEFxMvb6R3AAAAAElFTkSuQmCC) 100% 50% no-repeat;
  }
}
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  SELECT {
    padding-right: 30px !important;
    background: #fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAAAGCAYAAAAsVdWjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAGVJREFUeNpidHV1FWRgYDgDxK5AfI8BOwgF4vJdu3aZMBABmID4PRCvhhqshMPAVUDcyUAkYIHSFVAaZLAJkothBoZBLSbJUGwGG5NjILqh6AYLkmMgNkNhBr+HBgHJBoIAQIABAAMEFxMvb6R3AAAAAElFTkSuQmCC) 100% 50% no-repeat;
  }
}
::-moz-selection {
  background: #fff;
  color: #00a28b;
  text-shadow: none;
}
::selection {
  background: #fff;
  color: #00a28b;
  text-shadow: none;
}
.clear {
  *zoom: 1;
}
.clear:before,
.clear:after {
  content: " ";
  display: table;
}
.clear:after {
  clear: both;
}
.w50 {
  width: 50px;
}
.w60 {
  width: 60px;
}
.w70 {
  width: 70px;
}
.w80 {
  width: 80px;
}
.w90 {
  width: 90px;
}
.w100 {
  width: 100px;
}
.img-left {
  float: left;
  margin: .3em 1em 1em 0;
  clear: both;
}
.img-right {
  float: right;
  margin: .3em 0 1em 1em;
  clear: both;
}
.strike {
  text-decoration: line-through;
}
.posrel {
  position: relative;
}
.f-left {
  float: left;
}
.f-right {
  float: right;
}
.hidden {
  display: none;
  visibility: hidden;
}
TR.hidden {
  visibility: visible;
}
.ui-helper-hidden-accessible {
  display: none;
}
.nowrap {
  white-space: nowrap;
}
.left {
  text-align: left;
}
.right {
  text-align: right;
}
.center {
  text-align: center !important;
}
.nomargin {
  margin: 0 !important;
}
.bold,
.bold * {
  font-weight: bold !important;
}
.w50p {
  width: 50%;
}
.w100p {
  width: 100%;
}
.w50 {
  width: 50px;
}
.w60 {
  width: 60px;
}
.w70 {
  width: 70px;
}
.w80 {
  width: 80px;
}
.w90 {
  width: 90px;
}
.w100 {
  width: 100px;
}
.mt10 {
  margin-top: 10px !important;
}
.mt20 {
  margin-top: 20px !important;
}
.mt30 {
  margin-top: 30px !important;
}
.mt1em {
  margin-top: 1em !important;
}
.mt2em {
  margin-top: 2em !important;
}
@font-face {
  font-family: "icons";
  src: url('../fonts/Icons/icons.eot');
  src: url('../fonts/Icons/icons.eot?#iefix') format('eot'), url('../fonts/Icons/icons.woff') format('woff'), url('../fonts/Icons/icons.ttf') format('truetype'), url('../fonts/Icons/icons.svg#icons') format('svg');
  font-weight: normal;
  font-style: normal;
}
[class^="ico"]:before,
[class*=" ico"]:before,
[class^="ico"]:after,
[class*=" ico"]:after {
  display: inline-block;
  font-family: "icons";
  font-style: normal;
  font-weight: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.ico-close:before {
  content: "\E001";
}
.ico-list:before {
  content: "\E002";
}
.ico-map:before {
  content: "\E003";
}
.ico-target:before {
  content: "\E004";
}
@media print {
  * {
    text-shadow: none !important;
    color: #000 !important;
    background: transparent !important;
    -webkit-box-shadow: none !important;
            box-shadow: none !important;
  }
  a,
  a:visited {
    text-decoration: none;
  }
  pre,
  blockquote {
    border: 1px solid #999;
    page-break-inside: avoid;
  }
  thead {
    display: table-header-group;
  }
  tr,
  img {
    page-break-inside: avoid;
  }
  img {
    max-width: 100% !important;
  }
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3;
  }
  h2,
  h3 {
    page-break-after: avoid;
  }
  select {
    background: #fff !important;
  }
  .table td,
  .table th {
    background-color: #fff !important;
  }
  .table {
    border-collapse: collapse !important;
  }
}
@-webkit-keyframes fadeInDown {
  from {
    opacity: 0;
    pointer-events: none;
    -webkit-transform: translateY(20px);
            transform: translateY(20px);
  }
  to {
    opacity: 1;
    pointer-events: all;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
@keyframes fadeInDown {
  from {
    opacity: 0;
    pointer-events: none;
    -webkit-transform: translateY(20px);
            transform: translateY(20px);
  }
  to {
    opacity: 1;
    pointer-events: all;
    -webkit-transform: translateY(0);
            transform: translateY(0);
  }
}
BODY,
HTML {
  padding: 0;
  background: #fff;
  height: 100vh;
}
@media only screen and (max-width: 759px) {
  BODY,
  HTML {
    background: #fff;
  }
  .mobile-hide {
    display: none;
  }
}
BODY {
  font-size: 14px;
  line-height: 17px;
  font-family: "Lato", Arial, Helvetica, sans-serif;
}
H2,
H3,
H4,
H5,
H6,
P,
UL,
OL,
TABLE {
  margin: 20px 0 0 0;
}
H1,
H2,
H3,
H4,
H5,
H6,
TH {
  font-family: "Lato", Arial, Helvetica, sans-serif;
  line-height: 1.4;
  font-weight: normal;
}
H1 {
  font-size: 22px;
  margin: 0;
}
H1 + H2 {
  margin: 0;
  color: #00a28b;
  font-size: 21px !important;
}
H1 + H2 I {
  font-style: normal;
  font-weight: 300;
}
H2 {
  font-size: 21px;
}
H3 {
  font-size: 21px;
}
H1[class*="ico-"]:before,
H2[class*="ico-"]:before,
H3[class*="ico-"]:before,
H1[class*=" ico-"]:before,
H2[class*=" ico-"]:before,
H3[class*=" ico-"]:before {
  display: inline-block;
  margin-right: 10px;
  vertical-align: 15%;
  font-size: 70%;
  background: #00a28b;
  color: #fff;
  padding: .25em;
  border-radius: 5px;
}
BUTTON:active,
BUTTON:focus,
BUTTON:hover {
  outline: none;
  border: none;
}
@media only screen and (max-width: 759px) {
  H1 {
    font-size: 21px;
  }
}
A {
  text-decoration: none;
  color: #00a28b;
}
P {
  line-height: 1.4;
}
P SUP {
  padding: 0 3px;
  font-size: 8.4px;
  font-weight: 600;
}
P.large {
  font-size: 49px !important;
  font-weight: 300;
}
P.large SUP {
  font-size: 28px;
  padding: 0 5px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  font-weight: 300;
}
@media only screen and (max-width: 759px) {
  SUP {
    top: -0.6em !important;
  }
}
@media only screen and (max-width: 239px) {
  .supported {
    display: none;
  }
}
@media only screen and (min-width: 990px) {
  .supported {
    height: 100%;
  }
}
@media only screen and (max-width: 239px) {
  .notsupported {
    display: block;
    padding: 10px;
    text-align: center;
  }
  .notsupported P.logo {
    margin: 0;
  }
  .notsupported P.logo IMG {
    width: 120px;
    height: auto;
  }
}
@media only screen and (min-width: 240px) {
  .notsupported {
    display: none;
  }
}
.globalwrap {
  display: -ms-flexbox;
  display: -ms-flex;
  display: -webkit-box;
  display: flex;
}
@media only screen and (max-width: 759px) {
  .globalwrap {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
        -ms-flex-flow: column;
            flex-flow: column;
  }
}
.globalwrap .sidebar {
  -ms-flex: 0 0 300px;
  -webkit-box-flex: 0;
          flex: 0 0 300px;
}
.globalwrap .globalview {
  -ms-flex: 1 1 auto;
  -webkit-box-flex: 1;
          flex: 1 1 auto;
}
/* Google Maps */
#map {
  height: 100vh;
  width: 100%;
}
@media only screen and (max-width: 759px) {
  #map {
    height: calc(100vh - 120px);
    margin-top: 60px;
  }
}
.gm-style {
  font-size: 14px !important;
}
.gm-style-iw {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
DIV .gm-style-iw {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
}
.gm-style-iw {
  -webkit-box-ordinal-group: 0;
      -ms-flex-order: -1;
          order: -1;
}
.gm-style-iw + DIV {
  display: none !important;
}
.tooltip_wrap {
  -webkit-animation-name: fadeInDown;
          animation-name: fadeInDown;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-animation-duration: 250ms;
          animation-duration: 250ms;
  width: 200px !important;
}
.tooltip_outer {
  left: 20px !important;
  top: 30px !important;
}
@media only screen and (max-width: 759px) {
  .tooltip_outer {
    display: none !important;
  }
}
.tooltip_outer > DIV {
  border-radius: 10px;
  overflow: hidden;
  background: white;
  -webkit-box-shadow: 0 0 18px 0 rgba(0, 0, 0, 0.2);
          box-shadow: 0 0 18px 0 rgba(0, 0, 0, 0.2);
  background-clip: padding-box;
}
.tooltip {
  overflow: hidden;
}
.tooltip > DIV {
  padding: 20px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.tooltip > DIV * {
  text-align: center;
}
.tooltip > DIV A:hover {
  color: #00a28b !important;
}
.tooltip > DIV A:hover SUP {
  color: #00a28b !important;
}
.tooltip > DIV.title {
  background: #00a28b;
}
.tooltip > DIV.content {
  padding-bottom: 0;
}
.tooltip H2 {
  font-size: 14px !important;
  margin: 0;
  color: #fff;
  font-weight: 600;
}
.tooltip P {
  margin: 5px 0 0 0;
  font-size: 14px;
}
/* Sidebar */
.sidebar {
  overflow: hidden;
  background: #fff;
  height: 100vh;
}
@media only screen and (max-width: 759px) {
  .sidebar {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 1000;
    opacity: 0;
    pointer-events: none;
  }
  .sidebar.active {
    height: auto;
  }
}
@media only screen and (min-width: 760px) {
  .sidebar {
    -webkit-box-shadow: 0 0 25px 0 rgba(0, 0, 0, 0.15);
            box-shadow: 0 0 25px 0 rgba(0, 0, 0, 0.15);
    z-index: 2;
  }
}
.sidebar.active {
  pointer-events: all;
  opacity: 1;
}
.sidebar H1 {
  text-align: center;
  background: #00a28b;
  color: #fff;
  padding: 25px 0;
}
.sidebar .pharmacies {
  list-style: none;
  margin: 0;
  padding: 0;
  height: 100%;
  width: 100%;
}
@media only screen and (max-width: 759px) {
  .sidebar .pharmacies {
    padding: 60px 0;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
  }
}
@media only screen and (min-width: 760px) {
  .sidebar .pharmacies {
    overflow-y: scroll;
    width: calc(317px);
  }
}
.sidebar .pharmacies LI {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 20px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  cursor: pointer;
  -webkit-transition: background 250ms ease-in-out;
  transition: background 250ms ease-in-out;
}
.sidebar .pharmacies LI * {
  margin: 0;
}
.sidebar .pharmacies LI .logo {
  background: #ff2d1e;
  display: -ms-flexbox;
  display: -ms-flex;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex: 0 0 30px;
  -webkit-box-flex: 0;
          flex: 0 0 30px;
  height: 30px;
  border: 2px solid #ff2d1e;
  border-radius: 5px;
  pointer-events: none;
}
.sidebar .pharmacies LI .logo IMG {
  width: 16px;
  height: 16px;
}
.sidebar .pharmacies LI .logo.alt,
.sidebar .pharmacies LI .logo.sudameapteek,
.sidebar .pharmacies LI .logo.benu {
  background: none;
}
.sidebar .pharmacies LI .logo.sudameapteek IMG,
.sidebar .pharmacies LI .logo.benu IMG {
  width: 18px;
  height: 18px;
}
.sidebar .pharmacies LI .logo.sudameapteek {
  border-color: #ff4934;
}
.sidebar .pharmacies LI .logo.benu {
  border-color: #64a925;
}
.sidebar .pharmacies LI H2 {
  -ms-flex: 1 1 auto;
  -webkit-box-flex: 1;
          flex: 1 1 auto;
  font-size: 14px;
  font-weight: bold;
  padding: 0 15px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  pointer-events: none;
}
.sidebar .pharmacies LI P {
  -ms-flex: 0 0 50px;
  -webkit-box-flex: 0;
          flex: 0 0 50px;
  font-size: 22.4px;
  font-weight: 300;
  color: #8c939a;
  line-height: 1;
  pointer-events: none;
  text-align: right;
}
.sidebar .pharmacies LI P SUP {
  vertical-align: super;
  font-size: 11.9px;
  font-weight: 300;
  top: 0;
}
.sidebar .pharmacies LI:not(:first-child) {
  border-top: 1px solid #ededee;
}
.sidebar .pharmacies LI.active {
  background: #ededee;
}
.sidebar .pharmacies LI.active P {
  color: #000;
}
.sidebar .pharmacies LI:hover H2 {
  color: #00a28b;
}
.mobile-title,
.list-toggle,
.pharmacy-title,
.pharmacy-content {
  display: none;
  text-align: center;
  position: fixed;
  left: 0;
  z-index: 2000;
  width: 100%;
  height: 60px;
  line-height: 60px;
}
@media only screen and (max-width: 759px) {
  .mobile-title,
  .list-toggle,
  .pharmacy-title,
  .pharmacy-content {
    display: block;
  }
}
.mobile-title,
.pharmacy-title {
  font-weight: bold;
  background: #00a28b;
  color: #fff;
  top: 0;
}
.list-toggle,
.pharmacy-content {
  background: #fff;
  border: none;
  color: #00a28b;
  bottom: 0;
}
.list-toggle:after,
.pharmacy-content:after {
  content: '';
  width: 100%;
  height: 30px;
  position: absolute;
  bottom: 60px;
  left: 0;
  -webkit-box-shadow: inset 1px -19px 33px -25px rgba(0, 0, 0, 0.75);
          box-shadow: inset 1px -19px 33px -25px rgba(0, 0, 0, 0.75);
  pointer-events: none;
}
.list-toggle {
  font-size: 21px;
  outline: none;
  -webkit-transition: all 250ms ease-in-out;
  transition: all 250ms ease-in-out;
}
.list-toggle.list:before {
  content: "\E002";
}
.list-toggle.map:before {
  content: "\E003";
}
.list-toggle:before {
  padding-right: 10px;
  font-family: icons;
}
.list-toggle:hover,
.list-toggle:focus,
.list-toggle:active {
  border: none;
  outline: none;
  background: #00a28b;
  color: #fff;
}
/* Pharmacy open */
BODY.pharmacy-open .mobile-title,
BODY.pharmacy-open .list-toggle,
BODY.pharmacy-open .sidebar,
BODY.pharmacy-open .center_target {
  display: none;
}
BODY.pharmacy-open .pharmacy {
  display: block;
}
.pharmacy {
  display: none;
}
.pharmacy .pharmacy-title {
  height: auto;
  min-height: 60px;
  display: -ms-flexbox;
  display: -ms-flex;
  display: -webkit-box;
  display: flex;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  padding: 10px 60px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.pharmacy .pharmacy-title H1 {
  font-weight: bold;
}
.pharmacy .pharmacy-title BUTTON {
  position: absolute;
  left: 20px;
  background: none;
  border: none;
}
.pharmacy .pharmacy-title BUTTON:before {
  content: "\E001";
  font-family: icons;
  line-height: 60px;
  height: 60px;
}
.pharmacy .pharmacy-content {
  height: auto;
  padding: 40px;
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
}
.pharmacy .pharmacy-content * {
  color: #000;
}
.pharmacy .pharmacy-content:after {
  top: -30px;
}
.pharmacy .pharmacy-content P {
  margin: 0;
  font-size: 17.5px;
}
.pharmacy .pharmacy-content P A:hover {
  color: #00a28b !important;
}
.pharmacy .pharmacy-content P A:hover SUP {
  color: #00a28b !important;
}
/* Center map to current location */
BUTTON.center_target {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 900;
  background: #00a28b;
  width: 45px;
  height: 45px;
  border: none;
  line-height: 45px;
  border-radius: 10px;
  -webkit-transition: all 250ms ease-in-out;
  transition: all 250ms ease-in-out;
}
BUTTON.center_target:before {
  content: "\E004";
  font-family: icons;
  line-height: 45px;
  font-size: 23.1px;
  color: #fff;
  -webkit-transition: all 250ms ease-in-out;
  transition: all 250ms ease-in-out;
}
BUTTON.center_target:hover {
  background: #fff;
}
BUTTON.center_target:hover:before {
  color: #00a28b;
}
@media only screen and (max-width: 759px) {
  BUTTON.center_target {
    top: 80px;
    width: 40px;
    height: 40px;
    line-height: 40px;
  }
  BUTTON.center_target:before {
    line-height: 40px;
    font-size: 21px;
  }
}
.pt-intent-negative {
  color: #ff2d1e !important;
}
.pt-intent-negative * {
  color: #ff2d1e !important;
}
.pt-intent-positive {
  color: #00a28b !important;
}
.pt-intent-positive * {
  color: #00a28b !important;
}
.gm-style .gm-style-iw {
  top: 0 !important;
  left: 0 !important;
  width: 200px !important;
}
.gm-style .gm-style-iw > DIV {
  width: 200px;
}
.test {
  opacity: 0;
  pointer-events: none;
  overflow: hidden !important;
}
.test.active {
  -webkit-animation-name: fadeInDown;
          animation-name: fadeInDown;
  -webkit-animation-delay: .15s;
          animation-delay: .15s;
  -webkit-animation-duration: 250ms;
          animation-duration: 250ms;
  -webkit-animation-fill-mode: forwards;
          animation-fill-mode: forwards;
  -webkit-animation-iteration-count: 1;
          animation-iteration-count: 1;
}
.tooltip {
  background: #fff;
}

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlcy5jc3MiLCJfZm9udHMubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvbm9ybWFsaXplLmNzcy9ub3JtYWxpemUuY3NzIiwiX29wdXMtcmVzZXQubGVzcyIsIi4uL2Jvd2VyX2NvbXBvbmVudHMvYW5jaG9yTEVTUy9hbmNob3IubGVzcyIsIl9vcHVzLXV0aWxzLmxlc3MiLCIuLi9mb250cy9JY29ucy9pY29ucy5sZXNzIiwiX3ByaW50Lmxlc3MiLCJfYW5pbWF0aW9ucy5sZXNzIiwibWFpbi5sZXNzIiwibWl4aW5zL2ZsZXhib3gubGVzcyIsIl92YXJpYWJsZXMubGVzcyIsIl9nbWFwcy5sZXNzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDRFQUE0RTtBQUM1RTs7OztHQUlHO0FBQ0gseUZDTFk7QUNPWjtFQUNFLHdCQUFBO0VGQUEsT0FBTztFRUNQLDJCQUFBO0VGQ0EsT0FBTztFRUFQLCtCQUFBO0VGRUEsT0FBTztDQUNSO0FBQ0Q7O0dBRUc7QUVDSDtFQUNFLFVBQUE7Q0ZDRDtBQUNEO2dGQUNnRjtBQUNoRjs7Ozs7R0FLRztBRUlIOzs7Ozs7Ozs7Ozs7O0VBYUUsZUFBQTtDRkZEO0FBQ0Q7OztHQUdHO0FFTUg7Ozs7RUFJRSxzQkFBQTtFRkpBLE9BQU87RUVLUCx5QkFBQTtFRkhBLE9BQU87Q0FDUjtBQUNEOzs7R0FHRztBRU1IO0VBQ0UsY0FBQTtFQUNBLFVBQUE7Q0ZKRDtBQUNEOzs7R0FHRztBRVFIOztFQUVFLGNBQUE7Q0ZORDtBQUNEO2dGQUNnRjtBQUNoRjs7R0FFRztBRVdIO0VBQ0UsOEJBQUE7Q0ZURDtBQUNEOzs7R0FHRztBRWFIOztFQUVFLFdBQUE7Q0ZYRDtBQUNEO2dGQUNnRjtBQUNoRjs7R0FFRztBRWdCSDtFQUNFLDBCQUFBO0NGZEQ7QUFDRDs7R0FFRztBRWtCSDs7RUFFRSxrQkFBQTtDRmhCRDtBQUNEOztHQUVHO0FFb0JIO0VBQ0UsbUJBQUE7Q0ZsQkQ7QUFDRDs7O0dBR0c7QUVzQkg7RUFDRSxlQUFBO0VB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QUFBO0NUZzdCYjtBUzk2QkM7RUFLRDtJQUpFLFVBQUE7SUFBa0IsWUFBQTtJQUFhLGFBQUE7SUFBYyxrQkFBQTtHVG83QjdDO0VTbjdCQTtJQUFXLGtCQUFBO0lBQW1CLGdCQUFBO0dUdTdCOUI7Q0FDRjtBV3JwQ0Q7RUFDRSwwQkFBQTtDWHVwQ0Q7QVd4cENEO0VBRU0sMEJBQUE7Q1h5cENMO0FXdnBDRDtFQUNFLDBCQUFBO0NYeXBDRDtBVzFwQ0Q7RUFFTSwwQkFBQTtDWDJwQ0w7QVl2c0NEO0VBRUksa0JBQUE7RUFDQSxtQkFBQTtFQUNBLHdCQUFBO0Nad3NDSDtBWTVzQ0Q7RUFNTSxhQUFBO0NaeXNDTDtBWXJzQ0Q7RUFDRSxXQUFBO0VBQVkscUJBQUE7RUFDWiw0QkFBQTtDWndzQ0Q7QVl2c0NDO0VBQ0UsbUNBQUE7VUFBQSwyQkFBQTtFQUNBLDhCQUFBO1VBQUEsc0JBQUE7RUFDQSxrQ0FBQTtVQUFBLDBCQUFBO0VBQ0Esc0NBQUE7VUFBQSw4QkFBQTtFQUNBLHFDQUFBO1VBQUEsNkJBQUE7Q1p5c0NIO0FZaHNDRDtFQUNFLGlCQUFBO0Naa3NDRCIsImZpbGUiOiJzdHlsZXMuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiLyohIG5vcm1hbGl6ZS5jc3MgdjMuMC4zIHwgTUlUIExpY2Vuc2UgfCBnaXRodWIuY29tL25lY29sYXMvbm9ybWFsaXplLmNzcyAqL1xuLyoqXG4gKiAxLiBTZXQgZGVmYXVsdCBmb250IGZhbWlseSB0byBzYW5zLXNlcmlmLlxuICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcbiAqICAgIHdpdGhvdXQgZGlzYWJsaW5nIHVzZXIgem9vbS5cbiAqL1xuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1MYXRvOjMwMCw0MDAsNzAwJnN1YnNldD1sYXRpbi1leHQnKTtcbmh0bWwge1xuICBmb250LWZhbWlseTogc2Fucy1zZXJpZjtcbiAgLyogMSAqL1xuICAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTtcbiAgLyogMiAqL1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogUmVtb3ZlIGRlZmF1bHQgbWFyZ2luLlxuICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwO1xufVxuLyogSFRNTDUgZGlzcGxheSBkZWZpbml0aW9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGFueSBIVE1MNSBlbGVtZW50IGluIElFIDgvOS5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgZGV0YWlsc2Agb3IgYHN1bW1hcnlgIGluIElFIDEwLzExXG4gKiBhbmQgRmlyZWZveC5cbiAqIENvcnJlY3QgYGJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGZvciBgbWFpbmAgaW4gSUUgMTEuXG4gKi9cbmFydGljbGUsXG5hc2lkZSxcbmRldGFpbHMsXG5maWdjYXB0aW9uLFxuZmlndXJlLFxuZm9vdGVyLFxuaGVhZGVyLFxuaGdyb3VwLFxubWFpbixcbm1lbnUsXG5uYXYsXG5zZWN0aW9uLFxuc3VtbWFyeSB7XG4gIGRpc3BsYXk6IGJsb2NrO1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IGBpbmxpbmUtYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgaW4gSUUgOC85LlxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxuICovXG5hdWRpbyxcbmNhbnZhcyxcbnByb2dyZXNzLFxudmlkZW8ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIC8qIDEgKi9cbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xuICAvKiAyICovXG59XG4vKipcbiAqIFByZXZlbnQgbW9kZXJuIGJyb3dzZXJzIGZyb20gZGlzcGxheWluZyBgYXVkaW9gIHdpdGhvdXQgY29udHJvbHMuXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxuICovXG5hdWRpbzpub3QoW2NvbnRyb2xzXSkge1xuICBkaXNwbGF5OiBub25lO1xuICBoZWlnaHQ6IDA7XG59XG4vKipcbiAqIEFkZHJlc3MgYFtoaWRkZW5dYCBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS8xMC5cbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cbiAqL1xuW2hpZGRlbl0sXG50ZW1wbGF0ZSB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG4vKiBMaW5rc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXG4gKi9cbmEge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cbi8qKlxuICogSW1wcm92ZSByZWFkYWJpbGl0eSBvZiBmb2N1c2VkIGVsZW1lbnRzIHdoZW4gdGhleSBhcmUgYWxzbyBpbiBhblxuICogYWN0aXZlL2hvdmVyIHN0YXRlLlxuICovXG5hOmFjdGl2ZSxcbmE6aG92ZXIge1xuICBvdXRsaW5lOiAwO1xufVxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkO1xufVxuLyoqXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmIsXG5zdHJvbmcge1xuICBmb250LXdlaWdodDogYm9sZDtcbn1cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5kZm4ge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG4vKipcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcbiAqIGNvbnRleHRzIGluIEZpcmVmb3ggNCssIFNhZmFyaSwgYW5kIENocm9tZS5cbiAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDtcbn1cbi8qKlxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cbiAqL1xubWFyayB7XG4gIGJhY2tncm91bmQ6ICNmZjA7XG4gIGNvbG9yOiAjMDAwO1xufVxuLyoqXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBhbmQgdmFyaWFibGUgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDgwJTtcbn1cbi8qKlxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxuICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xufVxuc3VwIHtcbiAgdG9wOiAtMC41ZW07XG59XG5zdWIge1xuICBib3R0b206IC0wLjI1ZW07XG59XG4vKiBFbWJlZGRlZCBjb250ZW50XG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgYm9yZGVyIHdoZW4gaW5zaWRlIGBhYCBlbGVtZW50IGluIElFIDgvOS8xMC5cbiAqL1xuaW1nIHtcbiAgYm9yZGVyOiAwO1xufVxuLyoqXG4gKiBDb3JyZWN0IG92ZXJmbG93IG5vdCBoaWRkZW4gaW4gSUUgOS8xMC8xMS5cbiAqL1xuc3ZnOm5vdCg6cm9vdCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLyogR3JvdXBpbmcgY29udGVudFxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQWRkcmVzcyBtYXJnaW4gbm90IHByZXNlbnQgaW4gSUUgOC85IGFuZCBTYWZhcmkuXG4gKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMWVtIDQwcHg7XG59XG4vKipcbiAqIEFkZHJlc3MgZGlmZmVyZW5jZXMgYmV0d2VlbiBGaXJlZm94IGFuZCBvdGhlciBicm93c2Vycy5cbiAqL1xuaHIge1xuICBib3gtc2l6aW5nOiBjb250ZW50LWJveDtcbiAgaGVpZ2h0OiAwO1xufVxuLyoqXG4gKiBDb250YWluIG92ZXJmbG93IGluIGFsbCBicm93c2Vycy5cbiAqL1xucHJlIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4vKipcbiAqIEFkZHJlc3Mgb2RkIGBlbWAtdW5pdCBmb250IHNpemUgcmVuZGVyaW5nIGluIGFsbCBicm93c2Vycy5cbiAqL1xuY29kZSxcbmtiZCxcbnByZSxcbnNhbXAge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtO1xufVxuLyogRm9ybXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKipcbiAqIEtub3duIGxpbWl0YXRpb246IGJ5IGRlZmF1bHQsIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFggYWxsb3cgdmVyeSBsaW1pdGVkXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXG4gKi9cbi8qKlxuICogMS4gQ29ycmVjdCBjb2xvciBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXG4gKiAyLiBDb3JyZWN0IGZvbnQgcHJvcGVydGllcyBub3QgYmVpbmcgaW5oZXJpdGVkLlxuICogMy4gQWRkcmVzcyBtYXJnaW5zIHNldCBkaWZmZXJlbnRseSBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXG4gKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGNvbG9yOiBpbmhlcml0O1xuICAvKiAxICovXG4gIGZvbnQ6IGluaGVyaXQ7XG4gIC8qIDIgKi9cbiAgbWFyZ2luOiAwO1xuICAvKiAzICovXG59XG4vKipcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxuICovXG5idXR0b24ge1xuICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cbi8qKlxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYHRleHQtdHJhbnNmb3JtYCBpbmhlcml0YW5jZSBmb3IgYGJ1dHRvbmAgYW5kIGBzZWxlY3RgLlxuICogQWxsIG90aGVyIGZvcm0gY29udHJvbCBlbGVtZW50cyBkbyBub3QgaW5oZXJpdCBgdGV4dC10cmFuc2Zvcm1gIHZhbHVlcy5cbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXG4gKiBDb3JyZWN0IGBzZWxlY3RgIHN0eWxlIGluaGVyaXRhbmNlIGluIEZpcmVmb3guXG4gKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lO1xufVxuLyoqXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxuICogICAgYW5kIGB2aWRlb2AgY29udHJvbHMuXG4gKiAyLiBDb3JyZWN0IGluYWJpbGl0eSB0byBzdHlsZSBjbGlja2FibGUgYGlucHV0YCB0eXBlcyBpbiBpT1MuXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxuICogICAgYGlucHV0YCBhbmQgb3RoZXJzLlxuICovXG5idXR0b24sXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sXG5pbnB1dFt0eXBlPVwicmVzZXRcIl0sXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIC8qIDIgKi9cbiAgY3Vyc29yOiBwb2ludGVyO1xuICAvKiAzICovXG59XG4vKipcbiAqIFJlLXNldCBkZWZhdWx0IGN1cnNvciBmb3IgZGlzYWJsZWQgZWxlbWVudHMuXG4gKi9cbmJ1dHRvbltkaXNhYmxlZF0sXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XG4gIGN1cnNvcjogZGVmYXVsdDtcbn1cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxuICovXG5idXR0b246Oi1tb3otZm9jdXMtaW5uZXIsXG5pbnB1dDo6LW1vei1mb2N1cy1pbm5lciB7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMDtcbn1cbi8qKlxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxuICogdGhlIFVBIHN0eWxlc2hlZXQuXG4gKi9cbmlucHV0IHtcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcbn1cbi8qKlxuICogSXQncyByZWNvbW1lbmRlZCB0aGF0IHlvdSBkb24ndCBhdHRlbXB0IHRvIHN0eWxlIHRoZXNlIGVsZW1lbnRzLlxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cbiAqXG4gKiAxLiBBZGRyZXNzIGJveCBzaXppbmcgc2V0IHRvIGBjb250ZW50LWJveGAgaW4gSUUgOC85LzEwLlxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cbiAqL1xuaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLFxuaW5wdXRbdHlwZT1cInJhZGlvXCJdIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovXG59XG4vKipcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXG4gKiBgZm9udC1zaXplYCB2YWx1ZXMgb2YgdGhlIGBpbnB1dGAsIGl0IGNhdXNlcyB0aGUgY3Vyc29yIHN0eWxlIG9mIHRoZVxuICogZGVjcmVtZW50IGJ1dHRvbiB0byBjaGFuZ2UgZnJvbSBgZGVmYXVsdGAgdG8gYHRleHRgLlxuICovXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxuaW5wdXRbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bztcbn1cbi8qKlxuICogMS4gQWRkcmVzcyBgYXBwZWFyYW5jZWAgc2V0IHRvIGBzZWFyY2hmaWVsZGAgaW4gU2FmYXJpIGFuZCBDaHJvbWUuXG4gKiAyLiBBZGRyZXNzIGBib3gtc2l6aW5nYCBzZXQgdG8gYGJvcmRlci1ib3hgIGluIFNhZmFyaSBhbmQgQ2hyb21lLlxuICovXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7XG4gIC8qIDEgKi9cbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIC8qIDIgKi9cbn1cbi8qKlxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIHNlYXJjaCBjYW5jZWwgYnV0dG9uIGluIFNhZmFyaSBhbmQgQ2hyb21lIG9uIE9TIFguXG4gKiBTYWZhcmkgKGJ1dCBub3QgQ2hyb21lKSBjbGlwcyB0aGUgY2FuY2VsIGJ1dHRvbiB3aGVuIHRoZSBzZWFyY2ggaW5wdXQgaGFzXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXG4gKi9cbmlucHV0W3R5cGU9XCJzZWFyY2hcIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xufVxuLyoqXG4gKiBEZWZpbmUgY29uc2lzdGVudCBib3JkZXIsIG1hcmdpbiwgYW5kIHBhZGRpbmcuXG4gKi9cbmZpZWxkc2V0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MwYzBjMDtcbiAgbWFyZ2luOiAwIDJweDtcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xufVxuLyoqXG4gKiAxLiBDb3JyZWN0IGBjb2xvcmAgbm90IGJlaW5nIGluaGVyaXRlZCBpbiBJRSA4LzkvMTAvMTEuXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXG4gKi9cbmxlZ2VuZCB7XG4gIGJvcmRlcjogMDtcbiAgLyogMSAqL1xuICBwYWRkaW5nOiAwO1xuICAvKiAyICovXG59XG4vKipcbiAqIFJlbW92ZSBkZWZhdWx0IHZlcnRpY2FsIHNjcm9sbGJhciBpbiBJRSA4LzkvMTAvMTEuXG4gKi9cbnRleHRhcmVhIHtcbiAgb3ZlcmZsb3c6IGF1dG87XG59XG4vKipcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cbiAqIE5PVEU6IHRoZSBkZWZhdWx0IGNhbm5vdCBzYWZlbHkgYmUgY2hhbmdlZCBpbiBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYLlxuICovXG5vcHRncm91cCB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuLyogVGFibGVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXG4gKi9cbnRhYmxlIHtcbiAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTtcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XG59XG50ZCxcbnRoIHtcbiAgcGFkZGluZzogMDtcbn1cbkAtbXMtdmlld3BvcnQge1xuICB3aWR0aDogZGV2aWNlLXdpZHRoO1xufVxuSFRNTCB7XG4gIG92ZXJmbG93OiAtbW96LXNjcm9sbGJhcnMtdmVydGljYWw7XG59XG5CT0RZIHtcbiAgaW1hZ2UtcmVuZGVyaW5nOiAtbW96LWNyaXNwLWVkZ2VzO1xuICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xuICBpbWFnZS1yZW5kZXJpbmc6IC13ZWJraXQtb3B0aW1pemUtY29udHJhc3Q7XG4gIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IG5lYXJlc3QtbmVpZ2hib3I7XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxKSB7XG4gIEhUTUwge1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgfVxuICBTRUxFQ1Qge1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHggIWltcG9ydGFudDtcbiAgfVxufVxuQlVUVE9OLFxuSU5QVVQsXG5TRUxFQ1QsXG5URVhUQVJFQSB7XG4gIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBsaW5lLWhlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBtYXJnaW46IDA7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG59XG4qOmZpcnN0LWNoaWxkICsgSFRNTCBJTlBVVFt0eXBlPVwiY2hlY2tib3hcIl0ge1xuICBtYXJnaW46IDA7XG59XG4qOmZpcnN0LWNoaWxkICsgSFRNTCBJTlBVVFt0eXBlPVwicmFkaW9cIl0ge1xuICBtYXJnaW46IDA7XG59XG5TRUxFQ1Qge1xuICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIC1tb3otYXBwZWFyYW5jZTogd2luZG93O1xuICB0ZXh0LWluZGVudDogMC4wMXB4O1xuICB0ZXh0LW92ZXJmbG93OiAnJztcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblNFTEVDVDo6LW1zLWV4cGFuZCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5TRUxFQ1Q6Zm9jdXMge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXItY29sb3I6ICNhYWE7XG59XG5TRUxFQ1Q6Zm9jdXMgT1BUSU9OIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbn1cbkBtZWRpYSAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAwKSB7XG4gIHNlbGVjdCB7XG4gICAgcGFkZGluZy1yaWdodDogMzBweDtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNmZmYgdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQlVBQUFBR0NBWUFBQUFzVmRXakFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBR1ZKUkVGVWVOcGlkSFYxRldSZ1lEZ0R4SzVBZkk4Qk93Z0Y0dkpkdTNhWk1CQUJtSUQ0UFJDdmhocXNoTVBBVlVEY3lVQWtZSUhTRlZBYVpMQUprb3RoQm9aQkxTYkpVR3dHRzVOaklMcWg2QVlMa21NZ05rTmhCcitIQmdISkJvSUFRSUFCQUFNRUZ4TXZiNlIzQUFBQUFFbEZUa1N1UW1DQykgMTAwJSA1MCUgbm8tcmVwZWF0O1xuICB9XG59XG5AbWVkaWEgc2NyZWVuIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSksICgtbXMtaGlnaC1jb250cmFzdDogbm9uZSkge1xuICBTRUxFQ1Qge1xuICAgIHBhZGRpbmctcmlnaHQ6IDMwcHggIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmIHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJVQUFBQUdDQVlBQUFBc1ZkV2pBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUdWSlJFRlVlTnBpZEhWMUZXUmdZRGdEeEs1QWZJOEJPd2dGNHZKZHUzYVpNQkFCbUlENFBSQ3ZoaHFzaE1QQVZVRGN5VUFrWUlIU0ZWQWFaTEFKa290aEJvWkJMU2JKVUd3R0c1TmpJTHFoNkFZTGttTWdOa05oQnIrSEJnSEpCb0lBUUlBQkFBTUVGeE12YjZSM0FBQUFBRWxGVGtTdVFtQ0MpIDEwMCUgNTAlIG5vLXJlcGVhdDtcbiAgfVxufVxuOjotbW96LXNlbGVjdGlvbiB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGNvbG9yOiAjMDBhMjhiO1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbn1cbjo6c2VsZWN0aW9uIHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgY29sb3I6ICMwMGEyOGI7XG4gIHRleHQtc2hhZG93OiBub25lO1xufVxuLmNsZWFyIHtcbiAgKnpvb206IDE7XG59XG4uY2xlYXI6YmVmb3JlLFxuLmNsZWFyOmFmdGVyIHtcbiAgY29udGVudDogXCIgXCI7XG4gIGRpc3BsYXk6IHRhYmxlO1xufVxuLmNsZWFyOmFmdGVyIHtcbiAgY2xlYXI6IGJvdGg7XG59XG4udzUwIHtcbiAgd2lkdGg6IDUwcHg7XG59XG4udzYwIHtcbiAgd2lkdGg6IDYwcHg7XG59XG4udzcwIHtcbiAgd2lkdGg6IDcwcHg7XG59XG4udzgwIHtcbiAgd2lkdGg6IDgwcHg7XG59XG4udzkwIHtcbiAgd2lkdGg6IDkwcHg7XG59XG4udzEwMCB7XG4gIHdpZHRoOiAxMDBweDtcbn1cbi5pbWctbGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IC4zZW0gMWVtIDFlbSAwO1xuICBjbGVhcjogYm90aDtcbn1cbi5pbWctcmlnaHQge1xuICBmbG9hdDogcmlnaHQ7XG4gIG1hcmdpbjogLjNlbSAwIDFlbSAxZW07XG4gIGNsZWFyOiBib3RoO1xufVxuLnN0cmlrZSB7XG4gIHRleHQtZGVjb3JhdGlvbjogbGluZS10aHJvdWdoO1xufVxuLnBvc3JlbCB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cbi5mLWxlZnQge1xuICBmbG9hdDogbGVmdDtcbn1cbi5mLXJpZ2h0IHtcbiAgZmxvYXQ6IHJpZ2h0O1xufVxuLmhpZGRlbiB7XG4gIGRpc3BsYXk6IG5vbmU7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cblRSLmhpZGRlbiB7XG4gIHZpc2liaWxpdHk6IHZpc2libGU7XG59XG4udWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIHtcbiAgZGlzcGxheTogbm9uZTtcbn1cbi5ub3dyYXAge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuLmxlZnQge1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuLnJpZ2h0IHtcbiAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG4uY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7XG59XG4ubm9tYXJnaW4ge1xuICBtYXJnaW46IDAgIWltcG9ydGFudDtcbn1cbi5ib2xkLFxuLmJvbGQgKiB7XG4gIGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7XG59XG4udzUwcCB7XG4gIHdpZHRoOiA1MCU7XG59XG4udzEwMHAge1xuICB3aWR0aDogMTAwJTtcbn1cbi53NTAge1xuICB3aWR0aDogNTBweDtcbn1cbi53NjAge1xuICB3aWR0aDogNjBweDtcbn1cbi53NzAge1xuICB3aWR0aDogNzBweDtcbn1cbi53ODAge1xuICB3aWR0aDogODBweDtcbn1cbi53OTAge1xuICB3aWR0aDogOTBweDtcbn1cbi53MTAwIHtcbiAgd2lkdGg6IDEwMHB4O1xufVxuLm10MTAge1xuICBtYXJnaW4tdG9wOiAxMHB4ICFpbXBvcnRhbnQ7XG59XG4ubXQyMCB7XG4gIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDtcbn1cbi5tdDMwIHtcbiAgbWFyZ2luLXRvcDogMzBweCAhaW1wb3J0YW50O1xufVxuLm10MWVtIHtcbiAgbWFyZ2luLXRvcDogMWVtICFpbXBvcnRhbnQ7XG59XG4ubXQyZW0ge1xuICBtYXJnaW4tdG9wOiAyZW0gIWltcG9ydGFudDtcbn1cbkBmb250LWZhY2Uge1xuICBmb250LWZhbWlseTogXCJpY29uc1wiO1xuICBzcmM6IHVybCgnLi4vZm9udHMvSWNvbnMvaWNvbnMuZW90Jyk7XG4gIHNyYzogdXJsKCcuLi9mb250cy9JY29ucy9pY29ucy5lb3Q/I2llZml4JykgZm9ybWF0KCdlb3QnKSwgdXJsKCcuLi9mb250cy9JY29ucy9pY29ucy53b2ZmJykgZm9ybWF0KCd3b2ZmJyksIHVybCgnLi4vZm9udHMvSWNvbnMvaWNvbnMudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLCB1cmwoJy4uL2ZvbnRzL0ljb25zL2ljb25zLnN2ZyNpY29ucycpIGZvcm1hdCgnc3ZnJyk7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbn1cbltjbGFzc149XCJpY29cIl06YmVmb3JlLFxuW2NsYXNzKj1cIiBpY29cIl06YmVmb3JlLFxuW2NsYXNzXj1cImljb1wiXTphZnRlcixcbltjbGFzcyo9XCIgaWNvXCJdOmFmdGVyIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LWZhbWlseTogXCJpY29uc1wiO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cbi5pY28tY2xvc2U6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEUwMDFcIjtcbn1cbi5pY28tbGlzdDpiZWZvcmUge1xuICBjb250ZW50OiBcIlxcRTAwMlwiO1xufVxuLmljby1tYXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEUwMDNcIjtcbn1cbi5pY28tdGFyZ2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxFMDA0XCI7XG59XG5AbWVkaWEgcHJpbnQge1xuICAqIHtcbiAgICB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMDAwICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbiAgYSxcbiAgYTp2aXNpdGVkIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIH1cbiAgcHJlLFxuICBibG9ja3F1b3RlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjOTk5O1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwO1xuICB9XG4gIHRyLFxuICBpbWcge1xuICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgfVxuICBpbWcge1xuICAgIG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50O1xuICB9XG4gIHAsXG4gIGgyLFxuICBoMyB7XG4gICAgb3JwaGFuczogMztcbiAgICB3aWRvd3M6IDM7XG4gIH1cbiAgaDIsXG4gIGgzIHtcbiAgICBwYWdlLWJyZWFrLWFmdGVyOiBhdm9pZDtcbiAgfVxuICBzZWxlY3Qge1xuICAgIGJhY2tncm91bmQ6ICNmZmYgIWltcG9ydGFudDtcbiAgfVxuICAudGFibGUgdGQsXG4gIC50YWJsZSB0aCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICB9XG4gIC50YWJsZSB7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50O1xuICB9XG59XG5Aa2V5ZnJhbWVzIGZhZGVJbkRvd24ge1xuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgfVxufVxuQk9EWSxcbkhUTUwge1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBoZWlnaHQ6IDEwMHZoO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NTlweCkge1xuICBCT0RZLFxuICBIVE1MIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICB9XG4gIC5tb2JpbGUtaGlkZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQk9EWSB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDE3cHg7XG4gIGZvbnQtZmFtaWx5OiBcIkxhdG9cIiwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcbn1cbkgyLFxuSDMsXG5INCxcbkg1LFxuSDYsXG5QLFxuVUwsXG5PTCxcblRBQkxFIHtcbiAgbWFyZ2luOiAyMHB4IDAgMCAwO1xufVxuSDEsXG5IMixcbkgzLFxuSDQsXG5INSxcbkg2LFxuVEgge1xuICBmb250LWZhbWlseTogXCJMYXRvXCIsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG59XG5IMSB7XG4gIGZvbnQtc2l6ZTogMjJweDtcbiAgbWFyZ2luOiAwO1xufVxuSDEgKyBIMiB7XG4gIG1hcmdpbjogMDtcbiAgY29sb3I6ICMwMGEyOGI7XG4gIGZvbnQtc2l6ZTogMjFweCAhaW1wb3J0YW50O1xufVxuSDEgKyBIMiBJIHtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuSDIge1xuICBmb250LXNpemU6IDIxcHg7XG59XG5IMyB7XG4gIGZvbnQtc2l6ZTogMjFweDtcbn1cbkgxW2NsYXNzKj1cImljby1cIl06YmVmb3JlLFxuSDJbY2xhc3MqPVwiaWNvLVwiXTpiZWZvcmUsXG5IM1tjbGFzcyo9XCJpY28tXCJdOmJlZm9yZSxcbkgxW2NsYXNzKj1cIiBpY28tXCJdOmJlZm9yZSxcbkgyW2NsYXNzKj1cIiBpY28tXCJdOmJlZm9yZSxcbkgzW2NsYXNzKj1cIiBpY28tXCJdOmJlZm9yZSB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuICB2ZXJ0aWNhbC1hbGlnbjogMTUlO1xuICBmb250LXNpemU6IDcwJTtcbiAgYmFja2dyb3VuZDogIzAwYTI4YjtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IC4yNWVtO1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDVweDtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbn1cbkJVVFRPTjphY3RpdmUsXG5CVVRUT046Zm9jdXMsXG5CVVRUT046aG92ZXIge1xuICBvdXRsaW5lOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc1OXB4KSB7XG4gIEgxIHtcbiAgICBmb250LXNpemU6IDIxcHg7XG4gIH1cbn1cbkEge1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGNvbG9yOiAjMDBhMjhiO1xufVxuUCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjQ7XG59XG5QIFNVUCB7XG4gIHBhZGRpbmc6IDAgM3B4O1xuICBmb250LXNpemU6IDguNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xufVxuUC5sYXJnZSB7XG4gIGZvbnQtc2l6ZTogNDlweCAhaW1wb3J0YW50O1xuICBmb250LXdlaWdodDogMzAwO1xufVxuUC5sYXJnZSBTVVAge1xuICBmb250LXNpemU6IDI4cHg7XG4gIHBhZGRpbmc6IDAgNXB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBmb250LXdlaWdodDogMzAwO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NTlweCkge1xuICBTVVAge1xuICAgIHRvcDogLTAuNmVtICFpbXBvcnRhbnQ7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMjM5cHgpIHtcbiAgLnN1cHBvcnRlZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5OTBweCkge1xuICAuc3VwcG9ydGVkIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogMjM5cHgpIHtcbiAgLm5vdHN1cHBvcnRlZCB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgLm5vdHN1cHBvcnRlZCBQLmxvZ28ge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuICAubm90c3VwcG9ydGVkIFAubG9nbyBJTUcge1xuICAgIHdpZHRoOiAxMjBweDtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMjQwcHgpIHtcbiAgLm5vdHN1cHBvcnRlZCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxufVxuLmdsb2JhbHdyYXAge1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiAtbXMtZmxleDtcbiAgZGlzcGxheTogZmxleDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzU5cHgpIHtcbiAgLmdsb2JhbHdyYXAge1xuICAgIGZsZXgtZmxvdzogY29sdW1uO1xuICB9XG59XG4uZ2xvYmFsd3JhcCAuc2lkZWJhciB7XG4gIC13ZWJraXQtZmxleDogMCAwIDMwMHB4O1xuICAtbXMtZmxleDogMCAwIDMwMHB4O1xuICBmbGV4OiAwIDAgMzAwcHg7XG59XG4uZ2xvYmFsd3JhcCAuZ2xvYmFsdmlldyB7XG4gIC13ZWJraXQtZmxleDogMSAxIGF1dG87XG4gIC1tcy1mbGV4OiAxIDEgYXV0bztcbiAgZmxleDogMSAxIGF1dG87XG59XG4vKiBHb29nbGUgTWFwcyAqL1xuI21hcCB7XG4gIGhlaWdodDogMTAwdmg7XG4gIHdpZHRoOiAxMDAlO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NTlweCkge1xuICAjbWFwIHtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwdmggLSAxMjBweCk7XG4gICAgbWFyZ2luLXRvcDogNjBweDtcbiAgfVxufVxuLmdtLXN0eWxlIHtcbiAgZm9udC1zaXplOiAxNHB4ICFpbXBvcnRhbnQ7XG59XG4uZ20tc3R5bGUtaXcge1xuICBkaXNwbGF5OiBmbGV4O1xufVxuRElWIC5nbS1zdHlsZS1pdyB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG4uZ20tc3R5bGUtaXcge1xuICBvcmRlcjogLTE7XG59XG4uZ20tc3R5bGUtaXcgKyBESVYge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG59XG4udG9vbHRpcF93cmFwIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd247XG4gIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xuICBhbmltYXRpb24tZHVyYXRpb246IDI1MG1zO1xuICB3aWR0aDogMjAwcHggIWltcG9ydGFudDtcbn1cbi50b29sdGlwX291dGVyIHtcbiAgbGVmdDogMjBweCAhaW1wb3J0YW50O1xuICB0b3A6IDMwcHggIWltcG9ydGFudDtcbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNzU5cHgpIHtcbiAgLnRvb2x0aXBfb3V0ZXIge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxufVxuLnRvb2x0aXBfb3V0ZXIgPiBESVYge1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIGJveC1zaGFkb3c6IDAgMCAxOHB4IDAgcmdiYSgwLCAwLCAwLCAwLjIpO1xuICAtbW96LWJhY2tncm91bmQtY2xpcDogcGFkZGluZztcbiAgLXdlYmtpdC1iYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xufVxuLnRvb2x0aXAge1xuICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLnRvb2x0aXAgPiBESVYge1xuICBwYWRkaW5nOiAyMHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLnRvb2x0aXAgPiBESVYgKiB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi50b29sdGlwID4gRElWIEE6aG92ZXIge1xuICBjb2xvcjogIzAwYTI4YiAhaW1wb3J0YW50O1xufVxuLnRvb2x0aXAgPiBESVYgQTpob3ZlciBTVVAge1xuICBjb2xvcjogIzAwYTI4YiAhaW1wb3J0YW50O1xufVxuLnRvb2x0aXAgPiBESVYudGl0bGUge1xuICBiYWNrZ3JvdW5kOiAjMDBhMjhiO1xufVxuLnRvb2x0aXAgPiBESVYuY29udGVudCB7XG4gIHBhZGRpbmctYm90dG9tOiAwO1xufVxuLnRvb2x0aXAgSDIge1xuICBmb250LXNpemU6IDE0cHggIWltcG9ydGFudDtcbiAgbWFyZ2luOiAwO1xuICBjb2xvcjogI2ZmZjtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cbi50b29sdGlwIFAge1xuICBtYXJnaW46IDVweCAwIDAgMDtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuLyogU2lkZWJhciAqL1xuLnNpZGViYXIge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xuICBoZWlnaHQ6IDEwMHZoO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NTlweCkge1xuICAuc2lkZWJhciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHotaW5kZXg6IDEwMDA7XG4gICAgb3BhY2l0eTogMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgfVxuICAuc2lkZWJhci5hY3RpdmUge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjBweCkge1xuICAuc2lkZWJhciB7XG4gICAgYm94LXNoYWRvdzogMCAwIDI1cHggMCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgIHotaW5kZXg6IDI7XG4gIH1cbn1cbi5zaWRlYmFyLmFjdGl2ZSB7XG4gIHBvaW50ZXItZXZlbnRzOiBhbGw7XG4gIG9wYWNpdHk6IDE7XG59XG4uc2lkZWJhciBIMSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgYmFja2dyb3VuZDogIzAwYTI4YjtcbiAgY29sb3I6ICNmZmY7XG4gIHBhZGRpbmc6IDI1cHggMDtcbn1cbi5zaWRlYmFyIC5waGFybWFjaWVzIHtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBoZWlnaHQ6IDEwMCU7XG4gIHdpZHRoOiAxMDAlO1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NTlweCkge1xuICAuc2lkZWJhciAucGhhcm1hY2llcyB7XG4gICAgcGFkZGluZzogNjBweCAwO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cbn1cbkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzYwcHgpIHtcbiAgLnNpZGViYXIgLnBoYXJtYWNpZXMge1xuICAgIG92ZXJmbG93LXk6IHNjcm9sbDtcbiAgICB3aWR0aDogY2FsYygzMTdweCk7XG4gIH1cbn1cbi5zaWRlYmFyIC5waGFybWFjaWVzIExJIHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAyMHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQgMjUwbXMgZWFzZS1pbi1vdXQ7XG59XG4uc2lkZWJhciAucGhhcm1hY2llcyBMSSAqIHtcbiAgbWFyZ2luOiAwO1xufVxuLnNpZGViYXIgLnBoYXJtYWNpZXMgTEkgLmxvZ28ge1xuICBiYWNrZ3JvdW5kOiAjZmYyZDFlO1xuICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94O1xuICBkaXNwbGF5OiAtbXMtZmxleDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIC13ZWJraXQtZmxleDogMCAwIDMwcHg7XG4gIC1tcy1mbGV4OiAwIDAgMzBweDtcbiAgZmxleDogMCAwIDMwcHg7XG4gIGhlaWdodDogMzBweDtcbiAgYm9yZGVyOiAycHggc29saWQgI2ZmMmQxZTtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA1cHg7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogNXB4O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuLnNpZGViYXIgLnBoYXJtYWNpZXMgTEkgLmxvZ28gSU1HIHtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbn1cbi5zaWRlYmFyIC5waGFybWFjaWVzIExJIC5sb2dvLmFsdCxcbi5zaWRlYmFyIC5waGFybWFjaWVzIExJIC5sb2dvLnN1ZGFtZWFwdGVlayxcbi5zaWRlYmFyIC5waGFybWFjaWVzIExJIC5sb2dvLmJlbnUge1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuLnNpZGViYXIgLnBoYXJtYWNpZXMgTEkgLmxvZ28uc3VkYW1lYXB0ZWVrIElNRyxcbi5zaWRlYmFyIC5waGFybWFjaWVzIExJIC5sb2dvLmJlbnUgSU1HIHtcbiAgd2lkdGg6IDE4cHg7XG4gIGhlaWdodDogMThweDtcbn1cbi5zaWRlYmFyIC5waGFybWFjaWVzIExJIC5sb2dvLnN1ZGFtZWFwdGVlayB7XG4gIGJvcmRlci1jb2xvcjogI2ZmNDkzNDtcbn1cbi5zaWRlYmFyIC5waGFybWFjaWVzIExJIC5sb2dvLmJlbnUge1xuICBib3JkZXItY29sb3I6ICM2NGE5MjU7XG59XG4uc2lkZWJhciAucGhhcm1hY2llcyBMSSBIMiB7XG4gIC13ZWJraXQtZmxleDogMSAxIGF1dG87XG4gIC1tcy1mbGV4OiAxIDEgYXV0bztcbiAgZmxleDogMSAxIGF1dG87XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIHBhZGRpbmc6IDAgMTVweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG4uc2lkZWJhciAucGhhcm1hY2llcyBMSSBQIHtcbiAgLXdlYmtpdC1mbGV4OiAwIDAgNTBweDtcbiAgLW1zLWZsZXg6IDAgMCA1MHB4O1xuICBmbGV4OiAwIDAgNTBweDtcbiAgZm9udC1zaXplOiAyMi40cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGNvbG9yOiAjOGM5MzlhO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuLnNpZGViYXIgLnBoYXJtYWNpZXMgTEkgUCBTVVAge1xuICB2ZXJ0aWNhbC1hbGlnbjogc3VwZXI7XG4gIGZvbnQtc2l6ZTogMTEuOXB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICB0b3A6IDA7XG59XG4uc2lkZWJhciAucGhhcm1hY2llcyBMSTpub3QoOmZpcnN0LWNoaWxkKSB7XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCAjZWRlZGVlO1xufVxuLnNpZGViYXIgLnBoYXJtYWNpZXMgTEkuYWN0aXZlIHtcbiAgYmFja2dyb3VuZDogI2VkZWRlZTtcbn1cbi5zaWRlYmFyIC5waGFybWFjaWVzIExJLmFjdGl2ZSBQIHtcbiAgY29sb3I6ICMwMDA7XG59XG4uc2lkZWJhciAucGhhcm1hY2llcyBMSTpob3ZlciBIMiB7XG4gIGNvbG9yOiAjMDBhMjhiO1xufVxuLm1vYmlsZS10aXRsZSxcbi5saXN0LXRvZ2dsZSxcbi5waGFybWFjeS10aXRsZSxcbi5waGFybWFjeS1jb250ZW50IHtcbiAgZGlzcGxheTogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6IDIwMDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDYwcHg7XG4gIGxpbmUtaGVpZ2h0OiA2MHB4O1xufVxuQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NTlweCkge1xuICAubW9iaWxlLXRpdGxlLFxuICAubGlzdC10b2dnbGUsXG4gIC5waGFybWFjeS10aXRsZSxcbiAgLnBoYXJtYWN5LWNvbnRlbnQge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4ubW9iaWxlLXRpdGxlLFxuLnBoYXJtYWN5LXRpdGxlIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gIGJhY2tncm91bmQ6ICMwMGEyOGI7XG4gIGNvbG9yOiAjZmZmO1xuICB0b3A6IDA7XG59XG4ubGlzdC10b2dnbGUsXG4ucGhhcm1hY3ktY29udGVudCB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG4gIGJvcmRlcjogbm9uZTtcbiAgY29sb3I6ICMwMGEyOGI7XG4gIGJvdHRvbTogMDtcbn1cbi5saXN0LXRvZ2dsZTphZnRlcixcbi5waGFybWFjeS1jb250ZW50OmFmdGVyIHtcbiAgY29udGVudDogJyc7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDMwcHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiA2MHB4O1xuICBsZWZ0OiAwO1xuICBib3gtc2hhZG93OiBpbnNldCAxcHggLTE5cHggMzNweCAtMjVweCByZ2JhKDAsIDAsIDAsIDAuNzUpO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cbi5saXN0LXRvZ2dsZSB7XG4gIGZvbnQtc2l6ZTogMjFweDtcbiAgb3V0bGluZTogbm9uZTtcbiAgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2UtaW4tb3V0O1xufVxuLmxpc3QtdG9nZ2xlLmxpc3Q6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEUwMDJcIjtcbn1cbi5saXN0LXRvZ2dsZS5tYXA6YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEUwMDNcIjtcbn1cbi5saXN0LXRvZ2dsZTpiZWZvcmUge1xuICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xuICBmb250LWZhbWlseTogaWNvbnM7XG59XG4ubGlzdC10b2dnbGU6aG92ZXIsXG4ubGlzdC10b2dnbGU6Zm9jdXMsXG4ubGlzdC10b2dnbGU6YWN0aXZlIHtcbiAgYm9yZGVyOiBub25lO1xuICBvdXRsaW5lOiBub25lO1xuICBiYWNrZ3JvdW5kOiAjMDBhMjhiO1xuICBjb2xvcjogI2ZmZjtcbn1cbi8qIFBoYXJtYWN5IG9wZW4gKi9cbkJPRFkucGhhcm1hY3ktb3BlbiAubW9iaWxlLXRpdGxlLFxuQk9EWS5waGFybWFjeS1vcGVuIC5saXN0LXRvZ2dsZSxcbkJPRFkucGhhcm1hY3ktb3BlbiAuc2lkZWJhcixcbkJPRFkucGhhcm1hY3ktb3BlbiAuY2VudGVyX3RhcmdldCB7XG4gIGRpc3BsYXk6IG5vbmU7XG59XG5CT0RZLnBoYXJtYWN5LW9wZW4gLnBoYXJtYWN5IHtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4ucGhhcm1hY3kge1xuICBkaXNwbGF5OiBub25lO1xufVxuLnBoYXJtYWN5IC5waGFybWFjeS10aXRsZSB7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogNjBweDtcbiAgZGlzcGxheTogLXdlYmtpdC1mbGV4O1xuICBkaXNwbGF5OiAtbXMtZmxleGJveDtcbiAgZGlzcGxheTogLW1zLWZsZXg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBwYWRkaW5nOiAxMHB4IDYwcHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG59XG4ucGhhcm1hY3kgLnBoYXJtYWN5LXRpdGxlIEgxIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XG59XG4ucGhhcm1hY3kgLnBoYXJtYWN5LXRpdGxlIEJVVFRPTiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgbGVmdDogMjBweDtcbiAgYmFja2dyb3VuZDogbm9uZTtcbiAgYm9yZGVyOiBub25lO1xufVxuLnBoYXJtYWN5IC5waGFybWFjeS10aXRsZSBCVVRUT046YmVmb3JlIHtcbiAgY29udGVudDogXCJcXEUwMDFcIjtcbiAgZm9udC1mYW1pbHk6IGljb25zO1xuICBsaW5lLWhlaWdodDogNjBweDtcbiAgaGVpZ2h0OiA2MHB4O1xufVxuLnBoYXJtYWN5IC5waGFybWFjeS1jb250ZW50IHtcbiAgaGVpZ2h0OiBhdXRvO1xuICBwYWRkaW5nOiA0MHB4O1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xufVxuLnBoYXJtYWN5IC5waGFybWFjeS1jb250ZW50ICoge1xuICBjb2xvcjogIzAwMDtcbn1cbi5waGFybWFjeSAucGhhcm1hY3ktY29udGVudDphZnRlciB7XG4gIHRvcDogLTMwcHg7XG59XG4ucGhhcm1hY3kgLnBoYXJtYWN5LWNvbnRlbnQgUCB7XG4gIG1hcmdpbjogMDtcbiAgZm9udC1zaXplOiAxNy41cHg7XG59XG4ucGhhcm1hY3kgLnBoYXJtYWN5LWNvbnRlbnQgUCBBOmhvdmVyIHtcbiAgY29sb3I6ICMwMGEyOGIgIWltcG9ydGFudDtcbn1cbi5waGFybWFjeSAucGhhcm1hY3ktY29udGVudCBQIEE6aG92ZXIgU1VQIHtcbiAgY29sb3I6ICMwMGEyOGIgIWltcG9ydGFudDtcbn1cbi8qIENlbnRlciBtYXAgdG8gY3VycmVudCBsb2NhdGlvbiAqL1xuQlVUVE9OLmNlbnRlcl90YXJnZXQge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwb3NpdGlvbjogZml4ZWQ7XG4gIHRvcDogMjBweDtcbiAgcmlnaHQ6IDIwcHg7XG4gIHotaW5kZXg6IDkwMDtcbiAgYmFja2dyb3VuZDogIzAwYTI4YjtcbiAgd2lkdGg6IDQ1cHg7XG4gIGhlaWdodDogNDVweDtcbiAgYm9yZGVyOiBub25lO1xuICBsaW5lLWhlaWdodDogNDVweDtcbiAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiAxMHB4O1xuICAtbW96LWJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gIHRyYW5zaXRpb246IGFsbCAyNTBtcyBlYXNlLWluLW91dDtcbn1cbkJVVFRPTi5jZW50ZXJfdGFyZ2V0OmJlZm9yZSB7XG4gIGNvbnRlbnQ6IFwiXFxFMDA0XCI7XG4gIGZvbnQtZmFtaWx5OiBpY29ucztcbiAgbGluZS1oZWlnaHQ6IDQ1cHg7XG4gIGZvbnQtc2l6ZTogMjMuMXB4O1xuICBjb2xvcjogI2ZmZjtcbiAgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2UtaW4tb3V0O1xufVxuQlVUVE9OLmNlbnRlcl90YXJnZXQ6aG92ZXIge1xuICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuQlVUVE9OLmNlbnRlcl90YXJnZXQ6aG92ZXI6YmVmb3JlIHtcbiAgY29sb3I6ICMwMGEyOGI7XG59XG5AbWVkaWEgb25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc1OXB4KSB7XG4gIEJVVFRPTi5jZW50ZXJfdGFyZ2V0IHtcbiAgICB0b3A6IDgwcHg7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGxpbmUtaGVpZ2h0OiA0MHB4O1xuICB9XG4gIEJVVFRPTi5jZW50ZXJfdGFyZ2V0OmJlZm9yZSB7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgZm9udC1zaXplOiAyMXB4O1xuICB9XG59XG4ucHQtaW50ZW50LW5lZ2F0aXZlIHtcbiAgY29sb3I6ICNmZjJkMWUgIWltcG9ydGFudDtcbn1cbi5wdC1pbnRlbnQtbmVnYXRpdmUgKiB7XG4gIGNvbG9yOiAjZmYyZDFlICFpbXBvcnRhbnQ7XG59XG4ucHQtaW50ZW50LXBvc2l0aXZlIHtcbiAgY29sb3I6ICMwMGEyOGIgIWltcG9ydGFudDtcbn1cbi5wdC1pbnRlbnQtcG9zaXRpdmUgKiB7XG4gIGNvbG9yOiAjMDBhMjhiICFpbXBvcnRhbnQ7XG59XG4uZ20tc3R5bGUgLmdtLXN0eWxlLWl3IHtcbiAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gIGxlZnQ6IDAgIWltcG9ydGFudDtcbiAgd2lkdGg6IDIwMHB4ICFpbXBvcnRhbnQ7XG59XG4uZ20tc3R5bGUgLmdtLXN0eWxlLWl3ID4gRElWIHtcbiAgd2lkdGg6IDIwMHB4O1xufVxuLnRlc3Qge1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuLnRlc3QuYWN0aXZlIHtcbiAgYW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd247XG4gIGFuaW1hdGlvbi1kZWxheTogLjE1cztcbiAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyNTBtcztcbiAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG4gIGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IDE7XG59XG4udG9vbHRpcCB7XG4gIGJhY2tncm91bmQ6ICNmZmY7XG59XG4iLCIvLyBHZW5lcmFsIGZvbnQgaW5jbHVkZXNcclxuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzP2ZhbWlseT1MYXRvOjMwMCw0MDAsNzAwJnN1YnNldD1sYXRpbi1leHQnKTsiLCIvKiEgbm9ybWFsaXplLmNzcyB2My4wLjMgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXHJcblxyXG4vKipcclxuICogMS4gU2V0IGRlZmF1bHQgZm9udCBmYW1pbHkgdG8gc2Fucy1zZXJpZi5cclxuICogMi4gUHJldmVudCBpT1MgYW5kIElFIHRleHQgc2l6ZSBhZGp1c3QgYWZ0ZXIgZGV2aWNlIG9yaWVudGF0aW9uIGNoYW5nZSxcclxuICogICAgd2l0aG91dCBkaXNhYmxpbmcgdXNlciB6b29tLlxyXG4gKi9cclxuXHJcbmh0bWwge1xyXG4gIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOyAvKiAxICovXHJcbiAgLW1zLXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cclxuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBkZWZhdWx0IG1hcmdpbi5cclxuICovXHJcblxyXG5ib2R5IHtcclxuICBtYXJnaW46IDA7XHJcbn1cclxuXHJcbi8qIEhUTUw1IGRpc3BsYXkgZGVmaW5pdGlvbnNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYW55IEhUTUw1IGVsZW1lbnQgaW4gSUUgOC85LlxyXG4gKiBDb3JyZWN0IGBibG9ja2AgZGlzcGxheSBub3QgZGVmaW5lZCBmb3IgYGRldGFpbHNgIG9yIGBzdW1tYXJ5YCBpbiBJRSAxMC8xMVxyXG4gKiBhbmQgRmlyZWZveC5cclxuICogQ29ycmVjdCBgYmxvY2tgIGRpc3BsYXkgbm90IGRlZmluZWQgZm9yIGBtYWluYCBpbiBJRSAxMS5cclxuICovXHJcblxyXG5hcnRpY2xlLFxyXG5hc2lkZSxcclxuZGV0YWlscyxcclxuZmlnY2FwdGlvbixcclxuZmlndXJlLFxyXG5mb290ZXIsXHJcbmhlYWRlcixcclxuaGdyb3VwLFxyXG5tYWluLFxyXG5tZW51LFxyXG5uYXYsXHJcbnNlY3Rpb24sXHJcbnN1bW1hcnkge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCBgaW5saW5lLWJsb2NrYCBkaXNwbGF5IG5vdCBkZWZpbmVkIGluIElFIDgvOS5cclxuICogMi4gTm9ybWFsaXplIHZlcnRpY2FsIGFsaWdubWVudCBvZiBgcHJvZ3Jlc3NgIGluIENocm9tZSwgRmlyZWZveCwgYW5kIE9wZXJhLlxyXG4gKi9cclxuXHJcbmF1ZGlvLFxyXG5jYW52YXMsXHJcbnByb2dyZXNzLFxyXG52aWRlbyB7XHJcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrOyAvKiAxICovXHJcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBQcmV2ZW50IG1vZGVybiBicm93c2VycyBmcm9tIGRpc3BsYXlpbmcgYGF1ZGlvYCB3aXRob3V0IGNvbnRyb2xzLlxyXG4gKiBSZW1vdmUgZXhjZXNzIGhlaWdodCBpbiBpT1MgNSBkZXZpY2VzLlxyXG4gKi9cclxuXHJcbmF1ZGlvOm5vdChbY29udHJvbHNdKSB7XHJcbiAgZGlzcGxheTogbm9uZTtcclxuICBoZWlnaHQ6IDA7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIGBbaGlkZGVuXWAgc3R5bGluZyBub3QgcHJlc2VudCBpbiBJRSA4LzkvMTAuXHJcbiAqIEhpZGUgdGhlIGB0ZW1wbGF0ZWAgZWxlbWVudCBpbiBJRSA4LzkvMTAvMTEsIFNhZmFyaSwgYW5kIEZpcmVmb3ggPCAyMi5cclxuICovXHJcblxyXG5baGlkZGVuXSxcclxudGVtcGxhdGUge1xyXG4gIGRpc3BsYXk6IG5vbmU7XHJcbn1cclxuXHJcbi8qIExpbmtzXHJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXHJcblxyXG4vKipcclxuICogUmVtb3ZlIHRoZSBncmF5IGJhY2tncm91bmQgY29sb3IgZnJvbSBhY3RpdmUgbGlua3MgaW4gSUUgMTAuXHJcbiAqL1xyXG5cclxuYSB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBJbXByb3ZlIHJlYWRhYmlsaXR5IG9mIGZvY3VzZWQgZWxlbWVudHMgd2hlbiB0aGV5IGFyZSBhbHNvIGluIGFuXHJcbiAqIGFjdGl2ZS9ob3ZlciBzdGF0ZS5cclxuICovXHJcblxyXG5hOmFjdGl2ZSxcclxuYTpob3ZlciB7XHJcbiAgb3V0bGluZTogMDtcclxufVxyXG5cclxuLyogVGV4dC1sZXZlbCBzZW1hbnRpY3NcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIHN0eWxpbmcgbm90IHByZXNlbnQgaW4gSUUgOC85LzEwLzExLCBTYWZhcmksIGFuZCBDaHJvbWUuXHJcbiAqL1xyXG5cclxuYWJiclt0aXRsZV0ge1xyXG4gIGJvcmRlci1ib3R0b206IDFweCBkb3R0ZWQ7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIHN0eWxlIHNldCB0byBgYm9sZGVyYCBpbiBGaXJlZm94IDQrLCBTYWZhcmksIGFuZCBDaHJvbWUuXHJcbiAqL1xyXG5cclxuYixcclxuc3Ryb25nIHtcclxuICBmb250LXdlaWdodDogYm9sZDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3Mgc3R5bGluZyBub3QgcHJlc2VudCBpbiBTYWZhcmkgYW5kIENocm9tZS5cclxuICovXHJcblxyXG5kZm4ge1xyXG4gIGZvbnQtc3R5bGU6IGl0YWxpYztcclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3MgdmFyaWFibGUgYGgxYCBmb250LXNpemUgYW5kIG1hcmdpbiB3aXRoaW4gYHNlY3Rpb25gIGFuZCBgYXJ0aWNsZWBcclxuICogY29udGV4dHMgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxyXG4gKi9cclxuXHJcbmgxIHtcclxuICBmb250LXNpemU6IDJlbTtcclxuICBtYXJnaW46IDAuNjdlbSAwO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBzdHlsaW5nIG5vdCBwcmVzZW50IGluIElFIDgvOS5cclxuICovXHJcblxyXG5tYXJrIHtcclxuICBiYWNrZ3JvdW5kOiAjZmYwO1xyXG4gIGNvbG9yOiAjMDAwO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBpbmNvbnNpc3RlbnQgYW5kIHZhcmlhYmxlIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuc21hbGwge1xyXG4gIGZvbnQtc2l6ZTogODAlO1xyXG59XHJcblxyXG4vKipcclxuICogUHJldmVudCBgc3ViYCBhbmQgYHN1cGAgYWZmZWN0aW5nIGBsaW5lLWhlaWdodGAgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbnN1Yixcclxuc3VwIHtcclxuICBmb250LXNpemU6IDc1JTtcclxuICBsaW5lLWhlaWdodDogMDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lO1xyXG59XHJcblxyXG5zdXAge1xyXG4gIHRvcDogLTAuNWVtO1xyXG59XHJcblxyXG5zdWIge1xyXG4gIGJvdHRvbTogLTAuMjVlbTtcclxufVxyXG5cclxuLyogRW1iZWRkZWQgY29udGVudFxyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xyXG5cclxuLyoqXHJcbiAqIFJlbW92ZSBib3JkZXIgd2hlbiBpbnNpZGUgYGFgIGVsZW1lbnQgaW4gSUUgOC85LzEwLlxyXG4gKi9cclxuXHJcbmltZyB7XHJcbiAgYm9yZGVyOiAwO1xyXG59XHJcblxyXG4vKipcclxuICogQ29ycmVjdCBvdmVyZmxvdyBub3QgaGlkZGVuIGluIElFIDkvMTAvMTEuXHJcbiAqL1xyXG5cclxuc3ZnOm5vdCg6cm9vdCkge1xyXG4gIG92ZXJmbG93OiBoaWRkZW47XHJcbn1cclxuXHJcbi8qIEdyb3VwaW5nIGNvbnRlbnRcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIG1hcmdpbiBub3QgcHJlc2VudCBpbiBJRSA4LzkgYW5kIFNhZmFyaS5cclxuICovXHJcblxyXG5maWd1cmUge1xyXG4gIG1hcmdpbjogMWVtIDQwcHg7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIGRpZmZlcmVuY2VzIGJldHdlZW4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuaHIge1xyXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94O1xyXG4gIGhlaWdodDogMDtcclxufVxyXG5cclxuLyoqXHJcbiAqIENvbnRhaW4gb3ZlcmZsb3cgaW4gYWxsIGJyb3dzZXJzLlxyXG4gKi9cclxuXHJcbnByZSB7XHJcbiAgb3ZlcmZsb3c6IGF1dG87XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIG9kZCBgZW1gLXVuaXQgZm9udCBzaXplIHJlbmRlcmluZyBpbiBhbGwgYnJvd3NlcnMuXHJcbiAqL1xyXG5cclxuY29kZSxcclxua2JkLFxyXG5wcmUsXHJcbnNhbXAge1xyXG4gIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTtcclxuICBmb250LXNpemU6IDFlbTtcclxufVxyXG5cclxuLyogRm9ybXNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBLbm93biBsaW1pdGF0aW9uOiBieSBkZWZhdWx0LCBDaHJvbWUgYW5kIFNhZmFyaSBvbiBPUyBYIGFsbG93IHZlcnkgbGltaXRlZFxyXG4gKiBzdHlsaW5nIG9mIGBzZWxlY3RgLCB1bmxlc3MgYSBgYm9yZGVyYCBwcm9wZXJ0eSBpcyBzZXQuXHJcbiAqL1xyXG5cclxuLyoqXHJcbiAqIDEuIENvcnJlY3QgY29sb3Igbm90IGJlaW5nIGluaGVyaXRlZC5cclxuICogICAgS25vd24gaXNzdWU6IGFmZmVjdHMgY29sb3Igb2YgZGlzYWJsZWQgZWxlbWVudHMuXHJcbiAqIDIuIENvcnJlY3QgZm9udCBwcm9wZXJ0aWVzIG5vdCBiZWluZyBpbmhlcml0ZWQuXHJcbiAqIDMuIEFkZHJlc3MgbWFyZ2lucyBzZXQgZGlmZmVyZW50bHkgaW4gRmlyZWZveCA0KywgU2FmYXJpLCBhbmQgQ2hyb21lLlxyXG4gKi9cclxuXHJcbmJ1dHRvbixcclxuaW5wdXQsXHJcbm9wdGdyb3VwLFxyXG5zZWxlY3QsXHJcbnRleHRhcmVhIHtcclxuICBjb2xvcjogaW5oZXJpdDsgLyogMSAqL1xyXG4gIGZvbnQ6IGluaGVyaXQ7IC8qIDIgKi9cclxuICBtYXJnaW46IDA7IC8qIDMgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIEFkZHJlc3MgYG92ZXJmbG93YCBzZXQgdG8gYGhpZGRlbmAgaW4gSUUgOC85LzEwLzExLlxyXG4gKi9cclxuXHJcbmJ1dHRvbiB7XHJcbiAgb3ZlcmZsb3c6IHZpc2libGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBBZGRyZXNzIGluY29uc2lzdGVudCBgdGV4dC10cmFuc2Zvcm1gIGluaGVyaXRhbmNlIGZvciBgYnV0dG9uYCBhbmQgYHNlbGVjdGAuXHJcbiAqIEFsbCBvdGhlciBmb3JtIGNvbnRyb2wgZWxlbWVudHMgZG8gbm90IGluaGVyaXQgYHRleHQtdHJhbnNmb3JtYCB2YWx1ZXMuXHJcbiAqIENvcnJlY3QgYGJ1dHRvbmAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveCwgSUUgOC85LzEwLzExLCBhbmQgT3BlcmEuXHJcbiAqIENvcnJlY3QgYHNlbGVjdGAgc3R5bGUgaW5oZXJpdGFuY2UgaW4gRmlyZWZveC5cclxuICovXHJcblxyXG5idXR0b24sXHJcbnNlbGVjdCB7XHJcbiAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBBdm9pZCB0aGUgV2ViS2l0IGJ1ZyBpbiBBbmRyb2lkIDQuMC4qIHdoZXJlICgyKSBkZXN0cm95cyBuYXRpdmUgYGF1ZGlvYFxyXG4gKiAgICBhbmQgYHZpZGVvYCBjb250cm9scy5cclxuICogMi4gQ29ycmVjdCBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIGBpbnB1dGAgdHlwZXMgaW4gaU9TLlxyXG4gKiAzLiBJbXByb3ZlIHVzYWJpbGl0eSBhbmQgY29uc2lzdGVuY3kgb2YgY3Vyc29yIHN0eWxlIGJldHdlZW4gaW1hZ2UtdHlwZVxyXG4gKiAgICBgaW5wdXRgIGFuZCBvdGhlcnMuXHJcbiAqL1xyXG5cclxuYnV0dG9uLFxyXG5odG1sIGlucHV0W3R5cGU9XCJidXR0b25cIl0sIC8qIDEgKi9cclxuaW5wdXRbdHlwZT1cInJlc2V0XCJdLFxyXG5pbnB1dFt0eXBlPVwic3VibWl0XCJdIHtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjsgLyogMiAqL1xyXG4gIGN1cnNvcjogcG9pbnRlcjsgLyogMyAqL1xyXG59XHJcblxyXG4vKipcclxuICogUmUtc2V0IGRlZmF1bHQgY3Vyc29yIGZvciBkaXNhYmxlZCBlbGVtZW50cy5cclxuICovXHJcblxyXG5idXR0b25bZGlzYWJsZWRdLFxyXG5odG1sIGlucHV0W2Rpc2FibGVkXSB7XHJcbiAgY3Vyc29yOiBkZWZhdWx0O1xyXG59XHJcblxyXG4vKipcclxuICogUmVtb3ZlIGlubmVyIHBhZGRpbmcgYW5kIGJvcmRlciBpbiBGaXJlZm94IDQrLlxyXG4gKi9cclxuXHJcbmJ1dHRvbjo6LW1vei1mb2N1cy1pbm5lcixcclxuaW5wdXQ6Oi1tb3otZm9jdXMtaW5uZXIge1xyXG4gIGJvcmRlcjogMDtcclxuICBwYWRkaW5nOiAwO1xyXG59XHJcblxyXG4vKipcclxuICogQWRkcmVzcyBGaXJlZm94IDQrIHNldHRpbmcgYGxpbmUtaGVpZ2h0YCBvbiBgaW5wdXRgIHVzaW5nIGAhaW1wb3J0YW50YCBpblxyXG4gKiB0aGUgVUEgc3R5bGVzaGVldC5cclxuICovXHJcblxyXG5pbnB1dCB7XHJcbiAgbGluZS1oZWlnaHQ6IG5vcm1hbDtcclxufVxyXG5cclxuLyoqXHJcbiAqIEl0J3MgcmVjb21tZW5kZWQgdGhhdCB5b3UgZG9uJ3QgYXR0ZW1wdCB0byBzdHlsZSB0aGVzZSBlbGVtZW50cy5cclxuICogRmlyZWZveCdzIGltcGxlbWVudGF0aW9uIGRvZXNuJ3QgcmVzcGVjdCBib3gtc2l6aW5nLCBwYWRkaW5nLCBvciB3aWR0aC5cclxuICpcclxuICogMS4gQWRkcmVzcyBib3ggc2l6aW5nIHNldCB0byBgY29udGVudC1ib3hgIGluIElFIDgvOS8xMC5cclxuICogMi4gUmVtb3ZlIGV4Y2VzcyBwYWRkaW5nIGluIElFIDgvOS8xMC5cclxuICovXHJcblxyXG5pbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0sXHJcbmlucHV0W3R5cGU9XCJyYWRpb1wiXSB7XHJcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLyogMSAqL1xyXG4gIHBhZGRpbmc6IDA7IC8qIDIgKi9cclxufVxyXG5cclxuLyoqXHJcbiAqIEZpeCB0aGUgY3Vyc29yIHN0eWxlIGZvciBDaHJvbWUncyBpbmNyZW1lbnQvZGVjcmVtZW50IGJ1dHRvbnMuIEZvciBjZXJ0YWluXHJcbiAqIGBmb250LXNpemVgIHZhbHVlcyBvZiB0aGUgYGlucHV0YCwgaXQgY2F1c2VzIHRoZSBjdXJzb3Igc3R5bGUgb2YgdGhlXHJcbiAqIGRlY3JlbWVudCBidXR0b24gdG8gY2hhbmdlIGZyb20gYGRlZmF1bHRgIHRvIGB0ZXh0YC5cclxuICovXHJcblxyXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LWlubmVyLXNwaW4tYnV0dG9uLFxyXG5pbnB1dFt0eXBlPVwibnVtYmVyXCJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHtcclxuICBoZWlnaHQ6IGF1dG87XHJcbn1cclxuXHJcbi8qKlxyXG4gKiAxLiBBZGRyZXNzIGBhcHBlYXJhbmNlYCBzZXQgdG8gYHNlYXJjaGZpZWxkYCBpbiBTYWZhcmkgYW5kIENocm9tZS5cclxuICogMi4gQWRkcmVzcyBgYm94LXNpemluZ2Agc2V0IHRvIGBib3JkZXItYm94YCBpbiBTYWZhcmkgYW5kIENocm9tZS5cclxuICovXHJcblxyXG5pbnB1dFt0eXBlPVwic2VhcmNoXCJdIHtcclxuICAtd2Via2l0LWFwcGVhcmFuY2U6IHRleHRmaWVsZDsgLyogMSAqL1xyXG4gIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgaW5uZXIgcGFkZGluZyBhbmQgc2VhcmNoIGNhbmNlbCBidXR0b24gaW4gU2FmYXJpIGFuZCBDaHJvbWUgb24gT1MgWC5cclxuICogU2FmYXJpIChidXQgbm90IENocm9tZSkgY2xpcHMgdGhlIGNhbmNlbCBidXR0b24gd2hlbiB0aGUgc2VhcmNoIGlucHV0IGhhc1xyXG4gKiBwYWRkaW5nIChhbmQgYHRleHRmaWVsZGAgYXBwZWFyYW5jZSkuXHJcbiAqL1xyXG5cclxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtY2FuY2VsLWJ1dHRvbixcclxuaW5wdXRbdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XHJcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xyXG59XHJcblxyXG4vKipcclxuICogRGVmaW5lIGNvbnNpc3RlbnQgYm9yZGVyLCBtYXJnaW4sIGFuZCBwYWRkaW5nLlxyXG4gKi9cclxuXHJcbmZpZWxkc2V0IHtcclxuICBib3JkZXI6IDFweCBzb2xpZCAjYzBjMGMwO1xyXG4gIG1hcmdpbjogMCAycHg7XHJcbiAgcGFkZGluZzogMC4zNWVtIDAuNjI1ZW0gMC43NWVtO1xyXG59XHJcblxyXG4vKipcclxuICogMS4gQ29ycmVjdCBgY29sb3JgIG5vdCBiZWluZyBpbmhlcml0ZWQgaW4gSUUgOC85LzEwLzExLlxyXG4gKiAyLiBSZW1vdmUgcGFkZGluZyBzbyBwZW9wbGUgYXJlbid0IGNhdWdodCBvdXQgaWYgdGhleSB6ZXJvIG91dCBmaWVsZHNldHMuXHJcbiAqL1xyXG5cclxubGVnZW5kIHtcclxuICBib3JkZXI6IDA7IC8qIDEgKi9cclxuICBwYWRkaW5nOiAwOyAvKiAyICovXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgOC85LzEwLzExLlxyXG4gKi9cclxuXHJcbnRleHRhcmVhIHtcclxuICBvdmVyZmxvdzogYXV0bztcclxufVxyXG5cclxuLyoqXHJcbiAqIERvbid0IGluaGVyaXQgdGhlIGBmb250LXdlaWdodGAgKGFwcGxpZWQgYnkgYSBydWxlIGFib3ZlKS5cclxuICogTk9URTogdGhlIGRlZmF1bHQgY2Fubm90IHNhZmVseSBiZSBjaGFuZ2VkIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIE9TIFguXHJcbiAqL1xyXG5cclxub3B0Z3JvdXAge1xyXG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG59XHJcblxyXG4vKiBUYWJsZXNcclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cclxuXHJcbi8qKlxyXG4gKiBSZW1vdmUgbW9zdCBzcGFjaW5nIGJldHdlZW4gdGFibGUgY2VsbHMuXHJcbiAqL1xyXG5cclxudGFibGUge1xyXG4gIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7XHJcbiAgYm9yZGVyLXNwYWNpbmc6IDA7XHJcbn1cclxuXHJcbnRkLFxyXG50aCB7XHJcbiAgcGFkZGluZzogMDtcclxufVxyXG4iLCJALW1zLXZpZXdwb3J0IHsgd2lkdGg6IGRldmljZS13aWR0aDsgfVxyXG5cclxuSFRNTCB7IG92ZXJmbG93OiAtbW96LXNjcm9sbGJhcnMtdmVydGljYWw7IH1cclxuQk9EWSB7IGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlczsgaW1hZ2UtcmVuZGVyaW5nOiAtby1jcmlzcC1lZGdlczsgaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0OyAtbXMtaW50ZXJwb2xhdGlvbi1tb2RlOiBuZWFyZXN0LW5laWdoYm9yOyB9XHJcblxyXG5AbWVkaWEgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAxKSB7XHJcblx0SFRNTCB7IG92ZXJmbG93LXk6IHNjcm9sbDsgfVxyXG5cdFNFTEVDVCB7IHBhZGRpbmctcmlnaHQ6IDMwcHggIWltcG9ydGFudDsgfVxyXG59XHJcblxyXG5CVVRUT04sIElOUFVULCBTRUxFQ1QsIFRFWFRBUkVBIHsgLmJveC1zaXppbmcoYm9yZGVyLWJveCk7IGxpbmUtaGVpZ2h0OiBub3JtYWwgIWltcG9ydGFudDsgbWF4LXdpZHRoOiAxMDAlOyBmb250LXNpemU6IDEwMCU7IG1hcmdpbjogMDsgdmVydGljYWwtYWxpZ246IG1pZGRsZTsgfVxyXG5cclxuKjpmaXJzdC1jaGlsZCtIVE1MIElOUFVUW3R5cGU9XCJjaGVja2JveFwiXSB7IG1hcmdpbjogMDsgfVxyXG4qOmZpcnN0LWNoaWxkK0hUTUwgSU5QVVRbdHlwZT1cInJhZGlvXCJdIHsgbWFyZ2luOiAwOyB9XHJcblxyXG5TRUxFQ1QgeyAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IC1tb3otYXBwZWFyYW5jZTogd2luZG93OyB0ZXh0LWluZGVudDogMC4wMXB4OyB0ZXh0LW92ZXJmbG93OiAnJzsgYmFja2dyb3VuZDogI2ZmZjsgfVxyXG5TRUxFQ1Q6Oi1tcy1leHBhbmQgeyBkaXNwbGF5OiBub25lOyB9XHJcblNFTEVDVDpmb2N1cyB7IG91dGxpbmU6IG5vbmU7IGJvcmRlci1jb2xvcjogI2FhYTsgfVxyXG5TRUxFQ1Q6Zm9jdXMgT1BUSU9OIHsgYmFja2dyb3VuZDogI2ZmZjsgfVxyXG5cclxuQG1lZGlhICgtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDApIHsgc2VsZWN0IHsgcGFkZGluZy1yaWdodDogMzBweDsgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7IG92ZXJmbG93OiBoaWRkZW47IGJhY2tncm91bmQ6ICNmZmYgdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQlVBQUFBR0NBWUFBQUFzVmRXakFBQUFHWFJGV0hSVGIyWjBkMkZ5WlFCQlpHOWlaU0JKYldGblpWSmxZV1I1Y2NsbFBBQUFBR1ZKUkVGVWVOcGlkSFYxRldSZ1lEZ0R4SzVBZkk4Qk93Z0Y0dkpkdTNhWk1CQUJtSUQ0UFJDdmhocXNoTVBBVlVEY3lVQWtZSUhTRlZBYVpMQUprb3RoQm9aQkxTYkpVR3dHRzVOaklMcWg2QVlMa21NZ05rTmhCcitIQmdISkJvSUFRSUFCQUFNRUZ4TXZiNlIzQUFBQUFFbEZUa1N1UW1DQykgMTAwJSA1MCUgbm8tcmVwZWF0OyB9IH1cclxuQG1lZGlhIHNjcmVlbiBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpIHsgU0VMRUNUIHsgcGFkZGluZy1yaWdodDogMzBweCAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOiAjZmZmIHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJVQUFBQUdDQVlBQUFBc1ZkV2pBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUdWSlJFRlVlTnBpZEhWMUZXUmdZRGdEeEs1QWZJOEJPd2dGNHZKZHUzYVpNQkFCbUlENFBSQ3ZoaHFzaE1QQVZVRGN5VUFrWUlIU0ZWQWFaTEFKa290aEJvWkJMU2JKVUd3R0c1TmpJTHFoNkFZTGttTWdOa05oQnIrSEJnSEpCb0lBUUlBQkFBTUVGeE12YjZSM0FBQUFBRWxGVGtTdVFtQ0MpIDEwMCUgNTAlIG5vLXJlcGVhdDsgfSB9XHJcblxyXG46Oi1tb3otc2VsZWN0aW9uIHsgYmFja2dyb3VuZDogQGNvbG9yLW1haW47IGNvbG9yOiBAY29sb3IwMTsgdGV4dC1zaGFkb3c6IG5vbmU7IH1cclxuOjpzZWxlY3Rpb24geyBiYWNrZ3JvdW5kOiBAY29sb3ItbWFpbjsgY29sb3I6IEBjb2xvcjAxOyB0ZXh0LXNoYWRvdzogbm9uZTsgfSIsIi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAvL1xyXG4vL1xyXG4vLyAgQW5jaG9yTEVTU1xyXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLy9cclxuLy8gIFRoZSBtb3N0IGV4dGVuc2l2ZSBMRVNTIG1peGlucyBsaWJyYXJ5XHJcbi8vICBodHRwczovL2dpdGh1Yi5jb20vaW52YWRlcjM2NS9hbmNob3JMRVNTXHJcbi8vXHJcbi8vICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UgdjIuMFxyXG4vL1xyXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLy9cbi8vXHJcbi8vICAwMS4gTWl4aW5zXHJcbi8vICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuLy8gIE1peGlucyBcclxuXHJcbiAgICAuYWJzb2x1dGUge1xyXG4gICAgICAgIC5hbGlnbiAoQHRvcDogYXV0bywgQHJpZ2h0OiBhdXRvLCBAYm90dG9tOiBhdXRvLCBAbGVmdDogYXV0bywgQHF1ZXJ5OiAwKSB3aGVuIG5vdCAoQHRvcCA9IHNraXApIGFuZCAoQHF1ZXJ5ID0gMCkge1xyXG4gICAgICAgICAgIC5wb3NpdGlvbi5hbGlnbihhYnNvbHV0ZSwgQHRvcCwgQHJpZ2h0LCBAYm90dG9tLCBAbGVmdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5sZWZ0LXRvcCAoQGxlZnQ6IGF1dG8sIEB0b3A6IGF1dG8pIHdoZW4gbm90IChAbGVmdCA9IHNraXApIHtcclxuICAgICAgICAgICAgLnBvc2l0aW9uLmxlZnQtdG9wKGFic29sdXRlLCBAbGVmdCwgQHRvcCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5sZWZ0LWJvdHRvbSAoQGxlZnQ6IGF1dG8sIEBib3R0b206IGF1dG8pIHdoZW4gbm90IChAbGVmdCA9IHNraXApIHtcclxuICAgICAgICAgICAgLnBvc2l0aW9uLmxlZnQtYm90dG9tKGFic29sdXRlLCBAbGVmdCwgQGJvdHRvbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5yaWdodC10b3AgKEByaWdodDogYXV0bywgQHRvcDogYXV0bykgd2hlbiBub3QgKEByaWdodCA9IHNraXApIHtcclxuICAgICAgICAgICAgLnBvc2l0aW9uLnJpZ2h0LXRvcChhYnNvbHV0ZSwgQHJpZ2h0LCBAdG9wKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnJpZ2h0LWJvdHRvbSAoQHJpZ2h0OiBhdXRvLCBAYm90dG9tOiBhdXRvKSB3aGVuIG5vdCAoQHJpZ2h0ID0gc2tpcCkge1xyXG4gICAgICAgICAgICAucG9zaXRpb24ucmlnaHQtYm90dG9tKGFic29sdXRlLCBAcmlnaHQsIEBib3R0b20pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYWxpZ24gKEB0b3A6IGF1dG8sIEByaWdodDogYXV0bywgQGJvdHRvbTogYXV0bywgQGxlZnQ6IGF1dG8sIEBxdWVyeTogMCkgd2hlbiBub3QgKEB0b3AgPSBza2lwKSBhbmQgKEBxdWVyeSA9IDApIHtcclxuICAgICAgICB0b3A6IEB0b3A7IFxyXG4gICAgICAgIHJpZ2h0OiBAcmlnaHQ7XHJcbiAgICAgICAgYm90dG9tOiBAYm90dG9tO1xyXG4gICAgICAgIGxlZnQ6IEBsZWZ0O1xyXG4gICAgfVxyXG5cclxuICAgIC5hbGlnbiB7XHJcbiAgICAgICAgLmxlZnQtdG9wIChAbGVmdDogYXV0bywgQHRvcDogYXV0bykgd2hlbiBub3QgKEBsZWZ0ID0gc2tpcCkge1xyXG4gICAgICAgICAgICBsZWZ0OiBAbGVmdDtcclxuICAgICAgICAgICAgdG9wOiBAdG9wOyBcclxuICAgICAgICB9XHJcbiAgICAgICAgLmxlZnQtYm90dG9tIChAbGVmdDogYXV0bywgQGJvdHRvbTogYXV0bykgd2hlbiBub3QgKEBsZWZ0ID0gc2tpcCkge1xyXG4gICAgICAgICAgICBsZWZ0OiBAbGVmdDtcclxuICAgICAgICAgICAgYm90dG9tOiBAYm90dG9tO1xyXG4gICAgICAgIH1cclxuICAgICAgICAucmlnaHQtdG9wIChAcmlnaHQ6IGF1dG8sIEB0b3A6IGF1dG8pIHdoZW4gbm90IChAcmlnaHQgPSBza2lwKSB7XHJcbiAgICAgICAgICAgIHJpZ2h0OiBAcmlnaHQ7XHJcbiAgICAgICAgICAgIHRvcDogQHRvcDtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnJpZ2h0LWJvdHRvbSAoQHJpZ2h0OiBhdXRvLCBAYm90dG9tOiBhdXRvKSB3aGVuIG5vdCAoQHJpZ2h0ID0gc2tpcCkge1xyXG4gICAgICAgICAgICByaWdodDogQHJpZ2h0OyBcclxuICAgICAgICAgICAgYm90dG9tOiBAYm90dG9tO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYmFjayAoQGNvbG9yOiB0cmFuc3BhcmVudCwgQGltYWdlOiBub25lLCBAcmVwZWF0OiByZXBlYXQsIEBwb3NpdGlvbjogMCAwLCBAcXVlcnk6IDApIHdoZW4gbm90IChAY29sb3IgPSBza2lwKSBhbmQgKEBpbWFnZSA9IG5vbmUpIGFuZCAoQHF1ZXJ5ID0gMCkge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IEBjb2xvciBub25lIEByZXBlYXQgQHBvc2l0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIC5iYWNrIChAY29sb3I6IHRyYW5zcGFyZW50LCBAaW1hZ2U6IG5vbmUsIEByZXBlYXQ6IHJlcGVhdCwgQHBvc2l0aW9uOiAwIDAsIEBxdWVyeTogMCkgd2hlbiBub3QgKEBjb2xvciA9IHNraXApIGFuZCBub3QgKEBpbWFnZSA9IG5vbmUpIGFuZCAoQHF1ZXJ5ID0gMCkge1xyXG4gICAgICAgIGJhY2tncm91bmQ6IEBjb2xvciB1cmwoJ0B7aW1hZ2V9JykgQHJlcGVhdCBAcG9zaXRpb247IFxyXG4gICAgfVxyXG5cclxuICAgIC5iYWNrIHtcclxuICAgICAgICAuYXR0YWNoIChAYXR0YWNobWVudDogc2Nyb2xsKSB3aGVuIG5vdCAoQGF0dGFjaG1lbnQgPSBza2lwKSAgeyBcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1hdHRhY2htZW50OiBAYXR0YWNobWVudDsgXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb2xvciAoQGNvbG9yOiB0cmFuc3BhcmVudCkgd2hlbiBub3QgKEBjb2xvciA9IHNraXApIHtcclxuICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogQGNvbG9yOyBcclxuICAgICAgICB9XHJcbiAgICAgICAgLmNsaXAgKEBjbGlwOiBib3JkZXIpIHdoZW4gbm90IChAY2xpcCA9IHNraXApIHtcclxuICAgICAgICAgICAgLmJhY2tncm91bmQtY2xpcChAY2xpcCk7IFxyXG4gICAgICAgIH1cclxuICAgICAgICAuaW1hZ2UgKEBpbWFnZTogbm9uZSkgd2hlbiBub3QgKEBpbWFnZSA9IHNraXApIHtcclxuICAgICAgICAgICAgLmltYWdlKEBpbWFnZSlcclxuICAgICAgICB9XHJcbiAgICAgICAgLnBvc2l0aW9uIChAcG9zaXRpb246IDAgMCkgd2hlbiBub3QgKEBwb3NpdGlvbiA9IHNraXApIHsgXHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtcG9zaXRpb246IEBwb3NpdGlvbjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnJlcGVhdCAoQHJlcGVhdDogcmVwZWF0KSB3aGVuIG5vdCAoQHJlcGVhdCA9IHNraXApIHsgXHJcbiAgICAgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBAcmVwZWF0OyBcclxuICAgICAgICB9XHJcbiAgICAgICAgLnNpemUgKEBzaXplOiBhdXRvKSB3aGVuIG5vdCAoQHNpemUgPSBza2lwKSB7IFxyXG4gICAgICAgICAgIC5iYWNrZ3JvdW5kLXNpemUoQHNpemUpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYm9yZGVyIChAd2lkdGg6IDAsIEBzdHlsZTogc2tpcCwgQGNvbG9yOiBza2lwLCBAcXVlcnk6IDApIHdoZW4gbm90IChAd2lkdGggPSBza2lwKSBhbmQgKEBxdWVyeSA9IDApIHtcclxuICAgICAgICAuYm9yZGVyLndpZHRoKEB3aWR0aCk7XHJcbiAgICAgICAgLmJvcmRlci5zdHlsZShAc3R5bGUpO1xyXG4gICAgICAgIC5ib3JkZXIuY29sb3IoQGNvbG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAuYm9yZGVyIHtcclxuICAgICAgICAubWluIChAYm9yZGVyOiAwLCBAcXVlcnk6IDApIHdoZW4gbm90IChAYm9yZGVyID0gc2tpcCkgYW5kIChAcXVlcnkgPSAwKSB7XHJcbiAgICAgICAgICAgIGJvcmRlcjogQGJvcmRlcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLndpZHRoIChAd2lkdGg6IDApIHdoZW4gbm90IChAd2lkdGggPSBza2lwKSB7XHJcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogQHdpZHRoO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuc3R5bGUgKEBzdHlsZTogbm9uZSkgd2hlbiBub3QgKEBzdHlsZSA9IHNraXApIHtcclxuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBAc3R5bGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb2xvciAoQGNvbG9yOiBub25lKSB3aGVuIG5vdCAoQGNvbG9yID0gc2tpcCkge1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IEBjb2xvcjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmNvbG9yIChAY29sb3I6IGluaGVyaXQsIEBiYWNrOiBza2lwKSB3aGVuIG5vdCAoQGNvbG9yID0gc2tpcCkge1xyXG4gICAgICAgIGNvbG9yOiBAY29sb3I7IFxyXG4gICAgICAgLmJhY2suY29sb3IoQGJhY2spO1xyXG4gICAgfVxyXG5cclxuICAgIC5kaXNwbGF5IChAZGlzcGxheTogbm9uZSwgQHF1ZXJ5OiAwKSB3aGVuIG5vdCAoQGRpc3BsYXkgPSBza2lwKSBhbmQgKEBxdWVyeSA9IDApIHtcclxuICAgICAgICBkaXNwbGF5OiBAZGlzcGxheTtcclxuICAgIH1cclxuXHJcbiAgICAuZml4ZWQge1xyXG4gICAgICAgIC5hbGlnbiAoQHRvcDogYXV0bywgQHJpZ2h0OiBhdXRvLCBAYm90dG9tOiBhdXRvLCBAbGVmdDogYXV0bywgQHF1ZXJ5OiAwKSB3aGVuIG5vdCAoQHRvcCA9IHNraXApIGFuZCAoQHF1ZXJ5ID0gMCkge1xyXG4gICAgICAgICAgIC5wb3NpdGlvbi5hbGlnbihmaXhlZCwgQHRvcCwgQHJpZ2h0LCBAYm90dG9tLCBAbGVmdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5sZWZ0LXRvcCAoQGxlZnQ6IGF1dG8sIEB0b3A6IGF1dG8pIHdoZW4gbm90IChAbGVmdCA9IHNraXApIHtcclxuICAgICAgICAgICAgLnBvc2l0aW9uLmxlZnQtdG9wKGZpeGVkLCBAbGVmdCwgQHRvcCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5sZWZ0LWJvdHRvbSAoQGxlZnQ6IGF1dG8sIEBib3R0b206IGF1dG8pIHdoZW4gbm90IChAbGVmdCA9IHNraXApIHtcclxuICAgICAgICAgICAgLnBvc2l0aW9uLmxlZnQtYm90dG9tKGZpeGVkLCBAbGVmdCwgQGJvdHRvbSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5yaWdodC10b3AgKEByaWdodDogYXV0bywgQHRvcDogYXV0bykgd2hlbiBub3QgKEByaWdodCA9IHNraXApIHtcclxuICAgICAgICAgICAgLnBvc2l0aW9uLnJpZ2h0LXRvcChmaXhlZCwgQHJpZ2h0LCBAdG9wKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnJpZ2h0LWJvdHRvbSAoQHJpZ2h0OiBhdXRvLCBAYm90dG9tOiBhdXRvKSB3aGVuIG5vdCAoQHJpZ2h0ID0gc2tpcCkge1xyXG4gICAgICAgICAgICAucG9zaXRpb24ucmlnaHQtYm90dG9tKGZpeGVkLCBAcmlnaHQsIEBib3R0b20pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuZmxvYXQgKEBmbG9hdDogbm9uZSwgQHF1ZXJ5OiAwKSB3aGVuIG5vdCAoQGZsb2F0ID0gc2tpcCkgYW5kIChAcXVlcnkgPSAwKSB7XHJcbiAgICAgICAgZmxvYXQ6IEBmbG9hdDtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLmZvbnQgKEBmb250OiBub3JtYWwgMWVtLCBAZmFtaWx5OiBpbmhlcml0KSB3aGVuIG5vdCAoQGZvbnQgPSBza2lwKSBhbmQgKEBmYW1pbHkgPSBpbmhlcml0KSB7XHJcbiAgICAgICAgZm9udDogQGZvbnQgYTtcclxuICAgICAgICBmb250LWZhbWlseTogaW5oZXJpdDsgICAgICAgICAgIC8vIGluaGVyaXQgaXMgbm90IHZhbGlkIG9uIHNob3J0aGFuZFxyXG4gICAgfVxyXG5cclxuICAgIC5mb250IChAZm9udDogbm9ybWFsIDFlbSwgQGZhbWlseTogaW5oZXJpdCkgd2hlbiBub3QgKEBmb250ID0gc2tpcCkgYW5kIG5vdCAoQGZhbWlseSA9IGluaGVyaXQpIHtcclxuICAgICAgICBmb250OiBAZm9udCBAZmFtaWx5O1xyXG4gICAgfVxyXG5cclxuICAgIC5mb250LWZhY2UgKEBuYW1lOiBhLCBAcGF0aDogJy8nKSB3aGVuIG5vdCAoQG5hbWUgPSBza2lwKSB7XHJcbiAgICAgICAgQGZvbnQtZmFjZSB7XHJcbiAgICAgICAgICAgIGZvbnQtZmFtaWx5OiBAbmFtZTtcclxuICAgICAgICAgICAgc3JjOiB1cmwoJ0B7cGF0aH0uZW90Jyk7ICAgIC8vIElFOVxyXG4gICAgICAgICAgICBzcmM6IHVybCgnQHtwYXRofS5lb3Q/I2llZml4JykgZm9ybWF0KCdlbWJlZGRlZC1vcGVudHlwZScpLCAgICAgXHJcbiAgICAgICAgICAgICAgICAgdXJsKFwiQHtwYXRofS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIiksXHJcbiAgICAgICAgICAgICAgICAgdXJsKFwiQHtwYXRofS50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksXHJcbiAgICAgICAgICAgICAgICAgdXJsKCdAe3BhdGh9LnN2ZyNAe25hbWV9JykgZm9ybWF0KCdzdmcnKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmZvbnQtc2l6ZSAoQHNpemU6IDFlbSwgQHF1ZXJ5OiAwKSB3aGVuIG5vdCAoQHNpemUgPSBza2lwKSBhbmQgKEBxdWVyeSA9IDApIHtcclxuICAgICAgICBmb250LXNpemU6IEBzaXplO1xyXG4gICAgfVxyXG5cclxuICAgIC5oZWlnaHQgKEBoZWlnaHQ6IGF1dG8sIEBxdWVyeTogMCkgd2hlbiBub3QgKEBoZWlnaHQgPSBza2lwKSBhbmQgKEBxdWVyeSA9IDApIHtcclxuICAgICAgICBoZWlnaHQ6IEBoZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmltYWdlIChAaW1hZ2U6IG5vbmUpIHdoZW4gbm90IChAaW1hZ2UgPSBza2lwKSBhbmQgKEBpbWFnZSA9IG5vbmUpIHsgXHJcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgXHJcbiAgICB9XHJcblxyXG4gICAgLmltYWdlIChAaW1hZ2U6IG5vbmUpIHdoZW4gbm90IChAaW1hZ2UgPSBza2lwKSBhbmQgbm90IChAaW1hZ2UgPSBub25lKSB7IFxyXG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnQHtpbWFnZX0nKTsgXHJcbiAgICB9XHJcblxyXG4gICAgLmluZGVudCAoQGluZGVudDogMCwgQHF1ZXJ5OiAwKSB3aGVuIG5vdCAoQGluZGVudCA9IHNraXApIGFuZCAoQHF1ZXJ5ID0gMCkge1xyXG4gICAgICAgIHRleHQtaW5kZW50OiBAaW5kZW50O1xyXG4gICAgfVxyXG5cclxuICAgIC5pbmRleCAoQGluZGV4OiAwLCBAcXVlcnk6IDApIHdoZW4gbm90IChAaW5kZXggPSBza2lwKSBhbmQgKEBxdWVyeSA9IDApIHtcclxuICAgICAgICB6LWluZGV4OiBAaW5kZXg7XHJcbiAgICB9XHJcblxyXG4gICAgLm1hcmdpbiAoQG1hcmdpbjogbm9uZSwgQHF1ZXJ5OiAwKSB3aGVuIG5vdCAoQG1hcmdpbiA9IHNraXApIGFuZCAoQHF1ZXJ5ID0gMCkge1xyXG4gICAgICAgIG1hcmdpbjogQG1hcmdpbjtcclxuICAgIH1cclxuXHJcbiAgICAubWF4LXdpZHRoIChAd2lkdGg6IDAsIEBxdWVyeTogMCkgd2hlbiBub3QgKEB3aWR0aCA9IHNraXApIGFuZCAoQHF1ZXJ5ID0gMCkge1xyXG4gICAgICAgIG1heC13aWR0aDogQHdpZHRoO1xyXG4gICAgfVxyXG5cclxuICAgIC5taW4td2lkdGggKEB3aWR0aDogMCwgQHF1ZXJ5OiAwKSB3aGVuIG5vdCAoQHdpZHRoID0gc2tpcCkgYW5kIChAcXVlcnkgPSAwKSB7XHJcbiAgICAgICAgbWluLXdpZHRoOiBAd2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgLm9wYWNpdHkgKEBvcGFjaXR5OiAwLCBAcXVlcnk6IDApIHdoZW4gbm90IChAb3BhY2l0eSA9IHNraXApIGFuZCAoQHF1ZXJ5ID0gMCkge1xyXG4gICAgICAgIEBmaWx0ZXI6IEBvcGFjaXR5ICogMTAwO1xyXG4gICAgICAgIG9wYWNpdHk6IEBvcGFjaXR5O1xyXG4gICAgICAgIGZpbHRlcjogflwiYWxwaGEob3BhY2l0eT1Ae2ZpbHRlcn0pXCI7XHJcbiAgICB9XHJcblxyXG4gICAgLnBhZGRpbmcgKEBwYWRkaW5nOiAwLCBAcXVlcnk6IDApIHdoZW4gbm90IChAcGFkZGluZyA9IHNraXApIGFuZCAoQHF1ZXJ5ID0gMCkge1xyXG4gICAgICAgIHBhZGRpbmc6IEBwYWRkaW5nO1xyXG4gICAgfVxyXG5cclxuICAgIC5wb3NpdGlvbiAoQHBvc2l0aW9uOiBzdGF0aWMsIEBxdWVyeTogMCkgd2hlbiBub3QgKEBwb3NpdGlvbiA9IHNraXApIGFuZCAoQHF1ZXJ5ID0gMCkge1xyXG4gICAgICAgIHBvc2l0aW9uOiBAcG9zaXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgLnBvc2l0aW9uIHtcclxuICAgICAgICAuYWxpZ24gKEBwb3NpdGlvbjogcmVsYXRpdmUsIEB0b3A6IGF1dG8sIEByaWdodDogYXV0bywgQGJvdHRvbTogYXV0bywgQGxlZnQ6IGF1dG8sIEBxdWVyeTogMCkgd2hlbiBub3QgKEBwb3NpdGlvbiA9IHNraXApIGFuZCAoQHF1ZXJ5ID0gMCkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogQHBvc2l0aW9uO1xyXG4gICAgICAgICAgICB0b3A6IEB0b3A7IFxyXG4gICAgICAgICAgICByaWdodDogQHJpZ2h0O1xyXG4gICAgICAgICAgICBib3R0b206IEBib3R0b207XHJcbiAgICAgICAgICAgIGxlZnQ6IEBsZWZ0O1xyXG4gICAgICAgIH1cclxuICAgICAgICAubGVmdC10b3AgKEBwb3NpdGlvbjogcmVsYXRpdmUsIEBsZWZ0OiBhdXRvLCBAdG9wOiBhdXRvKSB3aGVuIG5vdCAoQHBvc2l0aW9uID0gc2tpcCkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogQHBvc2l0aW9uO1xyXG4gICAgICAgICAgICBsZWZ0OiBAbGVmdDtcclxuICAgICAgICAgICAgdG9wOiBAdG9wOyBcclxuICAgICAgICB9XHJcbiAgICAgICAgLmxlZnQtYm90dG9tIChAcG9zaXRpb246IHJlbGF0aXZlLCBAbGVmdDogYXV0bywgQGJvdHRvbTogYXV0bykgd2hlbiBub3QgKEBwb3NpdGlvbiA9IHNraXApIHtcclxuICAgICAgICAgICAgcG9zaXRpb246IEBwb3NpdGlvbjtcclxuICAgICAgICAgICAgbGVmdDogQGxlZnQ7XHJcbiAgICAgICAgICAgIGJvdHRvbTogQGJvdHRvbTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnJpZ2h0LXRvcCAoQHBvc2l0aW9uOiByZWxhdGl2ZSwgQHJpZ2h0OiBhdXRvLCBAdG9wOiBhdXRvKSB3aGVuIG5vdCAoQHBvc2l0aW9uID0gc2tpcCkge1xyXG4gICAgICAgICAgICBwb3NpdGlvbjogQHBvc2l0aW9uO1xyXG4gICAgICAgICAgICByaWdodDogQHJpZ2h0O1xyXG4gICAgICAgICAgICB0b3A6IEB0b3A7IFxyXG4gICAgICAgIH1cclxuICAgICAgICAucmlnaHQtYm90dG9tIChAcG9zaXRpb246IHJlbGF0aXZlLCBAcmlnaHQ6IGF1dG8sIEBib3R0b206IGF1dG8pIHdoZW4gbm90IChAcG9zaXRpb24gPSBza2lwKSB7XHJcbiAgICAgICAgICAgIHBvc2l0aW9uOiBAcG9zaXRpb247XHJcbiAgICAgICAgICAgIHJpZ2h0OiBAcmlnaHQ7XHJcbiAgICAgICAgICAgIGJvdHRvbTogQGJvdHRvbTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnJlbGF0aXZlIHtcclxuICAgICAgICAuYWxpZ24gKEB0b3A6IGF1dG8sIEByaWdodDogYXV0bywgQGJvdHRvbTogYXV0bywgQGxlZnQ6IGF1dG8sIEBxdWVyeTogMCkgd2hlbiBub3QgKEB0b3AgPSBza2lwKSBhbmQgKEBxdWVyeSA9IDApIHtcclxuICAgICAgICAgICAucG9zaXRpb24uYWxpZ24ocmVsYXRpdmUsIEB0b3AsIEByaWdodCwgQGJvdHRvbSwgQGxlZnQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAubGVmdC10b3AgKEBsZWZ0OiBhdXRvLCBAdG9wOiBhdXRvKSB3aGVuIG5vdCAoQGxlZnQgPSBza2lwKSB7XHJcbiAgICAgICAgICAgIC5wb3NpdGlvbi5sZWZ0LXRvcChyZWxhdGl2ZSwgQGxlZnQsIEB0b3ApO1xyXG4gICAgICAgIH1cclxuICAgICAgICAubGVmdC1ib3R0b20gKEBsZWZ0OiBhdXRvLCBAYm90dG9tOiBhdXRvKSB3aGVuIG5vdCAoQGxlZnQgPSBza2lwKSB7XHJcbiAgICAgICAgICAgIC5wb3NpdGlvbi5sZWZ0LWJvdHRvbShyZWxhdGl2ZSwgQGxlZnQsIEBib3R0b20pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAucmlnaHQtdG9wIChAcmlnaHQ6IGF1dG8sIEB0b3A6IGF1dG8pIHdoZW4gbm90IChAcmlnaHQgPSBza2lwKSB7XHJcbiAgICAgICAgICAgIC5wb3NpdGlvbi5yaWdodC10b3AocmVsYXRpdmUsIEByaWdodCwgQHRvcCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5yaWdodC1ib3R0b20gKEByaWdodDogYXV0bywgQGJvdHRvbTogYXV0bykgd2hlbiBub3QgKEByaWdodCA9IHNraXApIHtcclxuICAgICAgICAgICAgLnBvc2l0aW9uLnJpZ2h0LWJvdHRvbShyZWxhdGl2ZSwgQHJpZ2h0LCBAYm90dG9tKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnJlc2l6ZSAoQGRpcmVjdGlvbjogbm9uZSkgd2hlbiBub3QgKEBkaXJlY3Rpb24gPSBza2lwKSB7XHJcbiAgICAgICAgcmVzaXplOiBAZGlyZWN0aW9uO1xyXG4gICAgICAgIG92ZXJmbG93OiBhdXRvOyAgICAgICAgIC8vIFNhZmFyaSBmaXhcclxuICAgIH1cclxuXHJcbiAgICAucmdiYSAoQGhleC1jb2xvcjogI2ZmZiwgQGFscGhhOiAwLjUpIHdoZW4gbm90IChAaGV4LWNvbG9yID0gc2tpcCkgeyBcclxuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBAaGV4LWNvbG9yO1xyXG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhzbGEoaHVlKEBoZXgtY29sb3IpLCBzYXR1cmF0aW9uKEBoZXgtY29sb3IpLCBsaWdodG5lc3MoQGhleC1jb2xvciksIEBhbHBoYSk7IFxyXG4gICAgfVxyXG5cclxuICAgIC5zaXplIChAd2lkdGg6IGF1dG8sIEBoZWlnaHQ6IGF1dG8sIEBxdWVyeTogMCkgd2hlbiBub3QgKEB3aWR0aCA9IHNraXApIGFuZCAoQHF1ZXJ5ID0gMCkge1xyXG4gICAgICAgIHdpZHRoOiBAd2lkdGg7XHJcbiAgICAgICAgaGVpZ2h0OiBAaGVpZ2h0O1xyXG4gICAgfVxyXG5cclxuICAgIC5zaXplLW1pbiAoQG1pbi13aWR0aDogYXV0bywgQG1pbi1oZWlnaHQ6IGF1dG8sIEBxdWVyeTogMCkgd2hlbiBub3QgKEBtaW4td2lkdGggPSBza2lwKSBhbmQgKEBxdWVyeSA9IDApIHtcclxuICAgICAgICBtaW4td2lkdGg6IEBtaW4td2lkdGg7XHJcbiAgICAgICAgbWluLWhlaWdodDogQG1pbi1oZWlnaHQ7XHJcbiAgICB9XHJcblxyXG4gICAgLnNwYWNpbmcgKEBtYXJnaW46IDAsIEBwYWRkaW5nOiAwLCBAcXVlcnk6IDApIHdoZW4gbm90IChAbWFyZ2luID0gc2tpcCkgYW5kIChAcXVlcnkgPSAwKSB7XHJcbiAgICAgICAgbWFyZ2luOiBAbWFyZ2luO1xyXG4gICAgICAgIHBhZGRpbmc6IEBwYWRkaW5nO1xyXG4gICAgfVxyXG5cclxuICAgIC5zcXVhcmUgKEBzaXplOiBhdXRvLCBAcXVlcnk6IDApIHdoZW4gbm90IChAc2l6ZSA9IHNraXApIGFuZCAoQHF1ZXJ5ID0gMCkge1xyXG4gICAgICAgIHdpZHRoOiBAc2l6ZTtcclxuICAgICAgICBoZWlnaHQ6IEBzaXplO1xyXG4gICAgfVxyXG5cclxuICAgIC50ZXh0LWFsaWduIChAYWxpZ246IGNlbnRlciwgQHF1ZXJ5OiAwKSB3aGVuIG5vdCAoQGFsaWduID0gc2tpcCkgYW5kIChAcXVlcnkgPSAwKSB7XHJcbiAgICAgICAgdGV4dC1hbGlnbjogQGFsaWduO1xyXG4gICAgfVxyXG5cclxuICAgIC50ZXh0LXNoYWRvdyAoQHNwcmVhZDogMCAwLCBAY29sb3I6ICNmZmYsIEBhbHBoYTogLjUsIEBxdWVyeTogMCkgd2hlbiBub3QgKEBzcHJlYWQgPSBza2lwKSBhbmQgKEBxdWVyeSA9IDApIHsgXHJcbiAgICAgICAgdGV4dC1zaGFkb3c6IEBzcHJlYWQgaHNsYShodWUoQGNvbG9yKSwgc2F0dXJhdGlvbihAY29sb3IpLCBsaWdodG5lc3MoQGNvbG9yKSwgQGFscGhhKTsgXHJcbiAgICB9XHJcblxyXG4gICAgLndpZHRoIChAd2lkdGg6IGF1dG8sIEBxdWVyeTogMCkgd2hlbiBub3QgKEB3aWR0aCA9IHNraXApIGFuZCAoQHF1ZXJ5ID0gMCkge1xyXG4gICAgICAgIHdpZHRoOiBAd2lkdGg7XHJcbiAgICB9XG4vLyAgUXVlcmllc1xyXG5cclxuICAgIC5hYnNvbHV0ZSB7XHJcbiAgICAgICAgLmFsaWduIChAdG9wOiBhdXRvLCBAcmlnaHQ6IGF1dG8sIEBib3R0b206IGF1dG8sIEBsZWZ0OiBhdXRvLCBAcXVlcnk6IDApIHdoZW4gKEBxdWVyeSA+IDApIHtcclxuICAgICAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogQHF1ZXJ5KSB7XHJcbiAgICAgICAgICAgICAgICAuYWJzb2x1dGUuYWxpZ24oQHRvcCwgQHJpZ2h0LCBAYm90dG9tLCBAbGVmdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmFsaWduIChAdG9wOiBhdXRvLCBAcmlnaHQ6IGF1dG8sIEBib3R0b206IGF1dG8sIEBsZWZ0OiBhdXRvLCBAcXVlcnk6IDApIHdoZW4gKEBxdWVyeSA+IDApIHtcclxuICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiBAcXVlcnkpIHtcclxuICAgICAgICAgICAgLmFsaWduKEB0b3AsIEByaWdodCwgQGJvdHRvbSwgQGxlZnQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuYXJyb3cge1xyXG4gICAgICAgIC50b3AgKEBzaXplOiAwLCBAY29sb3I6IHRyYW5zcGFyZW50LCBAcXVlcnk6IDApIHdoZW4gKEBxdWVyeSA+IDApIHtcclxuICAgICAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogQHF1ZXJ5KSB7XHJcbiAgICAgICAgICAgICAgICAuYXJyb3cudG9wKEBzaXplLCBAY29sb3IsIEBxdWVyeSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmJvdHRvbSAoQHNpemU6IDAsIEBjb2xvcjogdHJhbnNwYXJlbnQsIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID4gMCkge1xyXG4gICAgICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiBAcXVlcnkpIHtcclxuICAgICAgICAgICAgICAgIC5hcnJvdy5ib3R0b20oQHNpemUsIEBjb2xvciwgQHF1ZXJ5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAubGVmdCAoQHNpemU6IDAsIEBjb2xvcjogdHJhbnNwYXJlbnQsIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID4gMCkge1xyXG4gICAgICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiBAcXVlcnkpIHtcclxuICAgICAgICAgICAgICAgIC5hcnJvdy5sZWZ0KEBzaXplLCBAY29sb3IsIEBxdWVyeSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnJpZ2h0IChAc2l6ZTogMCwgQGNvbG9yOiB0cmFuc3BhcmVudCwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPiAwKSB7XHJcbiAgICAgICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IEBxdWVyeSkge1xyXG4gICAgICAgICAgICAgICAgLmFycm93LnJpZ2h0KEBzaXplLCBAY29sb3IsIEBxdWVyeSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmxlZnQtdG9wIChAd2lkdGg6IDAsIEBjb2xvcjogdHJhbnNwYXJlbnQsIEByYXRpbzogMSwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPiAwKSB7XHJcbiAgICAgICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IEBxdWVyeSkge1xyXG4gICAgICAgICAgICAgICAgLmFycm93LmxlZnQtdG9wKEB3aWR0aCwgQGNvbG9yLCBAcmF0aW8sIEBxdWVyeSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmxlZnQtYm90dG9tIChAd2lkdGg6IDAsIEBjb2xvcjogdHJhbnNwYXJlbnQsIEByYXRpbzogMSwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPiAwKSB7XHJcbiAgICAgICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IEBxdWVyeSkge1xyXG4gICAgICAgICAgICAgICAgLmFycm93LmxlZnQtYm90dG9tKEB3aWR0aCwgQGNvbG9yLCBAcmF0aW8sIEBxdWVyeSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnJpZ2h0LXRvcCAoQHdpZHRoOiAwLCBAY29sb3I6IHRyYW5zcGFyZW50LCBAcmF0aW86IDEsIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID4gMCkge1xyXG4gICAgICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiBAcXVlcnkpIHtcclxuICAgICAgICAgICAgICAgIC5hcnJvdy5yaWdodC10b3AoQHdpZHRoLCBAY29sb3IsIEByYXRpbywgQHF1ZXJ5KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAucmlnaHQtYm90dG9tIChAd2lkdGg6IDAsIEBjb2xvcjogdHJhbnNwYXJlbnQsIEByYXRpbzogMSwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPiAwKSB7XHJcbiAgICAgICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IEBxdWVyeSkge1xyXG4gICAgICAgICAgICAgICAgLmFycm93LnJpZ2h0LWJvdHRvbShAd2lkdGgsIEBjb2xvciwgQHJhdGlvLCBAcXVlcnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5iYWNrIChAY29sb3I6IHRyYW5zcGFyZW50LCBAaW1hZ2U6IG5vbmUsIEByZXBlYXQ6IHJlcGVhdCwgQHBvc2l0aW9uOiAwIDAsIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID4gMCkgeyBcclxuICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiBAcXVlcnkpIHtcclxuICAgICAgICAgICAgLmJhY2soQGNvbG9yLCBAaW1hZ2UsIEByZXBlYXQsIEBwb3NpdGlvbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5ib3JkZXIgKEB3aWR0aDogMCwgQHN0eWxlOiBub25lLCBAY29sb3I6IG5vbmUsIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID4gMCkgeyBcclxuICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiBAcXVlcnkpIHtcclxuICAgICAgICAgICAgLmJvcmRlcihAd2lkdGgsIEBzdHlsZSwgQGNvbG9yKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmJvcmRlciB7IFxyXG4gICAgICAgIC5zaG9ydCAoQGJvcmRlcjogMCwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPiAwKSB7XHJcbiAgICAgICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IEBxdWVyeSkge1xyXG4gICAgICAgICAgICAgICAgLmJvcmRlci5zaG9ydChAYm9yZGVyLCBAcXVlcnkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5jZW50ZXItYmxvY2sgKEB3aWR0aDogMCwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPiAwKSB7XHJcbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogQHF1ZXJ5KSB7XHJcbiAgICAgICAgICAgIC5jZW50ZXItYmxvY2soQHdpZHRoKTtcclxuICAgICAgICB9IFxyXG4gICAgfVxyXG5cclxuICAgIC5jZW50ZXItaW5saW5lIChAZGlzcGxheTogaW5saW5lLWJsb2NrLCBAcXVlcnk6IDApIHdoZW4gKEBxdWVyeSA+IDApIHtcclxuICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiBAcXVlcnkpIHtcclxuICAgICAgICAgICAgLmNlbnRlci1pbmxpbmUoQGRpc3BsYXkpO1xyXG4gICAgICAgIH0gXHJcbiAgICB9XHJcblxyXG4gICAgLmNlbnRlci12ZXJ0aWNhbCAoQGhlaWdodDogMCwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPiAwKSB7XHJcbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogQHF1ZXJ5KSB7XHJcbiAgICAgICAgICAgIC5jZW50ZXItdmVydGljYWwoQGhlaWdodCk7XHJcbiAgICAgICAgfSBcclxuICAgIH1cclxuXHJcbiAgICAuZGlzcGxheSAoQGRpc3BsYXk6IG5vbmUsIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID4gMCkge1xyXG4gICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IEBxdWVyeSkge1xyXG4gICAgICAgICAgICAuZGlzcGxheShAZGlzcGxheSk7XHJcbiAgICAgICAgfSBcclxuICAgIH1cclxuXHJcbiAgICAuZml4ZWQge1xyXG4gICAgICAgIC5hbGlnbiAoQHRvcDogYXV0bywgQHJpZ2h0OiBhdXRvLCBAYm90dG9tOiBhdXRvLCBAbGVmdDogYXV0bywgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPiAwKSB7XHJcbiAgICAgICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IEBxdWVyeSkge1xyXG4gICAgICAgICAgICAgICAgLmZpeGVkLmFsaWduKEB0b3AsIEByaWdodCwgQGJvdHRvbSwgQGxlZnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5mbG9hdCAoQGZsb2F0OiBub25lLCBAcXVlcnk6IDApIHdoZW4gKEBxdWVyeSA+IDApIHtcclxuICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiBAcXVlcnkpIHtcclxuICAgICAgICAgICAgLmZsb2F0KEBmbG9hdCk7XHJcbiAgICAgICAgfSBcclxuICAgIH1cclxuXHJcbiAgICAuZm9udC1zaXplIChAZm9udDogbm9uZSwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPiAwKSB7XHJcbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogQHF1ZXJ5KSB7XHJcbiAgICAgICAgICAgIC5mb250LXNpemUoQGZvbnQpO1xyXG4gICAgICAgIH0gXHJcbiAgICB9XHJcblxyXG4gICAgLmltYWdlIChAdXJsOiBub25lLCBAcXVlcnk6IDApIHdoZW4gKEBxdWVyeSA+IDApIHtcclxuICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiBAcXVlcnkpIHtcclxuICAgICAgICAgICAgLmltYWdlKEB1cmwpO1xyXG4gICAgICAgIH0gXHJcbiAgICB9XHJcblxyXG4gICAgLmluZGVudCAoQGluZGVudDogMCwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPiAwKSB7XHJcbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogQHF1ZXJ5KSB7XHJcbiAgICAgICAgICAgIC5pbmRlbnQoQGluZGVudCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5oZWlnaHQgKEBoZWlnaHQ6IGF1dG8sIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID4gMCkge1xyXG4gICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IEBxdWVyeSkge1xyXG4gICAgICAgICAgICAuaGVpZ2h0KEBoZWlnaHQpO1xyXG4gICAgICAgIH0gXHJcbiAgICB9XHJcblxyXG4gICAgLmluZGV4IChAaW5kZXg6IDAsIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID4gMCkge1xyXG4gICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IEBxdWVyeSkge1xyXG4gICAgICAgICAgICAuaW5kZXgoQGluZGV4KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm1hcmdpbiAoQG1hcmdpbjogbm9uZSwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPiAwKSB7XHJcbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogQHF1ZXJ5KSB7XHJcbiAgICAgICAgICAgIC5tYXJnaW4oQG1hcmdpbik7XHJcbiAgICAgICAgfSBcclxuICAgIH1cclxuXHJcbiAgICAubWF4LXdpZHRoIChAd2lkdGg6IDAsIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID4gMCkge1xyXG4gICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IEBxdWVyeSkge1xyXG4gICAgICAgICAgICAubWF4LXdpZHRoKEB3aWR0aCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5taW4td2lkdGggKEB3aWR0aDogMCwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPiAwKSB7XHJcbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogQHF1ZXJ5KSB7XHJcbiAgICAgICAgICAgIC5taW4td2lkdGgoQHdpZHRoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLm9mZnNldCAoQG9mZnNldDogMCwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPiAwKSB7XHJcbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogQHF1ZXJ5KSB7XHJcbiAgICAgICAgICAgIC5vZmZzZXQoQG9mZnNldCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5vcGFjaXR5IChAb3BhY2l0eTogMCwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPiAwKSB7XHJcbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogQHF1ZXJ5KSB7XHJcbiAgICAgICAgICAgIC5vcGFjaXR5KEBvcGFjaXR5KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnBhZGRpbmcgKEBwYWRkaW5nOiAwLCBAcXVlcnk6IDApIHdoZW4gKEBxdWVyeSA+IDApIHtcclxuICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiBAcXVlcnkpIHtcclxuICAgICAgICAgICAgLnBhZGRpbmcoQHBhZGRpbmcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAucG9zaXRpb24gKEBwb3NpdGlvbjogYWJzb2x1dGUsIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID4gMCkge1xyXG4gICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IEBxdWVyeSkge1xyXG4gICAgICAgICAgICAucG9zaXRpb24oQHBvc2l0aW9uKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnBvc2l0aW9uIHtcclxuICAgICAgICAuYWxpZ24gKEBwb3NpdGlvbjogcmVsYXRpdmUsIEB0b3A6IGF1dG8sIEByaWdodDogYXV0bywgQGJvdHRvbTogYXV0bywgQGxlZnQ6IGF1dG8sIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID4gMCkge1xyXG4gICAgICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiBAcXVlcnkpIHtcclxuICAgICAgICAgICAgICAgIC5wb3NpdGlvbi5hbGlnbihAcG9zaXRpb24sIEB0b3AsIEByaWdodCwgQGJvdHRvbSwgQGxlZnQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5yZWxhdGl2ZSB7XHJcbiAgICAgICAgLmFsaWduIChAdG9wOiBhdXRvLCBAcmlnaHQ6IGF1dG8sIEBib3R0b206IGF1dG8sIEBsZWZ0OiBhdXRvLCBAcXVlcnk6IDApIHdoZW4gKEBxdWVyeSA+IDApIHtcclxuICAgICAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogQHF1ZXJ5KSB7XHJcbiAgICAgICAgICAgICAgICAucmVsYXRpdmUuYWxpZ24oQHRvcCwgQHJpZ2h0LCBAYm90dG9tLCBAbGVmdCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnJlc2V0LWJsb2NrIChAbWFyZ2luLWxlZnQ6IDAsIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID4gMCkge1xyXG4gICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IEBxdWVyeSkge1xyXG4gICAgICAgICAgICAucmVzZXQtYmxvY2soQG1hcmdpbi1sZWZ0KTtcclxuICAgICAgICB9IFxyXG4gICAgfVxyXG5cclxuICAgIC5yZXNldC12ZXJ0aWNhbCAoQG1hcmdpbi10b3A6IDAsIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID4gMCkge1xyXG4gICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IEBxdWVyeSkge1xyXG4gICAgICAgICAgICAucmVzZXQtdmVydGljYWwoQG1hcmdpbi10b3ApO1xyXG4gICAgICAgIH0gXHJcbiAgICB9XHJcblxyXG4gICAgLnNpemUgKEB3aWR0aDogYXV0bywgQGhlaWdodDogYXV0bywgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPiAwKSB7XHJcbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogQHF1ZXJ5KSB7XHJcbiAgICAgICAgICAgIC5zaXplKEB3aWR0aCwgQGhlaWdodCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zaXplLW1pbiAoQG1pbi13aWR0aDogMCwgQG1pbi1oZWlnaHQ6IDAsIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID4gMCkge1xyXG4gICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IEBxdWVyeSkge1xyXG4gICAgICAgICAgICAuc2l6ZS1taW4oQG1pbi13aWR0aCwgQG1pbi1oZWlnaHQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAuc3BhY2luZyAoQG1hcmdpbjogMCwgQHBhZGRpbmc6IDAsIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID4gMCkge1xyXG4gICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IEBxdWVyeSkge1xyXG4gICAgICAgICAgICAuc3BhY2luZyhAbWFyZ2luLCBAcGFkZGluZyk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zcXVhcmUgKEBzaXplOiBhdXRvLCBAcXVlcnk6IDApIHdoZW4gKEBxdWVyeSA+IDApIHtcclxuICAgICAgICBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOiBAcXVlcnkpIHtcclxuICAgICAgICAgICAgLnNxdWFyZShAc3F1YXJlLCBAZGlzcGxheSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50ZXh0LWFsaWduIChAYWxpZ246IGNlbnRlciwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPiAwKSB7XHJcbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogQHF1ZXJ5KSB7XHJcbiAgICAgICAgICAgIC50ZXh0LWFsaWduKEBhbGlnbik7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC50ZXh0LXNoYWRvdyAoQHNwcmVhZDogMCAwLCBAY29sb3I6ICNmZmYsIEBhbHBoYTogLjUsIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID4gMCkge1xyXG4gICAgICAgIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6IEBxdWVyeSkge1xyXG4gICAgICAgICAgICAudGV4dC1zaGFkb3coQHNoYWRvdywgQGNvbG9yLCBAYWxwaGEpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAud2lkdGggKEB3aWR0aDogMCwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPiAwKSB7XHJcbiAgICAgICAgQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDogQHF1ZXJ5KSB7XHJcbiAgICAgICAgICAgIC53aWR0aChAd2lkdGgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXG4vLyAgU2tpcHNcclxuICAgIFxyXG4gICAgLmFic29sdXRlIHtcclxuICAgICAgICAuYWxpZ24gICAgICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAubGVmdC10b3AgICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAubGVmdC1ib3R0b20gIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAucmlnaHQtdG9wICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAucmlnaHQtYm90dG9tIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgIH1cclxuXHJcbiAgICAuYWxpZ24gKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG5cclxuICAgIC5hbGlnbiB7XHJcbiAgICAgICAgLmxlZnQtdG9wICAgICAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcbiAgICAgICAgLmxlZnQtYm90dG9tICAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcbiAgICAgICAgLnJpZ2h0LXRvcCAgICAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcbiAgICAgICAgLnJpZ2h0LWJvdHRvbSAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcbiAgICB9XHJcblxyXG4gICAgLmFuaW1hdGlvbiAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLmFwcGVhcmFuY2UgKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG5cclxuICAgIC5iYWNrIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuXHJcbiAgICAuYmFjayB7XHJcbiAgICAgICAgLmF0dGFjaCAgICAgKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSAge31cclxuICAgICAgICAuY29sb3IgICAgICAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApICB7fVxyXG4gICAgICAgIC5pbWFnZSAgICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkgIHt9XHJcbiAgICAgICAgLnBvc2l0aW9uICAgKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSAge31cclxuICAgICAgICAucmVwZWF0ICAgICAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApICB7fVxyXG4gICAgICAgIC5zaXplICAgICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkgIHt9XHJcbiAgICB9XHJcblxyXG4gICAgLmJhY2tmYWNlIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuXHJcbiAgICAuYm9yZGVyIHtcclxuICAgICAgICAuc2hvcnQgICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkgIHt9XHJcbiAgICAgICAgLndpZHRoICAgICAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApICB7fVxyXG4gICAgICAgIC5zdHlsZSAgICAgKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSAge31cclxuICAgICAgICAuY29sb3IgICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkgIHt9XHJcbiAgICB9XHJcblxyXG4gICAgLmJveC1zaXppbmcoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLmNvbG9yIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuXHJcbiAgICAuY29sdW1ucyAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLmNvbnRhaW4tbWF4IChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuXHJcbiAgICAuZGlzcGxheSAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcbiAgICBcclxuICAgIC5maXhlZCB7XHJcbiAgICAgICAgLmFsaWduICAgICAgICAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcbiAgICAgICAgLmxlZnQtdG9wICAgICAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcbiAgICAgICAgLmxlZnQtYm90dG9tICAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcbiAgICAgICAgLnJpZ2h0LXRvcCAgICAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcbiAgICAgICAgLnJpZ2h0LWJvdHRvbSAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcbiAgICB9XHJcblxyXG4gICAgLmZsb2F0IChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuXHJcbiAgICAuZm9udCAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLmZvbnQtZmFjZSAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLmZvbnQtc2l6ZSAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLmdyYWRpZW50IChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuXHJcbiAgICAuZ3JhZGllbnQge1xyXG4gICAgICAgIC5kaXJlY3Rpb25hbCAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcbiAgICAgICAgLnRvLWJvdHRvbSAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAudG8tbGVmdCAgICAgKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG4gICAgICAgIC50by1yaWdodCAgICAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcbiAgICAgICAgLnRvLXRvcCAgICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAucmFkaWFsICAgICAgKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG4gICAgfVxyXG5cclxuICAgIC5oZWlnaHQgKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG5cclxuICAgIC5pbWFnZSAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLmluZGVudCAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLmluZGV4IChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuXHJcbiAgICAubGlzdC1zdHlsZSAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLm1hcmdpbiAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLm1heC13aWR0aCAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLm1pbi13aWR0aCAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLm9wYWNpdHkgKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG5cclxuICAgIC5vdmVyZmxvdyAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLnBhZGRpbmcgKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG5cclxuICAgIC5wbGFjZWhvbGRlciAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLnBvc2l0aW9uIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgIFxyXG4gICAgLnBvc2l0aW9uIHtcclxuICAgICAgICAuYWxpZ24gICAgICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAubGVmdC10b3AgICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAubGVmdC1ib3R0b20gIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAucmlnaHQtdG9wICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAucmlnaHQtYm90dG9tIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgIH1cclxuICAgIFxyXG4gICAgLnJlbGF0aXZlIHtcclxuICAgICAgICAuYWxpZ24gICAgICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAubGVmdC10b3AgICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAubGVmdC1ib3R0b20gIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAucmlnaHQtdG9wICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAucmlnaHQtYm90dG9tIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgIH1cclxuXHJcbiAgICAucmVzaXplIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuXHJcbiAgICAucmdiYSAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLnJvdGF0ZSAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLnJvdGF0ZVggKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG5cclxuICAgIC5yb3RhdGVZIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuXHJcbiAgICAucm91bmRlZCAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLnJvdW5kZWQge1xyXG4gICAgICAgIC50b3AgICAgKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSAge31cclxuICAgICAgICAucmlnaHQgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkgIHt9XHJcbiAgICAgICAgLmJvdHRvbSAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApICB7fVxyXG4gICAgICAgIC5sZWZ0ICAgKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSAge31cclxuICAgICAgICAubGVmdC10b3AgICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAubGVmdC1ib3R0b20gIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAucmlnaHQtdG9wICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAucmlnaHQtYm90dG9tIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgIH1cclxuICAgIFxyXG4gICAgLnNjYWxlIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuXHJcbiAgICAuc2hhZG93IChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuXHJcbiAgICAuc2hhZG93IHtcclxuICAgICAgICAuaW5zZXQgKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG4gICAgfVxyXG5cclxuICAgIC5zaGFkb3ctbXVsdGkgKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG5cclxuICAgIC5zaXplIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuXHJcbiAgICAuc2l6ZS1taW4gKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG5cclxuICAgIC5za2V3IChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuXHJcbiAgICAuc3BhY2luZyAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLnNxdWFyZSAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLnRhcC1oaWdobGlnaHQgKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG5cclxuICAgIC50YWJsZSB7XHJcbiAgICAgICAgLmJvcmRlciAgICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAuYm9yZGVyLW91dGVyKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG4gICAgICAgIC5jb2xvciAgICAgICAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcbiAgICAgICAgLmZvbnQgICAgICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAuaGVhZC1jb2xvciAgKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG4gICAgICAgIC5oZWFkLWZvbnQgICAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcbiAgICAgICAgLnBhZGRpbmcgICAgIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuICAgICAgICAucm91bmRlZCAgICAgKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG4gICAgfVxyXG5cclxuICAgIC50ZXh0LWFsaWduIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuXHJcbiAgICAudGV4dC1zaGFkb3cgKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG5cclxuICAgIC50cmFuc2Zvcm0gKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG5cclxuICAgIC50cmFuc2l0aW9uIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuXHJcbiAgICAudHJhbnNpdGlvbi1tdWx0aSAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLnRyYW5zbGF0ZSAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcblxyXG4gICAgLnRyYW5zbGF0ZTNkIChAdmFyKSB3aGVuIChAdmFyID0gc2tpcCkge31cclxuXHJcbiAgICAudXNlci1zZWxlY3QgKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG5cclxuICAgIC53aWR0aCAoQHZhcikgd2hlbiAoQHZhciA9IHNraXApIHt9XHJcbiAgICBcbi8vICBTdGF0ZXNcclxuXHJcbiAgICAuaG92ZXIge1xyXG4gICAgICAgIC5jb2xvciAoQGNvbG9yOiBpbmhlcml0LCBAYmFjay1jb2xvcjogc2tpcCkge1xyXG4gICAgICAgICAgICAmOmhvdmVyICAgICAgICAgICAgIHsgY29sb3I6IEBjb2xvcjsgLmJhY2suY29sb3IoQGJhY2stY29sb3IpOyB9IC8vIGFkZGVkIGJvcmRlclxyXG4gICAgICAgIH0gXHJcblxyXG4gICAgICAgIC5ncmFkaWVudCAoQHN0YXJ0OiB0cmFuc3BhcmVudCwgQHN0b3A6IGdyYXksIEBkZWdyZWVzOiAxODBkZWcsIEBpbWFnZTogbm9uZSkge1xyXG4gICAgICAgICAgICAmOmhvdmVyICAgICAgICAgICAgIHsgLmdyYWRpZW50KEBzdGFydCwgQHN0b3AsIEBkZWdyZWVzLCBAaW1hZ2UpOyB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5hY3RpdmUge1xyXG4gICAgICAgIC5jb2xvciAoQGNvbG9yOiBpbmhlcml0LCBAYmFjay1jb2xvcjogc2tpcCkge1xyXG4gICAgICAgICAgICAmOmFjdGl2ZSAgICAgICAgICAgIHsgY29sb3I6IEBjb2xvcjsgLmJhY2suY29sb3IoQGJhY2stY29sb3IpOyB9IC8vIGFkZGVkIGJvcmRlclxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmdyYWRpZW50IChAc3RhcnQ6IHRyYW5zcGFyZW50LCBAc3RvcDogZ3JheSwgQGRlZ3JlZXM6IDE4MGRlZywgQGltYWdlOiBub25lKSB7XHJcbiAgICAgICAgICAgICY6YWN0aXZlICAgICAgICAgICAgeyAuZ3JhZGllbnQoQHN0YXJ0LCBAc3RvcCwgQGRlZ3JlZXMsIEBpbWFnZSk7IH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmZvY3VzIHtcclxuICAgICAgICAuY29sb3IgKEBjb2xvcjogaW5oZXJpdCwgQGJhY2stY29sb3I6IHNraXApIHtcclxuICAgICAgICAgICAgJjpmb2N1cyAgICAgICAgICAgICB7IGNvbG9yOiBAY29sb3I7IC5iYWNrLmNvbG9yKEBiYWNrLWNvbG9yKTsgfSAvLyBhZGRlZCBib3JkZXJcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5ncmFkaWVudCAoQHN0YXJ0OiB0cmFuc3BhcmVudCwgQHN0b3A6IGdyYXksIEBkZWdyZWVzOiAxODBkZWcsIEBpbWFnZTogbm9uZSkge1xyXG4gICAgICAgICAgICAmOmZvY3VzICAgICAgICAgICAgIHsgLmdyYWRpZW50KEBzdGFydCwgQHN0b3AsIEBkZWdyZWVzLCBAaW1hZ2UpOyB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC52aXNpdGVkIHtcclxuICAgICAgICAuY29sb3IgKEBjb2xvcjogaW5oZXJpdCwgQGJhY2stY29sb3I6IHNraXApIHtcclxuICAgICAgICAgICAgJjp2aXNpdGVkICAgICAgICAgICB7IGNvbG9yOiBAY29sb3I7IC5iYWNrLmNvbG9yKEBiYWNrLWNvbG9yKTsgfSAvLyBhZGRlZCBib3JkZXJcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5ncmFkaWVudCAoQHN0YXJ0OiB0cmFuc3BhcmVudCwgQHN0b3A6IGdyYXksIEBkZWdyZWVzOiAxODBkZWcsIEBpbWFnZTogbm9uZSkge1xyXG4gICAgICAgICAgICAmOnZpc2l0ZWQgICAgICAgICAgIHsgLmdyYWRpZW50KEBzdGFydCwgQHN0b3AsIEBkZWdyZWVzLCBAaW1hZ2UpOyB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5ob3Zlci1mb2N1cyB7XHJcbiAgICAgICAgLmNvbG9yIChAY29sb3I6IGluaGVyaXQsIEBiYWNrLWNvbG9yOiBza2lwKSB7XHJcbiAgICAgICAgICAgICY6aG92ZXIsXHJcbiAgICAgICAgICAgICY6Zm9jdXMgICAgICAgICAgICAgeyBjb2xvcjogQGNvbG9yOyAuYmFjay5jb2xvcihAYmFjay1jb2xvcik7IH0gLy8gYWRkZWQgYm9yZGVyXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuZ3JhZGllbnQgKEBzdGFydDogdHJhbnNwYXJlbnQsIEBzdG9wOiBncmF5LCBAZGVncmVlczogMTgwZGVnLCBAaW1hZ2U6IG5vbmUpIHtcclxuICAgICAgICAgICAgJjpob3ZlcixcclxuICAgICAgICAgICAgJjpmb2N1cyAgICAgICAgICAgICB7IC5ncmFkaWVudChAc3RhcnQsIEBzdG9wLCBAZGVncmVlcywgQGltYWdlKTsgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAubm9ybWFsLWFjdGl2ZSB7XHJcbiAgICAgICAgLmNvbG9yIChAY29sb3I6IGluaGVyaXQsIEBiYWNrLWNvbG9yOiBza2lwKSB7XHJcbiAgICAgICAgICAgICYsXHJcbiAgICAgICAgICAgICY6YWN0aXZlICAgICAgICAgICAgeyBjb2xvcjogQGNvbG9yOyAuYmFjay5jb2xvcihAYmFjay1jb2xvcik7IH0gLy8gYWRkZWQgYm9yZGVyXHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuZ3JhZGllbnQgKEBzdGFydDogdHJhbnNwYXJlbnQsIEBzdG9wOiBncmF5LCBAZGVncmVlczogMTgwZGVnLCBAaW1hZ2U6IG5vbmUpIHtcclxuICAgICAgICAgICAgJixcclxuICAgICAgICAgICAgJjphY3RpdmUgICAgICAgICAgICB7IC5ncmFkaWVudChAc3RhcnQsIEBzdG9wLCBAZGVncmVlcywgQGltYWdlKTsgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIFxuLy8gIFZlbmRvciBNaXhpbnNcclxuXHJcbiAgICAuYW5pbWF0aW9uIChAbmFtZTogbm9uZSwgQGR1cmF0aW9uOiAwLCBAZWFzZTogZWFzZSwgQGRlbGF5OiAwLCBAaXRlcmF0aW9uOiAxLCBAZGlyZWN0aW9uOiBub3JtYWwpIHdoZW4gbm90IChAbmFtZSA9IHNraXApIHtcclxuICAgICAgICAtd2Via2l0LWFuaW1hdGlvbjogQG5hbWUgQGR1cmF0aW9uIEBlYXNlIEBkZWxheSBAaXRlcmF0aW9uIEBkaXJlY3Rpb247ICAgIC8vIFNhZmFyaSwgQ2hyb21lXHJcbiAgICAgICAgICAgLW1vei1hbmltYXRpb246IEBuYW1lIEBkdXJhdGlvbiBAZWFzZSBAZGVsYXkgQGl0ZXJhdGlvbiBAZGlyZWN0aW9uO1xyXG4gICAgICAgICAgICAtbXMtYW5pbWF0aW9uOiBAbmFtZSBAZHVyYXRpb24gQGVhc2UgQGRlbGF5IEBpdGVyYXRpb24gQGRpcmVjdGlvbjtcclxuICAgICAgICAgICAgICAgIGFuaW1hdGlvbjogQG5hbWUgQGR1cmF0aW9uIEBlYXNlIEBkZWxheSBAaXRlcmF0aW9uIEBkaXJlY3Rpb247XHJcbiAgICB9XHJcblxyXG4gICAgLmFuaW1hdGlvbiB7XHJcbiAgICAgICAgLmRlbGF5IChAZGVsYXkpIHtcclxuICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGVsYXk6IEBkZWxheTtcclxuICAgICAgICAgICAgICAgLW1vei1hbmltYXRpb24tZGVsYXk6IEBkZWxheTtcclxuICAgICAgICAgICAgICAgICAtby1hbmltYXRpb24tZGVsYXk6IEBkZWxheTtcclxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGVsYXk6IEBkZWxheTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5kaXJlY3Rpb24gKEBkaXJlY3Rpb24pIHtcclxuICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uOiBAZGlyZWN0aW9uO1xyXG4gICAgICAgICAgICAgICAtbW96LWFuaW1hdGlvbi1kaXJlY3Rpb246IEBkaXJlY3Rpb247XHJcbiAgICAgICAgICAgICAgICAgLW8tYW5pbWF0aW9uLWRpcmVjdGlvbjogQGRpcmVjdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZGlyZWN0aW9uOiBAZGlyZWN0aW9uO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmR1cmF0aW9uIChAZHVyYXRpb24pIHtcclxuICAgICAgICAgICAgLXdlYmtpdC1hbmltYXRpb24tZHVyYXRpb246IEBkdXJhdGlvbjtcclxuICAgICAgICAgICAgICAgLW1vei1hbmltYXRpb24tZHVyYXRpb246IEBkdXJhdGlvbjtcclxuICAgICAgICAgICAgICAgICAtby1hbmltYXRpb24tZHVyYXRpb246IEBkdXJhdGlvbjtcclxuICAgICAgICAgICAgICAgICAgICBhbmltYXRpb24tZHVyYXRpb246IEBkdXJhdGlvbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5lYXNlIChAZWFzZSkge1xyXG4gICAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IEBlYXNlO1xyXG4gICAgICAgICAgICAgICAtbW96LWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IEBlYXNlO1xyXG4gICAgICAgICAgICAgICAgIC1vLWFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IEBlYXNlO1xyXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb246IEBlYXNlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLmZpbGwtbW9kZSAoQGZpbGwtbW9kZSkge1xyXG4gICAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6IEBmaWxsLW1vZGU7XHJcbiAgICAgICAgICAgICAgIC1tb3otYW5pbWF0aW9uLWZpbGwtbW9kZTogQGZpbGwtbW9kZTtcclxuICAgICAgICAgICAgICAgICAtby1hbmltYXRpb24tZmlsbC1tb2RlOiBAZmlsbC1tb2RlO1xyXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IEBmaWxsLW1vZGU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICAuaXRlcmF0aW9uIChAaXRlcmF0aW9uKSB7XHJcbiAgICAgICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogQGl0ZXJhdGlvbjtcclxuICAgICAgICAgICAgICAgLW1vei1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBAaXRlcmF0aW9uO1xyXG4gICAgICAgICAgICAgICAgIC1vLWFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6IEBpdGVyYXRpb247XHJcbiAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogQGl0ZXJhdGlvbjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5uYW1lIChAbmFtZSkge1xyXG4gICAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1uYW1lOiBAbmFtZTtcclxuICAgICAgICAgICAgICAgLW1vei1hbmltYXRpb24tbmFtZTogQG5hbWU7XHJcbiAgICAgICAgICAgICAgICAgLW8tYW5pbWF0aW9uLW5hbWU6IEBuYW1lO1xyXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1uYW1lOiBAbmFtZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC5wbGF5LXN0YXRlIChAcGxheS1zdGF0ZSkge1xyXG4gICAgICAgICAgICAtd2Via2l0LWFuaW1hdGlvbi1wbGF5LXN0YXRlOiBAcGxheS1zdGF0ZTtcclxuICAgICAgICAgICAgICAgLW1vei1hbmltYXRpb24tcGxheS1zdGF0ZTogQHBsYXktc3RhdGU7XHJcbiAgICAgICAgICAgICAgICAgLW8tYW5pbWF0aW9uLXBsYXktc3RhdGU6IEBwbGF5LXN0YXRlO1xyXG4gICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbi1wbGF5LXN0YXRlOiBAcGxheS1zdGF0ZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC5hcHBlYXJhbmNlIChAYXBwZWFyYW5jZTogbm9ybWFsKSB3aGVuIG5vdCAoQGFwcGVhcmFuY2UgPSBza2lwKSB7XHJcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBAYXBwZWFyYW5jZTtcclxuICAgICAgICAgICAtbW96LWFwcGVhcmFuY2U6IEBhcHBlYXJhbmNlO1xyXG4gICAgICAgICAgICAgICAgYXBwZWFyYW5jZTogQGFwcGVhcmFuY2U7XHJcbiAgICB9XHJcblxyXG4gICAgLmJhY2tmYWNlIChAdmlzaWJpbGl0eTogaGlkZGVuKSB3aGVuIG5vdCAoQHZpc2liaWxpdHkgPSBza2lwKSB7XHJcbiAgICAgICAgLXdlYmtpdC1iYWNrZmFjZS12aXNpYmlsaXR5OiBAdmlzaWJpbGl0eTtcclxuICAgICAgICAgICAtbW96LWJhY2tmYWNlLXZpc2liaWxpdHk6IEB2aXNpYmlsaXR5O1xyXG4gICAgICAgICAgICAgICAgYmFja2ZhY2UtdmlzaWJpbGl0eTogQHZpc2liaWxpdHk7XHJcbiAgICB9XHJcblxyXG4gICAgLmJhY2tncm91bmQtY2xpcCAoQGNsaXA6IGJvcmRlcikgd2hlbiBub3QgKEBjbGlwID0gc2tpcCkge1xyXG4gICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiBAY2xpcDsgICAgICAgICAgICAgLy8gU2FmYXJpIDQ/IENocm9tZSA2P1xyXG4gICAgICAgICAgIC1tb3otYmFja2dyb3VuZC1jbGlwOiBAY2xpcDsgICAgICAgICAgICAgLy8gRmlyZWZveCAzLjZcclxuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY2xpcDogfidAe2NsaXB9LWJveCc7ICAgIC8vIEZpcmVmb3ggNCwgU2FmYXJpIDUsIE9wZXJhIDEwLCBJRTlcclxuICAgIH1cclxuXHJcbiAgICAuYmFja2dyb3VuZC1zaXplIChAc2l6ZTogYXV0bykgd2hlbiBub3QgKEBzaXplID0gc2tpcCkge1xyXG4gICAgICAgIC13ZWJraXQtYmFja2dyb3VuZC1zaXplOiBAc2l6ZTsgICAgIC8vIFNhZmFyaSAzLjArLCBDaHJvbWUgMS4wK1xyXG4gICAgICAgICAgIC1tb3otYmFja2dyb3VuZC1zaXplOiBAc2l6ZTsgICAgIC8vIEZpcmVmb3ggMy42XHJcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kLXNpemU6IEBzaXplOyAgICAgLy8gSUUgOStcclxuICAgIH1cclxuXHJcbiAgICAuYm94LXNpemluZyAoQGJveC1tb2RlbDogY29udGVudC1ib3gpIHdoZW4gbm90IChAYm94LW1vZGVsID0gc2tpcCkge1xyXG4gICAgICAgIC13ZWJraXQtYm94LXNpemluZzogQGJveC1tb2RlbDsgICAgLy8gU2FmYXJpIDVcclxuICAgICAgICAgICAtbW96LWJveC1zaXppbmc6IEBib3gtbW9kZWw7ICAgIC8vIEZpcmVmb3ggMTlcclxuICAgICAgICAgICAgICAgIGJveC1zaXppbmc6IEBib3gtbW9kZWw7ICAgIC8vIElFIDgrXHJcbiAgICB9XHJcblxyXG4gICAgLmNvbHVtbnMgKEBjb3VudDogYXV0bywgQGdhcDogbm9ybWFsLCBAd2lkdGg6IGF1dG8pIHdoZW4gbm90IChAY291bnQgPSBza2lwKSB7XHJcbiAgICAgICAgLXdlYmtpdC1jb2x1bW4tY291bnQ6IEBjb3VudDtcclxuICAgICAgICAgICAtbW96LWNvbHVtbi1jb3VudDogQGNvdW50O1xyXG4gICAgICAgICAgICAgICAgY29sdW1uLWNvdW50OiBAY291bnQ7XHJcbiAgICAgICAgLXdlYmtpdC1jb2x1bW4tZ2FwOiBAZ2FwO1xyXG4gICAgICAgICAgIC1tb3otY29sdW1uLWdhcDogQGdhcDtcclxuICAgICAgICAgICAgICAgIGNvbHVtbi1nYXA6IEBnYXA7XHJcbiAgICAgICAgLXdlYmtpdC1jb2x1bW4td2lkdGg6IEB3aWR0aDtcclxuICAgICAgICAgICAtbW96LWNvbHVtbi13aWR0aDogQHdpZHRoO1xyXG4gICAgICAgICAgICAgICAgY29sdW1uLXdpZHRoOiBAd2lkdGg7XHJcbiAgICB9XHJcblxyXG4gICAgLmdyYWRpZW50IChAc3RhcnQ6IHRyYW5zcGFyZW50LCBAc3RvcDogZ3JheSwgQGRlZ3JlZXM6IDE4MGRlZywgQGltYWdlOiBub25lKSB3aGVuIG5vdCAoQHN0YXJ0ID0gc2tpcCkge1xyXG4gICAgICAgIC5ncmFkaWVudC5kaXJlY3Rpb25hbChAc3RhcnQsIEBzdG9wLCBAZGVncmVlcywgQGltYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICAuZ3JhZGllbnQge1xyXG4gICAgICAgIC5kaXJlY3Rpb25hbChAc3RhcnQ6IHRyYW5zcGFyZW50LCBAc3RvcDogZ3JheSwgQGRlZ3JlZXM6IDE4MGRlZywgQGltYWdlOiBub25lKSB3aGVuIG5vdCAoQHN0YXJ0ID0gc2tpcCkge1xyXG4gICAgICAgICAgICAuYmFjayhAc3RhcnQsIEBpbWFnZSwgcmVwZWF0LXgsIGNlbnRlcik7XHJcbiAgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudChAZGVncmVlcywgQHN0YXJ0LCBAc3RvcCk7ICAgICAgICAgICAgICAgICAgICAgLy8gU2FmYXJpIDUuMSssIENocm9tZSAxMCtcclxuICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgIC1tb3otbGluZWFyLWdyYWRpZW50KEBkZWdyZWVzLCBAc3RhcnQsIEBzdG9wKTsgICAgICAgICAgICAgICAgICAgICAvLyBGaXJlZm94IDMuNitcclxuICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgICAgbGluZWFyLWdyYWRpZW50KEBkZWdyZWVzLCBAc3RhcnQsIEBzdG9wKTsgICAgICAgICAgICAgICAgICAgICAvLyBJRTEwXHJcbiAgICAgICAgfVxyXG4gICAgICAgIC50by1ib3R0b20oQHN0YXJ0OiB0cmFuc3BhcmVudCwgQHN0b3A6IGdyYXksIEBpbWFnZTogbm9uZSkgd2hlbiBub3QgKEBzdGFydCA9IHNraXApIHtcclxuICAgICAgICAgICAgLmdyYWRpZW50LmRpcmVjdGlvbmFsKEBzdGFydCwgQHN0b3AsIDE4MGRlZywgQGltYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnRvLXJpZ2h0KEBzdGFydDogdHJhbnNwYXJlbnQsIEBzdG9wOiBncmF5LCBAaW1hZ2U6IG5vbmUpIHdoZW4gbm90IChAc3RhcnQgPSBza2lwKSB7XHJcbiAgICAgICAgICAgIC5ncmFkaWVudC5kaXJlY3Rpb25hbChAc3RhcnQsIEBzdG9wLCAyNzBkZWcsIEBpbWFnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC50by10b3AoQHN0YXJ0OiB0cmFuc3BhcmVudCwgQHN0b3A6IGdyYXksIEBpbWFnZTogbm9uZSkgd2hlbiBub3QgKEBzdGFydCA9IHNraXApIHtcclxuICAgICAgICAgICAgLmdyYWRpZW50LmRpcmVjdGlvbmFsKEBzdGFydCwgQHN0b3AsIDBkZWcsIEBpbWFnZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC50by1sZWZ0KEBzdGFydDogdHJhbnNwYXJlbnQsIEBzdG9wOiBncmF5LCBAaW1hZ2U6IG5vbmUpIHdoZW4gbm90IChAc3RhcnQgPSBza2lwKSB7XHJcbiAgICAgICAgICAgIC5ncmFkaWVudC5kaXJlY3Rpb25hbChAc3RhcnQsIEBzdG9wLCA5MGRlZywgQGltYWdlKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLnJhZGlhbChAaW5uZXI6IHRyYW5zcGFyZW50LCBAb3V0ZXI6IGdyYXksIEBpbWFnZTogbm9uZSkgd2hlbiBub3QgKEBpbm5lciA9IHNraXApIHtcclxuICAgICAgICAgICAgLmJhY2soQGlubmVyLCBAaW1hZ2UsIHJlcGVhdC14LCBjZW50ZXIpO1xyXG4gICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1ncmFkaWVudChyYWRpYWwsIGNlbnRlciBjZW50ZXIsIDAsIGNlbnRlciBjZW50ZXIsIDQ2MCwgZnJvbShAaW5uZXIpLCB0byhAb3V0ZXIpKTsvLyBDaHJvbWUsIFNhZmFyaSA0K1xyXG4gICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoY2VudGVyLCBlbGxpcHNlLCBAaW5uZXIgMCUsIEBvdXRlciAxMDAlKTsgICAvLyBTYWZhcmkgNS4xKywgQ2hyb21lIDEwK1xyXG4gICAgICAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogICAgLW1vei1yYWRpYWwtZ3JhZGllbnQoY2VudGVyLCBlbGxpcHNlLCBAaW5uZXIgMCUsIEBvdXRlciAxMDAlKTsgICAvLyBGaXJlZm94IDMuNitcclxuICAgICAgICAgICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgICAgcmFkaWFsLWdyYWRpZW50KGVsbGlwc2UgYXQgY2VudGVyLCBAaW5uZXIgMCUsIEBvdXRlciAxMDAlKTsgLy8gVzNDXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5vdmVyZmxvdyAoQHg6IHZpc2libGUsIEB5OiB2aXNpYmxlKSB3aGVuIG5vdCAoQHggPSBza2lwKSB7XHJcbiAgICAgICAgb3ZlcmZsb3cteDogQHg7XHJcbiAgICAgICAgb3ZlcmZsb3cteTogQHk7XHJcbiAgICAgICAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoO1xyXG4gICAgfVxyXG5cclxuICAgIC5wbGFjZWhvbGRlciAoQGNvbG9yOiBncmF5KSB3aGVuIG5vdCAoQGNvbG9yID0gc2tpcCkge1xyXG4gICAgICAgICY6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICAgIHsgY29sb3I6IEBjb2xvcjsgfSAvLyBGaXJlZm94IDQtMThcclxuICAgICAgICAmOjotbW96LXBsYWNlaG9sZGVyICAgICAgICAgICB7IGNvbG9yOiBAY29sb3I7IH0gLy8gRmlyZWZveCAxOStcclxuICAgICAgICAmOi1tcy1pbnB1dC1wbGFjZWhvbGRlciAgICAgICB7IGNvbG9yOiBAY29sb3I7IH0gLy8gSUUgMTArXHJcbiAgICAgICAgJjo6LXdlYmtpdC1pbnB1dC1wbGFjZWhvbGRlciAgeyBjb2xvcjogQGNvbG9yOyB9IC8vIENocm9tZSwgU2FmYXJpXHJcbiAgICB9XHJcblxyXG4gICAgLnBlcnNwZWN0aXZlIChAbGVuZ3RoKSB7XHJcbiAgICAgICAgLXdlYmtpdC1wZXJzcGVjdGl2ZTogQGxlbmd0aDtcclxuICAgICAgICAgICAtbW96LXBlcnNwZWN0aXZlOiBAbGVuZ3RoO1xyXG4gICAgICAgICAgICAgICAgcGVyc3BlY3RpdmU6IEBsZW5ndGg7XHJcbiAgICB9XHJcblxyXG4gICAgLnJvdGF0ZSAoQGRlZ3JlZXM6IDBkZWcpIHdoZW4gbm90IChAZGVncmVlcyA9IHNraXApIHtcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcclxuICAgICAgICAgICAgLW1zLXRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcclxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogcm90YXRlKEBkZWdyZWVzKTtcclxuICAgIH1cclxuXHJcbiAgICAucm90YXRlWCAoQGRlZ3JlZXM6IDBkZWcpIHdoZW4gbm90IChAZGVncmVlcyA9IHNraXApIHtcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWChAZGVncmVlcyk7XHJcbiAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZVgoQGRlZ3JlZXMpO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKEBkZWdyZWVzKTtcclxuICAgIH1cclxuXHJcbiAgICAucm90YXRlWSAoQGRlZ3JlZXM6IDBkZWcpIHdoZW4gbm90IChAZGVncmVlcyA9IHNraXApIHtcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlWShAZGVncmVlcyk7XHJcbiAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHJvdGF0ZVkoQGRlZ3JlZXMpO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiByb3RhdGVZKEBkZWdyZWVzKTtcclxuICAgIH1cclxuXHJcbiAgICAucm91bmRlZCAoQHJhZGl1czogMCkgd2hlbiBub3QgKEByYWRpdXMgPSBza2lwKSB7XHJcbiAgICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiBAcmFkaXVzO1xyXG4gICAgICAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogQHJhZGl1cztcclxuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IEByYWRpdXM7XHJcbiAgICB9XHJcblxyXG4gICAgLnJvdW5kZWQge1xyXG4gICAgICAgIC50b3AgKEByYWRpdXM6IDApIHdoZW4gbm90IChAcmFkaXVzID0gc2tpcCkge1xyXG4gICAgICAgICAgICAucm91bmRlZC5sZWZ0LXRvcCAgICAgKEByYWRpdXMpO1xyXG4gICAgICAgICAgICAucm91bmRlZC5yaWdodC10b3AgICAgKEByYWRpdXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAucmlnaHQgKEByYWRpdXM6IDApIHdoZW4gbm90IChAcmFkaXVzID0gc2tpcCkge1xyXG4gICAgICAgICAgICAucm91bmRlZC5yaWdodC10b3AgICAgKEByYWRpdXMpO1xyXG4gICAgICAgICAgICAucm91bmRlZC5yaWdodC1ib3R0b20gKEByYWRpdXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAuYm90dG9tIChAcmFkaXVzOiAwKSB3aGVuIG5vdCAoQHJhZGl1cyA9IHNraXApIHtcclxuICAgICAgICAgICAgLnJvdW5kZWQubGVmdC1ib3R0b20gKEByYWRpdXMpO1xyXG4gICAgICAgICAgICAucm91bmRlZC5yaWdodC1ib3R0b20gKEByYWRpdXMpO1xyXG4gICAgICAgIH1cclxuICAgICAgICAubGVmdCAoQHJhZGl1czogMCkgd2hlbiBub3QgKEByYWRpdXMgPSBza2lwKSB7XHJcbiAgICAgICAgICAgIC5yb3VuZGVkLmxlZnQtdG9wICAgICAoQHJhZGl1cyk7XHJcbiAgICAgICAgICAgIC5yb3VuZGVkLmxlZnQtYm90dG9tICAoQHJhZGl1cyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5sZWZ0LXRvcCAoQHJhZGl1czogMCkgd2hlbiBub3QgKEByYWRpdXMgPSBza2lwKSB7XHJcbiAgICAgICAgICAgIC13ZWJraXQtYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogQHJhZGl1cztcclxuICAgICAgICAgICAgICAgIC1tb3otYm9yZGVyLXJhZGl1cy10b3BsZWZ0OiBAcmFkaXVzO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IEByYWRpdXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5sZWZ0LWJvdHRvbSAoQHJhZGl1czogMCkgd2hlbiBub3QgKEByYWRpdXMgPSBza2lwKSB7XHJcbiAgICAgICAgICAgIC13ZWJraXQtYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogQHJhZGl1cztcclxuICAgICAgICAgICAgICAgIC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21sZWZ0OiBAcmFkaXVzO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IEByYWRpdXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5yaWdodC10b3AgKEByYWRpdXM6IDApIHdoZW4gbm90IChAcmFkaXVzID0gc2tpcCkge1xyXG4gICAgICAgICAgICAtd2Via2l0LWJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBAcmFkaXVzO1xyXG4gICAgICAgICAgICAgICAgLW1vei1ib3JkZXItcmFkaXVzLXRvcHJpZ2h0OiBAcmFkaXVzO1xyXG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiBAcmFkaXVzO1xyXG4gICAgICAgIH1cclxuICAgICAgICAucmlnaHQtYm90dG9tIChAcmFkaXVzOiAwKSB3aGVuIG5vdCAoQHJhZGl1cyA9IHNraXApIHtcclxuICAgICAgICAgICAgLXdlYmtpdC1ib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogQHJhZGl1cztcclxuICAgICAgICAgICAgICAgIC1tb3otYm9yZGVyLXJhZGl1cy1ib3R0b21yaWdodDogQHJhZGl1cztcclxuICAgICAgICAgICAgICAgICAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogQHJhZGl1cztcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnNjYWxlIChAZmFjdG9yOiAwKSB3aGVuIG5vdCAoQGZhY3RvciA9IHNraXApIHtcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoQGZhY3Rvcik7XHJcbiAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHNjYWxlKEBmYWN0b3IpO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZShAZmFjdG9yKTtcclxuICAgIH1cclxuXHJcbiAgICAuc2hhZG93IChAc3ByZWFkOiAwIDAsIEBjb2xvcjogZ3JheSwgQGFscGhhOiAuNSkgd2hlbiBub3QgKEBzcHJlYWQgPSBza2lwKSB7XHJcbiAgICAgICAgQGhzbGE6IGhzbGEoaHVlKEBjb2xvciksIHNhdHVyYXRpb24oQGNvbG9yKSwgbGlnaHRuZXNzKEBjb2xvciksIEBhbHBoYSk7XHJcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiBAc3ByZWFkIEBoc2xhOyAgICAgLy8gQW5kcm9pZCAyLjMrLCBpT1MgNC4wLjItNC4yXHJcbiAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBAc3ByZWFkIEBoc2xhOyAgICAgLy8gQ2hyb21lIDYrLCBGaXJlZm94IDQrLCBJRSA5XHJcbiAgICB9XHJcblxyXG4gICAgLnNoYWRvdyB7XHJcbiAgICAgICAgLmluc2V0IChAc3ByZWFkOiAwIDAsIEBjb2xvcjogZ3JheSwgQGFscGhhOiAuNSkgd2hlbiBub3QgKEBzcHJlYWQgPSBza2lwKSB7XHJcbiAgICAgICAgICAgIEBoc2xhOiBoc2xhKGh1ZShAY29sb3IpLCBzYXR1cmF0aW9uKEBjb2xvciksIGxpZ2h0bmVzcyhAY29sb3IpLCBAYWxwaGEpO1xyXG4gICAgICAgICAgICAtd2Via2l0LWJveC1zaGFkb3c6IEBzcHJlYWQgQGhzbGEgaW5zZXQ7ICAgICAvLyBBbmRyb2lkIDIuMyssIGlPUyA0LjAuMi00LjJcclxuICAgICAgICAgICAgICAgICAgICBib3gtc2hhZG93OiBAc3ByZWFkIEBoc2xhIGluc2V0OyAgICAgLy8gQ2hyb21lIDYrLCBGaXJlZm94IDQrLCBJRSA5XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5zaGFkb3ctbXVsdGkgKEBzaGFkb3dzOiBub25lKSB3aGVuIG5vdCAoQHNoYWRvd3MgPSBza2lwKSB7XHJcbiAgICAgICAgLXdlYmtpdC1ib3gtc2hhZG93OiBAc2hhZG93cztcclxuICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IEBzaGFkb3dzO1xyXG4gICAgfVxyXG5cclxuICAgIC5za2V3IChAeDogMCwgQHk6IDApIHdoZW4gbm90IChAeCA9IHNraXApIHtcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogc2tldyhAeCwgQHkpO1xyXG4gICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiBza2V3KEB4LCBAeSk7XHJcbiAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHNrZXdYKEB4KSBza2V3WShAeSk7XHJcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IHNrZXcoQHgsIEB5KTtcclxuICAgIH1cclxuXHJcbiAgICAudGFwLWhpZ2hsaWdodCAoQGNvbG9yOiBncmF5KSB3aGVuIG5vdCAoQGNvbG9yID0gc2tpcCkge1xyXG4gICAgICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogQGNvbG9yO1xyXG4gICAgICAgICAgIC1tb3otdGFwLWhpZ2hsaWdodC1jb2xvcjogQGNvbG9yO1xyXG4gICAgICAgICAgICAgICAgdGFwLWhpZ2hsaWdodC1jb2xvcjogQGNvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgIC50cmFuc2Zvcm0gKEB0cmFuc2Zvcm06IG5vbmUpIHdoZW4gbm90IChAdHJhbnNmb3JtID0gc2tpcCkge1xyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiBAdHJhbnNmb3JtO1xyXG4gICAgICAgICAgIC1tb3otdHJhbnNmb3JtOiBAdHJhbnNmb3JtO1xyXG4gICAgICAgICAgICAtbXMtdHJhbnNmb3JtOiBAdHJhbnNmb3JtO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBAdHJhbnNmb3JtO1xyXG4gICAgfVxyXG5cclxuICAgIC50cmFuc2l0aW9uIChAcHJvcGVydHk6IGFsbCwgQGR1cmF0aW9uOiAwcywgQGZ1bmN0aW9uOiBlYXNlLCBAZGVsYXk6IDBzKSB3aGVuIG5vdCAoQHByb3BlcnR5ID0gc2tpcCkge1xyXG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogQHByb3BlcnR5IEBkdXJhdGlvbiBAZnVuY3Rpb24gQGRlbGF5O1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogQHByb3BlcnR5IEBkdXJhdGlvbiBAZnVuY3Rpb24gQGRlbGF5O1xyXG4gICAgfVxyXG5cclxuICAgIC50cmFuc2l0aW9uLW11bHRpIChAdHJhbnNpdGlvbnM6IGFsbCAwcyBlYXNlIDBzKSB3aGVuIG5vdCAoQHRyYW5zaXRpb25zID0gc2tpcCkge1xyXG4gICAgICAgIC13ZWJraXQtdHJhbnNpdGlvbjogQHRyYW5zaXRpb25zO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogQHRyYW5zaXRpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIC50cmFuc2xhdGUgKEB4OiAwLCBAeTogMCkgd2hlbiBub3QgKEB4ID0gc2tpcCkge1xyXG4gICAgICAgIC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTtcclxuICAgICAgICAgICAtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlKEB4LCBAeSk7XHJcbiAgICAgICAgICAgIC1tcy10cmFuc2Zvcm06IHRyYW5zbGF0ZShAeCwgQHkpOyAgIFxyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoQHgsIEB5KTtcclxuICAgIH1cclxuXHJcbiAgICAudHJhbnNsYXRlM2QgKEB4OiAwLCBAeTogMCwgQHo6IDApIHdoZW4gbm90IChAeCA9IHNraXApIHtcclxuICAgICAgICAtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlM2QoQHgsIEB5LCBAeik7XHJcbiAgICAgICAgICAgLW1vei10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKEB4LCBAeSwgQHopO1xyXG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUzZChAeCwgQHksIEB6KTtcclxuICAgIH1cclxuXHJcbiAgICAudXNlci1zZWxlY3QgKEBzZWxlY3Q6IG5vbmUpIHdoZW4gbm90IChAc2VsZWN0ID0gc2tpcCkge1xyXG4gICAgICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IEBzZWxlY3Q7XHJcbiAgICAgICAgICAgLW1vei11c2VyLXNlbGVjdDogQHNlbGVjdDtcclxuICAgICAgICAgICAgLW1zLXVzZXItc2VsZWN0OiBAc2VsZWN0O1xyXG4gICAgfVxyXG5cbi8vIFxyXG4vLyAgMDIuIEFzc2V0c1xyXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vICBBcnJvd3NcclxuXHJcbiAgICAuYXJyb3cge1xyXG4gICAgICAgIC5iYXNlICgpIHtcclxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnO1xyXG4gICAgICAgICAgICB3aWR0aDogMDtcclxuICAgICAgICAgICAgaGVpZ2h0OiAwO1xyXG4gICAgICAgIH1cclxuICAgICAgICAudG9wIChAc2l6ZTogMCwgQGNvbG9yOiB0cmFuc3BhcmVudCwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPSAwKSB7XHJcbiAgICAgICAgICAgIC5hcnJvdy5iYXNlO1xyXG4gICAgICAgICAgICBib3JkZXI6IEBzaXplIHNvbGlkIHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWNvbG9yOiBAY29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5ib3R0b20gKEBzaXplOiAwLCBAY29sb3I6IHRyYW5zcGFyZW50LCBAcXVlcnk6IDApIHdoZW4gKEBxdWVyeSA9IDApIHtcclxuICAgICAgICAgICAgLmFycm93LmJhc2U7XHJcbiAgICAgICAgICAgIGJvcmRlcjogQHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGJvcmRlci10b3AtY29sb3I6IEBjb2xvcjtcclxuICAgICAgICB9XHJcbiAgICAgICAgLmxlZnQgKEBzaXplOiAwLCBAY29sb3I6IHRyYW5zcGFyZW50LCBAcXVlcnk6IDApIHdoZW4gKEBxdWVyeSA9IDApIHtcclxuICAgICAgICAgICAgLmFycm93LmJhc2U7XHJcbiAgICAgICAgICAgIGJvcmRlcjogQHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogQGNvbG9yO1xyXG4gICAgICAgIH1cclxuICAgICAgICAucmlnaHQgKEBzaXplOiAwLCBAY29sb3I6IHRyYW5zcGFyZW50LCBAcXVlcnk6IDApIHdoZW4gKEBxdWVyeSA9IDApIHtcclxuICAgICAgICAgICAgLmFycm93LmJhc2U7XHJcbiAgICAgICAgICAgIGJvcmRlcjogQHNpemUgc29saWQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGJvcmRlci1sZWZ0LWNvbG9yOiBAY29sb3I7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5sZWZ0LXRvcCAoQHdpZHRoOiAwLCBAY29sb3I6IHRyYW5zcGFyZW50LCBAcmF0aW86IDEsIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID0gMCkge1xyXG4gICAgICAgICAgICAuYXJyb3cuYmFzZTtcclxuICAgICAgICAgICAgQGhlaWdodDogQHdpZHRoICogQHJhdGlvO1xyXG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IEBoZWlnaHQgQHdpZHRoIDAgMDtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiBAY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XHJcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5sZWZ0LWJvdHRvbSAoQHdpZHRoOiAwLCBAY29sb3I6IHRyYW5zcGFyZW50LCBAcmF0aW86IDEsIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID0gMCkge1xyXG4gICAgICAgICAgICAuYXJyb3cuYmFzZTtcclxuICAgICAgICAgICAgQGhlaWdodDogQHdpZHRoICogQHJhdGlvO1xyXG4gICAgICAgICAgICBib3JkZXItd2lkdGg6IEB3aWR0aCAwIDAgQGhlaWdodDtcclxuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCBAY29sb3I7XHJcbiAgICAgICAgICAgIGJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5yaWdodC10b3AgKEB3aWR0aDogMCwgQGNvbG9yOiB0cmFuc3BhcmVudCwgQHJhdGlvOiAxLCBAcXVlcnk6IDApIHdoZW4gKEBxdWVyeSA9IDApIHtcclxuICAgICAgICAgICAgLmFycm93LmJhc2U7XHJcbiAgICAgICAgICAgIEBoZWlnaHQ6IEB3aWR0aCAqIEByYXRpbztcclxuICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAwIEB3aWR0aCBAaGVpZ2h0IDA7XHJcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdHJhbnNwYXJlbnQgQGNvbG9yIHRyYW5zcGFyZW50IHRyYW5zcGFyZW50O1xyXG4gICAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xyXG4gICAgICAgIH1cclxuICAgICAgICAucmlnaHQtYm90dG9tIChAd2lkdGg6IDAsIEBjb2xvcjogdHJhbnNwYXJlbnQsIEByYXRpbzogMSwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPSAwKSB7XHJcbiAgICAgICAgICAgIC5hcnJvdy5iYXNlO1xyXG4gICAgICAgICAgICBAaGVpZ2h0OiBAd2lkdGggKiBAcmF0aW87XHJcbiAgICAgICAgICAgIGJvcmRlci13aWR0aDogMCAwIEBoZWlnaHQgQHdpZHRoO1xyXG4gICAgICAgICAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50IEBjb2xvcjtcclxuICAgICAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxuLy8gIEJsb2Nrc1xyXG5cclxuICAgIC5jZW50ZXItYmxvY2sgKEB3aWR0aDogMCwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPSAwKSB7XHJcbiAgICAgICAgd2lkdGg6IEB3aWR0aDtcclxuICAgICAgICBsZWZ0OiAoQHdpZHRoIC8gMikgKiAtMTtcclxuICAgICAgICBtYXJnaW4tbGVmdDogNTAlO1xyXG4gICAgfVxyXG5cclxuICAgIC5jZW50ZXItaW5saW5lIChAZGlzcGxheTogaW5saW5lLWJsb2NrLCBAcXVlcnk6IDApIHdoZW4gKEBxdWVyeSA9IDApIHtcclxuICAgICAgICBkaXNwbGF5OiBAZGlzcGxheTtcclxuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcclxuICAgICAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XHJcbiAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLmNlbnRlci12ZXJ0aWNhbCAoQGhlaWdodDogMCwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPSAwKSB7XHJcbiAgICAgICAgbWFyZ2luLXRvcDogKEBoZWlnaHQgLyAyKSAqIC0xO1xyXG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgICB0b3A6IDUwJTtcclxuICAgIH1cclxuXHJcbiAgICAub2Zmc2V0IChAcGFkZGluZzogMCwgQHF1ZXJ5OiAwKSB3aGVuIChAcXVlcnkgPSAwKSB7XHJcbiAgICAgICAgQG9mZnNldDogMTAwJSAqIEBwYWRkaW5nIC8gKDEwMCUgLSBAcGFkZGluZyk7XHJcbiAgICAgICAgbWFyZ2luLWxlZnQ6IHJvdW5kKC1Ab2Zmc2V0LCAyKTtcclxuICAgICAgICBwYWRkaW5nLWxlZnQ6IHJvdW5kKEBvZmZzZXQsIDIpO1xyXG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IHJvdW5kKEBvZmZzZXQsIDIpO1xyXG4gICAgICAgLmJveC1zaXppbmc7XHJcbiAgICB9XHJcblxyXG4gICAgLnJlc2V0LWJsb2NrIChAbWFyZ2luLWxlZnQ6IDAsIEBxdWVyeTogMCkgd2hlbiAoQHF1ZXJ5ID0gMCkge1xyXG4gICAgICAgIG1hcmdpbi1sZWZ0OiBAbWFyZ2luLWxlZnQ7XHJcbiAgICAgICAgbGVmdDogYXV0bztcclxuICAgIH1cclxuXHJcbiAgICAucmVzZXQtdmVydGljYWwgKEBtYXJnaW4tdG9wOiAwLCBAcXVlcnk6IDApIHdoZW4gKEBxdWVyeSA9IDApIHtcclxuICAgICAgICBtYXJnaW4tdG9wOiBAbWFyZ2luLXRvcDtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgdG9wOiBhdXRvO1xyXG4gICAgfVxuLy8gIExpc3RzXHJcbiAgICBcclxuICAgIC5saXN0LXN0eWxlIChAdHlwZTogbm9uZSwgQGltYWdlOiBub25lKSB3aGVuIG5vdCAoQHR5cGUgPSBza2lwKSBhbmQgKEB0eXBlID0gaW5oZXJpdCksIChAaW1hZ2UgPSBpbmhlcml0KSB7XHJcbiAgICAgICAgbGlzdC1zdHlsZTogaW5oZXJpdDtcclxuICAgIH1cclxuXHJcbiAgICAubGlzdC1zdHlsZSAoQHR5cGU6IG5vbmUsIEBpbWFnZTogbm9uZSkgd2hlbiBub3QgKEB0eXBlID0gc2tpcCkgYW5kIG5vdCAoQHR5cGUgPSBpbmhlcml0KSBhbmQgKEBpbWFnZSA9IG5vbmUpIHtcclxuICAgICAgICBsaXN0LXN0eWxlOiBAdHlwZSBpbnNpZGU7XHJcbiAgICB9XHJcblxyXG4gICAgLmxpc3Qtc3R5bGUgKEB0eXBlOiBub25lLCBAaW1hZ2U6IG5vbmUpIHdoZW4gbm90IChAdHlwZSA9IHNraXApIGFuZCBub3QgKEBpbWFnZSA9IG5vbmUpIGFuZCBub3QgKEBpbWFnZSA9IGluaGVyaXQpIHtcclxuICAgICAgICBsaXN0LXN0eWxlOiBub25lIGluc2lkZSB1cmwoJ0B7aW1hZ2V9Jyk7XHJcbiAgICB9XG4vLyAgUHNldWRvXHJcblxyXG4gICAgLnBzZXVkby1jb250YWluZXIgKEBkaXNwbGF5OiBpbmxpbmUtYmxvY2spIHtcclxuICAgICAgICBkaXNwbGF5OiBAZGlzcGxheTtcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IFxyXG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlOyAgLy8gb3ZlcmZsb3cgaWU4LzlcclxuICAgIH1cclxuXHJcbiAgICAucHNldWRvIChAY29udGVudDogJycsIEB3aWR0aDogYXV0bywgQGhlaWdodDogYXV0bykge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgICAgICBjb250ZW50OiBAY29udGVudDtcclxuICAgICAgICB3aWR0aDogQHdpZHRoO1xyXG4gICAgICAgIGhlaWdodDogQGhlaWdodDtcclxuICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xyXG4gICAgfVxyXG5cbi8vICBUYWJsZXNcclxuXHJcbiAgICAudGFibGUge1xyXG4gICAgICAgIC5ib3JkZXIgKEB3aWR0aDogMCwgQHN0eWxlOiBub25lLCBAY29sb3I6IG5vbmUpIHdoZW4gbm90IChAd2lkdGggPSBza2lwKSB7XHJcbiAgICAgICAgICAgICYgdHIgdGgsXHJcbiAgICAgICAgICAgICYgdHIgdGQgICAgICAgICAgICAgeyBib3JkZXItd2lkdGg6IEB3aWR0aDsgYm9yZGVyLXN0eWxlOiBAc3R5bGU7IGJvcmRlci1jb2xvcjogQGNvbG9yOyB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5ib3JkZXItb3V0ZXIgKEB3aWR0aDogMCwgQHN0eWxlOiBub25lLCBAY29sb3I6IG5vbmUpIHdoZW4gbm90IChAd2lkdGggPSBza2lwKSB7XHJcbiAgICAgICAgICAgICYgICAgICAgICAgICAgICAgICAgeyBib3JkZXItd2lkdGg6IEB3aWR0aDsgYm9yZGVyLXN0eWxlOiBAc3R5bGU7IGJvcmRlci1jb2xvcjogQGNvbG9yOyB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5jb2xvciAoQGNvbG9yOiBpbmhlcml0LCBAYmFjazogc2tpcCwgQHJvd3M6IGFsbCkgd2hlbiBub3QgKEBjb2xvciA9IHNraXApIGFuZCBub3QgKEByb3dzID0gYWxsKSB7XHJcbiAgICAgICAgICAgICYgdHI6bnRoLWNoaWxkKEB7cm93c30pIHRkLFxyXG4gICAgICAgICAgICAmIHRyLkB7cm93c30gdGQgICAgIHsgY29sb3I6IEBjb2xvcjsgLmJhY2suY29sb3IoQGJhY2spIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLmNvbG9yIChAY29sb3I6IGluaGVyaXQsIEBiYWNrOiBza2lwLCBAcm93czogYWxsKSB3aGVuIG5vdCAoQGNvbG9yID0gc2tpcCkgYW5kIChAcm93cyA9IGFsbCkge1xyXG4gICAgICAgICAgICAmIHRyIHRkICAgICAgICAgICAgIHsgY29sb3I6IEBjb2xvcjsgLmJhY2suY29sb3IoQGJhY2spOyB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5mb250IChAZm9udDogbm9ybWFsIDFlbSwgQGZhbWlseTogaW5oZXJpdCkgd2hlbiBub3QgKEBmb250ID0gc2tpcCkge1xyXG4gICAgICAgICAgICAmIHRyIHRkICAgICAgICAgICAgIHsgLmZvbnQoQGZvbnQsIEBmYW1pbHkpOyB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5oZWFkLWNvbG9yIChAY29sb3I6IGluaGVyaXQsIEBiYWNrOiBza2lwKSB3aGVuIG5vdCAoQGNvbG9yID0gc2tpcCkge1xyXG4gICAgICAgICAgICAmIHRyIHRoICAgICAgICAgICAgIHsgLmNvbG9yKEBjb2xvciwgQGJhY2spOyB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC5oZWFkLWZvbnQgKEBmb250OiBub3JtYWwgMWVtLCBAZmFtaWx5OiBpbmhlcml0KSB3aGVuIG5vdCAoQGZvbnQgPSBza2lwKSB7XHJcbiAgICAgICAgICAgICYgdHIgdGggICAgICAgICAgICAgeyAuZm9udChAZm9udCwgQGZhbWlseSk7IH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLnBhZGRpbmcgKEBwYWRkaW5nOiAwKSB3aGVuIG5vdCAoQHBhZGRpbmcgPSBza2lwKSB7XHJcbiAgICAgICAgICAgICYgdHIgdGgsXHJcbiAgICAgICAgICAgICYgdHIgdGQgICAgICAgICAgICAgeyBwYWRkaW5nOiBAcGFkZGluZzsgfVxyXG4gICAgICAgIH1cclxuICAgICAgICAucm91bmRlZCAoQHJhZGl1czogbm9uZSkgd2hlbiBub3QgKEByYWRpdXMgPSBza2lwKSB7ICBcclxuICAgICAgICAgICAgJiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7IC5yZS1yb3VuZGVkKEByYWRpdXMpeyAucm91bmRlZChAcmFkaXVzKTsgfTsgfSAgLy8gRG91YmxlIG5hbWUgc3RhY2sgRml4XHJcbiAgICAgICAgICAgICYgdHI6Zmlyc3QtY2hpbGQgdGg6Zmlyc3QtY2hpbGQgeyAucm91bmRlZC5sZWZ0LXRvcChAcmFkaXVzKTsgfVxyXG4gICAgICAgICAgICAmIHRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGQgIHsgLnJvdW5kZWQucmlnaHQtdG9wKEByYWRpdXMpOyB9XHJcbiAgICAgICAgICAgICYgdHI6bGFzdC1jaGlsZCAgdGQ6Zmlyc3QtY2hpbGQgeyAucm91bmRlZC5sZWZ0LWJvdHRvbShAcmFkaXVzKTsgfVxyXG4gICAgICAgICAgICAmIHRyOmxhc3QtY2hpbGQgIHRkOmxhc3QtY2hpbGQgIHsgLnJvdW5kZWQucmlnaHQtYm90dG9tKEByYWRpdXMpOyB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxuLy8gIFVub2NhdGVnb3JpemVkXHJcblxyXG4gICAgLnN0cm9uZy1kaXYtd2lkdGggKEBzd2lkdGg6IDEwMCUsIEBkd2lkdGg6IDEwMCUsIEBxdWVyeTogMCkgd2hlbiBub3QgKEBzd2lkdGggPSBza2lwKSBhbmQgKEBxdWVyeSA9IDApIHtcclxuICAgICAgICAmID4gc3Ryb25nICAgICAgICAgICAgICB7IGRpc3BsYXk6IGJsb2NrOyB3aWR0aDogQHN3aWR0aDsgZmxvYXQ6IGxlZnQ7IH1cclxuICAgICAgICAmID4gZGl2ICAgICAgICAgICAgICAgICB7IHdpZHRoOiBAZHdpZHRoOyB9XHJcbiAgICB9XHJcblxyXG4gICAgLnN0cm9uZy1kaXYtd2lkdGggKEBzd2lkdGg6IDEwMCUsIEBkd2lkdGg6IDEwMCUsIEBxdWVyeTogMCkgd2hlbiBub3QgKEBzd2lkdGggPSBza2lwKSBhbmQgKEBxdWVyeSA+IDApIHtcclxuICAgICAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogQHF1ZXJ5KSB7XHJcbiAgICAgICAgICAgIC5zdHJvbmctZGl2LXdpZHRoIChAc3dpZHRoLCBAZHdpZHRoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLnN0cm9uZy1kaXYtd2lkdGggKEB2YXIpIHdoZW4gKEB2YXIgPSBza2lwKSB7fVxyXG4gICAgXG4vL1xyXG4vLyAgMDMuIFV0aWxpdGllc1xyXG4vLyAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcbi8vICBDb25zdGFudHMgXHJcblxyXG4gICAgLy8gIERpdmlkZXIgZXNjYXBlXHJcbiAgICBAZCAgICAgICAgICAgICAgICAgICAgICA6ICAgZSgnLycpO1xyXG5cclxuICAgIC8vICBTaGFkZXMgb2YgR3JheVxyXG4gICAgQGhleDAgICAgICAgICAgICAgICAgICAgOiAgICAgIzAwMDtcclxuICAgIEBoZXgxICAgICAgICAgICAgICAgICAgIDogICAgICMxMTE7XHJcbiAgICBAaGV4MiAgICAgICAgICAgICAgICAgICA6ICAgICAjMjIyO1xyXG4gICAgQGhleDMgICAgICAgICAgICAgICAgICAgOiAgICAgIzMzMztcclxuICAgIEBoZXg0ICAgICAgICAgICAgICAgICAgIDogICAgICM0NDQ7XHJcbiAgICBAaGV4NSAgICAgICAgICAgICAgICAgICA6ICAgICAjNTU1O1xyXG4gICAgQGhleDYgICAgICAgICAgICAgICAgICAgOiAgICAgIzY2NjtcclxuICAgIEBoZXg3ICAgICAgICAgICAgICAgICAgIDogICAgICM3Nzc7XHJcbiAgICBAaGV4OCAgICAgICAgICAgICAgICAgICA6ICAgICAjODg4O1xyXG4gICAgQGhleDkgICAgICAgICAgICAgICAgICAgOiAgICAgIzk5OTtcclxuICAgIEBoZXhhICAgICAgICAgICAgICAgICAgIDogICAgICNhYWE7XHJcbiAgICBAaGV4YiAgICAgICAgICAgICAgICAgICA6ICAgICAjYmJiO1xyXG4gICAgQGhleGMgICAgICAgICAgICAgICAgICAgOiAgICAgI2NjYztcclxuICAgIEBoZXhkICAgICAgICAgICAgICAgICAgIDogICAgICNkZGQ7XHJcbiAgICBAaGV4ZSAgICAgICAgICAgICAgICAgICA6ICAgICAjZWVlO1xyXG4gICAgQGhleGVmICAgICAgICAgICAgICAgICAgOiAgICAgI2Y2ZjZmNztcclxuICAgIEBoZXhmICAgICAgICAgICAgICAgICAgIDogICAgICNmZmY7XHJcblxyXG4gICAgLy8gIENvbG9ycyBDb2Rlc1xyXG4gICAgQGFxdWEgICAgICAgICAgICAgICAgICAgOiAgICAgIzBmZjtcclxuICAgIEBibGFjayAgICAgICAgICAgICAgICAgIDogICAgICMwMDA7XHJcbiAgICBAYmx1ZSAgICAgICAgICAgICAgICAgICA6ICAgICAjMDBmO1xyXG4gICAgQGJsdWVWaW9sZXQgICAgICAgICAgICAgOiAgICAgIzhhMmJlMjtcclxuICAgIEBicm93biAgICAgICAgICAgICAgICAgIDogICAgICNhNTJhMmE7XHJcbiAgICBAZnVjaHNpYSAgICAgICAgICAgICAgICA6ICAgICAjZjBmO1xyXG4gICAgQGdvbGQgICAgICAgICAgICAgICAgICAgOiAgICAgI2ZmZDcwMDtcclxuICAgIEBncmVlbiAgICAgICAgICAgICAgICAgIDogICAgICMwMDgwMDA7XHJcbiAgICBAZ3JheSAgICAgICAgICAgICAgICAgICA6ICAgICAjODA4MDgwO1xyXG4gICAgQGxpbWUgICAgICAgICAgICAgICAgICAgOiAgICAgIzBmMDtcclxuICAgIEBtYXJvb24gICAgICAgICAgICAgICAgIDogICAgICM4NTE0NGI7XHJcbiAgICBAbmF2eSAgICAgICAgICAgICAgICAgICA6ICAgICAjMDAxZjNmO1xyXG4gICAgQG9saXZlICAgICAgICAgICAgICAgICAgOiAgICAgIzgwODAwMDtcclxuICAgIEBvcmFuZ2UgICAgICAgICAgICAgICAgIDogICAgICNmZmE1MDA7XHJcbiAgICBAb3JhbmdlUmVkICAgICAgICAgICAgICA6ICAgICAjZmY0NTAwO1xyXG4gICAgQHBpbmsgICAgICAgICAgICAgICAgICAgOiAgICAgI2ZmYzBjYjtcclxuICAgIEBwdXJwbGUgICAgICAgICAgICAgICAgIDogICAgICM4MDAwODA7XHJcbiAgICBAcmVkICAgICAgICAgICAgICAgICAgICA6ICAgICAjZjAwO1xyXG4gICAgQHNpbHZlciAgICAgICAgICAgICAgICAgOiAgICAgI2MwYzBjMDtcclxuICAgIEB0ZWFsICAgICAgICAgICAgICAgICAgIDogICAgICMwMDgwODA7XHJcbiAgICBAdHJhbnMgICAgICAgICAgICAgICAgICA6ICAgICB0cmFuc3BhcmVudDtcclxuICAgIEB2aW9sZXQgICAgICAgICAgICAgICAgIDogICAgICNlZTgyZWU7XHJcbiAgICBAd2hpdGUgICAgICAgICAgICAgICAgICA6ICAgICAjZmZmO1xyXG4gICAgQHllbGxvdyAgICAgICAgICAgICAgICAgOiAgICAgI2ZmMDtcclxuICAgIEB5ZWxsb3dHcmVlbiAgICAgICAgICAgIDogICAgICM5YWNkMzI7XHJcblxyXG4gICAgLy8gIFdlYnNhZmUgRm9udHNcclxuICAgIEBmb250LW1vbm8gICAgICAgICAgICAgIDogICAnTWVubG8sIE1vbmFjbywgQ29uc29sYXMsIG1vbm9zcGFjZSc7XHJcbiAgICBAZm9udC1zYW5zICAgICAgICAgICAgICA6ICAgJ0hlbHZldGljYSBOZXVlLCBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmJztcclxuICAgIEBmb250LXNjcmlwdCAgICAgICAgICAgIDogICAnQnJ1c2ggU2NyaXB0IE1ULCBjdXJzaXZlJztcclxuICAgIEBmb250LXNlcmlmICAgICAgICAgICAgIDogICAnR2VvcmdpYSwgVGltZXMgTmV3IFJvbWFuLCBUaW1lcywgc2VyaWYnO1xuLy8gIEVhc2luZ1xyXG5cclxuICAgIC8vIEJhY2tcclxuICAgIEBlYXNlLWluLWJhY2sgICAgICAgOiBjdWJpYy1iZXppZXIoMC42MDAsIC0wLjI4MCwgMC43MzUsIDAuMDQ1KTtcclxuICAgIEBlYXNlLW91dC1iYWNrICAgICAgOiBjdWJpYy1iZXppZXIoMC4xNzUsICAwLjg4NSwgMC4zMjAsIDEuMjc1KTtcclxuICAgIEBlYXNlLWluLW91dC1iYWNrICAgOiBjdWJpYy1iZXppZXIoMC42ODAsIC0wLjU1MCwgMC4yNjUsIDEuNTUwKTtcclxuXHJcbiAgICAvLyBDdWJpY1xyXG4gICAgQGVhc2UtaW4tY3ViaWMgICAgICA6IGN1YmljLWJlemllcigwLjU1MCwgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XHJcbiAgICBAZWFzZS1vdXQtY3ViaWMgICAgIDogY3ViaWMtYmV6aWVyKDAuMjE1LCAwLjYxMCwgMC4zNTUsIDEuMDAwKTtcclxuICAgIEBlYXNlLWluLW91dC1jdWJpYyAgOiBjdWJpYy1iZXppZXIoMC42NDUsIDAuMDQ1LCAwLjM1NSwgMS4wMDApO1xyXG5cclxuICAgIC8vIENpcmNcclxuICAgIEBlYXNlLWluLWNpcmMgICAgICAgOiBjdWJpYy1iZXppZXIoMC42MDAsIDAuMDQwLCAwLjk4MCwgMC4zMzUpO1xyXG4gICAgQGVhc2Utb3V0LWNpcmMgICAgICA6IGN1YmljLWJlemllcigwLjA3NSwgMC44MjAsIDAuMTY1LCAxLjAwMCk7XHJcbiAgICBAZWFzZS1pbi1vdXQtY2lyYyAgIDogY3ViaWMtYmV6aWVyKDAuNzg1LCAwLjEzNSwgMC4xNTAsIDAuODYwKTtcclxuXHJcbiAgICAvLyBFeHBvXHJcbiAgICBAZWFzZS1pbi1leHBvICAgICAgIDogY3ViaWMtYmV6aWVyKDAuOTUwLCAwLjA1MCwgMC43OTUsIDAuMDM1KTtcclxuICAgIEBlYXNlLW91dC1leHBvICAgICAgOiBjdWJpYy1iZXppZXIoMC4xOTAsIDEuMDAwLCAwLjIyMCwgMS4wMDApO1xyXG4gICAgQGVhc2UtaW4tb3V0LWV4cG8gICA6IGN1YmljLWJlemllcigxLjAwMCwgMC4wMDAsIDAuMDAwLCAxLjAwMCk7XHJcblxyXG4gICAgLy8gUXVhZFxyXG4gICAgQGVhc2UtaW4tcXVhZCAgICAgICA6IGN1YmljLWJlemllcigwLjU1MCwgMC4wODUsIDAuNjgwLCAwLjUzMCk7XHJcbiAgICBAZWFzZS1vdXQtcXVhZCAgICAgIDogY3ViaWMtYmV6aWVyKDAuMjUwLCAwLjQ2MCwgMC40NTAsIDAuOTQwKTtcclxuICAgIEBlYXNlLWluLW91dC1xdWFkICAgOiBjdWJpYy1iZXppZXIoMC40NTUsIDAuMDMwLCAwLjUxNSwgMC45NTUpO1xyXG5cclxuICAgIC8vIFF1YXJ0XHJcbiAgICBAZWFzZS1pbi1xdWFydCAgICAgIDogY3ViaWMtYmV6aWVyKDAuODk1LCAwLjAzMCwgMC42ODUsIDAuMjIwKTtcclxuICAgIEBlYXNlLW91dC1xdWFydCAgICAgOiBjdWJpYy1iZXppZXIoMC4xNjUsIDAuODQwLCAwLjQ0MCwgMS4wMDApO1xyXG4gICAgQGVhc2UtaW4tb3V0LXF1YXJ0ICA6IGN1YmljLWJlemllcigwLjc3MCwgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XHJcblxyXG4gICAgLy8gUXVpbnRcclxuICAgIEBlYXNlLWluLXF1aW50ICAgICAgOiBjdWJpYy1iZXppZXIoMC43NTUsIDAuMDUwLCAwLjg1NSwgMC4wNjApO1xyXG4gICAgQGVhc2Utb3V0LXF1aW50ICAgICA6IGN1YmljLWJlemllcigwLjIzMCwgMS4wMDAsIDAuMzIwLCAxLjAwMCk7XHJcbiAgICBAZWFzZS1pbi1vdXQtcXVpbnQgIDogY3ViaWMtYmV6aWVyKDAuODYwLCAwLjAwMCwgMC4wNzAsIDEuMDAwKTtcclxuXHJcbiAgICAvLyBTaW5lXHJcbiAgICBAZWFzZS1pbi1zaW5lICAgICAgIDogY3ViaWMtYmV6aWVyKDAuNDcwLCAwLjAwMCwgMC43NDUsIDAuNzE1KTtcclxuICAgIEBlYXNlLW91dC1zaW5lICAgICAgOiBjdWJpYy1iZXppZXIoMC4zOTAsIDAuNTc1LCAwLjU2NSwgMS4wMDApO1xyXG4gICAgQGVhc2UtaW4tb3V0LXNpbmUgICA6IGN1YmljLWJlemllcigwLjQ0NSwgMC4wNTAsIDAuNTUwLCAwLjk1MCk7XG4vLyAgRmlsdGVyc1xyXG5cclxuICAgIEBzdmctZ3JheXNjYWxlICAgICAgOiBcImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGY4LDxzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJz48ZmlsdGVyIGlkPSdncmF5c2NhbGUnPjxmZUNvbG9yTWF0cml4IHR5cGU9J21hdHJpeCcgdmFsdWVzPScwLjMzMzMgMC4zMzMzIDAuMzMzMyAwIDAgMC4zMzMzIDAuMzMzMyAwLjMzMzMgMCAwIDAuMzMzMyAwLjMzMzMgMC4zMzMzIDAgMCAwIDAgMCAxIDAnLz48L2ZpbHRlcj48L3N2Zz4jZ3JheXNjYWxlXCI7XHJcblxyXG4gICAgQHN2Zy1ncmF5c2NhbGUtaWUxMCA6IFwiZGF0YTppbWFnZS9zdmcreG1sO3V0ZjgsPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnPjxmaWx0ZXIgaWQ9J2dyYXlzY2FsZSc+PGZlQ29sb3JNYXRyaXggdHlwZT0nbWF0cml4JyB2YWx1ZXM9JzEgMCAwIDAgMCwgMCAxIDAgMCAwLCAwIDAgMSAwIDAsIDAgMCAwIDEgMCcvPjwvZmlsdGVyPjwvc3ZnPiNncmF5c2NhbGVcIjtcbi8vICBIZWxwZXJzXHJcblxyXG4gICAgLmJsb2NrICgpIHtcclxuICAgICAgICBkaXNwbGF5OiBibG9jaztcclxuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICAgICAgZmxvYXQ6IGxlZnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLmNsZWFyZml4ICgpIHtcclxuICAgICAgICAmOmFmdGVyIHsgXHJcbiAgICAgICAgICAgIGNvbnRlbnQ6ICcnOyBcclxuICAgICAgICAgICAgZGlzcGxheTogdGFibGU7IFxyXG4gICAgICAgICAgICBjbGVhcjogYm90aDsgXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5lbGxpcHNpcyAoKSB7IFxyXG4gICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyAgICAvLyBJRTggcmVuZGVyaW5nIGlzc3VlXHJcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsgXHJcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsgXHJcbiAgICB9XHJcblxyXG4gICAgLmhpZGUtdGV4dCAoKSB7IFxyXG4gICAgICAgIHRleHQtaW5kZW50OiAtOTk5OXB4OyBcclxuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xyXG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47IFxyXG4gICAgfVxyXG5cclxuICAgIC5oeXBoZW5zICgpIHtcclxuICAgICAgICAtd2Via2l0LWh5cGhlbnM6IGF1dG87XHJcbiAgICAgICAgICAgLW1vei1oeXBoZW5zOiBhdXRvO1xyXG4gICAgICAgICAgICAgICAgaHlwaGVuczogYXV0bztcclxuICAgIH1cclxuXHJcbiAgICAuaW5saW5lICgpIHtcclxuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XHJcbiAgICAgICAgZmxvYXQ6IG5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgLmlubGluZS1ibG9jayAoKSB7XHJcbiAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICAgICAgICBmbG9hdDogbm9uZTtcclxuICAgIH1cclxuXHJcbiAgICAubGluZS1icmVhayAoKSB7ICBcclxuICAgICAgICBtYXJnaW4tbGVmdDogMDsgXHJcbiAgICAgICAgY2xlYXI6IGxlZnQ7IFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICAubm93cmFwICgpIHtcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xyXG4gICAgfVxyXG5cclxuICAgIC53b3JkLWJyZWFrICgpIHtcclxuICAgICAgICAtbXMtd29yZC1icmVhazogYnJlYWstYWxsO1xyXG4gICAgICAgICAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XHJcbiAgICAgICAgICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC53cmFwICgpIHtcclxuICAgICAgICB3aGl0ZS1zcGFjZTogbm9ybWFsOyAvLyB2YWxpZGF0ZVxyXG4gICAgfVxuLy8gIElubGluZSBJbWFnZXNcclxuXHJcbiAgICBAcG5nLXRvLWdyYXkxNSAgICAgIDogXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQkFDQVlBQUFEYkVSMUFBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBQUlHTklVazBBQUhvbEFBQ0Fnd0FBK2Y4QUFJRHBBQUIxTUFBQTZtQUFBRHFZQUFBWGI1SmZ4VVlBQUFBcFNVUkJWSGphWXZqLy96OERFd01EdzJBbUdCZ1lHQmpoWEVaY0JCT1JYR0paakhqRklBNENEQUFRS2dPZmxkNU5QZ0FBQUFCSlJVNUVya0pnZ2c9PVwiO1xyXG4gICAgXHJcbiAgICBAZ2lmLXgtY2xvc2UgICAgICAgIDogXCJkYXRhOmltYWdlL2dpZjtiYXNlNjQsUjBsR09EbGhDd0FMQUpFQUFBQUFBUC8vL3dBQUFBQUFBQ0g1QkFFQUFBSUFMQUFBQUFBTEFBc0FBQUlYQklRcHhycjJEbW9UMHNTZ2l6dHFiSDFYYzFVbFdBQUFPdz09XCI7XHJcbiAgICBcclxuICAgIEBnaWYtc3BhY2VyICAgICAgICAgOiBcImRhdGE6aW1hZ2UvZ2lmO2Jhc2U2NCxSMGxHT0RsaEFRQUJBSUFBQVAvLy93QUFBQ0g1QkFFQUFBQUFMQUFBQUFBQkFBRUFBQUlDUkFFQU93PT1cIjtcclxuXHJcbiAgICBAcG5nLWJsYWNrNzUgICAgICAgIDogXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJDQVlBQUFBZkZjU0pBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQUE5SlJFRlVlTnBpWUdCZ1dBWVFZQUFBcXdDbnUrcXhoUUFBQUFCSlJVNUVya0pnZ2c9PVwiO1xuLy8gIEtleWZyYW1lc1xyXG5cclxuICAgIC5rZXlmcmFtZXMtZmFkZS1pbiAoKSB7XHJcbiAgICAgICAgLl9mYWRlLWluICgpIHtcclxuICAgICAgICAgICAgMCUge1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgMTAwJSB7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBALXdlYmtpdC1rZXlmcmFtZXMgZmFkZS1pbiB7XHJcbiAgICAgICAgICAgIC5fZmFkZS1pbigpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGtleWZyYW1lcyBmYWRlLWluIHtcclxuICAgICAgICAgICAgLl9mYWRlLWluKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5rZXlmcmFtZXMtZmFkZS1vdXQgKCkge1xyXG4gICAgICAgIC5fZmFkZS1vdXQgKCkge1xyXG4gICAgICAgICAgICAwJSB7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAxMDAlIHtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDA7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBmYWRlLW91dCB7XHJcbiAgICAgICAgICAgIC5fZmFkZS1vdXQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBrZXlmcmFtZXMgZmFkZS1vdXQge1xyXG4gICAgICAgICAgICAuX2ZhZGUtb3V0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5rZXlmcmFtZXMtc2hha2UgKCkge1xyXG4gICAgICAgIC5fc2hha2UgKCkge1xyXG4gICAgICAgICAgICAwJSwgMTAwJSB7XHJcbiAgICAgICAgICAgICAgICAudHJhbnNsYXRlICgwKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgMTAlLCAzMCUsIDUwJSwgNzAlLCA5MCUge1xyXG4gICAgICAgICAgICAgICAgLnRyYW5zbGF0ZSAoLTEwcHgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAyMCUsIDQwJSwgNjAlLCA4MCUge1xyXG4gICAgICAgICAgICAgICAgLnRyYW5zbGF0ZSAoMTBweCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEAtd2Via2l0LWtleWZyYW1lcyBzaGFrZSB7XHJcbiAgICAgICAgICAgIC5fc2hha2UoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBrZXlmcmFtZXMgc2hha2Uge1xyXG4gICAgICAgICAgICAuX3NoYWtlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC5rZXlmcmFtZXMtc2xpZGUtZG93biAoKSB7XHJcbiAgICAgICAgLl9zbGlkZS1kb3duICgpIHtcclxuICAgICAgICAgICAgMCUge1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlWSgtMjBweCkgcGVyc3BlY3RpdmUoNjAwcHgpIHJvdGF0ZVgoMTVkZWcpKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgMTAwJSB7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAxO1xyXG4gICAgICAgICAgICAgICAgLnRyYW5zZm9ybSh0cmFuc2xhdGVZKDApIHBlcnNwZWN0aXZlKDYwMHB4KSByb3RhdGVYKDBkZWcpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlLWRvd24ge1xyXG4gICAgICAgICAgICAuX3NsaWRlLWRvd24oKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBrZXlmcmFtZXMgc2xpZGUtZG93biB7XHJcbiAgICAgICAgICAgIC5fc2xpZGUtZG93bigpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAua2V5ZnJhbWVzLXNsaWRlLXVwICgpIHtcclxuICAgICAgICAuX3NsaWRlLXVwICgpIHtcclxuICAgICAgICAgICAgMCUge1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMTtcclxuICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlWSgwKSBwZXJzcGVjdGl2ZSg2MDBweCkgcm90YXRlWCgwZGVnKSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIDEwMCUge1xyXG4gICAgICAgICAgICAgICAgb3BhY2l0eTogMDtcclxuICAgICAgICAgICAgICAgIC50cmFuc2Zvcm0odHJhbnNsYXRlWSgtMjBweCkgcGVyc3BlY3RpdmUoNjAwcHgpIHJvdGF0ZVgoMTVkZWcpKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQC13ZWJraXQta2V5ZnJhbWVzIHNsaWRlLXVwIHtcclxuICAgICAgICAgICAgLl9zbGlkZS11cCgpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgQGtleWZyYW1lcyBzbGlkZS11cCB7XHJcbiAgICAgICAgICAgIC5fc2xpZGUtdXAoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmtleWZyYW1lcy16b29tLWluICgpIHtcclxuICAgICAgICAuX3pvb20taW4gKCkge1xyXG4gICAgICAgICAgICAwJSB7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICAgICAgLnNjYWxlKC4zKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgNTAlIHtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEAtd2Via2l0LWtleWZyYW1lcyB6b29tLWluIHtcclxuICAgICAgICAgICAgLl96b29tLWluKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBAa2V5ZnJhbWVzIHpvb20taW4ge1xyXG4gICAgICAgICAgICAuX3pvb20taW4oKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLmtleWZyYW1lcy16b29tLW91dCAoKSB7XHJcbiAgICAgICAgLl96b29tLW91dCAoKSB7XHJcbiAgICAgICAgICAgIDAlIHtcclxuICAgICAgICAgICAgICAgIG9wYWNpdHk6IDE7XHJcbiAgICAgICAgICAgICAgICAuc2NhbGUoMSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIDUwJSB7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICAgICAgLnNjYWxlKC4zKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgMTAwJSB7XHJcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiAwO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIFxyXG4gICAgICAgIEAtd2Via2l0LWtleWZyYW1lcyB6b29tLW91dCB7XHJcbiAgICAgICAgICAgIC5fem9vbS1vdXQoKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIEBrZXlmcmFtZXMgem9vbS1vdXQge1xyXG4gICAgICAgICAgICAuX3pvb20tb3V0KCk7XHJcbiAgICAgICAgfVxyXG4gICAgfSIsIi5jbGVhciB7XHJcblx0JjpiZWZvcmUsXHJcblx0JjphZnRlciB7XHJcblx0XHRjb250ZW50OiBcIiBcIjsgLy8gMVxyXG5cdFx0ZGlzcGxheTogdGFibGU7IC8vIDJcclxuXHR9XHJcblx0JjphZnRlciB7XHJcblx0XHRjbGVhcjogYm90aDtcclxuXHR9XHJcblx0Knpvb206IDE7XHJcbn1cclxuXHJcbi53NTAgeyB3aWR0aDogNTBweDsgfVxyXG4udzYwIHsgd2lkdGg6IDYwcHg7IH1cclxuLnc3MCB7IHdpZHRoOiA3MHB4OyB9XHJcbi53ODAgeyB3aWR0aDogODBweDsgfVxyXG4udzkwIHsgd2lkdGg6IDkwcHg7IH1cclxuLncxMDAgeyB3aWR0aDogMTAwcHg7IH1cclxuXHJcbi5pbWctbGVmdCB7IGZsb2F0OiBsZWZ0OyBtYXJnaW46IC4zZW0gMWVtIDFlbSAwOyBjbGVhcjogYm90aDsgfVxyXG4uaW1nLXJpZ2h0IHsgZmxvYXQ6IHJpZ2h0OyBtYXJnaW46IC4zZW0gMCAxZW0gMWVtOyBjbGVhcjogYm90aDsgfVxyXG4uc3RyaWtlIHsgdGV4dC1kZWNvcmF0aW9uOiBsaW5lLXRocm91Z2g7IH1cclxuLnBvc3JlbCB7IHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxyXG5cclxuLmYtbGVmdCB7IGZsb2F0OiBsZWZ0OyB9XHJcbi5mLXJpZ2h0IHsgZmxvYXQ6IHJpZ2h0OyB9XHJcbi5oaWRkZW4geyBkaXNwbGF5OiBub25lOyB2aXNpYmlsaXR5OiBoaWRkZW47IH1cclxuXHJcblRSLmhpZGRlbiB7IHZpc2liaWxpdHk6IHZpc2libGU7IH1cclxuLnVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZSB7IGRpc3BsYXk6IG5vbmU7IH1cclxuLm5vd3JhcCB7IHdoaXRlLXNwYWNlOiBub3dyYXA7IH1cclxuLmxlZnQgeyB0ZXh0LWFsaWduOiBsZWZ0OyB9XHJcbi5yaWdodCB7IHRleHQtYWxpZ246IHJpZ2h0OyB9XHJcbi5jZW50ZXIgeyB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgfVxyXG4ubm9tYXJnaW4geyBtYXJnaW46IDAgIWltcG9ydGFudDsgfVxyXG4uYm9sZCxcclxuLmJvbGQgKiB7IGZvbnQtd2VpZ2h0OiBib2xkICFpbXBvcnRhbnQ7IH1cclxuXHJcbi53NTBwIHsgd2lkdGg6IDUwJTsgfVxyXG4udzEwMHAgeyB3aWR0aDogMTAwJTsgfVxyXG5cclxuLnc1MCB7IHdpZHRoOiA1MHB4OyB9XHJcbi53NjAgeyB3aWR0aDogNjBweDsgfVxyXG4udzcwIHsgd2lkdGg6IDcwcHg7IH1cclxuLnc4MCB7IHdpZHRoOiA4MHB4OyB9XHJcbi53OTAgeyB3aWR0aDogOTBweDsgfVxyXG4udzEwMCB7IHdpZHRoOiAxMDBweDsgfVxyXG5cclxuLm10MTAgeyBtYXJnaW4tdG9wOiAxMHB4ICFpbXBvcnRhbnQ7IH1cclxuLm10MjAgeyBtYXJnaW4tdG9wOiAyMHB4ICFpbXBvcnRhbnQ7IH1cclxuLm10MzAgeyBtYXJnaW4tdG9wOiAzMHB4ICFpbXBvcnRhbnQ7IH1cclxuLm10MWVtIHsgbWFyZ2luLXRvcDogMWVtICFpbXBvcnRhbnQ7IH1cclxuLm10MmVtIHsgbWFyZ2luLXRvcDogMmVtICFpbXBvcnRhbnQ7IH1cclxuXHJcbi5jb250cmFzdCAoQHByb3AsIEB2YWwsIEBhbW91bnQpIHdoZW4gKGxpZ2h0bmVzcyhAdmFsKSA+PSA1MCUpIHsgQHtwcm9wfTogZGFya2VuKEB2YWwsIEBhbW91bnQpOyB9XHJcbi5jb250cmFzdCAoQHByb3AsIEB2YWwsIEBhbW91bnQpIHdoZW4gKGxpZ2h0bmVzcyhAdmFsKSA8IDUwJSkgeyBAe3Byb3B9OiBsaWdodGVuKEB2YWwsIEBhbW91bnQpOyB9IiwiQGZvbnQtZmFjZSB7XHJcblx0Zm9udC1mYW1pbHk6IFwiaWNvbnNcIjtcclxuXHRzcmM6IHVybCgnLi4vZm9udHMvSWNvbnMvaWNvbnMuZW90Jyk7XHJcblx0c3JjOiB1cmwoJy4uL2ZvbnRzL0ljb25zL2ljb25zLmVvdD8jaWVmaXgnKSBmb3JtYXQoJ2VvdCcpLFxyXG5cdHVybCgnLi4vZm9udHMvSWNvbnMvaWNvbnMud29mZicpIGZvcm1hdCgnd29mZicpLFxyXG5cdHVybCgnLi4vZm9udHMvSWNvbnMvaWNvbnMudHRmJykgZm9ybWF0KCd0cnVldHlwZScpLFxyXG5cdHVybCgnLi4vZm9udHMvSWNvbnMvaWNvbnMuc3ZnI2ljb25zJykgZm9ybWF0KCdzdmcnKTtcclxuXHRmb250LXdlaWdodDogbm9ybWFsO1xyXG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcclxufVxyXG5cclxuW2NsYXNzXj1cImljb1wiXTpiZWZvcmUsXHJcbltjbGFzcyo9XCIgaWNvXCJdOmJlZm9yZSxcclxuW2NsYXNzXj1cImljb1wiXTphZnRlcixcclxuW2NsYXNzKj1cIiBpY29cIl06YWZ0ZXIge1xyXG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuXHRmb250LWZhbWlseTogXCJpY29uc1wiO1xyXG5cdGZvbnQtc3R5bGU6IG5vcm1hbDtcclxuXHRmb250LXdlaWdodDogbm9ybWFsO1xyXG5cdGxpbmUtaGVpZ2h0OiAxO1xyXG5cdC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xyXG5cdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XHJcbn1cclxuXHJcblxyXG4uaWNvLWNsb3NlOmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxFMDAxXCIgfVxyXG5AaWNvLWNsb3NlOiBcIlxcRTAwMVwiO1xyXG5cclxuLmljby1saXN0OmJlZm9yZSB7IGNvbnRlbnQ6IFwiXFxFMDAyXCIgfVxyXG5AaWNvLWxpc3Q6IFwiXFxFMDAyXCI7XHJcblxyXG4uaWNvLW1hcDpiZWZvcmUgeyBjb250ZW50OiBcIlxcRTAwM1wiIH1cclxuQGljby1tYXA6IFwiXFxFMDAzXCI7XHJcblxyXG4uaWNvLXRhcmdldDpiZWZvcmUgeyBjb250ZW50OiBcIlxcRTAwNFwiIH1cclxuQGljby10YXJnZXQ6IFwiXFxFMDA0XCI7XHIiLCJAbWVkaWEgcHJpbnQge1xyXG5cdCogeyB0ZXh0LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50OyBjb2xvcjogIzAwMCAhaW1wb3J0YW50OyBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50OyBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7IH1cclxuXHRhLCBhOnZpc2l0ZWQgeyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH1cclxuXHRwcmUsIGJsb2NrcXVvdGUgeyBib3JkZXI6IDFweCBzb2xpZCAjOTk5OyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cclxuXHR0aGVhZCB7IGRpc3BsYXk6IHRhYmxlLWhlYWRlci1ncm91cDsgfVxyXG5cdHRyLGltZyB7IHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDsgfVxyXG5cdGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XHJcblx0cCwgaDIsIGgzIHsgb3JwaGFuczogMzsgd2lkb3dzOiAzOyB9XHJcblx0aDIsIGgzIHsgcGFnZS1icmVhay1hZnRlcjogYXZvaWQ7IH1cclxuXHRzZWxlY3QgeyBiYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7IH1cclxuXHQudGFibGUgeyB0ZCwgdGggeyBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7IH19XHJcblx0LnRhYmxlIHsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50OyB9XHJcbn1cclxuIiwiQGtleWZyYW1lcyBmYWRlSW5Eb3duIHtcclxuICBmcm9tIHsgb3BhY2l0eTogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KTsgfVxyXG4gIHRvIHsgb3BhY2l0eTogMTsgcG9pbnRlci1ldmVudHM6IGFsbDsgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApOyB9XHJcbn0iLCIvLyBSZWZlcmVuY2luZyBmb3IgSURFXHJcbkBpbXBvcnQgKHJlZmVyZW5jZSkgXCJAe2Jvd2VycGF0aH0vYW5jaG9yTEVTUy9hbmNob3JcIjtcclxuQGltcG9ydCAocmVmZXJlbmNlKSBcIl92YXJpYWJsZXNcIjtcclxuXHJcbi8vIE1haW4gc2V0dXBcclxuQk9EWSwgSFRNTCB7IHBhZGRpbmc6IDA7IGJhY2tncm91bmQ6IEBjb2xvci13aGl0ZTsgaGVpZ2h0OiAxMDB2aDsgfVxyXG5AbWVkaWEgQG1lZGlhLW1vYmlsZSB7XHJcblx0Qk9EWSwgSFRNTCB7IGJhY2tncm91bmQ6IEBjb2xvci13aGl0ZTsgfVxyXG5cdC5tb2JpbGUtaGlkZSB7IGRpc3BsYXk6IG5vbmU7IH1cclxufVxyXG5CT0RZIHsgZm9udC1zaXplOiBAYmFzZS1mb250LXNpemU7IGxpbmUtaGVpZ2h0OiBAYmFzZS1saW5lLWhlaWdodDsgZm9udC1mYW1pbHk6IEBmb250LW1haW47IH1cclxuXHJcbkgyLCBIMywgSDQsIEg1LCBINiwgUCwgVUwsIE9MLCBUQUJMRSB7IG1hcmdpbjogQGJhc2UtbWFyZ2luOyB9XHJcbkgxLCBIMiwgSDMsIEg0LCBINSwgSDYsIFRIIHsgZm9udC1mYW1pbHk6IEBmb250LWhlYWRpbmc7IGxpbmUtaGVpZ2h0OiAxLjQ7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IH1cclxuSDEge1xyXG5cdGZvbnQtc2l6ZTogMjJweDsgbWFyZ2luOiAwO1xyXG5cdCsgSDIge1xyXG5cdFx0bWFyZ2luOiAwOyBjb2xvcjogQGNvbG9yMDE7IGZvbnQtc2l6ZTogY2VpbChAYmFzZS1mb250LXNpemUgKiAxLjUpICFpbXBvcnRhbnQ7XHJcblx0XHRJIHsgZm9udC1zdHlsZTogbm9ybWFsOyBmb250LXdlaWdodDogMzAwOyB9XHJcblx0fVxyXG59XHJcbkgyIHsgZm9udC1zaXplOiBjZWlsKEBiYXNlLWZvbnQtc2l6ZSAqIDEuNSk7IH1cclxuSDMgeyBmb250LXNpemU6IGNlaWwoQGJhc2UtZm9udC1zaXplICogMS41KTsgfVxyXG5IMSwgSDIsIEgzIHtcclxuXHQmW2NsYXNzKj1cImljby1cIl06YmVmb3JlLFxyXG5cdCZbY2xhc3MqPVwiIGljby1cIl06YmVmb3JlIHsgZGlzcGxheTogaW5saW5lLWJsb2NrOyBtYXJnaW4tcmlnaHQ6IDEwcHg7IHZlcnRpY2FsLWFsaWduOiAxNSU7IGZvbnQtc2l6ZTogNzAlOyBiYWNrZ3JvdW5kOiBAY29sb3IwMTsgY29sb3I6IEBjb2xvci13aGl0ZTsgcGFkZGluZzogLjI1ZW07IC5yb3VuZGVkKEBiYXNlLXJhZGl1cyk7IH1cclxufVxyXG5CVVRUT04ge1xyXG5cdCY6YWN0aXZlLCAmOmZvY3VzLCAmOmhvdmVyIHsgb3V0bGluZTogbm9uZTsgYm9yZGVyOiBub25lOyB9XHJcbn1cclxuQG1lZGlhIEBtZWRpYS1tb2JpbGUge1xyXG5cdEgxIHsgZm9udC1zaXplOiBjZWlsKEBiYXNlLWZvbnQtc2l6ZSAqIDEuNSk7IH1cclxufVxyXG5cclxuQSB7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgY29sb3I6IEBjb2xvcjAxOyB9XHJcblxyXG5QIHtcclxuXHRTVVAgeyBwYWRkaW5nOiAwIEBncmlkdW5pdCowLjE1OyBmb250LXNpemU6IEBiYXNlLWZvbnQtc2l6ZSowLjY7IGZvbnQtd2VpZ2h0OiA2MDA7IH1cclxuXHRsaW5lLWhlaWdodDogMS40O1xyXG5cdCYubGFyZ2Uge1xyXG5cdFx0Zm9udC1zaXplOiBAYmFzZS1mb250LXNpemUqMy41ICFpbXBvcnRhbnQ7IGZvbnQtd2VpZ2h0OiAzMDA7XHJcblx0XHRTVVAgeyBmb250LXNpemU6IEBiYXNlLWZvbnQtc2l6ZSoyOyBwYWRkaW5nOiAwIEBncmlkdW5pdCowLjI1OyBib3gtc2l6aW5nOiBib3JkZXItYm94OyBmb250LXdlaWdodDogMzAwOyB9XHJcblx0fVxyXG59XHJcblNVUCB7XHJcblx0QG1lZGlhIEBtZWRpYS1tb2JpbGUgeyB0b3A6IC0wLjZlbSAhaW1wb3J0YW50OyB9XHJcbn1cclxuXHJcbi5zdXBwb3J0ZWQge1xyXG5cdEBtZWRpYSBAbWVkaWEtdGlueSB7XHJcblx0XHRkaXNwbGF5OiBub25lO1xyXG5cdH1cclxuXHRAbWVkaWEgQG1lZGlhLWRlc2t0b3Age1xyXG5cdFx0aGVpZ2h0OiAxMDAlO1xyXG5cdH1cclxufVxyXG5cclxuLm5vdHN1cHBvcnRlZCB7XHJcblx0QG1lZGlhIEBtZWRpYS10aW55IHtcclxuXHRcdGRpc3BsYXk6IGJsb2NrO1xyXG5cdFx0cGFkZGluZzogQGdyaWR1bml0IC8gMjtcclxuXHRcdHRleHQtYWxpZ246IGNlbnRlcjtcclxuXHRcdFAubG9nbyB7XHJcblx0XHRcdG1hcmdpbjogMDtcclxuXHRcdFx0SU1HIHsgd2lkdGg6IDEyMHB4OyBoZWlnaHQ6IGF1dG87IH1cclxuXHRcdH1cclxuXHR9XHJcblx0QG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAyNDBweCkge1xyXG5cdFx0ZGlzcGxheTogbm9uZTtcclxuXHR9XHJcbn1cclxuXHJcbi8vIE1haW4gZnJhbWVcclxuLmdsb2JhbHdyYXAge1xyXG5cdC5mbGV4LWRpc3BsYXkoZmxleCk7XHJcblx0QG1lZGlhIEBtZWRpYS1tb2JpbGUgeyBmbGV4LWZsb3c6IGNvbHVtbjsgfVxyXG5cdC5zaWRlYmFyIHtcclxuXHRcdC5mbGV4KDAgMCBAc2lkZWJhci13aWR0aCk7XHJcblx0fVxyXG5cdC5nbG9iYWx2aWV3IHtcclxuXHRcdC5mbGV4KDEgMSBhdXRvKTtcclxuXHR9XHJcbn1cclxuXHJcbi8qIEdvb2dsZSBNYXBzICovXHJcblxyXG4vLyBNYXAgQmFzZVxyXG4jbWFwIHtcclxuXHRoZWlnaHQ6IDEwMHZoOyB3aWR0aDogMTAwJTtcclxuXHQvLyBIZWlnaHQgY2FsYyAxMDB2aCAtIEBiYXItaGVpZ2h0ICogMlxyXG5cdEBtZWRpYSBAbWVkaWEtbW9iaWxlIHsgaGVpZ2h0OiBjYWxjKH4nMTAwdmggLSAxMjBweCcpOyBtYXJnaW4tdG9wOiBAYmFyLWhlaWdodDsgfVxyXG59XHJcblxyXG4uZ20tc3R5bGUge1xyXG5cdGZvbnQtc2l6ZTogQGJhc2UtZm9udC1zaXplICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi8vIEhpZGUgR29vZ2xlIHJ1YmJpc2hcclxuLmdtLXN0eWxlLWl3IHtcclxuXHRkaXNwbGF5OiBmbGV4O1xyXG5cdERJViAmIHtcclxuXHRcdGRpc3BsYXk6IGZsZXg7XHJcblx0fVxyXG59XHJcblxyXG4uZ20tc3R5bGUtaXcge1xyXG5cdG9yZGVyOiAtMTtcclxuXHQmICsgRElWIHsgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XHJcbn1cclxuLnRvb2x0aXBfd3JhcCB7XHJcblx0YW5pbWF0aW9uLW5hbWU6IGZhZGVJbkRvd247XHJcblx0YW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XHJcblx0YW5pbWF0aW9uLWR1cmF0aW9uOiAyNTBtcztcclxuXHR3aWR0aDogMjAwcHggIWltcG9ydGFudDtcclxufVxyXG4udG9vbHRpcF9vdXRlciB7XHJcblx0bGVmdDogQGdyaWR1bml0ICFpbXBvcnRhbnQ7XHJcblx0dG9wOiBAZ3JpZHVuaXQqMS41ICFpbXBvcnRhbnQ7XHJcblx0QG1lZGlhIEBtZWRpYS1tb2JpbGUgeyBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cclxuXHQ+IERJViB7XHJcblx0XHQucm91bmRlZCgxMHB4KTsgb3ZlcmZsb3c6IGhpZGRlbjsgYmFja2dyb3VuZDogd2hpdGU7IGJveC1zaGFkb3c6IDAgMCAxOHB4IDAgcmdiYSgwLDAsMCwuMik7XHJcblx0XHQtbW96LWJhY2tncm91bmQtY2xpcDogcGFkZGluZztcclxuXHRcdC13ZWJraXQtYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcclxuXHRcdGJhY2tncm91bmQtY2xpcDogcGFkZGluZy1ib3g7XHJcblx0fVxyXG59XHJcbi8vIFRvb2x0aXBzXHJcbi50b29sdGlwIHtcclxuXHRvdmVyZmxvdzogaGlkZGVuO1xyXG5cdD4gRElWIHtcclxuXHRcdCogeyB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cclxuXHRcdEEge1xyXG5cdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHRjb2xvcjogQGNvbG9yMDEgIWltcG9ydGFudDtcclxuXHRcdFx0XHRTVVAgeyBjb2xvcjogQGNvbG9yMDEgIWltcG9ydGFudDsgfVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRwYWRkaW5nOiBAZ3JpZHVuaXQ7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHQmLnRpdGxlIHsgYmFja2dyb3VuZDogQGNvbG9yMDE7IH1cclxuXHRcdCYuY29udGVudCB7IHBhZGRpbmctYm90dG9tOiAwOyB9XHJcblx0fVxyXG5cdEgyIHsgZm9udC1zaXplOiBAYmFzZS1mb250LXNpemUgIWltcG9ydGFudDsgbWFyZ2luOiAwOyBjb2xvcjogQGNvbG9yLXdoaXRlOyBmb250LXdlaWdodDogNjAwOyB9XHJcblx0UCB7IG1hcmdpbjogQGdyaWR1bml0KjAuMjUgMCAwIDA7IGZvbnQtc2l6ZTogQGJhc2UtZm9udC1zaXplOyB9XHJcbn1cclxuXHJcbi8qIFNpZGViYXIgKi9cclxuLnNpZGViYXIge1xyXG5cdG92ZXJmbG93OiBoaWRkZW47IGJhY2tncm91bmQ6IEBjb2xvci13aGl0ZTsgaGVpZ2h0OiAxMDB2aDtcclxuXHRAbWVkaWEgQG1lZGlhLW1vYmlsZSB7XHJcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogMDsgbGVmdDogMDsgd2lkdGg6IDEwMCU7IHotaW5kZXg6IDEwMDA7IG9wYWNpdHk6IDA7IHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG5cdFx0Ji5hY3RpdmUgeyBoZWlnaHQ6IGF1dG87IH1cclxuXHR9XHJcblx0QG1lZGlhIEBtZWRpYS1ub3Rtb2JpbGUgeyBib3gtc2hhZG93OiAwIDAgMjVweCAwIHJnYmEoMCwwLDAsLjE1KTsgei1pbmRleDogMjsgfVxyXG5cdCYuYWN0aXZlIHsgcG9pbnRlci1ldmVudHM6IGFsbDsgb3BhY2l0eTogMTsgfVxyXG5cdEgxIHsgdGV4dC1hbGlnbjogY2VudGVyOyBiYWNrZ3JvdW5kOiBAY29sb3IwMTsgY29sb3I6IEBjb2xvci13aGl0ZTsgcGFkZGluZzogQGdyaWR1bml0KjEuMjUgMDsgfVxyXG5cdC5waGFybWFjaWVzIHtcclxuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7IG1hcmdpbjogMDsgcGFkZGluZzogMDsgaGVpZ2h0OiAxMDAlOyB3aWR0aDogMTAwJTtcclxuXHRcdEBtZWRpYSBAbWVkaWEtbW9iaWxlIHsgcGFkZGluZzogQGJhci1oZWlnaHQgMDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxyXG5cdFx0Ly8gV2lkdGggY2FsYyBAc2lkZWJhci13aWR0aCArIHNjcm9sbGJhclxyXG5cdFx0QG1lZGlhIEBtZWRpYS1ub3Rtb2JpbGUgeyBvdmVyZmxvdy15OiBzY3JvbGw7IHdpZHRoOiBjYWxjKEBzaWRlYmFyLXdpZHRoICsgMTdweCk7IH1cclxuXHRcdExJIHtcclxuXHRcdFx0ZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyBhbGlnbi1pdGVtczogY2VudGVyOyBwYWRkaW5nOiBAZ3JpZHVuaXQ7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IGN1cnNvcjogcG9pbnRlcjsgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAyNTBtcyBlYXNlLWluLW91dDtcclxuXHRcdFx0KiB7IG1hcmdpbjogMDsgfVxyXG5cdFx0XHQubG9nbyB7XHJcblx0XHRcdFx0YmFja2dyb3VuZDogQGNvbG9yMDI7XHJcblx0XHRcdFx0LmZsZXgtZGlzcGxheShmbGV4KTsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IC5mbGV4KDAgMCAzMHB4KTsgaGVpZ2h0OiAzMHB4OyBib3JkZXI6IDJweCBzb2xpZCBAY29sb3IwMjsgLnJvdW5kZWQoQGdyaWR1bml0KjAuMjUpOyBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHRcdFx0XHRJTUcgeyB3aWR0aDogMTZweDsgaGVpZ2h0OiAxNnB4OyB9XHJcblx0XHRcdFx0Ji5hbHQsICYuc3VkYW1lYXB0ZWVrLCAmLmJlbnUgeyBiYWNrZ3JvdW5kOiBub25lOyB9XHJcblx0XHRcdFx0Ji5zdWRhbWVhcHRlZWssICYuYmVudSB7XHJcblx0XHRcdFx0XHRJTUcgeyB3aWR0aDogMThweDsgaGVpZ2h0OiAxOHB4OyB9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdCYuc3VkYW1lYXB0ZWVrIHsgYm9yZGVyLWNvbG9yOiBAY29sb3Itc3VkYW1lYXB0ZWVrOyB9XHJcblx0XHRcdFx0Ji5iZW51IHsgYm9yZGVyLWNvbG9yOiBAY29sb3ItYmVudTsgfVxyXG5cdFx0XHR9XHJcblx0XHRcdEgyIHsgLmZsZXgoMSAxIGF1dG8pOyBmb250LXNpemU6IEBiYXNlLWZvbnQtc2l6ZTsgZm9udC13ZWlnaHQ6IGJvbGQ7IHBhZGRpbmc6IDAgQGdyaWR1bml0KjAuNzU7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHBvaW50ZXItZXZlbnRzOiBub25lOyB9XHJcblx0XHRcdFAge1xyXG5cdFx0XHRcdC5mbGV4KDAgMCA1MHB4KTsgZm9udC1zaXplOiBAYmFzZS1mb250LXNpemUqMS42OyBmb250LXdlaWdodDogMzAwOyBjb2xvcjogQGNvbG9yLWdyYXktbWVkaXVtOyBsaW5lLWhlaWdodDogMTsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHRleHQtYWxpZ246IHJpZ2h0O1xyXG5cdFx0XHRcdFNVUCB7IHZlcnRpY2FsLWFsaWduOiBzdXBlcjsgZm9udC1zaXplOiBAYmFzZS1mb250LXNpemUqMC44NTsgZm9udC13ZWlnaHQ6IDMwMDsgdG9wOiAwOyB9XHJcblx0XHRcdH1cclxuXHRcdFx0Jjpub3QoOmZpcnN0LWNoaWxkKSB7XHJcblx0XHRcdFx0Ym9yZGVyLXRvcDogMXB4IHNvbGlkIEBjb2xvci1ncmF5LWxpZ2h0O1xyXG5cdFx0XHR9XHJcblx0XHRcdCYuYWN0aXZlIHtcclxuXHRcdFx0XHRiYWNrZ3JvdW5kOiBAY29sb3ItZ3JheS1saWdodDtcclxuXHRcdFx0XHRQIHsgY29sb3I6IEBjb2xvci1ibGFjazsgfVxyXG5cdFx0XHR9XHJcblx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdEgyIHsgY29sb3I6IEBjb2xvcjAxOyB9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuLm1vYmlsZS10aXRsZSwgLmxpc3QtdG9nZ2xlLCAucGhhcm1hY3ktdGl0bGUsIC5waGFybWFjeS1jb250ZW50IHtcclxuXHRkaXNwbGF5OiBub25lOyB0ZXh0LWFsaWduOiBjZW50ZXI7IHBvc2l0aW9uOiBmaXhlZDsgbGVmdDogMDsgei1pbmRleDogMjAwMDsgd2lkdGg6IDEwMCU7IGhlaWdodDogQGJhci1oZWlnaHQ7IGxpbmUtaGVpZ2h0OiBAYmFyLWhlaWdodDtcclxuXHRAbWVkaWEgQG1lZGlhLW1vYmlsZSB7IGRpc3BsYXk6IGJsb2NrOyB9XHJcbn1cclxuLm1vYmlsZS10aXRsZSwgLnBoYXJtYWN5LXRpdGxlIHsgZm9udC13ZWlnaHQ6IGJvbGQ7IGJhY2tncm91bmQ6IEBjb2xvcjAxOyBjb2xvcjogQGNvbG9yLXdoaXRlOyB0b3A6IDA7IH1cclxuLmxpc3QtdG9nZ2xlLCAucGhhcm1hY3ktY29udGVudCB7XHJcblx0JjphZnRlciB7XHJcblx0XHRjb250ZW50OiAnJzsgd2lkdGg6IDEwMCU7IGhlaWdodDogQGdyaWR1bml0KjEuNTsgcG9zaXRpb246IGFic29sdXRlOyBib3R0b206IEBiYXItaGVpZ2h0OyBsZWZ0OiAwOyBib3gtc2hhZG93OiBpbnNldCAxcHggLTE5cHggMzNweCAtMjVweCByZ2JhKDAsMCwwLDAuNzUpOyBwb2ludGVyLWV2ZW50czogbm9uZTtcclxuXHR9XHJcblx0YmFja2dyb3VuZDogQGNvbG9yLXdoaXRlOyBib3JkZXI6IG5vbmU7IGNvbG9yOiBAY29sb3IwMTsgYm90dG9tOiAwO1xyXG59XHJcbi5saXN0LXRvZ2dsZSB7XHJcblx0Ji5saXN0IHtcclxuXHRcdCY6YmVmb3JlIHsgY29udGVudDogQGljby1saXN0OyB9XHJcblx0fVxyXG5cdCYubWFwIHtcclxuXHRcdCY6YmVmb3JlIHsgY29udGVudDogQGljby1tYXA7IH1cclxuXHR9XHJcblx0Zm9udC1zaXplOiBjZWlsKEBiYXNlLWZvbnQtc2l6ZSoxLjQ1KTsgb3V0bGluZTogbm9uZTsgdHJhbnNpdGlvbjogYWxsIDI1MG1zIGVhc2UtaW4tb3V0O1xyXG5cdCY6YmVmb3JlIHsgcGFkZGluZy1yaWdodDogQGdyaWR1bml0KjAuNTsgZm9udC1mYW1pbHk6IGljb25zOyB9XHJcblx0Jjpob3ZlciwgJjpmb2N1cywgJjphY3RpdmUgeyBib3JkZXI6IG5vbmU7IG91dGxpbmU6IG5vbmU7IGJhY2tncm91bmQ6IEBjb2xvcjAxOyBjb2xvcjogQGNvbG9yLXdoaXRlOyB9XHJcbn1cclxuLyogUGhhcm1hY3kgb3BlbiAqL1xyXG5CT0RZIHtcclxuXHQmLnBoYXJtYWN5LW9wZW4ge1xyXG5cdFx0Lm1vYmlsZS10aXRsZSwgLmxpc3QtdG9nZ2xlLCAuc2lkZWJhciwgLmNlbnRlcl90YXJnZXQgeyBkaXNwbGF5OiBub25lOyB9XHJcblx0XHQucGhhcm1hY3kgeyBkaXNwbGF5OiBibG9jazsgfVxyXG5cdH1cclxufVxyXG4ucGhhcm1hY3kge1xyXG5cdGRpc3BsYXk6IG5vbmU7XHJcblx0LnBoYXJtYWN5LXRpdGxlIHtcclxuXHRcdGhlaWdodDogYXV0bzsgbWluLWhlaWdodDogNjBweDsgLmZsZXgtZGlzcGxheShmbGV4KTsganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IGFsaWduLWl0ZW1zOiBjZW50ZXI7IHBhZGRpbmc6IEBncmlkdW5pdCowLjUgQGdyaWR1bml0KjM7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7XHJcblx0XHRIMSB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9XHJcblx0XHRCVVRUT04ge1xyXG5cdFx0XHRwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IEBncmlkdW5pdDsgYmFja2dyb3VuZDogbm9uZTsgYm9yZGVyOiBub25lO1xyXG5cdFx0XHQmOmJlZm9yZSB7IGNvbnRlbnQ6IEBpY28tY2xvc2U7IGZvbnQtZmFtaWx5OiBpY29uczsgbGluZS1oZWlnaHQ6IEBiYXItaGVpZ2h0OyBoZWlnaHQ6IEBiYXItaGVpZ2h0OyB9XHJcblx0XHR9XHJcblx0fVxyXG5cdC5waGFybWFjeS1jb250ZW50IHtcclxuXHRcdCogeyBjb2xvcjogQGNvbG9yLWJsYWNrOyB9XHJcblx0XHRoZWlnaHQ6IGF1dG87IHBhZGRpbmc6IEBncmlkdW5pdCoyOyBib3gtc2l6aW5nOiBib3JkZXItYm94O1xyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdHRvcDogLUBncmlkdW5pdCoxLjU7XHJcblx0XHR9XHJcblx0XHRQIHtcclxuXHRcdFx0bWFyZ2luOiAwOyBmb250LXNpemU6IEBiYXNlLWZvbnQtc2l6ZSoxLjI1O1xyXG5cdFx0XHRBIHtcclxuXHRcdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHRcdGNvbG9yOiBAY29sb3IwMSAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdFx0U1VQIHsgY29sb3I6IEBjb2xvcjAxICFpbXBvcnRhbnQ7IH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuLyogQ2VudGVyIG1hcCB0byBjdXJyZW50IGxvY2F0aW9uICovXHJcbkJVVFRPTiB7XHJcblx0Ji5jZW50ZXJfdGFyZ2V0IHtcclxuXHRcdGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHBvc2l0aW9uOiBmaXhlZDsgdG9wOiBAZ3JpZHVuaXQ7IHJpZ2h0OiBAZ3JpZHVuaXQ7IHotaW5kZXg6IDkwMDsgYmFja2dyb3VuZDogQGNvbG9yMDE7IHdpZHRoOiA0NXB4OyBoZWlnaHQ6IDQ1cHg7IGJvcmRlcjogbm9uZTsgbGluZS1oZWlnaHQ6IDQ1cHg7IC5yb3VuZGVkKDEwcHgpOyB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZS1pbi1vdXQ7XHJcblx0XHQmOmJlZm9yZSB7IGNvbnRlbnQ6IEBpY28tdGFyZ2V0OyBmb250LWZhbWlseTogaWNvbnM7IGxpbmUtaGVpZ2h0OiA0NXB4OyBmb250LXNpemU6IEBiYXNlLWZvbnQtc2l6ZSoxLjY1OyBjb2xvcjogQGNvbG9yLXdoaXRlOyB0cmFuc2l0aW9uOiBhbGwgMjUwbXMgZWFzZS1pbi1vdXQ7IH1cclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRiYWNrZ3JvdW5kOiBAY29sb3Itd2hpdGU7XHJcblx0XHRcdCY6YmVmb3JlIHsgY29sb3I6IEBjb2xvcjAxOyB9XHJcblx0XHR9XHJcblx0XHRAbWVkaWEgQG1lZGlhLW1vYmlsZSB7XHJcblx0XHRcdHRvcDogQGdyaWR1bml0KjQ7IHdpZHRoOiA0MHB4OyBoZWlnaHQ6IDQwcHg7IGxpbmUtaGVpZ2h0OiA0MHB4O1xyXG5cdFx0XHQmOmJlZm9yZSB7IGxpbmUtaGVpZ2h0OiA0MHB4OyBmb250LXNpemU6IEBiYXNlLWZvbnQtc2l6ZSoxLjU7IH1cclxuXHRcdH1cclxuXHR9XHJcbn0iLCIvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxyXG4vLyBGbGV4Ym94IExFU1MgbWl4aW5zXHJcbi8vIFRoZSBzcGVjOiBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWZsZXhib3hcclxuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cclxuXHJcbi8vIEZsZXhib3ggZGlzcGxheVxyXG4vLyBmbGV4IG9yIGlubGluZS1mbGV4XHJcbi5mbGV4LWRpc3BsYXkoQGRpc3BsYXk6IGZsZXgpIHtcclxuICBkaXNwbGF5OiB+XCItd2Via2l0LUB7ZGlzcGxheX1cIjtcclxuICBkaXNwbGF5OiB+XCItbXMtQHtkaXNwbGF5fWJveFwiOyAvLyBJRTEwIHVzZXMgLW1zLWZsZXhib3hcclxuICBkaXNwbGF5OiB+XCItbXMtQHtkaXNwbGF5fVwiOyAvLyBJRTExXHJcbiAgZGlzcGxheTogQGRpc3BsYXk7XHJcbn1cclxuXHJcbi8vIFRoZSAnZmxleCcgc2hvcnRoYW5kXHJcbi8vIC0gYXBwbGllcyB0bzogZmxleCBpdGVtc1xyXG4vLyA8cG9zaXRpdmUtbnVtYmVyPiwgaW5pdGlhbCwgYXV0bywgb3Igbm9uZVxyXG4uZmxleChAY29sdW1uczogaW5pdGlhbCkge1xyXG4gIC13ZWJraXQtZmxleDogQGNvbHVtbnM7XHJcbiAgLW1zLWZsZXg6IEBjb2x1bW5zO1xyXG4gIGZsZXg6IEBjb2x1bW5zO1xyXG59XHJcblxyXG4vLyBGbGV4IEZsb3cgRGlyZWN0aW9uXHJcbi8vIC0gYXBwbGllcyB0bzogZmxleCBjb250YWluZXJzXHJcbi8vIHJvdyB8IHJvdy1yZXZlcnNlIHwgY29sdW1uIHwgY29sdW1uLXJldmVyc2VcclxuLmZsZXgtZGlyZWN0aW9uKEBkaXJlY3Rpb246IHJvdykge1xyXG4gIC13ZWJraXQtZmxleC1kaXJlY3Rpb246IEBkaXJlY3Rpb247XHJcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiBAZGlyZWN0aW9uO1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBAZGlyZWN0aW9uO1xyXG59XHJcblxyXG4vLyBGbGV4IExpbmUgV3JhcHBpbmdcclxuLy8gLSBhcHBsaWVzIHRvOiBmbGV4IGNvbnRhaW5lcnNcclxuLy8gbm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZVxyXG4uZmxleC13cmFwKEB3cmFwOiBub3dyYXApIHtcclxuICAtd2Via2l0LWZsZXgtd3JhcDogQHdyYXA7XHJcbiAgLW1zLWZsZXgtd3JhcDogQHdyYXA7XHJcbiAgZmxleC13cmFwOiBAd3JhcDtcclxufVxyXG5cclxuLy8gRmxleCBEaXJlY3Rpb24gYW5kIFdyYXBcclxuLy8gLSBhcHBsaWVzIHRvOiBmbGV4IGNvbnRhaW5lcnNcclxuLy8gPGZsZXgtZGlyZWN0aW9uPiB8fCA8ZmxleC13cmFwPlxyXG4uZmxleC1mbG93KEBmbG93KSB7XHJcbiAgLXdlYmtpdC1mbGV4LWZsb3c6IEBmbG93O1xyXG4gIC1tcy1mbGV4LWZsb3c6IEBmbG93O1xyXG4gIGZsZXgtZmxvdzogQGZsb3c7XHJcbn1cclxuXHJcbi8vIERpc3BsYXkgT3JkZXJcclxuLy8gLSBhcHBsaWVzIHRvOiBmbGV4IGl0ZW1zXHJcbi8vIDxpbnRlZ2VyPlxyXG4uZmxleC1vcmRlcihAb3JkZXI6IDApIHtcclxuICAtd2Via2l0LW9yZGVyOiBAb3JkZXI7XHJcbiAgLW1zLW9yZGVyOiBAb3JkZXI7XHJcbiAgb3JkZXI6IEBvcmRlcjtcclxufVxyXG5cclxuLy8gRmxleCBncm93IGZhY3RvclxyXG4vLyAtIGFwcGxpZXMgdG86IGZsZXggaXRlbXNcclxuLy8gPG51bWJlcj5cclxuLmZsZXgtZ3JvdyhAZ3JvdzogMCkge1xyXG4gIC13ZWJraXQtZmxleC1ncm93OiBAZ3JvdztcclxuICAtbXMtZmxleC1ncm93OiBAZ3JvdztcclxuICBmbGV4LWdyb3c6IEBncm93O1xyXG59XHJcblxyXG4vLyBGbGV4IHNocmlua1xyXG4vLyAtIGFwcGxpZXMgdG86IGZsZXggaXRlbSBzaHJpbmsgZmFjdG9yXHJcbi8vIDxudW1iZXI+XHJcbi5mbGV4LXNocmluayhAc2hyaW5rOiAxKSB7XHJcbiAgLXdlYmtpdC1mbGV4LXNocmluazogQHNocmluaztcclxuICAtbXMtZmxleC1zaHJpbms6IEBzaHJpbms7XHJcbiAgZmxleC1zaHJpbms6IEBzaHJpbms7XHJcbn1cclxuXHJcbi8vIEZsZXggYmFzaXNcclxuLy8gLSB0aGUgaW5pdGlhbCBtYWluIHNpemUgb2YgdGhlIGZsZXggaXRlbVxyXG4vLyAtIGFwcGxpZXMgdG86IGZsZXggaXRlbXNuaXRpYWwgbWFpbiBzaXplIG9mIHRoZSBmbGV4IGl0ZW1cclxuLy8gPHdpZHRoPlxyXG4uZmxleC1iYXNpcyhAd2lkdGg6IGF1dG8pIHtcclxuICAtd2Via2l0LWZsZXgtYmFzaXM6IEB3aWR0aDtcclxuICAtbXMtZmxleC1iYXNpczogQHdpZHRoO1xyXG4gIGZsZXgtYmFzaXM6IEB3aWR0aDtcclxufVxyXG5cclxuLy8gQXhpcyBBbGlnbm1lbnRcclxuLy8gLSBhcHBsaWVzIHRvOiBmbGV4IGNvbnRhaW5lcnNcclxuLy8gZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZFxyXG4uanVzdGlmeS1jb250ZW50KEBqdXN0aWZ5OiBmbGV4LXN0YXJ0KSB7XHJcbiAgLXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6IEBqdXN0aWZ5O1xyXG4gIC1tcy1qdXN0aWZ5LWNvbnRlbnQ6IEBqdXN0aWZ5O1xyXG4gIGp1c3RpZnktY29udGVudDogQGp1c3RpZnk7XHJcbn1cclxuXHJcbi8vIFBhY2tpbmcgRmxleCBMaW5lc1xyXG4vLyAtIGFwcGxpZXMgdG86IG11bHRpLWxpbmUgZmxleCBjb250YWluZXJzXHJcbi8vIGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IHNwYWNlLWJldHdlZW4gfCBzcGFjZS1hcm91bmQgfCBzdHJldGNoXHJcbi5hbGlnbi1jb250ZW50KEBhbGlnbjogc3RyZXRjaCkge1xyXG4gIC13ZWJraXQtYWxpZ24tY29udGVudDogQGFsaWduO1xyXG4gIC1tcy1hbGlnbi1jb250ZW50OiBAYWxpZ247XHJcbiAgYWxpZ24tY29udGVudDogQGFsaWduO1xyXG59XHJcblxyXG4vLyBDcm9zcy1heGlzIEFsaWdubWVudFxyXG4vLyAtIGFwcGxpZXMgdG86IGZsZXggY29udGFpbmVyc1xyXG4vLyBmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBiYXNlbGluZSB8IHN0cmV0Y2hcclxuLmFsaWduLWl0ZW1zKEBhbGlnbjogc3RyZXRjaCkge1xyXG4gIC13ZWJraXQtYWxpZ24taXRlbXM6IEBhbGlnbjtcclxuICAtbXMtYWxpZ24taXRlbXM6IEBhbGlnbjtcclxuICBhbGlnbi1pdGVtczogQGFsaWduO1xyXG59XHJcblxyXG4vLyBDcm9zcy1heGlzIEFsaWdubWVudFxyXG4vLyAtIGFwcGxpZXMgdG86IGZsZXggaXRlbXNcclxuLy8gYXV0byB8IGZsZXgtc3RhcnQgfCBmbGV4LWVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaFxyXG4uYWxpZ24tc2VsZihAYWxpZ246IGF1dG8pIHtcclxuICAtd2Via2l0LWFsaWduLXNlbGY6IEBhbGlnbjtcclxuICAtbXMtYWxpZ24tc2VsZjogQGFsaWduO1xyXG4gIGFsaWduLXNlbGY6IEBhbGlnbjtcclxufSIsIi8vIEdlbmVyYWwgZ3JpZCB1bml0c1xyXG5AZ3JpZHVuaXQ6IDIwcHg7XHJcbkBiYXNlLW1hcmdpbjogMjBweCAwIDAgMDtcclxuQGJhc2UtcGFkZGluZzogMCBAZ3JpZHVuaXQgQGdyaWR1bml0IEBncmlkdW5pdDtcclxuQGJhc2UtcmFkaXVzOiA1cHg7XHJcblxyXG4vLyBSZXNwb25zaXZlIHNldHNcclxuQG1lZGlhLXRpbnk6ICAgflwib25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDIzOXB4KVwiO1xyXG5AbWVkaWEtbm90bW9iaWxlOiAgIH5cIm9ubHkgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjBweClcIjtcclxuQG1lZGlhLWRlc2t0b3A6ICAgflwib25seSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDk5MHB4KVwiO1xyXG5AbWVkaWEtdGFibGV0OiAgICB+XCJvbmx5IHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzYwcHgpIGFuZCAobWF4LXdpZHRoOiA5OTBweClcIjtcclxuQG1lZGlhLW1vYmlsZTogICAgflwib25seSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDc1OXB4KVwiO1xyXG5cclxuLy8gQ29sb3JzXHJcbkBjb2xvci1tYWluOiAjZmZmO1xyXG5AY29sb3ItdGV4dC1tYWluOiAjMDAwO1xyXG5cclxuQGNvbG9yMDE6ICMwMGEyOGI7XHJcbkBjb2xvcjAyOiAjZmYyZDFlO1xyXG5AY29sb3ItZ3JheS1saWdodDogI2VkZWRlZTtcclxuQGNvbG9yLWdyYXktbWVkaXVtOiAjOGM5MzlhO1xyXG5AY29sb3ItZ3JheS1kYXJrOiAjNGM1MzVhO1xyXG5AY29sb3ItYmxhY2s6ICMwMDA7XHJcbkBjb2xvci13aGl0ZTogI2ZmZjtcclxuXHJcbkBjb2xvci1iZW51OiAjNjRhOTI1O1xyXG5AY29sb3Itc3VkYW1lYXB0ZWVrOiAjZmY0OTM0O1xyXG5cclxuLy8gVHlwb2dyYXBoeVxyXG5AZm9udC1tYWluOiBcIkxhdG9cIiwgQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZjtcclxuQGZvbnQtaGVhZGluZzogXCJMYXRvXCIsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XHJcbkBiYXNlLWZvbnQtc2l6ZTogMTRweDtcclxuQGJhc2UtbGluZS1oZWlnaHQ6IDE3cHg7XHJcblxyXG4vLyBGcmFtZVxyXG5Ac2lkZWJhci13aWR0aDogMzAwcHg7XHJcbkBiYXItaGVpZ2h0OiA2MHB4O1xyXG4vLyBJbnRlbnRzXHJcbi5wdC1pbnRlbnQtbmVnYXRpdmUge1xyXG4gIGNvbG9yOiBAY29sb3IwMiAhaW1wb3J0YW50O1xyXG4gICogeyBjb2xvcjogQGNvbG9yMDIgIWltcG9ydGFudDsgfVxyXG59XHJcbi5wdC1pbnRlbnQtcG9zaXRpdmUge1xyXG4gIGNvbG9yOiBAY29sb3IwMSAhaW1wb3J0YW50O1xyXG4gICogeyBjb2xvcjogQGNvbG9yMDEgIWltcG9ydGFudDsgfVxyXG59IiwiLmdtLXN0eWxlIHtcclxuICAuZ20tc3R5bGUtaXcge1xyXG4gICAgdG9wOiAwICFpbXBvcnRhbnQ7XHJcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XHJcbiAgICB3aWR0aDogMjAwcHggIWltcG9ydGFudDtcclxuICAgID4gRElWIHtcclxuICAgICAgd2lkdGg6IDIwMHB4O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4udGVzdCB7XHJcbiAgb3BhY2l0eTogMDsgcG9pbnRlci1ldmVudHM6IG5vbmU7XHJcbiAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xyXG4gICYuYWN0aXZlIHtcclxuICAgIGFuaW1hdGlvbi1uYW1lOiBmYWRlSW5Eb3duO1xyXG4gICAgYW5pbWF0aW9uLWRlbGF5OiAuMTVzO1xyXG4gICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAyNTBtcztcclxuICAgIGFuaW1hdGlvbi1maWxsLW1vZGU6IGZvcndhcmRzO1xyXG4gICAgYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDogMTtcclxuICB9XHJcbn1cclxuLmdtLXN0eWxlLWl3IHtcclxuICA+IERJViB7XHJcblxyXG4gIH1cclxufVxyXG4vLyBEaXNhYmxlIHNjcm9sbGJhclxyXG4udG9vbHRpcCB7XHJcbiAgYmFja2dyb3VuZDogQGNvbG9yLXdoaXRlO1xyXG59XHJcbiJdfQ== */
