@charset "UTF-8";
/**
 * screen.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (seliger@short-cuts.de)
 * MIT License (MIT)
 */
/* ==========================================================================
   Core functions, variables and mixins
   ========================================================================== */
/**
 * functions.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/**
 * Return specific color
 */
/**
 * variables.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/* ==========================================================================
   Colors
   ========================================================================== */
/* <@colors */
/* colors@> */
/* ==========================================================================
   Icons
   ========================================================================== */
/* <@icons */
/* icons@> */
/**
 * mixins.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/**
 * Mixin for styling input placeholder.
 *
 * @include placeholder(){
 *   content goes here
 * }
 */
/**
 *
 *
 */
/**
 *
 *
 */
/**
 *
 */
/* ==========================================================================
   Reset and dependencies
   ========================================================================== */
/**
 * Foundation for Sites
 * Version 6.7.5
 * https://get.foundation
 * Licensed under MIT Open Source
 */
/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */
/* line 12, bower_components/foundation-sites/scss/vendor/normalize.scss */
html {
  line-height: 1.15;
  -webkit-text-size-adjust: 100%; }

/* line 22, bower_components/foundation-sites/scss/vendor/normalize.scss */
body {
  margin: 0; }

/* line 29, bower_components/foundation-sites/scss/vendor/normalize.scss */
h1 {
  font-size: 2em;
  margin: 0.67em 0; }

/* line 40, bower_components/foundation-sites/scss/vendor/normalize.scss */
hr {
  box-sizing: content-box;
  height: 0;
  overflow: visible; }

/* line 49, bower_components/foundation-sites/scss/vendor/normalize.scss */
pre {
  font-family: monospace, monospace;
  font-size: 1em; }

/* line 59, bower_components/foundation-sites/scss/vendor/normalize.scss */
a {
  background-color: transparent; }

/* line 66, bower_components/foundation-sites/scss/vendor/normalize.scss */
abbr[title] {
  border-bottom: 0;
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted; }

/* line 73, bower_components/foundation-sites/scss/vendor/normalize.scss */
b,
strong {
  font-weight: bolder; }

/* line 81, bower_components/foundation-sites/scss/vendor/normalize.scss */
code,
kbd,
samp {
  font-family: monospace, monospace;
  font-size: 1em; }

/* line 90, bower_components/foundation-sites/scss/vendor/normalize.scss */
small {
  font-size: 80%; }

/* line 97, bower_components/foundation-sites/scss/vendor/normalize.scss */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline; }

/* line 105, bower_components/foundation-sites/scss/vendor/normalize.scss */
sub {
  bottom: -0.25em; }

/* line 109, bower_components/foundation-sites/scss/vendor/normalize.scss */
sup {
  top: -0.5em; }

/* line 118, bower_components/foundation-sites/scss/vendor/normalize.scss */
img {
  border-style: none; }

/* line 128, bower_components/foundation-sites/scss/vendor/normalize.scss */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-size: 100%;
  line-height: 1.15;
  margin: 0; }

/* line 142, bower_components/foundation-sites/scss/vendor/normalize.scss */
button,
input {
  overflow: visible; }

/* line 150, bower_components/foundation-sites/scss/vendor/normalize.scss */
button,
select {
  text-transform: none; }

/* line 157, bower_components/foundation-sites/scss/vendor/normalize.scss */
button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button; }

/* line 166, bower_components/foundation-sites/scss/vendor/normalize.scss */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0; }

/* line 176, bower_components/foundation-sites/scss/vendor/normalize.scss */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText; }

/* line 185, bower_components/foundation-sites/scss/vendor/normalize.scss */
fieldset {
  padding: 0.35em 0.75em 0.625em; }

/* line 194, bower_components/foundation-sites/scss/vendor/normalize.scss */
legend {
  box-sizing: border-box;
  color: inherit;
  display: table;
  max-width: 100%;
  padding: 0;
  white-space: normal; }

/* line 205, bower_components/foundation-sites/scss/vendor/normalize.scss */
progress {
  vertical-align: baseline; }

/* line 211, bower_components/foundation-sites/scss/vendor/normalize.scss */
textarea {
  overflow: auto; }

/* line 218, bower_components/foundation-sites/scss/vendor/normalize.scss */
[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  padding: 0; }

/* line 226, bower_components/foundation-sites/scss/vendor/normalize.scss */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto; }

/* line 234, bower_components/foundation-sites/scss/vendor/normalize.scss */
[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px; }

/* line 241, bower_components/foundation-sites/scss/vendor/normalize.scss */
[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none; }

/* line 248, bower_components/foundation-sites/scss/vendor/normalize.scss */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit; }

/* line 258, bower_components/foundation-sites/scss/vendor/normalize.scss */
details {
  display: block; }

/* line 264, bower_components/foundation-sites/scss/vendor/normalize.scss */
summary {
  display: list-item; }

/* line 273, bower_components/foundation-sites/scss/vendor/normalize.scss */
template {
  display: none; }

/* line 279, bower_components/foundation-sites/scss/vendor/normalize.scss */
[hidden] {
  display: none; }

/* line 288, bower_components/foundation-sites/scss/vendor/normalize.scss */
[data-whatintent="mouse"] *, [data-whatintent="mouse"] *:focus,
[data-whatintent="touch"] *,
[data-whatintent="touch"] *:focus,
[data-whatinput="mouse"] *,
[data-whatinput="mouse"] *:focus,
[data-whatinput="touch"] *,
[data-whatinput="touch"] *:focus {
  outline: none; }

/* line 294, bower_components/foundation-sites/scss/vendor/normalize.scss */
[draggable=false] {
  -webkit-touch-callout: none;
  -webkit-user-select: none; }

/* line 144, bower_components/foundation-sites/scss/_global.scss */
.foundation-mq {
  font-family: "small=0em&medium=40em&large=64em&xlarge=75em&xxlarge=90em&xs=0em&sm=30em&md=48em&lg=62em&xl=75em"; }

/* line 148, bower_components/foundation-sites/scss/_global.scss */
html {
  box-sizing: border-box;
  font-size: 100%; }

/* line 154, bower_components/foundation-sites/scss/_global.scss */
*,
*::before,
*::after {
  box-sizing: inherit; }

/* line 161, bower_components/foundation-sites/scss/_global.scss */
body {
  margin: 0;
  padding: 0;
  background: #fefefe;
  font-family: "adelphi-pe-variable", sans-serif;
  font-weight: 400;
  line-height: 1.5;
  color: #000;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

/* line 186, bower_components/foundation-sites/scss/_global.scss */
img {
  display: inline-block;
  vertical-align: middle;
  max-width: 100%;
  height: auto;
  -ms-interpolation-mode: bicubic; }

/* line 198, bower_components/foundation-sites/scss/_global.scss */
textarea {
  height: auto;
  min-height: 50px;
  border-radius: 0; }

/* line 205, bower_components/foundation-sites/scss/_global.scss */
select {
  box-sizing: border-box;
  width: 100%;
  border-radius: 0; }

/* line 215, bower_components/foundation-sites/scss/_global.scss */
.map_canvas img,
.map_canvas embed,
.map_canvas object,
.mqa-display img,
.mqa-display embed,
.mqa-display object {
  max-width: none !important; }

/* line 223, bower_components/foundation-sites/scss/_global.scss */
button {
  padding: 0;
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  border-radius: 0;
  background: transparent;
  line-height: 1;
  cursor: auto; }
  /* line 202, bower_components/foundation-sites/scss/util/_mixins.scss */
  [data-whatinput='mouse'] button {
    outline: 0; }

/* line 235, bower_components/foundation-sites/scss/_global.scss */
pre {
  overflow: auto;
  -webkit-overflow-scrolling: touch; }

/* line 241, bower_components/foundation-sites/scss/_global.scss */
button,
input,
optgroup,
select,
textarea {
  font-family: inherit; }

/* line 250, bower_components/foundation-sites/scss/_global.scss */
.is-visible {
  display: block !important; }

/* line 254, bower_components/foundation-sites/scss/_global.scss */
.is-hidden {
  display: none !important; }

/* line 228, bower_components/foundation-sites/scss/typography/_base.scss */
div,
dl,
dt,
dd,
ul,
ol,
li,
h1,
h2,
h3,
h4,
h5,
h6,
pre,
form,
p,
blockquote,
th,
td {
  margin: 0;
  padding: 0; }

/* line 252, bower_components/foundation-sites/scss/typography/_base.scss */
p {
  margin-bottom: 1rem;
  font-size: inherit;
  line-height: 1.6;
  text-rendering: optimizeLegibility; }

/* line 261, bower_components/foundation-sites/scss/typography/_base.scss */
em,
i {
  font-style: italic;
  line-height: inherit; }

/* line 268, bower_components/foundation-sites/scss/typography/_base.scss */
strong,
b {
  font-weight: bold;
  line-height: inherit; }

/* line 275, bower_components/foundation-sites/scss/typography/_base.scss */
small {
  font-size: 60%;
  line-height: inherit; }

/* line 281, bower_components/foundation-sites/scss/typography/_base.scss */
h1, .h1,
h2, .h2,
h3, .h3,
h4, .h4,
h5, .h5,
h6, .h6 {
  font-family: "ivymode", sans-serif;
  font-style: normal;
  font-weight: 700;
  color: inherit;
  text-rendering: optimizeLegibility; }
  /* line 293, bower_components/foundation-sites/scss/typography/_base.scss */
  h1 small, .h1 small,
  h2 small, .h2 small,
  h3 small, .h3 small,
  h4 small, .h4 small,
  h5 small, .h5 small,
  h6 small, .h6 small {
    line-height: 0;
    color: #000; }

/* line 304, bower_components/foundation-sites/scss/typography/_base.scss */
h1, .h1 {
  font-size: 2.8125rem;
  line-height: 1.11;
  margin-top: 0;
  margin-bottom: 1.875rem; }

/* line 304, bower_components/foundation-sites/scss/typography/_base.scss */
h2, .h2 {
  font-size: 2rem;
  line-height: 1.11;
  margin-top: 0;
  margin-bottom: 1.875rem; }

/* line 304, bower_components/foundation-sites/scss/typography/_base.scss */
h3, .h3 {
  font-size: 1.75rem;
  line-height: 1.11;
  margin-top: 0;
  margin-bottom: 1.875rem; }

/* line 304, bower_components/foundation-sites/scss/typography/_base.scss */
h4, .h4 {
  font-size: 1.75rem;
  line-height: 1.11;
  margin-top: 0;
  margin-bottom: 1.875rem; }

/* line 304, bower_components/foundation-sites/scss/typography/_base.scss */
h5, .h5 {
  font-size: 1.75rem;
  line-height: 1.11;
  margin-top: 0;
  margin-bottom: 1.875rem; }

/* line 304, bower_components/foundation-sites/scss/typography/_base.scss */
h6, .h6 {
  font-size: 1.75rem;
  line-height: 1.11;
  margin-top: 0;
  margin-bottom: 1.875rem; }

@media print, screen and (min-width: 40em) {
  /* line 304, bower_components/foundation-sites/scss/typography/_base.scss */
  h1, .h1 {
    font-size: 3.75rem; }
  /* line 304, bower_components/foundation-sites/scss/typography/_base.scss */
  h2, .h2 {
    font-size: 2.25rem; }
  /* line 304, bower_components/foundation-sites/scss/typography/_base.scss */
  h3, .h3 {
    font-size: 1.75rem; }
  /* line 304, bower_components/foundation-sites/scss/typography/_base.scss */
  h4, .h4 {
    font-size: 1.75rem; }
  /* line 304, bower_components/foundation-sites/scss/typography/_base.scss */
  h5, .h5 {
    font-size: 1.75rem; }
  /* line 304, bower_components/foundation-sites/scss/typography/_base.scss */
  h6, .h6 {
    font-size: 1.75rem; } }

@media screen and (min-width: 75em) {
  /* line 304, bower_components/foundation-sites/scss/typography/_base.scss */
  h1, .h1 {
    font-size: 5rem; }
  /* line 304, bower_components/foundation-sites/scss/typography/_base.scss */
  h2, .h2 {
    font-size: 2.8125rem; }
  /* line 304, bower_components/foundation-sites/scss/typography/_base.scss */
  h3, .h3 {
    font-size: 2.375rem; }
  /* line 304, bower_components/foundation-sites/scss/typography/_base.scss */
  h4, .h4 {
    font-size: 2.375rem; }
  /* line 304, bower_components/foundation-sites/scss/typography/_base.scss */
  h5, .h5 {
    font-size: 2.375rem; }
  /* line 304, bower_components/foundation-sites/scss/typography/_base.scss */
  h6, .h6 {
    font-size: 2.375rem; } }

/* line 343, bower_components/foundation-sites/scss/typography/_base.scss */
a {
  line-height: inherit;
  color: #1779ba;
  text-decoration: none;
  cursor: pointer; }
  /* line 350, bower_components/foundation-sites/scss/typography/_base.scss */
  a:hover, a:focus {
    color: #1468a0; }
  /* line 358, bower_components/foundation-sites/scss/typography/_base.scss */
  a img {
    border: 0; }

/* line 364, bower_components/foundation-sites/scss/typography/_base.scss */
hr {
  clear: both;
  max-width: 85rem;
  height: 0;
  margin: 1.875rem auto;
  border-top: 0;
  border-right: 0;
  border-bottom: 1px solid #000;
  border-left: 0; }

/* line 378, bower_components/foundation-sites/scss/typography/_base.scss */
ul,
ol,
dl {
  margin-bottom: 1rem;
  list-style-position: outside;
  line-height: 1.6; }

/* line 387, bower_components/foundation-sites/scss/typography/_base.scss */
li {
  font-size: inherit; }

/* line 392, bower_components/foundation-sites/scss/typography/_base.scss */
ul {
  margin-left: 1.25rem;
  list-style-type: disc; }

/* line 398, bower_components/foundation-sites/scss/typography/_base.scss */
ol {
  margin-left: 1.25rem; }

/* line 404, bower_components/foundation-sites/scss/typography/_base.scss */
ul ul, ol ul, ul ol, ol ol {
  margin-left: 1.25rem;
  margin-bottom: 0; }

/* line 411, bower_components/foundation-sites/scss/typography/_base.scss */
dl {
  margin-bottom: 1rem; }
  /* line 414, bower_components/foundation-sites/scss/typography/_base.scss */
  dl dt {
    margin-bottom: 0.3rem;
    font-weight: bold; }

/* line 421, bower_components/foundation-sites/scss/typography/_base.scss */
blockquote {
  margin: 0 0 1rem;
  padding: 0.5625rem 1.25rem 0 1.1875rem;
  border-left: 1px solid #cacaca; }
  /* line 426, bower_components/foundation-sites/scss/typography/_base.scss */
  blockquote, blockquote p {
    line-height: 1.6;
    color: #8a8a8a; }

/* line 442, bower_components/foundation-sites/scss/typography/_base.scss */
abbr, abbr[title] {
  border-bottom: 1px dotted #0a0a0a;
  cursor: help;
  text-decoration: none; }

/* line 449, bower_components/foundation-sites/scss/typography/_base.scss */
figure {
  margin: 0; }

/* line 461, bower_components/foundation-sites/scss/typography/_base.scss */
kbd {
  margin: 0;
  padding: 0.125rem 0.25rem 0;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  color: #0a0a0a; }

/* line 134, bower_components/foundation-sites/scss/typography/_helpers.scss */
.subheader {
  margin-top: 0.2rem;
  margin-bottom: 0.5rem;
  font-weight: 400;
  line-height: 1.4;
  color: #8a8a8a; }

/* line 144, bower_components/foundation-sites/scss/typography/_helpers.scss */
.lead {
  font-size: 125%;
  line-height: 1.6; }

/* line 150, bower_components/foundation-sites/scss/typography/_helpers.scss */
.stat {
  font-size: 2.5rem;
  line-height: 1; }
  /* line 154, bower_components/foundation-sites/scss/typography/_helpers.scss */
  p + .stat {
    margin-top: -1rem; }

/* line 161, bower_components/foundation-sites/scss/typography/_helpers.scss */
ul.no-bullet, ol.no-bullet {
  margin-left: 0;
  list-style: none; }

/* line 167, bower_components/foundation-sites/scss/typography/_helpers.scss */
cite, .cite-block {
  display: block;
  color: #8a8a8a;
  font-size: 0.8125rem; }
  /* line 90, bower_components/foundation-sites/scss/typography/_helpers.scss */
  cite:before, .cite-block:before {
    content: "— "; }

/* line 175, bower_components/foundation-sites/scss/typography/_helpers.scss */
code, .code-inline {
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: 400;
  color: #0a0a0a;
  display: inline;
  max-width: 100%;
  word-wrap: break-word;
  padding: 0.125rem 0.3125rem 0.0625rem; }

/* line 184, bower_components/foundation-sites/scss/typography/_helpers.scss */
.code-block {
  border: 1px solid #cacaca;
  background-color: #e6e6e6;
  font-family: Consolas, "Liberation Mono", Courier, monospace;
  font-weight: 400;
  color: #0a0a0a;
  display: block;
  overflow: auto;
  white-space: pre;
  padding: 1rem;
  margin-bottom: 1.5rem; }

/* line 15, bower_components/foundation-sites/scss/typography/_alignment.scss */
.text-left {
  text-align: left; }

/* line 15, bower_components/foundation-sites/scss/typography/_alignment.scss */
.text-right {
  text-align: right; }

/* line 15, bower_components/foundation-sites/scss/typography/_alignment.scss */
.text-center {
  text-align: center; }

/* line 15, bower_components/foundation-sites/scss/typography/_alignment.scss */
.text-justify {
  text-align: justify; }

@media print, screen and (min-width: 40em) {
  /* line 10, bower_components/foundation-sites/scss/typography/_alignment.scss */
  .medium-text-left {
    text-align: left; }
  /* line 10, bower_components/foundation-sites/scss/typography/_alignment.scss */
  .medium-text-right {
    text-align: right; }
  /* line 10, bower_components/foundation-sites/scss/typography/_alignment.scss */
  .medium-text-center {
    text-align: center; }
  /* line 10, bower_components/foundation-sites/scss/typography/_alignment.scss */
  .medium-text-justify {
    text-align: justify; } }

@media print, screen and (min-width: 64em) {
  /* line 10, bower_components/foundation-sites/scss/typography/_alignment.scss */
  .large-text-left {
    text-align: left; }
  /* line 10, bower_components/foundation-sites/scss/typography/_alignment.scss */
  .large-text-right {
    text-align: right; }
  /* line 10, bower_components/foundation-sites/scss/typography/_alignment.scss */
  .large-text-center {
    text-align: center; }
  /* line 10, bower_components/foundation-sites/scss/typography/_alignment.scss */
  .large-text-justify {
    text-align: justify; } }

@media screen and (min-width: 75em) {
  /* line 10, bower_components/foundation-sites/scss/typography/_alignment.scss */
  .xlarge-text-left {
    text-align: left; }
  /* line 10, bower_components/foundation-sites/scss/typography/_alignment.scss */
  .xlarge-text-right {
    text-align: right; }
  /* line 10, bower_components/foundation-sites/scss/typography/_alignment.scss */
  .xlarge-text-center {
    text-align: center; }
  /* line 10, bower_components/foundation-sites/scss/typography/_alignment.scss */
  .xlarge-text-justify {
    text-align: justify; } }

@media screen and (min-width: 90em) {
  /* line 10, bower_components/foundation-sites/scss/typography/_alignment.scss */
  .xxlarge-text-left {
    text-align: left; }
  /* line 10, bower_components/foundation-sites/scss/typography/_alignment.scss */
  .xxlarge-text-right {
    text-align: right; }
  /* line 10, bower_components/foundation-sites/scss/typography/_alignment.scss */
  .xxlarge-text-center {
    text-align: center; }
  /* line 10, bower_components/foundation-sites/scss/typography/_alignment.scss */
  .xxlarge-text-justify {
    text-align: justify; } }

/* line 18, bower_components/foundation-sites/scss/typography/_print.scss */
.show-for-print {
  display: none !important; }

@media print {
  /* line 21, bower_components/foundation-sites/scss/typography/_print.scss */
  * {
    background: transparent !important;
    color: black !important;
    print-color-adjust: economy;
    box-shadow: none !important;
    text-shadow: none !important; }
  /* line 38, bower_components/foundation-sites/scss/typography/_print.scss */
  .show-for-print {
    display: block !important; }
  /* line 39, bower_components/foundation-sites/scss/typography/_print.scss */
  .hide-for-print {
    display: none !important; }
  /* line 41, bower_components/foundation-sites/scss/typography/_print.scss */
  table.show-for-print {
    display: table !important; }
  /* line 42, bower_components/foundation-sites/scss/typography/_print.scss */
  thead.show-for-print {
    display: table-header-group !important; }
  /* line 43, bower_components/foundation-sites/scss/typography/_print.scss */
  tbody.show-for-print {
    display: table-row-group !important; }
  /* line 44, bower_components/foundation-sites/scss/typography/_print.scss */
  tr.show-for-print {
    display: table-row !important; }
  /* line 45, bower_components/foundation-sites/scss/typography/_print.scss */
  td.show-for-print {
    display: table-cell !important; }
  /* line 46, bower_components/foundation-sites/scss/typography/_print.scss */
  th.show-for-print {
    display: table-cell !important; }
  /* line 49, bower_components/foundation-sites/scss/typography/_print.scss */
  a,
  a:visited {
    text-decoration: underline; }
  /* line 52, bower_components/foundation-sites/scss/typography/_print.scss */
  a[href]:after {
    content: " (" attr(href) ")"; }
  /* line 56, bower_components/foundation-sites/scss/typography/_print.scss */
  .ir a:after,
  a[href^='javascript:']:after,
  a[href^='#']:after {
    content: ''; }
  /* line 61, bower_components/foundation-sites/scss/typography/_print.scss */
  abbr[title]:after {
    content: " (" attr(title) ")"; }
  /* line 64, bower_components/foundation-sites/scss/typography/_print.scss */
  pre,
  blockquote {
    border: 1px solid #8a8a8a;
    page-break-inside: avoid; }
  /* line 71, bower_components/foundation-sites/scss/typography/_print.scss */
  thead {
    display: table-header-group; }
  /* line 73, bower_components/foundation-sites/scss/typography/_print.scss */
  tr,
  img {
    page-break-inside: avoid; }
  /* line 76, bower_components/foundation-sites/scss/typography/_print.scss */
  img {
    max-width: 100% !important; }
  @page {
    margin: 0.5cm; }
  /* line 80, bower_components/foundation-sites/scss/typography/_print.scss */
  p,
  h2,
  h3 {
    orphans: 3;
    widows: 3; }
  /* line 88, bower_components/foundation-sites/scss/typography/_print.scss */
  h2,
  h3 {
    page-break-after: avoid; }
  /* line 92, bower_components/foundation-sites/scss/typography/_print.scss */
  .print-break-inside {
    page-break-inside: auto; } }

/* line 128, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.row {
  max-width: 85rem;
  margin-right: auto;
  margin-left: auto;
  display: flex;
  flex-flow: row wrap; }
  /* line 132, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .row .row {
    margin-right: -0.9375rem;
    margin-left: -0.9375rem; }
    @media print, screen and (min-width: 40em) {
      /* line 132, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    @media print, screen and (min-width: 64em) {
      /* line 132, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
      .row .row {
        margin-right: -0.9375rem;
        margin-left: -0.9375rem; } }
    @media screen and (min-width: 75em) {
      /* line 132, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
      .row .row {
        margin-right: -1.25rem;
        margin-left: -1.25rem; } }
    @media screen and (min-width: 90em) {
      /* line 132, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
      .row .row {
        margin-right: -1.25rem;
        margin-left: -1.25rem; } }
    /* line 135, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .row .row.collapse {
      margin-right: 0;
      margin-left: 0; }
  /* line 142, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .row.expanded {
    max-width: none; }
    /* line 145, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .row.expanded .row {
      margin-right: auto;
      margin-left: auto; }
  /* line 151, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .row:not(.expanded) .row {
    max-width: none; }
  /* line 156, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .row.collapse > .column, .row.collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  /* line 163, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .row.is-collapse-child,
  .row.collapse > .column > .row,
  .row.collapse > .columns > .row {
    margin-right: 0;
    margin-left: 0; }

/* line 171, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.column, .columns {
  flex: 1 1 0px;
  padding-right: 0.9375rem;
  padding-left: 0.9375rem;
  min-width: 0; }
  @media screen and (min-width: 75em) {
    /* line 171, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .column, .columns {
      padding-right: 1.25rem;
      padding-left: 1.25rem; } }

/* line 177, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.column.row.row, .row.row.columns {
  float: none;
  display: block; }

/* line 183, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.row .column.row.row, .row .row.row.columns {
  margin-right: 0;
  margin-left: 0;
  padding-right: 0;
  padding-left: 0; }

/* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-1 {
  flex: 0 0 8.33333%;
  max-width: 8.33333%; }

/* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-offset-0 {
  margin-left: 0%; }

/* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-2 {
  flex: 0 0 16.66667%;
  max-width: 16.66667%; }

/* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-offset-1 {
  margin-left: 8.33333%; }

/* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-3 {
  flex: 0 0 25%;
  max-width: 25%; }

/* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-offset-2 {
  margin-left: 16.66667%; }

/* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-4 {
  flex: 0 0 33.33333%;
  max-width: 33.33333%; }

/* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-offset-3 {
  margin-left: 25%; }

/* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-5 {
  flex: 0 0 41.66667%;
  max-width: 41.66667%; }

/* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-offset-4 {
  margin-left: 33.33333%; }

/* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-6 {
  flex: 0 0 50%;
  max-width: 50%; }

/* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-offset-5 {
  margin-left: 41.66667%; }

/* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-7 {
  flex: 0 0 58.33333%;
  max-width: 58.33333%; }

/* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-offset-6 {
  margin-left: 50%; }

/* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-8 {
  flex: 0 0 66.66667%;
  max-width: 66.66667%; }

/* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-offset-7 {
  margin-left: 58.33333%; }

/* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-9 {
  flex: 0 0 75%;
  max-width: 75%; }

/* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-offset-8 {
  margin-left: 66.66667%; }

/* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-10 {
  flex: 0 0 83.33333%;
  max-width: 83.33333%; }

/* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-offset-9 {
  margin-left: 75%; }

/* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-11 {
  flex: 0 0 91.66667%;
  max-width: 91.66667%; }

/* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-offset-10 {
  margin-left: 83.33333%; }

/* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-12 {
  flex: 0 0 100%;
  max-width: 100%; }

/* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-offset-11 {
  margin-left: 91.66667%; }

/* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-up-1 {
  flex-wrap: wrap; }
  /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .small-up-1 > .column, .small-up-1 > .columns {
    flex: 0 0 100%;
    max-width: 100%; }

/* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-up-2 {
  flex-wrap: wrap; }
  /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .small-up-2 > .column, .small-up-2 > .columns {
    flex: 0 0 50%;
    max-width: 50%; }

/* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-up-3 {
  flex-wrap: wrap; }
  /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .small-up-3 > .column, .small-up-3 > .columns {
    flex: 0 0 33.33333%;
    max-width: 33.33333%; }

/* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-up-4 {
  flex-wrap: wrap; }
  /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .small-up-4 > .column, .small-up-4 > .columns {
    flex: 0 0 25%;
    max-width: 25%; }

/* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-up-5 {
  flex-wrap: wrap; }
  /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .small-up-5 > .column, .small-up-5 > .columns {
    flex: 0 0 20%;
    max-width: 20%; }

/* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-up-6 {
  flex-wrap: wrap; }
  /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .small-up-6 > .column, .small-up-6 > .columns {
    flex: 0 0 16.66667%;
    max-width: 16.66667%; }

/* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-up-7 {
  flex-wrap: wrap; }
  /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .small-up-7 > .column, .small-up-7 > .columns {
    flex: 0 0 14.28571%;
    max-width: 14.28571%; }

/* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-up-8 {
  flex-wrap: wrap; }
  /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .small-up-8 > .column, .small-up-8 > .columns {
    flex: 0 0 12.5%;
    max-width: 12.5%; }

/* line 237, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-collapse > .column, .small-collapse > .columns {
  padding-right: 0;
  padding-left: 0; }

/* line 241, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.small-uncollapse > .column, .small-uncollapse > .columns {
  padding-right: 0.9375rem;
  padding-left: 0.9375rem; }

@media print, screen and (min-width: 40em) {
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-1 {
    flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-offset-0 {
    margin-left: 0%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-2 {
    flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-offset-1 {
    margin-left: 8.33333%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-3 {
    flex: 0 0 25%;
    max-width: 25%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-offset-2 {
    margin-left: 16.66667%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-4 {
    flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-offset-3 {
    margin-left: 25%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-5 {
    flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-offset-4 {
    margin-left: 33.33333%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-6 {
    flex: 0 0 50%;
    max-width: 50%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-offset-5 {
    margin-left: 41.66667%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-7 {
    flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-offset-6 {
    margin-left: 50%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-8 {
    flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-offset-7 {
    margin-left: 58.33333%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-9 {
    flex: 0 0 75%;
    max-width: 75%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-offset-8 {
    margin-left: 66.66667%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-10 {
    flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-offset-9 {
    margin-left: 75%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-11 {
    flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-offset-10 {
    margin-left: 83.33333%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-12 {
    flex: 0 0 100%;
    max-width: 100%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-offset-11 {
    margin-left: 91.66667%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-up-1 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .medium-up-1 > .column, .medium-up-1 > .columns {
      flex: 0 0 100%;
      max-width: 100%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-up-2 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .medium-up-2 > .column, .medium-up-2 > .columns {
      flex: 0 0 50%;
      max-width: 50%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-up-3 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .medium-up-3 > .column, .medium-up-3 > .columns {
      flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-up-4 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .medium-up-4 > .column, .medium-up-4 > .columns {
      flex: 0 0 25%;
      max-width: 25%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-up-5 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .medium-up-5 > .column, .medium-up-5 > .columns {
      flex: 0 0 20%;
      max-width: 20%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-up-6 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .medium-up-6 > .column, .medium-up-6 > .columns {
      flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-up-7 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .medium-up-7 > .column, .medium-up-7 > .columns {
      flex: 0 0 14.28571%;
      max-width: 14.28571%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-up-8 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .medium-up-8 > .column, .medium-up-8 > .columns {
      flex: 0 0 12.5%;
      max-width: 12.5%; } }

@media print, screen and (min-width: 40em) and (min-width: 40em) {
  /* line 216, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-expand {
    flex: 1 1 0px; } }

/* line 224, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.row.medium-unstack > .column, .row.medium-unstack > .columns {
  flex: 0 0 100%; }
  @media print, screen and (min-width: 40em) {
    /* line 224, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .row.medium-unstack > .column, .row.medium-unstack > .columns {
      flex: 1 1 0px; } }

@media print, screen and (min-width: 40em) {
  /* line 237, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-collapse > .column, .medium-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  /* line 241, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .medium-uncollapse > .column, .medium-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; } }

@media print, screen and (min-width: 64em) {
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-1 {
    flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-offset-0 {
    margin-left: 0%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-2 {
    flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-offset-1 {
    margin-left: 8.33333%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-3 {
    flex: 0 0 25%;
    max-width: 25%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-offset-2 {
    margin-left: 16.66667%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-4 {
    flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-offset-3 {
    margin-left: 25%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-5 {
    flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-offset-4 {
    margin-left: 33.33333%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-6 {
    flex: 0 0 50%;
    max-width: 50%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-offset-5 {
    margin-left: 41.66667%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-7 {
    flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-offset-6 {
    margin-left: 50%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-8 {
    flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-offset-7 {
    margin-left: 58.33333%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-9 {
    flex: 0 0 75%;
    max-width: 75%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-offset-8 {
    margin-left: 66.66667%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-10 {
    flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-offset-9 {
    margin-left: 75%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-11 {
    flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-offset-10 {
    margin-left: 83.33333%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-12 {
    flex: 0 0 100%;
    max-width: 100%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-offset-11 {
    margin-left: 91.66667%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-up-1 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .large-up-1 > .column, .large-up-1 > .columns {
      flex: 0 0 100%;
      max-width: 100%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-up-2 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .large-up-2 > .column, .large-up-2 > .columns {
      flex: 0 0 50%;
      max-width: 50%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-up-3 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .large-up-3 > .column, .large-up-3 > .columns {
      flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-up-4 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .large-up-4 > .column, .large-up-4 > .columns {
      flex: 0 0 25%;
      max-width: 25%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-up-5 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .large-up-5 > .column, .large-up-5 > .columns {
      flex: 0 0 20%;
      max-width: 20%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-up-6 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .large-up-6 > .column, .large-up-6 > .columns {
      flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-up-7 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .large-up-7 > .column, .large-up-7 > .columns {
      flex: 0 0 14.28571%;
      max-width: 14.28571%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-up-8 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .large-up-8 > .column, .large-up-8 > .columns {
      flex: 0 0 12.5%;
      max-width: 12.5%; } }

@media print, screen and (min-width: 64em) and (min-width: 64em) {
  /* line 216, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-expand {
    flex: 1 1 0px; } }

/* line 224, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.row.large-unstack > .column, .row.large-unstack > .columns {
  flex: 0 0 100%; }
  @media print, screen and (min-width: 64em) {
    /* line 224, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .row.large-unstack > .column, .row.large-unstack > .columns {
      flex: 1 1 0px; } }

@media print, screen and (min-width: 64em) {
  /* line 237, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-collapse > .column, .large-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  /* line 241, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .large-uncollapse > .column, .large-uncollapse > .columns {
    padding-right: 0.9375rem;
    padding-left: 0.9375rem; } }

@media screen and (min-width: 75em) {
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-1 {
    flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-offset-0 {
    margin-left: 0%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-2 {
    flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-offset-1 {
    margin-left: 8.33333%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-3 {
    flex: 0 0 25%;
    max-width: 25%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-offset-2 {
    margin-left: 16.66667%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-4 {
    flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-offset-3 {
    margin-left: 25%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-5 {
    flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-offset-4 {
    margin-left: 33.33333%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-6 {
    flex: 0 0 50%;
    max-width: 50%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-offset-5 {
    margin-left: 41.66667%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-7 {
    flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-offset-6 {
    margin-left: 50%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-8 {
    flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-offset-7 {
    margin-left: 58.33333%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-9 {
    flex: 0 0 75%;
    max-width: 75%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-offset-8 {
    margin-left: 66.66667%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-10 {
    flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-offset-9 {
    margin-left: 75%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-11 {
    flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-offset-10 {
    margin-left: 83.33333%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-12 {
    flex: 0 0 100%;
    max-width: 100%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-offset-11 {
    margin-left: 91.66667%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-up-1 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .xlarge-up-1 > .column, .xlarge-up-1 > .columns {
      flex: 0 0 100%;
      max-width: 100%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-up-2 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .xlarge-up-2 > .column, .xlarge-up-2 > .columns {
      flex: 0 0 50%;
      max-width: 50%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-up-3 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .xlarge-up-3 > .column, .xlarge-up-3 > .columns {
      flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-up-4 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .xlarge-up-4 > .column, .xlarge-up-4 > .columns {
      flex: 0 0 25%;
      max-width: 25%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-up-5 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .xlarge-up-5 > .column, .xlarge-up-5 > .columns {
      flex: 0 0 20%;
      max-width: 20%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-up-6 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .xlarge-up-6 > .column, .xlarge-up-6 > .columns {
      flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-up-7 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .xlarge-up-7 > .column, .xlarge-up-7 > .columns {
      flex: 0 0 14.28571%;
      max-width: 14.28571%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-up-8 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .xlarge-up-8 > .column, .xlarge-up-8 > .columns {
      flex: 0 0 12.5%;
      max-width: 12.5%; } }

@media screen and (min-width: 75em) and (min-width: 75em) {
  /* line 216, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-expand {
    flex: 1 1 0px; } }

/* line 224, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.row.xlarge-unstack > .column, .row.xlarge-unstack > .columns {
  flex: 0 0 100%; }
  @media screen and (min-width: 75em) {
    /* line 224, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .row.xlarge-unstack > .column, .row.xlarge-unstack > .columns {
      flex: 1 1 0px; } }

@media screen and (min-width: 75em) {
  /* line 237, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-collapse > .column, .xlarge-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  /* line 241, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xlarge-uncollapse > .column, .xlarge-uncollapse > .columns {
    padding-right: 1.25rem;
    padding-left: 1.25rem; } }

@media screen and (min-width: 90em) {
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-1 {
    flex: 0 0 8.33333%;
    max-width: 8.33333%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-offset-0 {
    margin-left: 0%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-2 {
    flex: 0 0 16.66667%;
    max-width: 16.66667%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-offset-1 {
    margin-left: 8.33333%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-3 {
    flex: 0 0 25%;
    max-width: 25%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-offset-2 {
    margin-left: 16.66667%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-4 {
    flex: 0 0 33.33333%;
    max-width: 33.33333%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-offset-3 {
    margin-left: 25%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-5 {
    flex: 0 0 41.66667%;
    max-width: 41.66667%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-offset-4 {
    margin-left: 33.33333%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-6 {
    flex: 0 0 50%;
    max-width: 50%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-offset-5 {
    margin-left: 41.66667%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-7 {
    flex: 0 0 58.33333%;
    max-width: 58.33333%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-offset-6 {
    margin-left: 50%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-8 {
    flex: 0 0 66.66667%;
    max-width: 66.66667%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-offset-7 {
    margin-left: 58.33333%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-9 {
    flex: 0 0 75%;
    max-width: 75%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-offset-8 {
    margin-left: 66.66667%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-10 {
    flex: 0 0 83.33333%;
    max-width: 83.33333%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-offset-9 {
    margin-left: 75%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-11 {
    flex: 0 0 91.66667%;
    max-width: 91.66667%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-offset-10 {
    margin-left: 83.33333%; }
  /* line 193, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-12 {
    flex: 0 0 100%;
    max-width: 100%; }
  /* line 201, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-offset-11 {
    margin-left: 91.66667%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-up-1 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .xxlarge-up-1 > .column, .xxlarge-up-1 > .columns {
      flex: 0 0 100%;
      max-width: 100%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-up-2 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .xxlarge-up-2 > .column, .xxlarge-up-2 > .columns {
      flex: 0 0 50%;
      max-width: 50%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-up-3 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .xxlarge-up-3 > .column, .xxlarge-up-3 > .columns {
      flex: 0 0 33.33333%;
      max-width: 33.33333%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-up-4 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .xxlarge-up-4 > .column, .xxlarge-up-4 > .columns {
      flex: 0 0 25%;
      max-width: 25%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-up-5 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .xxlarge-up-5 > .column, .xxlarge-up-5 > .columns {
      flex: 0 0 20%;
      max-width: 20%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-up-6 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .xxlarge-up-6 > .column, .xxlarge-up-6 > .columns {
      flex: 0 0 16.66667%;
      max-width: 16.66667%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-up-7 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .xxlarge-up-7 > .column, .xxlarge-up-7 > .columns {
      flex: 0 0 14.28571%;
      max-width: 14.28571%; }
  /* line 208, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-up-8 {
    flex-wrap: wrap; }
    /* line 104, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .xxlarge-up-8 > .column, .xxlarge-up-8 > .columns {
      flex: 0 0 12.5%;
      max-width: 12.5%; } }

@media screen and (min-width: 90em) and (min-width: 90em) {
  /* line 216, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-expand {
    flex: 1 1 0px; } }

/* line 224, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.row.xxlarge-unstack > .column, .row.xxlarge-unstack > .columns {
  flex: 0 0 100%; }
  @media screen and (min-width: 90em) {
    /* line 224, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .row.xxlarge-unstack > .column, .row.xxlarge-unstack > .columns {
      flex: 1 1 0px; } }

@media screen and (min-width: 90em) {
  /* line 237, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-collapse > .column, .xxlarge-collapse > .columns {
    padding-right: 0;
    padding-left: 0; }
  /* line 241, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
  .xxlarge-uncollapse > .column, .xxlarge-uncollapse > .columns {
    padding-right: 1.25rem;
    padding-left: 1.25rem; } }

/* line 246, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.shrink {
  flex: 0 0 auto;
  max-width: 100%; }

/* line 252, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
.column-block {
  margin-bottom: 1.875rem; }
  /* line 63, bower_components/foundation-sites/scss/grid/_gutter.scss */
  .column-block > :last-child {
    margin-bottom: 0; }
  @media screen and (min-width: 75em) {
    /* line 252, bower_components/foundation-sites/scss/grid/_flex-grid.scss */
    .column-block {
      margin-bottom: 2.5rem; }
      /* line 63, bower_components/foundation-sites/scss/grid/_gutter.scss */
      .column-block > :last-child {
        margin-bottom: 0; } }

/* line 75, bower_components/foundation-sites/scss/components/_flex.scss */
.align-left {
  justify-content: flex-start; }

/* line 75, bower_components/foundation-sites/scss/components/_flex.scss */
.align-right {
  justify-content: flex-end; }

/* line 75, bower_components/foundation-sites/scss/components/_flex.scss */
.align-center {
  justify-content: center; }

/* line 75, bower_components/foundation-sites/scss/components/_flex.scss */
.align-justify {
  justify-content: space-between; }

/* line 75, bower_components/foundation-sites/scss/components/_flex.scss */
.align-spaced {
  justify-content: space-around; }

/* line 84, bower_components/foundation-sites/scss/components/_flex.scss */
.align-left.vertical.menu > li > a {
  justify-content: flex-start; }

/* line 84, bower_components/foundation-sites/scss/components/_flex.scss */
.align-right.vertical.menu > li > a {
  justify-content: flex-end; }

/* line 84, bower_components/foundation-sites/scss/components/_flex.scss */
.align-center.vertical.menu > li > a {
  justify-content: center; }

/* line 93, bower_components/foundation-sites/scss/components/_flex.scss */
.align-top {
  align-items: flex-start; }

/* line 97, bower_components/foundation-sites/scss/components/_flex.scss */
.align-self-top {
  align-self: flex-start; }

/* line 93, bower_components/foundation-sites/scss/components/_flex.scss */
.align-bottom {
  align-items: flex-end; }

/* line 97, bower_components/foundation-sites/scss/components/_flex.scss */
.align-self-bottom {
  align-self: flex-end; }

/* line 93, bower_components/foundation-sites/scss/components/_flex.scss */
.align-middle {
  align-items: center; }

/* line 97, bower_components/foundation-sites/scss/components/_flex.scss */
.align-self-middle {
  align-self: center; }

/* line 93, bower_components/foundation-sites/scss/components/_flex.scss */
.align-stretch {
  align-items: stretch; }

/* line 97, bower_components/foundation-sites/scss/components/_flex.scss */
.align-self-stretch {
  align-self: stretch; }

/* line 103, bower_components/foundation-sites/scss/components/_flex.scss */
.align-center-middle {
  justify-content: center;
  align-items: center;
  align-content: center; }

/* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
.small-order-1 {
  order: 1; }

/* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
.small-order-2 {
  order: 2; }

/* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
.small-order-3 {
  order: 3; }

/* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
.small-order-4 {
  order: 4; }

/* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
.small-order-5 {
  order: 5; }

/* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
.small-order-6 {
  order: 6; }

@media print, screen and (min-width: 40em) {
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .medium-order-1 {
    order: 1; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .medium-order-2 {
    order: 2; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .medium-order-3 {
    order: 3; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .medium-order-4 {
    order: 4; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .medium-order-5 {
    order: 5; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .medium-order-6 {
    order: 6; } }

@media print, screen and (min-width: 64em) {
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .large-order-1 {
    order: 1; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .large-order-2 {
    order: 2; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .large-order-3 {
    order: 3; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .large-order-4 {
    order: 4; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .large-order-5 {
    order: 5; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .large-order-6 {
    order: 6; } }

@media screen and (min-width: 75em) {
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .xlarge-order-1 {
    order: 1; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .xlarge-order-2 {
    order: 2; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .xlarge-order-3 {
    order: 3; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .xlarge-order-4 {
    order: 4; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .xlarge-order-5 {
    order: 5; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .xlarge-order-6 {
    order: 6; } }

@media screen and (min-width: 90em) {
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .xxlarge-order-1 {
    order: 1; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .xxlarge-order-2 {
    order: 2; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .xxlarge-order-3 {
    order: 3; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .xxlarge-order-4 {
    order: 4; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .xxlarge-order-5 {
    order: 5; }
  /* line 111, bower_components/foundation-sites/scss/components/_flex.scss */
  .xxlarge-order-6 {
    order: 6; } }

/* line 18, bower_components/foundation-sites/scss/components/_flex.scss */
.flex-container {
  display: flex; }

/* line 22, bower_components/foundation-sites/scss/components/_flex.scss */
.flex-child-auto {
  flex: 1 1 auto; }

/* line 26, bower_components/foundation-sites/scss/components/_flex.scss */
.flex-child-grow {
  flex: 1 0 auto; }

/* line 30, bower_components/foundation-sites/scss/components/_flex.scss */
.flex-child-shrink {
  flex: 0 1 auto; }

/* line 35, bower_components/foundation-sites/scss/components/_flex.scss */
.flex-dir-row {
  flex-direction: row; }

/* line 35, bower_components/foundation-sites/scss/components/_flex.scss */
.flex-dir-row-reverse {
  flex-direction: row-reverse; }

/* line 35, bower_components/foundation-sites/scss/components/_flex.scss */
.flex-dir-column {
  flex-direction: column; }

/* line 35, bower_components/foundation-sites/scss/components/_flex.scss */
.flex-dir-column-reverse {
  flex-direction: column-reverse; }

@media print, screen and (min-width: 40em) {
  /* line 45, bower_components/foundation-sites/scss/components/_flex.scss */
  .medium-flex-container {
    display: flex; }
  /* line 49, bower_components/foundation-sites/scss/components/_flex.scss */
  .medium-flex-child-auto {
    flex: 1 1 auto; }
  /* line 53, bower_components/foundation-sites/scss/components/_flex.scss */
  .medium-flex-child-grow {
    flex: 1 0 auto; }
  /* line 57, bower_components/foundation-sites/scss/components/_flex.scss */
  .medium-flex-child-shrink {
    flex: 0 1 auto; }
  /* line 62, bower_components/foundation-sites/scss/components/_flex.scss */
  .medium-flex-dir-row {
    flex-direction: row; }
  /* line 62, bower_components/foundation-sites/scss/components/_flex.scss */
  .medium-flex-dir-row-reverse {
    flex-direction: row-reverse; }
  /* line 62, bower_components/foundation-sites/scss/components/_flex.scss */
  .medium-flex-dir-column {
    flex-direction: column; }
  /* line 62, bower_components/foundation-sites/scss/components/_flex.scss */
  .medium-flex-dir-column-reverse {
    flex-direction: column-reverse; } }

@media print, screen and (min-width: 64em) {
  /* line 45, bower_components/foundation-sites/scss/components/_flex.scss */
  .large-flex-container {
    display: flex; }
  /* line 49, bower_components/foundation-sites/scss/components/_flex.scss */
  .large-flex-child-auto {
    flex: 1 1 auto; }
  /* line 53, bower_components/foundation-sites/scss/components/_flex.scss */
  .large-flex-child-grow {
    flex: 1 0 auto; }
  /* line 57, bower_components/foundation-sites/scss/components/_flex.scss */
  .large-flex-child-shrink {
    flex: 0 1 auto; }
  /* line 62, bower_components/foundation-sites/scss/components/_flex.scss */
  .large-flex-dir-row {
    flex-direction: row; }
  /* line 62, bower_components/foundation-sites/scss/components/_flex.scss */
  .large-flex-dir-row-reverse {
    flex-direction: row-reverse; }
  /* line 62, bower_components/foundation-sites/scss/components/_flex.scss */
  .large-flex-dir-column {
    flex-direction: column; }
  /* line 62, bower_components/foundation-sites/scss/components/_flex.scss */
  .large-flex-dir-column-reverse {
    flex-direction: column-reverse; } }

@media screen and (min-width: 75em) {
  /* line 45, bower_components/foundation-sites/scss/components/_flex.scss */
  .xlarge-flex-container {
    display: flex; }
  /* line 49, bower_components/foundation-sites/scss/components/_flex.scss */
  .xlarge-flex-child-auto {
    flex: 1 1 auto; }
  /* line 53, bower_components/foundation-sites/scss/components/_flex.scss */
  .xlarge-flex-child-grow {
    flex: 1 0 auto; }
  /* line 57, bower_components/foundation-sites/scss/components/_flex.scss */
  .xlarge-flex-child-shrink {
    flex: 0 1 auto; }
  /* line 62, bower_components/foundation-sites/scss/components/_flex.scss */
  .xlarge-flex-dir-row {
    flex-direction: row; }
  /* line 62, bower_components/foundation-sites/scss/components/_flex.scss */
  .xlarge-flex-dir-row-reverse {
    flex-direction: row-reverse; }
  /* line 62, bower_components/foundation-sites/scss/components/_flex.scss */
  .xlarge-flex-dir-column {
    flex-direction: column; }
  /* line 62, bower_components/foundation-sites/scss/components/_flex.scss */
  .xlarge-flex-dir-column-reverse {
    flex-direction: column-reverse; } }

@media screen and (min-width: 90em) {
  /* line 45, bower_components/foundation-sites/scss/components/_flex.scss */
  .xxlarge-flex-container {
    display: flex; }
  /* line 49, bower_components/foundation-sites/scss/components/_flex.scss */
  .xxlarge-flex-child-auto {
    flex: 1 1 auto; }
  /* line 53, bower_components/foundation-sites/scss/components/_flex.scss */
  .xxlarge-flex-child-grow {
    flex: 1 0 auto; }
  /* line 57, bower_components/foundation-sites/scss/components/_flex.scss */
  .xxlarge-flex-child-shrink {
    flex: 0 1 auto; }
  /* line 62, bower_components/foundation-sites/scss/components/_flex.scss */
  .xxlarge-flex-dir-row {
    flex-direction: row; }
  /* line 62, bower_components/foundation-sites/scss/components/_flex.scss */
  .xxlarge-flex-dir-row-reverse {
    flex-direction: row-reverse; }
  /* line 62, bower_components/foundation-sites/scss/components/_flex.scss */
  .xxlarge-flex-dir-column {
    flex-direction: column; }
  /* line 62, bower_components/foundation-sites/scss/components/_flex.scss */
  .xxlarge-flex-dir-column-reverse {
    flex-direction: column-reverse; } }

/* line 65, bower_components/foundation-sites/scss/components/_visibility.scss */
.hide {
  display: none !important; }

/* line 69, bower_components/foundation-sites/scss/components/_visibility.scss */
.invisible {
  visibility: hidden; }

/* line 72, bower_components/foundation-sites/scss/components/_visibility.scss */
.visible {
  visibility: visible; }

@media print, screen and (max-width: 39.99875em) {
  /* line 88, bower_components/foundation-sites/scss/components/_visibility.scss */
  .hide-for-small-only {
    display: none !important; } }

@media screen and (max-width: 0em), screen and (min-width: 40em) {
  /* line 92, bower_components/foundation-sites/scss/components/_visibility.scss */
  .show-for-small-only {
    display: none !important; } }

@media print, screen and (min-width: 40em) {
  /* line 79, bower_components/foundation-sites/scss/components/_visibility.scss */
  .hide-for-medium {
    display: none !important; } }

@media screen and (max-width: 39.99875em) {
  /* line 83, bower_components/foundation-sites/scss/components/_visibility.scss */
  .show-for-medium {
    display: none !important; } }

@media print, screen and (min-width: 40em) and (max-width: 63.99875em) {
  /* line 88, bower_components/foundation-sites/scss/components/_visibility.scss */
  .hide-for-medium-only {
    display: none !important; } }

@media screen and (max-width: 39.99875em), screen and (min-width: 64em) {
  /* line 92, bower_components/foundation-sites/scss/components/_visibility.scss */
  .show-for-medium-only {
    display: none !important; } }

@media print, screen and (min-width: 64em) {
  /* line 79, bower_components/foundation-sites/scss/components/_visibility.scss */
  .hide-for-large {
    display: none !important; } }

@media screen and (max-width: 63.99875em) {
  /* line 83, bower_components/foundation-sites/scss/components/_visibility.scss */
  .show-for-large {
    display: none !important; } }

@media print, screen and (min-width: 64em) and (max-width: 74.99875em) {
  /* line 88, bower_components/foundation-sites/scss/components/_visibility.scss */
  .hide-for-large-only {
    display: none !important; } }

@media screen and (max-width: 63.99875em), screen and (min-width: 75em) {
  /* line 92, bower_components/foundation-sites/scss/components/_visibility.scss */
  .show-for-large-only {
    display: none !important; } }

@media screen and (min-width: 75em) {
  /* line 79, bower_components/foundation-sites/scss/components/_visibility.scss */
  .hide-for-xlarge {
    display: none !important; } }

@media screen and (max-width: 74.99875em) {
  /* line 83, bower_components/foundation-sites/scss/components/_visibility.scss */
  .show-for-xlarge {
    display: none !important; } }

@media screen and (min-width: 75em) and (max-width: 89.99875em) {
  /* line 88, bower_components/foundation-sites/scss/components/_visibility.scss */
  .hide-for-xlarge-only {
    display: none !important; } }

@media screen and (max-width: 74.99875em), screen and (min-width: 90em) {
  /* line 92, bower_components/foundation-sites/scss/components/_visibility.scss */
  .show-for-xlarge-only {
    display: none !important; } }

@media screen and (min-width: 90em) {
  /* line 79, bower_components/foundation-sites/scss/components/_visibility.scss */
  .hide-for-xxlarge {
    display: none !important; } }

@media screen and (max-width: 89.99875em) {
  /* line 83, bower_components/foundation-sites/scss/components/_visibility.scss */
  .show-for-xxlarge {
    display: none !important; } }

@media screen and (min-width: 90em) {
  /* line 88, bower_components/foundation-sites/scss/components/_visibility.scss */
  .hide-for-xxlarge-only {
    display: none !important; } }

@media screen and (max-width: 89.99875em), screen and (min-width: 0em) {
  /* line 92, bower_components/foundation-sites/scss/components/_visibility.scss */
  .show-for-xxlarge-only {
    display: none !important; } }

/* line 99, bower_components/foundation-sites/scss/components/_visibility.scss */
.show-for-sr,
.show-on-focus {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important; }

/* line 106, bower_components/foundation-sites/scss/components/_visibility.scss */
.show-on-focus:active, .show-on-focus:focus {
  position: static !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important; }

/* line 113, bower_components/foundation-sites/scss/components/_visibility.scss */
.show-for-landscape,
.hide-for-portrait {
  display: block !important; }
  @media screen and (orientation: landscape) {
    /* line 113, bower_components/foundation-sites/scss/components/_visibility.scss */
    .show-for-landscape,
    .hide-for-portrait {
      display: block !important; } }
  @media screen and (orientation: portrait) {
    /* line 113, bower_components/foundation-sites/scss/components/_visibility.scss */
    .show-for-landscape,
    .hide-for-portrait {
      display: none !important; } }

/* line 126, bower_components/foundation-sites/scss/components/_visibility.scss */
.hide-for-landscape,
.show-for-portrait {
  display: none !important; }
  @media screen and (orientation: landscape) {
    /* line 126, bower_components/foundation-sites/scss/components/_visibility.scss */
    .hide-for-landscape,
    .show-for-portrait {
      display: none !important; } }
  @media screen and (orientation: portrait) {
    /* line 126, bower_components/foundation-sites/scss/components/_visibility.scss */
    .hide-for-landscape,
    .show-for-portrait {
      display: block !important; } }

/* line 140, bower_components/foundation-sites/scss/components/_visibility.scss */
.show-for-dark-mode {
  display: none; }

/* line 143, bower_components/foundation-sites/scss/components/_visibility.scss */
.hide-for-dark-mode {
  display: block; }

@media screen and (prefers-color-scheme: dark) {
  /* line 147, bower_components/foundation-sites/scss/components/_visibility.scss */
  .show-for-dark-mode {
    display: block !important; }
  /* line 150, bower_components/foundation-sites/scss/components/_visibility.scss */
  .hide-for-dark-mode {
    display: none !important; } }

/* line 156, bower_components/foundation-sites/scss/components/_visibility.scss */
.show-for-ie {
  display: none; }

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
  /* line 160, bower_components/foundation-sites/scss/components/_visibility.scss */
  .show-for-ie {
    display: block !important; }
  /* line 163, bower_components/foundation-sites/scss/components/_visibility.scss */
  .hide-for-ie {
    display: none !important; } }

/* line 169, bower_components/foundation-sites/scss/components/_visibility.scss */
.show-for-sticky {
  display: none; }

/* line 172, bower_components/foundation-sites/scss/components/_visibility.scss */
.is-stuck .show-for-sticky {
  display: block; }

/* line 175, bower_components/foundation-sites/scss/components/_visibility.scss */
.is-stuck .hide-for-sticky {
  display: none; }

/* ==========================================================================
   Default layout partials
   ========================================================================== */
/**
 * layout.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/* line 15, Resources/Private/Frontend/sass/partials/_layout.scss */
body {
  overflow-x: hidden; }

/* line 20, Resources/Private/Frontend/sass/partials/_layout.scss */
.bg--pink {
  background-color: #EF7996; }

/* line 23, Resources/Private/Frontend/sass/partials/_layout.scss */
.bg--yellow {
  background-color: #FED16D; }

/* line 26, Resources/Private/Frontend/sass/partials/_layout.scss */
.bg--purple {
  background-color: #A5A5D3; }

/* line 29, Resources/Private/Frontend/sass/partials/_layout.scss */
.bg--blue {
  background-color: #72C4EF; }

/* line 36, Resources/Private/Frontend/sass/partials/_layout.scss */
.fg--white .page__title {
  color: #fff; }

/* line 40, Resources/Private/Frontend/sass/partials/_layout.scss */
.fg--white .header__2025 path,
.fg--white .header__logo path {
  fill: #fff; }

/* line 48, Resources/Private/Frontend/sass/partials/_layout.scss */
.text-right {
  text-align: right; }

/* line 51, Resources/Private/Frontend/sass/partials/_layout.scss */
.text-center {
  text-align: center; }

/* line 56, Resources/Private/Frontend/sass/partials/_layout.scss */
.wrapper > div {
  position: relative;
  z-index: 1; }

/* line 62, Resources/Private/Frontend/sass/partials/_layout.scss */
.slipperanimal {
  position: absolute;
  z-index: -1;
  top: 20px;
  left: 50%;
  height: auto;
  transform: translateX(-50%); }
  /* line 72, Resources/Private/Frontend/sass/partials/_layout.scss */
  .slipperanimal--blue svg.slipperanimal path {
    fill: #72C4EF; }
  /* line 78, Resources/Private/Frontend/sass/partials/_layout.scss */
  .slipperanimal--peach svg.slipperanimal path {
    fill: #F08272; }
  /* line 84, Resources/Private/Frontend/sass/partials/_layout.scss */
  .slipperanimal--yellow svg.slipperanimal path {
    fill: #FED16D; }
  /* line 90, Resources/Private/Frontend/sass/partials/_layout.scss */
  .slipperanimal--blue-dark svg.slipperanimal path {
    fill: #003F60; }
  /* line 95, Resources/Private/Frontend/sass/partials/_layout.scss */
  .slipperanimal--mirrored svg.slipperanimal {
    transform: translateX(-50%) scaleX(-1); }
  /* line 99, Resources/Private/Frontend/sass/partials/_layout.scss */
  .slipperanimal__pseudo {
    width: 100%;
    height: calc(100%);
    aspect-ratio: 1;
    max-width: 916px;
    margin: 0 auto 0;
    position: relative;
    margin: 20px auto 0; }
    @media print, screen and (min-width: 40em) {
      /* line 99, Resources/Private/Frontend/sass/partials/_layout.scss */
      .slipperanimal__pseudo {
        margin: -50px auto 0; } }
    @media print, screen and (min-width: 64em) {
      /* line 99, Resources/Private/Frontend/sass/partials/_layout.scss */
      .slipperanimal__pseudo {
        aspect-ratio: 2;
        margin-top: 30px; } }
  /* line 118, Resources/Private/Frontend/sass/partials/_layout.scss */
  .slipperanimal__pseudo-text {
    position: absolute;
    z-index: 1;
    left: 50%;
    top: 50%;
    max-width: 916px;
    width: 90vw;
    transform: translateX(-50%) translateY(-50%); }

/* line 132, Resources/Private/Frontend/sass/partials/_layout.scss */
.main {
  position: relative;
  z-index: 1;
  padding: 0 0 11.25rem 0; }

/* line 143, Resources/Private/Frontend/sass/partials/_layout.scss */
.row--colored {
  padding-top: 40px;
  padding-bottom: 40px; }

/* line 148, Resources/Private/Frontend/sass/partials/_layout.scss */
.row--white {
  background: #fff; }

/* line 155, Resources/Private/Frontend/sass/partials/_layout.scss */
ol li {
  margin-left: 15px;
  margin-bottom: 25px; }

/**
 * typo.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/* ==========================================================================
	Webfonts
	========================================================================== */
@font-face {
  font-display: swap;
  font-family: "ivymode", sans-serif;
  font-weight: 700;
  font-style: normal; }

@font-face {
  font-display: swap;
  font-family: "adelphi-pe-variable", sans-serif;
  font-variation-settings: "opsz" 6, "slnt" 0, "wght" 400; }

@font-face {
  font-display: swap;
  font-family: "adelphi-pe-variable", sans-serif;
  font-variation-settings: "opsz" 6, "slnt" 0, "wght" 500; }

/* ==========================================================================
	Global Typo Styles
	========================================================================== */
/* line 47, Resources/Private/Frontend/sass/partials/_typo.scss */
body {
  font-variation-settings: "opsz" 6, "slnt" 0, "wght" 400;
  -webkit-hyphens: auto;
          hyphens: auto;
  hyphenate-limit-chars: 8 4; }

/* line 53, Resources/Private/Frontend/sass/partials/_typo.scss */
p, main li {
  font-size: 24px;
  line-height: 1.25; }
  @media screen and (min-width: 75em) {
    /* line 53, Resources/Private/Frontend/sass/partials/_typo.scss */
    p, main li {
      font-size: 32px; } }

/* line 62, Resources/Private/Frontend/sass/partials/_typo.scss */
main a {
  text-decoration: underline;
  color: #000; }

/* line 94, Resources/Private/Frontend/sass/partials/_typo.scss */
.text--white {
  color: #fff; }

/**
 * icon-font.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/* ==========================================================================
   Icon Font settings
   ========================================================================== */
@font-face {
  font-family: "fontello";
  src: url("../fonts/iconfont/fontello.eot");
  src: url("../fonts/iconfont/fontello.eot?#iefix") format("embedded-opentype"), url("../fonts/iconfont/fontello.woff") format("woff"), url("../fonts/iconfont/fontello.ttf") format("truetype"), url("../fonts/iconfont/fontello.svg#fontello") format("svg");
  font-weight: normal;
  font-style: normal; }

/* line 31, Resources/Private/Frontend/sass/partials/_icon-font.scss */
.util-icon--before:before,
.util-icon--after:after {
  font-family: "fontello" !important;
  font-style: normal !important;
  font-weight: normal !important;
  font-variant: normal !important;
  text-transform: none !important;
  speak: none;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }

/* line 49, Resources/Private/Frontend/sass/partials/_icon-font.scss */
.util-icon--before.util-icon--angle-left:before,
.util-icon--after.util-icon--angle-left:after {
  content: ""; }

/* line 49, Resources/Private/Frontend/sass/partials/_icon-font.scss */
.util-icon--before.util-icon--angle-right:before,
.util-icon--after.util-icon--angle-right:after {
  content: ""; }

/* ==========================================================================
   Components
   ========================================================================== */
/**
 * header.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (seliger@short-cuts.de)
 * MIT License (MIT)
 */
/**
 * functions.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/**
 * Return specific color
 */
/**
 * variables.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/* ==========================================================================
   Colors
   ========================================================================== */
/* <@colors */
/* colors@> */
/* ==========================================================================
   Icons
   ========================================================================== */
/* <@icons */
/* icons@> */
/**
 * mixins.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/**
 * Mixin for styling input placeholder.
 *
 * @include placeholder(){
 *   content goes here
 * }
 */
/**
 *
 *
 */
/**
 *
 *
 */
/**
 *
 */
/* ==========================================================================
   Header
   ========================================================================== */
/* line 26, Resources/Private/Frontend/component/header/header.scss */
.header {
  margin-top: 40px; }
  /* line 29, Resources/Private/Frontend/component/header/header.scss */
  .header > .row {
    position: relative;
    z-index: 1; }
  /* line 34, Resources/Private/Frontend/component/header/header.scss */
  .header__2025 {
    width: 31.41026px;
    height: 50px; }
    @media print, screen and (min-width: 64em) {
      /* line 34, Resources/Private/Frontend/component/header/header.scss */
      .header__2025 {
        width: 49px;
        height: 78px; } }
  /* line 44, Resources/Private/Frontend/component/header/header.scss */
  .header__logo {
    width: 250px;
    height: 65px; }
    @media print, screen and (min-width: 64em) {
      /* line 44, Resources/Private/Frontend/component/header/header.scss */
      .header__logo {
        width: 325px;
        height: 88.629px; } }

/**
 * footer.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (seliger@short-cuts.de)
 * MIT License (MIT)
 */
/**
 * functions.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/**
 * Return specific color
 */
/**
 * variables.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/* ==========================================================================
   Colors
   ========================================================================== */
/* <@colors */
/* colors@> */
/* ==========================================================================
   Icons
   ========================================================================== */
/* <@icons */
/* icons@> */
/**
 * mixins.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/**
 * Mixin for styling input placeholder.
 *
 * @include placeholder(){
 *   content goes here
 * }
 */
/**
 *
 *
 */
/**
 *
 *
 */
/**
 *
 */
/* ==========================================================================
   Footer
   ========================================================================== */
/* line 26, Resources/Private/Frontend/component/footer/footer.scss */
.footer {
  background: #000;
  padding: 40px; }
  @media screen and (min-width: 75em) {
    /* line 30, Resources/Private/Frontend/component/footer/footer.scss */
    .footer > .row {
      align-items: center; } }
  /* line 37, Resources/Private/Frontend/component/footer/footer.scss */
  .footer__column--logo {
    display: flex; }
  /* line 42, Resources/Private/Frontend/component/footer/footer.scss */
  .footer__logo {
    width: 259px;
    height: 22px; }
    @media screen and (min-width: 75em) {
      /* line 42, Resources/Private/Frontend/component/footer/footer.scss */
      .footer__logo {
        width: 240px;
        height: 20px; } }

/**
 * nav-main.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (seliger@short-cuts.de)
 * MIT License (MIT)
 */
/**
 * functions.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/**
 * Return specific color
 */
/**
 * variables.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/* ==========================================================================
   Colors
   ========================================================================== */
/* <@colors */
/* colors@> */
/* ==========================================================================
   Icons
   ========================================================================== */
/* <@icons */
/* icons@> */
/**
 * mixins.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/**
 * Mixin for styling input placeholder.
 *
 * @include placeholder(){
 *   content goes here
 * }
 */
/**
 *
 *
 */
/**
 *
 *
 */
/**
 *
 */
/* ==========================================================================
	Main Navigation
	========================================================================== */
/* line 28, Resources/Private/Frontend/component/nav-main/nav-main.scss */
.nav-main__small-wrapper {
  border-radius: 10px;
  background: #FFF;
  box-shadow: 0px 2px 6px 0px rgba(0, 0, 0, 0.15);
  width: 40px;
  height: 38px;
  padding: 10px 5px;
  margin-top: 25px;
  display: inline-block;
  position: relative;
  margin: 0 auto;
  overflow: hidden;
  transition: width .6s ease-in-out, height .6s ease-in-out;
  position: absolute;
  left: 50%;
  transform: translateX(-50%); }
  /* line 46, Resources/Private/Frontend/component/nav-main/nav-main.scss */
  .nav-main__small-wrapper--opened {
    width: 80vw;
    height: 400px; }

/* line 52, Resources/Private/Frontend/component/nav-main/nav-main.scss */
.nav-main__trigger {
  width: 1.09375rem;
  height: 0.9rem;
  cursor: pointer;
  z-index: 20;
  position: absolute;
  top: 11.8px;
  left: 50%;
  transform: translateX(-50%); }

/* line 66, Resources/Private/Frontend/component/nav-main/nav-main.scss */
.nav-main__trigger-line {
  background-color: #000;
  width: 100%;
  height: 0.125rem;
  border-radius: 0;
  position: absolute;
  left: 0;
  transform-origin: center; }
  /* line 75, Resources/Private/Frontend/component/nav-main/nav-main.scss */
  .nav-main__trigger-line--1 {
    top: 0;
    transition: top .15s .15s ease-in-out, transform .15s ease-in-out; }
    /* line 79, Resources/Private/Frontend/component/nav-main/nav-main.scss */
    .nav-main__trigger--crossed .nav-main__trigger-line--1 {
      top: 0.3875rem;
      transform: rotate(45deg);
      transition: top .15s ease-in-out, transform .15s .15s ease-in-out; }
  /* line 86, Resources/Private/Frontend/component/nav-main/nav-main.scss */
  .nav-main__trigger-line--2 {
    top: 0.3875rem;
    opacity: 1;
    transition: opacity .15s .15s ease-in-out; }
    /* line 91, Resources/Private/Frontend/component/nav-main/nav-main.scss */
    .nav-main__trigger--crossed .nav-main__trigger-line--2 {
      opacity: 0;
      transition: opacity .15s 0s ease-in-out; }
  /* line 97, Resources/Private/Frontend/component/nav-main/nav-main.scss */
  .nav-main__trigger-line--3 {
    bottom: 0;
    transition: bottom .15s .15s ease-in-out, transform .15s ease-in-out; }
    /* line 101, Resources/Private/Frontend/component/nav-main/nav-main.scss */
    .nav-main__trigger--crossed .nav-main__trigger-line--3 {
      bottom: 0.3875rem;
      transform: rotate(-45deg);
      transition: bottom .15s ease-in-out, transform .15s .15s ease-in-out; }

/* line 109, Resources/Private/Frontend/component/nav-main/nav-main.scss */
.nav-main__list {
  padding: 0;
  margin: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-top: 3.75rem;
  gap: 2.5rem; }
  @media print, screen and (min-width: 64em) {
    /* line 109, Resources/Private/Frontend/component/nav-main/nav-main.scss */
    .nav-main__list {
      flex-direction: row;
      justify-content: center;
      align-items: center;
      margin-top: 25px; } }

/* line 130, Resources/Private/Frontend/component/nav-main/nav-main.scss */
.nav-main__link {
  width: 150px;
  display: block;
  font-variation-settings: "opsz" 6, "slnt" 0, "wght" 500; }
  /* line 135, Resources/Private/Frontend/component/nav-main/nav-main.scss */
  .nav-main__link--active {
    text-decoration: underline !important; }
  /* line 138, Resources/Private/Frontend/component/nav-main/nav-main.scss */
  .nav-main__link:hover {
    text-decoration: none !important; }

/**
 * nav-footer.scss
 *
 * Copyright SHORT CUTS GmbH
 * https://www.short-cuts.de/
 *
 * Date: 2025-01-11
 * Author: rico (*@short-cuts.de)
 * MIT License (MIT)
 */
/**
 * functions.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/**
 * Return specific color
 */
/**
 * variables.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/* ==========================================================================
   Colors
   ========================================================================== */
/* <@colors */
/* colors@> */
/* ==========================================================================
   Icons
   ========================================================================== */
/* <@icons */
/* icons@> */
/**
 * mixins.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/**
 * Mixin for styling input placeholder.
 *
 * @include placeholder(){
 *   content goes here
 * }
 */
/**
 *
 *
 */
/**
 *
 *
 */
/**
 *
 */
/* line 20, Resources/Private/Frontend/component/nav-footer/nav-footer.scss */
.nav-footer {
  margin: 32px 0 0 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 40px;
  align-items: center; }
  @media print, screen and (min-width: 64em) {
    /* line 20, Resources/Private/Frontend/component/nav-footer/nav-footer.scss */
    .nav-footer {
      flex-direction: row;
      align-items: flex-start; } }
  @media screen and (min-width: 90em) {
    /* line 20, Resources/Private/Frontend/component/nav-footer/nav-footer.scss */
    .nav-footer {
      margin: 0; } }
  /* line 38, Resources/Private/Frontend/component/nav-footer/nav-footer.scss */
  .nav-footer--right {
    flex-direction: row;
    justify-content: center; }
    @media screen and (min-width: 75em) {
      /* line 38, Resources/Private/Frontend/component/nav-footer/nav-footer.scss */
      .nav-footer--right {
        justify-content: flex-end; } }
  /* line 47, Resources/Private/Frontend/component/nav-footer/nav-footer.scss */
  .nav-footer--center {
    justify-content: center; }
    @media print, screen and (min-width: 40em) {
      /* line 47, Resources/Private/Frontend/component/nav-footer/nav-footer.scss */
      .nav-footer--center {
        flex-direction: row; } }
  /* line 54, Resources/Private/Frontend/component/nav-footer/nav-footer.scss */
  .nav-footer__link {
    font-size: 18px;
    font-style: normal;
    width: 150px;
    font-variation-settings: "opsz" 6, "slnt" 0, "wght" 400;
    border: 1px solid #fff; }

/**
 * button.scss
 *
 * Copyright SHORT CUTS GmbH
 * https://www.short-cuts.de/
 *
 * Date: 2025-01-12
 * Author: rico (*@short-cuts.de)
 * MIT License (MIT)
 */
/**
 * functions.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/**
 * Return specific color
 */
/**
 * variables.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/* ==========================================================================
   Colors
   ========================================================================== */
/* <@colors */
/* colors@> */
/* ==========================================================================
   Icons
   ========================================================================== */
/* <@icons */
/* icons@> */
/**
 * mixins.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/**
 * Mixin for styling input placeholder.
 *
 * @include placeholder(){
 *   content goes here
 * }
 */
/**
 *
 *
 */
/**
 *
 *
 */
/**
 *
 */
/* line 20, Resources/Private/Frontend/component/button/button.scss */
.button {
  display: inline-block;
  color: #000;
  text-decoration: none;
  text-align: center;
  border-radius: 50px;
  box-shadow: 0px 2px 8px 0px rgba(0, 0, 0, 0.15);
  line-height: 1.2;
  padding: 5px;
  transition: background .3s ease-in-out, color .3s ease-in-out; }
  /* line 36, Resources/Private/Frontend/component/button/button.scss */
  .button--primary {
    color: #000;
    background: #FFF; }
    /* line 40, Resources/Private/Frontend/component/button/button.scss */
    .button--primary:hover {
      background: #000;
      color: #FFF; }
  /* line 46, Resources/Private/Frontend/component/button/button.scss */
  .button--large {
    width: 340px;
    font-size: 24px; }
  /* line 51, Resources/Private/Frontend/component/button/button.scss */
  .button--inverted {
    background: #000;
    color: #FFF; }
    /* line 55, Resources/Private/Frontend/component/button/button.scss */
    .button--inverted:hover {
      color: #000;
      background: #FFF; }

/**
 * accordion.scss
 *
 * Copyright SHORT CUTS GmbH
 * https://www.short-cuts.de/
 *
 * Date: 2025-01-12
 * Author: rico (*@short-cuts.de)
 * MIT License (MIT)
 */
/**
 * functions.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/**
 * Return specific color
 */
/**
 * variables.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/* ==========================================================================
   Colors
   ========================================================================== */
/* <@colors */
/* colors@> */
/* ==========================================================================
   Icons
   ========================================================================== */
/* <@icons */
/* icons@> */
/**
 * mixins.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/**
 * Mixin for styling input placeholder.
 *
 * @include placeholder(){
 *   content goes here
 * }
 */
/**
 *
 *
 */
/**
 *
 *
 */
/**
 *
 */
/* line 21, Resources/Private/Frontend/component/accordion/accordion.scss */
.accordion__item {
  background: #FFF;
  padding: 15px 40px 20px 40px;
  border-radius: 25px;
  cursor: pointer;
  position: relative; }
  /* line 30, Resources/Private/Frontend/component/accordion/accordion.scss */
  .accordion__item + .accordion__item {
    margin-top: 80px; }

/* line 35, Resources/Private/Frontend/component/accordion/accordion.scss */
.accordion__title {
  color: #000;
  font-family: "ivymode", sans-serif;
  font-size: 32px;
  font-weight: 700; }
  @media screen and (min-width: 75em) {
    /* line 35, Resources/Private/Frontend/component/accordion/accordion.scss */
    .accordion__title {
      font-size: 45px; } }

/* line 46, Resources/Private/Frontend/component/accordion/accordion.scss */
.accordion__icon {
  position: absolute;
  right: 44px;
  top: 45px;
  width: 14px;
  height: 9px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' fill='none'%3E%3Cpath stroke='%23000' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m13 1.5-6 6-6-6'/%3E%3C/svg%3E");
  transition: all 0.3s ease-in-out; }
  /* line 58, Resources/Private/Frontend/component/accordion/accordion.scss */
  .accordion--open .accordion__icon {
    transform: rotate(180deg); }

/* line 63, Resources/Private/Frontend/component/accordion/accordion.scss */
.accordion__content {
  margin-top: 20px; }
  /* line 66, Resources/Private/Frontend/component/accordion/accordion.scss */
  .accordion__content h1, .accordion__content h2, .accordion__content h3, .accordion__content h4, .accordion__content h5, .accordion__content h6 {
    margin-top: 40px;
    margin-bottom: 20px; }

/**
 * jury.scss
 *
 * Copyright SHORT CUTS GmbH
 * https://www.short-cuts.de/
 *
 * Date: 2025-01-12
 * Author: rico (*@short-cuts.de)
 * MIT License (MIT)
 */
/**
 * functions.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/**
 * Return specific color
 */
/**
 * variables.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/* ==========================================================================
   Colors
   ========================================================================== */
/* <@colors */
/* colors@> */
/* ==========================================================================
   Icons
   ========================================================================== */
/* <@icons */
/* icons@> */
/**
 * mixins.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/**
 * Mixin for styling input placeholder.
 *
 * @include placeholder(){
 *   content goes here
 * }
 */
/**
 *
 *
 */
/**
 *
 *
 */
/**
 *
 */
/* line 21, Resources/Private/Frontend/component/jury/jury.scss */
.jury__item {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  height: 100%; }
  /* line 27, Resources/Private/Frontend/component/jury/jury.scss */
  .jury__item + .jury__item {
    margin-top: 2.5rem; }
  @media print, screen and (min-width: 40em) {
    /* line 21, Resources/Private/Frontend/component/jury/jury.scss */
    .jury__item {
      flex-direction: row; }
      /* line 33, Resources/Private/Frontend/component/jury/jury.scss */
      .jury__item--image-right {
        flex-direction: row-reverse; } }
  /* line 39, Resources/Private/Frontend/component/jury/jury.scss */
  .jury__item--peach .jury__image-inner {
    background: #F08272; }
  /* line 40, Resources/Private/Frontend/component/jury/jury.scss */
  .jury__item--peach svg path {
    fill: #F08272; }
  /* line 43, Resources/Private/Frontend/component/jury/jury.scss */
  .jury__item--purple .jury__image-inner {
    background: #A5A5D3; }
  /* line 44, Resources/Private/Frontend/component/jury/jury.scss */
  .jury__item--purple svg path {
    fill: #A5A5D3; }
  /* line 47, Resources/Private/Frontend/component/jury/jury.scss */
  .jury__item--yellow .jury__image-inner {
    background: #FED16D; }
  /* line 48, Resources/Private/Frontend/component/jury/jury.scss */
  .jury__item--yellow svg path {
    fill: #FED16D; }

/* line 53, Resources/Private/Frontend/component/jury/jury.scss */
.jury__image {
  position: relative;
  padding: 0 10px; }
  @media print, screen and (min-width: 40em) {
    /* line 53, Resources/Private/Frontend/component/jury/jury.scss */
    .jury__image {
      flex: 1 0 50%; } }
  @media screen and (min-width: 75em) {
    /* line 53, Resources/Private/Frontend/component/jury/jury.scss */
    .jury__image {
      flex: 1 0 33.33333%; } }
  /* line 64, Resources/Private/Frontend/component/jury/jury.scss */
  .jury__image-inner {
    position: relative;
    display: flex;
    align-items: center;
    height: 100%;
    overflow: hidden; }

/* line 73, Resources/Private/Frontend/component/jury/jury.scss */
.jury__slipperanimal {
  z-index: 1;
  position: absolute;
  top: 50%;
  transform: translateY(-50%); }

/* line 80, Resources/Private/Frontend/component/jury/jury.scss */
.jury__img {
  width: 100%; }
  @media print, screen and (min-width: 40em) {
    /* line 80, Resources/Private/Frontend/component/jury/jury.scss */
    .jury__img {
      position: absolute;
      left: 0;
      z-index: 0;
      aspect-ratio: 446 / 520;
      -o-object-fit: cover;
         object-fit: cover;
      -o-object-position: center;
         object-position: center; } }

/* line 93, Resources/Private/Frontend/component/jury/jury.scss */
.jury__role {
  font-size: 2rem;
  line-height: 1.25;
  margin-bottom: 0.625rem; }

/* line 99, Resources/Private/Frontend/component/jury/jury.scss */
.jury__name {
  line-height: 1.11;
  margin-bottom: 0.3125rem; }

/* line 104, Resources/Private/Frontend/component/jury/jury.scss */
.jury hr {
  margin: 10px 0; }

/* line 108, Resources/Private/Frontend/component/jury/jury.scss */
.jury__text {
  padding: 0 10px;
  font-size: 1.125rem; }
  /* line 110, Resources/Private/Frontend/component/jury/jury.scss */
  .jury__text-inner {
    background: white;
    padding: 2.5rem;
    height: 100%; }
  @media print, screen and (min-width: 40em) {
    /* line 108, Resources/Private/Frontend/component/jury/jury.scss */
    .jury__text {
      flex: 1 0 50%; } }
  @media screen and (min-width: 75em) {
    /* line 108, Resources/Private/Frontend/component/jury/jury.scss */
    .jury__text {
      flex: 1 0 66.66667%; } }
  /* line 124, Resources/Private/Frontend/component/jury/jury.scss */
  .jury__text p {
    -webkit-hyphens: auto;
            hyphens: auto;
    font-size: inherit; }
    /* line 128, Resources/Private/Frontend/component/jury/jury.scss */
    .jury__text p:last-child {
      margin-bottom: 0; }

/**
 * post.scss
 *
 * Copyright SHORT CUTS GmbH
 * https://www.short-cuts.de/
 *
 * Date: 2025-01-15
 * Author: rico (*@short-cuts.de)
 * MIT License (MIT)
 */
/**
 * functions.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/**
 * Return specific color
 */
/**
 * variables.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/* ==========================================================================
   Colors
   ========================================================================== */
/* <@colors */
/* colors@> */
/* ==========================================================================
   Icons
   ========================================================================== */
/* <@icons */
/* icons@> */
/**
 * mixins.scss
 *
 * Your description
 *
 * Copyright SHORT CUTS GmbH
 * http://www.short-cuts.de
 *
 * Date: 2016-12-31
 * Author: Kai Seliger (hello@yesjoar.com)
 * MIT License (MIT)
 */
/**
 * Mixin for styling input placeholder.
 *
 * @include placeholder(){
 *   content goes here
 * }
 */
/**
 *
 *
 */
/**
 *
 *
 */
/**
 *
 */
/* line 21, Resources/Private/Frontend/component/post/post.scss */
.post__date {
  font-size: 1.125rem;
  color: #7D7D7D;
  margin-bottom: 10px; }

/* line 27, Resources/Private/Frontend/component/post/post.scss */
.post__title {
  color: #000;
  -webkit-text-stroke-width: 0.699999988079071;
  -webkit-text-stroke-color: #000;
  font-family: "ivymode", sans-serif;
  font-size: 32px;
  font-style: normal;
  font-weight: 700;
  line-height: 1.25;
  /* 125% */
  letter-spacing: 0.96px;
  margin-bottom: 15px;
  border-bottom: 1px solid #000;
  padding-bottom: 15px;
  margin-bottom: 10px; }

/* line 45, Resources/Private/Frontend/component/post/post.scss */
.post__description {
  font-size: 18px;
  line-height: 1.33; }

/* line 50, Resources/Private/Frontend/component/post/post.scss */
.post__content {
  padding: 20px; }

/* ==========================================================================
   Utility classes
   ========================================================================== */

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNjcmVlbi5jc3MiLCJzY3JlZW4uc2NzcyIsInBhcnRpYWxzL19mdW5jdGlvbnMuc2NzcyIsInBhcnRpYWxzL192YXJpYWJsZXMuc2NzcyIsInBhcnRpYWxzL19taXhpbnMuc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2ZvdW5kYXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL19nbG9iYWwuc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX3VuaXQuc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX21peGlucy5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fYnJlYWtwb2ludC5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MiLCIuLi8uLi8uLi8uLi9ib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19yb3cuc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2d1dHRlci5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWF0aC5zY3NzIiwiLi4vLi4vLi4vLi4vYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fcG9zaXRpb24uc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3V0aWwvX2ZsZXguc2NzcyIsIi4uLy4uLy4uLy4uL2Jvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyIsInBhcnRpYWxzL19sYXlvdXQuc2NzcyIsInBhcnRpYWxzL190eXBvLnNjc3MiLCJwYXJ0aWFscy9faWNvbi1mb250LnNjc3MiLCIuLi9jb21wb25lbnQvaGVhZGVyL2hlYWRlci5zY3NzIiwiLi4vY29tcG9uZW50L2Zvb3Rlci9mb290ZXIuc2NzcyIsIi4uL2NvbXBvbmVudC9uYXYtbWFpbi9uYXYtbWFpbi5zY3NzIiwiLi4vY29tcG9uZW50L25hdi1mb290ZXIvbmF2LWZvb3Rlci5zY3NzIiwiLi4vY29tcG9uZW50L2J1dHRvbi9idXR0b24uc2NzcyIsIi4uL2NvbXBvbmVudC9hY2NvcmRpb24vYWNjb3JkaW9uLnNjc3MiLCIuLi9jb21wb25lbnQvanVyeS9qdXJ5LnNjc3MiLCIuLi9jb21wb25lbnQvcG9zdC9wb3N0LnNjc3MiXSwi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QVV2S25FO0VBSUksa0JGck5vRDtFRWlPcEQsaUJQalFZO0VPeVFaLGFBQWE7RUFPYix1QkZoUG9ELEVBQUE7O0FSK1hoRSwyRUFBMkU7QVU5S25FO0VBSUksa0JGck5vRDtFRWlPcEQsaUJQalFZO0VPeVFaLGFBQWE7RUFPYix1QkZoUG9ELEVBQUE7O0FHcUZ4RDtFWGtUTiwyRUFBMkU7RVV0THJFO0lBSUksa0JGck5vRCxFQUFBO0VSMFk5RCwyRUFBMkU7RVV6THJFO0lBSUksa0JGck5vRCxFQUFBO0VSNlk5RCwyRUFBMkU7RVU1THJFO0lBSUksa0JGck5vRCxFQUFBO0VSZ1o5RCwyRUFBMkU7RVUvTHJFO0lBSUksa0JGck5vRCxFQUFBO0VSbVo5RCwyRUFBMkU7RVVsTXJFO0lBSUksa0JGck5vRCxFQUFBO0VSc1o5RCwyRUFBMkU7RVVyTXJFO0lBSUksa0JGck5vRCxFQUFBLEVFa1B2RDs7QUN4SkQ7RVhpVU4sMkVBQTJFO0VVMU1yRTtJQUlJLGVGck5vRCxFQUFBO0VSOFo5RCwyRUFBMkU7RVU3TXJFO0lBSUksb0JGck5vRCxFQUFBO0VSaWE5RCwyRUFBMkU7RVVoTnJFO0lBSUksbUJGck5vRCxFQUFBO0VSb2E5RCwyRUFBMkU7RVVuTnJFO0lBSUksbUJGck5vRCxFQUFBO0VSdWE5RCwyRUFBMkU7RVV0TnJFO0lBSUksbUJGck5vRCxFQUFBO0VSMGE5RCwyRUFBMkU7RVV6TnJFO0lBSUksbUJGck5vRCxFQUFBLEVFa1B2RDs7QVY0TFQsMkVBQTJFO0FNbGR6RTtFSTZSRSxvQkFBb0I7RUFDcEIsY0g3VGdCO0VHOFRoQixxQkF0TnlCO0VBd056QixlQUFlLEVBQUE7RVZ1TGpCLDJFQUEyRTtFVTVMM0U7SUFTSSxjQWhPMkQsRUFBQTtFVnNaL0QsMkVBQTJFO0VVL0wzRTtJQWdCSSxTQUFTLEVBQUE7O0FWbUxmLDJFQUEyRTtBTWxmekU7RUlxVUUsV0FBVztFQUVYLGdCRmhSNEQ7RUVpUjVELFNBQVM7RUFDVCxxQlBoUnlCO0VPa1J6QixhQUFhO0VBQ2IsZUFBZTtFQUNmLDZCUHJSc0I7RU9zUnRC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NUQsb0JHakQ0RCxFQUFBOztBbEJ1eEJwRSwwRUFBMEU7QWVodUJwRTtFSXRJSixnQkQrRWtFLEVBQUE7O0FsQjJ4QnBFLDBFQUEwRTtBZTV1QnBFO0VBQ0UsbUJHaEQ0RDtFSGlENUQsb0JHakQ0RCxFQUFBOztBbEJneUJwRSwwRUFBMEU7QWV6dUJwRTtFSXRJSixzQkQrRWtFLEVBQUE7O0FsQm95QnBFLDBFQUEwRTtBZXJ2QnBFO0VBQ0UsYUdoRDREO0VIaUQ1RCxjR2pENEQsRUFBQTs7QWxCeXlCcEUsMEVBQTBFO0FlbHZCcEU7RUl0SUosc0JEK0VrRSxFQUFBOztBbEI2eUJwRSwwRUFBMEU7QWU5dkJwRTtFQUNFLG1CR2hENEQ7RUhpRDVELG9CR2pENEQsRUFBQTs7QWxCa3pCcEUsMEVBQTBFO0FlM3ZCcEU7RUl0SUosZ0JEK0VrRSxFQUFBOztBbEJzekJwRSwwRUFBMEU7QWV2d0JwRTtFQUNFLG1CR2hENEQ7RUhpRDVELG9CR2pENEQsRUFBQTs7QWxCMnpCcEUsMEVBQTBFO0FlcHdCcEU7RUl0SUosc0JEK0VrRSxFQUFBOztBbEIrekJwRSwwRUFBMEU7QWVoeEJwRTtFQUNFLGFHaEQ0RDtFSGlENUQsY0dqRDRELEVBQUE7O0FsQm8wQnBFLDBFQUEwRTtBZTd3QnBFO0VJdElKLHNCRCtFa0UsRUFBQTs7QWxCdzBCcEUsMEVBQTBFO0FlenhCcEU7RUFDRSxtQkdoRDREO0VIaUQ1RCxvQkdqRDRELEVBQUE7O0FsQjYwQnBFLDBFQUEwRTtBZXR4QnBFO0VJdElKLGdCRCtFa0UsRUFBQTs7QWxCaTFCcEUsMEVBQTBFO0FlbHlCcEU7RUFDRSxtQkdoRDREO0VIaUQ1RCxvQkdqRDRELEVBQUE7O0FsQnMxQnBFLDBFQUEwRTtBZS94QnBFO0VJdElKLHNCRCtFa0UsRUFBQTs7QWxCMDFCcEUsMEVBQTBFO0FlM3lCcEU7RUFDRSxjR2hENEQ7RUhpRDVELGVHakQ0RCxFQUFBOztBbEIrMUJwRSwwRUFBMEU7QWV4eUJwRTtFSXRJSixzQkQrRWtFLEVBQUE7O0FsQm0yQnBFLDBFQUEwRTtBZXJ5QnBFO0VBMUdKLGVBQWUsRUFBQTtFZms1QmYsMEVBQTBFO0VlaDVCMUU7SUFHRSxjQUYrQjtJQUcvQixlQUgrQixFQUFBOztBZm81Qm5DLDBFQUEwRTtBZTd5QnBFO0VBMUdKLGVBQWUsRUFBQTtFZjA1QmYsMEVBQTBFO0VleDVCMUU7SUFHRSxhQUYrQjtJQUcvQixjQUgrQixFQUFBOztBZjQ1Qm5DLDBFQUEwRTtBZXJ6QnBFO0VBMUdKLGVBQWUsRUFBQTtFZms2QmYsMEVBQTBFO0VlaDZCMUU7SUFHRSxtQkFGK0I7SUFHL0Isb0JBSCtCLEVBQUE7O0FmbzZCbkMsMEVBQTBFO0FlN3pCcEU7RUExR0osZUFBZSxFQUFBO0VmMDZCZiwwRUFBMEU7RWV4NkIxRTtJQUdFLGFBRitCO0lBRy9CLGNBSCtCLEVBQUE7O0FmNDZCbkMsMEVBQTBFO0FlcjBCcEU7RUExR0osZUFBZSxFQUFBO0VmazdCZiwwRUFBMEU7RWVoN0IxRTtJQUdFLGFBRitCO0lBRy9CLGNBSCtCLEVBQUE7O0FmbzdCbkMsMEVBQTBFO0FlNzBCcEU7RUExR0osZUFBZSxFQUFBO0VmMDdCZiwwRUFBMEU7RWV4N0IxRTtJQUdFLG1CQUYrQjtJQUcvQixvQkFIK0IsRUFBQTs7QWY0N0JuQywwRUFBMEU7QWVyMUJwRTtFQTFHSixlQUFlLEVBQUE7RWZrOEJmLDBFQUEwRTtFZWg4QjFFO0lBR0UsbUJBRitCO0lBRy9CLG9CQUgrQixFQUFBOztBZm84Qm5DLDBFQUEwRTtBZTcxQnBFO0VBMUdKLGVBQWUsRUFBQTtFZjA4QmYsMEVBQTBFO0VleDhCMUU7SUFHRSxlQUYrQjtJQUcvQixnQkFIK0IsRUFBQTs7QWY0OEJuQywwRUFBMEU7QWV6MEJ0RTtFRXJOQSxnQlQ2RVM7RVM1RVQsZVQ0RVMsRUFBQTs7QVJzOUJiLDBFQUEwRTtBZTEwQnRFO0VFek5BLHdCQUZ1QztFQUd2Qyx1QkFIdUMsRUFBQTs7QU4rSm5DO0VYNDRCTiwwRUFBMEU7RWUvM0J0RTtJQUNFLGtCR2hENEQ7SUhpRDVELG1CR2pENEQsRUFBQTtFbEJrN0JsRSwwRUFBMEU7RWUzM0J0RTtJSXRJSixlRCtFa0UsRUFBQTtFbEJxN0JsRSwwRUFBMEU7RWV0NEJ0RTtJQUNFLG1CR2hENEQ7SUhpRDVELG9CR2pENEQsRUFBQTtFbEJ5N0JsRSwwRUFBMEU7RWVsNEJ0RTtJSXRJSixxQkQrRWtFLEVBQUE7RWxCNDdCbEUsMEVBQTBFO0VlNzRCdEU7SUFDRSxhR2hENEQ7SUhpRDVELGNHakQ0RCxFQUFBO0VsQmc4QmxFLDBFQUEwRTtFZXo0QnRFO0lJdElKLHNCRCtFa0UsRUFBQTtFbEJtOEJsRSwwRUFBMEU7RWVwNUJ0RTtJQUNFLG1CR2hENEQ7SUhpRDVELG9CR2pENEQsRUFBQTtFbEJ1OEJsRSwwRUFBMEU7RWVoNUJ0RTtJSXRJSixnQkQrRWtFLEVBQUE7RWxCMDhCbEUsMEVBQTBFO0VlMzVCdEU7SUFDRSxtQkdoRDREO0lIaUQ1RCxvQkdqRDRELEVBQUE7RWxCODhCbEUsMEVBQTBFO0VldjVCdEU7SUl0SUosc0JEK0VrRSxFQUFBO0VsQmk5QmxFLDBFQUEwRTtFZWw2QnRFO0lBQ0UsYUdoRDREO0lIaUQ1RCxjR2pENEQsRUFBQTtFbEJxOUJsRSwwRUFBMEU7RWU5NUJ0RTtJSXRJSixzQkQrRWtFLEVBQUE7RWxCdzlCbEUsMEVBQTBFO0VlejZCdEU7SUFDRSxtQkdoRDREO0lIaUQ1RCxvQkdqRDRELEVBQUE7RWxCNDlCbEUsMEVBQTBFO0VlcjZCdEU7SUl0SUosZ0JEK0VrRSxFQUFBO0VsQis5QmxFLDBFQUEwRTtFZWg3QnRFO0lBQ0UsbUJHaEQ0RDtJSGlENUQsb0JHakQ0RCxFQUFBO0VsQm0rQmxFLDBFQUEwRTtFZTU2QnRFO0lJdElKLHNCRCtFa0UsRUFBQTtFbEJzK0JsRSwwRUFBMEU7RWV2N0J0RTtJQUNFLGFHaEQ0RDtJSGlENUQsY0dqRDRELEVBQUE7RWxCMCtCbEUsMEVBQTBFO0VlbjdCdEU7SUl0SUosc0JEK0VrRSxFQUFBO0VsQjYrQmxFLDBFQUEwRTtFZTk3QnRFO0lBQ0UsbUJHaEQ0RDtJSGlENUQsb0JHakQ0RCxFQUFBO0VsQmkvQmxFLDBFQUEwRTtFZTE3QnRFO0lJdElKLGdCRCtFa0UsRUFBQTtFbEJvL0JsRSwwRUFBMEU7RWVyOEJ0RTtJQUNFLG1CR2hENEQ7SUhpRDVELG9CR2pENEQsRUFBQTtFbEJ3L0JsRSwwRUFBMEU7RWVqOEJ0RTtJSXRJSixzQkQrRWtFLEVBQUE7RWxCMi9CbEUsMEVBQTBFO0VlNThCdEU7SUFDRSxjR2hENEQ7SUhpRDVELGVHakQ0RCxFQUFBO0VsQisvQmxFLDBFQUEwRTtFZXg4QnRFO0lJdElKLHNCRCtFa0UsRUFBQTtFbEJrZ0NsRSwwRUFBMEU7RWVwOEJ0RTtJQTFHSixlQUFlLEVBQUE7SWZpakNiLDBFQUEwRTtJZS9pQzVFO01BR0UsY0FGK0I7TUFHL0IsZUFIK0IsRUFBQTtFZmtqQ2pDLDBFQUEwRTtFZTM4QnRFO0lBMUdKLGVBQWUsRUFBQTtJZndqQ2IsMEVBQTBFO0lldGpDNUU7TUFHRSxhQUYrQjtNQUcvQixjQUgrQixFQUFBO0VmeWpDakMsMEVBQTBFO0VlbDlCdEU7SUExR0osZUFBZSxFQUFBO0lmK2pDYiwwRUFBMEU7SWU3akM1RTtNQUdFLG1CQUYrQjtNQUcvQixvQkFIK0IsRUFBQTtFZmdrQ2pDLDBFQUEwRTtFZXo5QnRFO0lBMUdKLGVBQWUsRUFBQTtJZnNrQ2IsMEVBQTBFO0llcGtDNUU7TUFHRSxhQUYrQjtNQUcvQixjQUgrQixFQUFBO0VmdWtDakMsMEVBQTBFO0VlaCtCdEU7SUExR0osZUFBZSxFQUFBO0lmNmtDYiwwRUFBMEU7SWUza0M1RTtNQUdFLGFBRitCO01BRy9CLGNBSCtCLEVBQUE7RWY4a0NqQywwRUFBMEU7RWV2K0J0RTtJQTFHSixlQUFlLEVBQUE7SWZvbENiLDBFQUEwRTtJZWxsQzVFO01BR0UsbUJBRitCO01BRy9CLG9CQUgrQixFQUFBO0VmcWxDakMsMEVBQTBFO0VlOStCdEU7SUExR0osZUFBZSxFQUFBO0lmMmxDYiwwRUFBMEU7SWV6bEM1RTtNQUdFLG1CQUYrQjtNQUcvQixvQkFIK0IsRUFBQTtFZjRsQ2pDLDBFQUEwRTtFZXIvQnRFO0lBMUdKLGVBQWUsRUFBQTtJZmttQ2IsMEVBQTBFO0llaG1DNUU7TUFHRSxlQUYrQjtNQUcvQixnQkFIK0IsRUFBQSxFQUloQzs7QUp1RUs7RVgwaENOLDBFQUEwRTtFZXQvQnBFO0lBQ0UsYUE1Sk0sRUFBQSxFQTZKUDs7QWZ3L0JULDBFQUEwRTtBZW4vQmxFO0VBRUksY0cvRXdELEVBQUE7RVBrQzVEO0lYa2lDSiwwRUFBMEU7SWV2L0J0RTtNQUtNLGFBdktFLEVBQUEsRUF5S0w7O0FKbERIO0VYdWlDTiwwRUFBMEU7RWUvK0J4RTtJRXJOQSxnQlQ2RVM7SVM1RVQsZVQ0RVMsRUFBQTtFUjJuQ1gsMEVBQTBFO0VlLytCeEU7SUV6TkEsd0JBRnVDO0lBR3ZDLHVCQUh1QyxFQUFBLEVGNE5jOztBSjdEakQ7RVhpakNOLDBFQUEwRTtFZXBpQ3RFO0lBQ0Usa0JHaEQ0RDtJSGlENUQsbUJHakQ0RCxFQUFBO0VsQnVsQ2xFLDBFQUEwRTtFZWhpQ3RFO0lJdElKLGVEK0VrRSxFQUFBO0VsQjBsQ2xFLDBFQUEwRTtFZTNpQ3RFO0lBQ0UsbUJHaEQ0RDtJSGlENUQsb0JHakQ0RCxFQUFBO0VsQjhsQ2xFLDBFQUEwRTtFZXZpQ3RFO0lJdElKLHFCRCtFa0UsRUFBQTtFbEJpbUNsRSwwRUFBMEU7RWVsakN0RTtJQUNFLGFHaEQ0RDtJSGlENUQsY0dqRDRELEVBQUE7RWxCcW1DbEUsMEVBQTBFO0VlOWlDdEU7SUl0SUosc0JEK0VrRSxFQUFBO0VsQndtQ2xFLDBFQUEwRTtFZXpqQ3RFO0lBQ0UsbUJHaEQ0RDtJSGlENUQsb0JHakQ0RCxFQUFBO0VsQjRtQ2xFLDBFQUEwRTtFZXJqQ3RFO0lJdElKLGdCRCtFa0UsRUFBQTtFbEIrbUNsRSwwRUFBMEU7RWVoa0N0RTtJQUNFLG1CR2hENEQ7SUhpRDVELG9CR2pENEQsRUFBQTtFbEJtbkNsRSwwRUFBMEU7RWU1akN0RTtJSXRJSixzQkQrRWtFLEVBQUE7RWxCc25DbEUsMEVBQTBFO0VldmtDdEU7SUFDRSxhR2hENEQ7SUhpRDVELGNHakQ0RCxFQUFBO0VsQjBuQ2xFLDBFQUEwRTtFZW5rQ3RFO0lJdElKLHNCRCtFa0UsRUFBQTtFbEI2bkNsRSwwRUFBMEU7RWU5a0N0RTtJQUNFLG1CR2hENEQ7SUhpRDVELG9CR2pENEQsRUFBQTtFbEJpb0NsRSwwRUFBMEU7RWUxa0N0RTtJSXRJSixnQkQrRWtFLEVBQUE7RWxCb29DbEUsMEVBQTBFO0VlcmxDdEU7SUFDRSxtQkdoRDREO0lIaUQ1RCxvQkdqRDRELEVBQUE7RWxCd29DbEUsMEVBQTBFO0VlamxDdEU7SUl0SUosc0JEK0VrRSxFQUFBO0VsQjJvQ2xFLDBFQUEwRTtFZTVsQ3RFO0lBQ0UsYUdoRDREO0lIaUQ1RCxjR2pENEQsRUFBQTtFbEIrb0NsRSwwRUFBMEU7RWV4bEN0RTtJSXRJSixzQkQrRWtFLEVBQUE7RWxCa3BDbEUsMEVBQTBFO0Vlbm1DdEU7SUFDRSxtQkdoRDREO0lIaUQ1RCxvQkdqRDRELEVBQUE7RWxCc3BDbEUsMEVBQTBFO0VlL2xDdEU7SUl0SUosZ0JEK0VrRSxFQUFBO0VsQnlwQ2xFLDBFQUEwRTtFZTFtQ3RFO0lBQ0UsbUJHaEQ0RDtJSGlENUQsb0JHakQ0RCxFQUFBO0VsQjZwQ2xFLDBFQUEwRTtFZXRtQ3RFO0lJdElKLHNCRCtFa0UsRUFBQTtFbEJncUNsRSwwRUFBMEU7RWVqbkN0RTtJQUNFLGNHaEQ0RDtJSGlENUQsZUdqRDRELEVBQUE7RWxCb3FDbEUsMEVBQTBFO0VlN21DdEU7SUl0SUosc0JEK0VrRSxFQUFBO0VsQnVxQ2xFLDBFQUEwRTtFZXptQ3RFO0lBMUdKLGVBQWUsRUFBQTtJZnN0Q2IsMEVBQTBFO0llcHRDNUU7TUFHRSxjQUYrQjtNQUcvQixlQUgrQixFQUFBO0VmdXRDakMsMEVBQTBFO0VlaG5DdEU7SUExR0osZUFBZSxFQUFBO0lmNnRDYiwwRUFBMEU7SWUzdEM1RTtNQUdFLGFBRitCO01BRy9CLGNBSCtCLEVBQUE7RWY4dENqQywwRUFBMEU7RWV2bkN0RTtJQTFHSixlQUFlLEVBQUE7SWZvdUNiLDBFQUEwRTtJZWx1QzVFO01BR0UsbUJBRitCO01BRy9CLG9CQUgrQixFQUFBO0VmcXVDakMsMEVBQTBFO0VlOW5DdEU7SUExR0osZUFBZSxFQUFBO0lmMnVDYiwwRUFBMEU7SWV6dUM1RTtNQUdFLGFBRitCO01BRy9CLGNBSCtCLEVBQUE7RWY0dUNqQywwRUFBMEU7RWVyb0N0RTtJQTFHSixlQUFlLEVBQUE7SWZrdkNiLDBFQUEwRTtJZWh2QzVFO01BR0UsYUFGK0I7TUFHL0IsY0FIK0IsRUFBQTtFZm12Q2pDLDBFQUEwRTtFZTVvQ3RFO0lBMUdKLGVBQWUsRUFBQTtJZnl2Q2IsMEVBQTBFO0lldnZDNUU7TUFHRSxtQkFGK0I7TUFHL0Isb0JBSCtCLEVBQUE7RWYwdkNqQywwRUFBMEU7RWVucEN0RTtJQTFHSixlQUFlLEVBQUE7SWZnd0NiLDBFQUEwRTtJZTl2QzVFO01BR0UsbUJBRitCO01BRy9CLG9CQUgrQixFQUFBO0VmaXdDakMsMEVBQTBFO0VlMXBDdEU7SUExR0osZUFBZSxFQUFBO0lmdXdDYiwwRUFBMEU7SWVyd0M1RTtNQUdFLGVBRitCO01BRy9CLGdCQUgrQixFQUFBLEVBSWhDOztBSnVFSztFWCtyQ04sMEVBQTBFO0VlM3BDcEU7SUFDRSxhQTVKTSxFQUFBLEVBNkpQOztBZjZwQ1QsMEVBQTBFO0FleHBDbEU7RUFFSSxjRy9Fd0QsRUFBQTtFUGtDNUQ7SVh1c0NKLDBFQUEwRTtJZTVwQ3RFO01BS00sYUF2S0UsRUFBQSxFQXlLTDs7QUpsREg7RVg0c0NOLDBFQUEwRTtFZXBwQ3hFO0lFck5BLGdCVDZFUztJUzVFVCxlVDRFUyxFQUFBO0VSZ3lDWCwwRUFBMEU7RWVwcEN4RTtJRXpOQSx3QkFGdUM7SUFHdkMsdUJBSHVDLEVBQUEsRUY0TmM7O0FKeERqRDtFWGl0Q04sMEVBQTBFO0VlenNDdEU7SUFDRSxrQkdoRDREO0lIaUQ1RCxtQkdqRDRELEVBQUE7RWxCNHZDbEUsMEVBQTBFO0VlcnNDdEU7SUl0SUosZUQrRWtFLEVBQUE7RWxCK3ZDbEUsMEVBQTBFO0VlaHRDdEU7SUFDRSxtQkdoRDREO0lIaUQ1RCxvQkdqRDRELEVBQUE7RWxCbXdDbEUsMEVBQTBFO0VlNXNDdEU7SUl0SUoscUJEK0VrRSxFQUFBO0VsQnN3Q2xFLDBFQUEwRTtFZXZ0Q3RFO0lBQ0UsYUdoRDREO0lIaUQ1RCxjR2pENEQsRUFBQTtFbEIwd0NsRSwwRUFBMEU7RWVudEN0RTtJSXRJSixzQkQrRWtFLEVBQUE7RWxCNndDbEUsMEVBQTBFO0VlOXRDdEU7SUFDRSxtQkdoRDREO0lIaUQ1RCxvQkdqRDRELEVBQUE7RWxCaXhDbEUsMEVBQTBFO0VlMXRDdEU7SUl0SUosZ0JEK0VrRSxFQUFBO0VsQm94Q2xFLDBFQUEwRTtFZXJ1Q3RFO0lBQ0UsbUJHaEQ0RDtJSGlENUQsb0JHakQ0RCxFQUFBO0VsQnd4Q2xFLDBFQUEwRTtFZWp1Q3RFO0lJdElKLHNCRCtFa0UsRUFBQTtFbEIyeENsRSwwRUFBMEU7RWU1dUN0RTtJQUNFLGFHaEQ0RDtJSGlENUQsY0dqRDRELEVBQUE7RWxCK3hDbEUsMEVBQTBFO0VleHVDdEU7SUl0SUosc0JEK0VrRSxFQUFBO0VsQmt5Q2xFLDBFQUEwRTtFZW52Q3RFO0lBQ0UsbUJHaEQ0RDtJSGlENUQsb0JHakQ0RCxFQUFBO0VsQnN5Q2xFLDBFQUEwRTtFZS91Q3RFO0lJdElKLGdCRCtFa0UsRUFBQTtFbEJ5eUNsRSwwRUFBMEU7RWUxdkN0RTtJQUNFLG1CR2hENEQ7SUhpRDVELG9CR2pENEQsRUFBQTtFbEI2eUNsRSwwRUFBMEU7RWV0dkN0RTtJSXRJSixzQkQrRWtFLEVBQUE7RWxCZ3pDbEUsMEVBQTBFO0VlandDdEU7SUFDRSxhR2hENEQ7SUhpRDVELGNHakQ0RCxFQUFBO0VsQm96Q2xFLDBFQUEwRTtFZTd2Q3RFO0lJdElKLHNCRCtFa0UsRUFBQTtFbEJ1ekNsRSwwRUFBMEU7RWV4d0N0RTtJQUNFLG1CR2hENEQ7SUhpRDVELG9CR2pENEQsRUFBQTtFbEIyekNsRSwwRUFBMEU7RWVwd0N0RTtJSXRJSixnQkQrRWtFLEVBQUE7RWxCOHpDbEUsMEVBQTBFO0VlL3dDdEU7SUFDRSxtQkdoRDREO0lIaUQ1RCxvQkdqRDRELEVBQUE7RWxCazBDbEUsMEVBQTBFO0VlM3dDdEU7SUl0SUosc0JEK0VrRSxFQUFBO0VsQnEwQ2xFLDBFQUEwRTtFZXR4Q3RFO0lBQ0UsY0doRDREO0lIaUQ1RCxlR2pENEQsRUFBQTtFbEJ5MENsRSwwRUFBMEU7RWVseEN0RTtJSXRJSixzQkQrRWtFLEVBQUE7RWxCNDBDbEUsMEVBQTBFO0VlOXdDdEU7SUExR0osZUFBZSxFQUFBO0lmMjNDYiwwRUFBMEU7SWV6M0M1RTtNQUdFLGNBRitCO01BRy9CLGVBSCtCLEVBQUE7RWY0M0NqQywwRUFBMEU7RWVyeEN0RTtJQTFHSixlQUFlLEVBQUE7SWZrNENiLDBFQUEwRTtJZWg0QzVFO01BR0UsYUFGK0I7TUFHL0IsY0FIK0IsRUFBQTtFZm00Q2pDLDBFQUEwRTtFZTV4Q3RFO0lBMUdKLGVBQWUsRUFBQTtJZnk0Q2IsMEVBQTBFO0lldjRDNUU7TUFHRSxtQkFGK0I7TUFHL0Isb0JBSCtCLEVBQUE7RWYwNENqQywwRUFBMEU7RWVueUN0RTtJQTFHSixlQUFlLEVBQUE7SWZnNUNiLDBFQUEwRTtJZTk0QzVFO01BR0UsYUFGK0I7TUFHL0IsY0FIK0IsRUFBQTtFZmk1Q2pDLDBFQUEwRTtFZTF5Q3RFO0lBMUdKLGVBQWUsRUFBQTtJZnU1Q2IsMEVBQTBFO0llcjVDNUU7TUFHRSxhQUYrQjtNQUcvQixjQUgrQixFQUFBO0VmdzVDakMsMEVBQTBFO0VlanpDdEU7SUExR0osZUFBZSxFQUFBO0lmODVDYiwwRUFBMEU7SWU1NUM1RTtNQUdFLG1CQUYrQjtNQUcvQixvQkFIK0IsRUFBQTtFZis1Q2pDLDBFQUEwRTtFZXh6Q3RFO0lBMUdKLGVBQWUsRUFBQTtJZnE2Q2IsMEVBQTBFO0llbjZDNUU7TUFHRSxtQkFGK0I7TUFHL0Isb0JBSCtCLEVBQUE7RWZzNkNqQywwRUFBMEU7RWUvekN0RTtJQTFHSixlQUFlLEVBQUE7SWY0NkNiLDBFQUEwRTtJZTE2QzVFO01BR0UsZUFGK0I7TUFHL0IsZ0JBSCtCLEVBQUEsRUFJaEM7O0FKNEVLO0VYKzFDTiwwRUFBMEU7RWVoMENwRTtJQUNFLGFBNUpNLEVBQUEsRUE2SlA7O0FmazBDVCwwRUFBMEU7QWU3ekNsRTtFQUVJLGNHL0V3RCxFQUFBO0VQdUM1RDtJWHUyQ0osMEVBQTBFO0llajBDdEU7TUFLTSxhQXZLRSxFQUFBLEVBeUtMOztBSjdDSDtFWDQyQ04sMEVBQTBFO0VlenpDeEU7SUVyTkEsZ0JUNkVTO0lTNUVULGVUNEVTLEVBQUE7RVJxOENYLDBFQUEwRTtFZXp6Q3hFO0lFek5BLHNCQUZ1QztJQUd2QyxxQkFIdUMsRUFBQSxFRjROYzs7QUp4RGpEO0VYczNDTiwwRUFBMEU7RWU5MkN0RTtJQUNFLGtCR2hENEQ7SUhpRDVELG1CR2pENEQsRUFBQTtFbEJpNkNsRSwwRUFBMEU7RWUxMkN0RTtJSXRJSixlRCtFa0UsRUFBQTtFbEJvNkNsRSwwRUFBMEU7RWVyM0N0RTtJQUNFLG1CR2hENEQ7SUhpRDVELG9CR2pENEQsRUFBQTtFbEJ3NkNsRSwwRUFBMEU7RWVqM0N0RTtJSXRJSixxQkQrRWtFLEVBQUE7RWxCMjZDbEUsMEVBQTBFO0VlNTNDdEU7SUFDRSxhR2hENEQ7SUhpRDVELGNHakQ0RCxFQUFBO0VsQis2Q2xFLDBFQUEwRTtFZXgzQ3RFO0lJdElKLHNCRCtFa0UsRUFBQTtFbEJrN0NsRSwwRUFBMEU7RWVuNEN0RTtJQUNFLG1CR2hENEQ7SUhpRDVELG9CR2pENEQsRUFBQTtFbEJzN0NsRSwwRUFBMEU7RWUvM0N0RTtJSXRJSixnQkQrRWtFLEVBQUE7RWxCeTdDbEUsMEVBQTBFO0VlMTRDdEU7SUFDRSxtQkdoRDREO0lIaUQ1RCxvQkdqRDRELEVBQUE7RWxCNjdDbEUsMEVBQTBFO0VldDRDdEU7SUl0SUosc0JEK0VrRSxFQUFBO0VsQmc4Q2xFLDBFQUEwRTtFZWo1Q3RFO0lBQ0UsYUdoRDREO0lIaUQ1RCxjR2pENEQsRUFBQTtFbEJvOENsRSwwRUFBMEU7RWU3NEN0RTtJSXRJSixzQkQrRWtFLEVBQUE7RWxCdThDbEUsMEVBQTBFO0VleDVDdEU7SUFDRSxtQkdoRDREO0lIaUQ1RCxvQkdqRDRELEVBQUE7RWxCMjhDbEUsMEVBQTBFO0VlcDVDdEU7SUl0SUosZ0JEK0VrRSxFQUFBO0VsQjg4Q2xFLDBFQUEwRTtFZS81Q3RFO0lBQ0UsbUJHaEQ0RDtJSGlENUQs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OztBckI2dURwQiwwRUFBMEU7QW9CdnFEdEU7RUNuQkYsOEJBbEQwQixFQUFBOztBckJndkQ1QiwwRUFBMEU7QW9CM3FEdEU7RUNuQkYsNkJBakR3QixFQUFBOztBckJtdkQxQiwwRUFBMEU7QW9CeHFEdEU7RUMxQkYsMkJBckR5RCxFQUFBOztBckIydkQzRCwwRUFBMEU7QW9CNXFEdEU7RUMxQkYseUJBcEQwRCxFQUFBOztBckI4dkQ1RCwwRUFBMEU7QW9CaHJEdEU7RUMxQkYsdUJBbkRrQixFQUFBOztBckJpd0RwQiwwRUFBMEU7QW9CenFEdEU7RUNwQ0YsdUJBMUNpQixFQUFBOztBckIydkRuQiwwRUFBMEU7QW9CenFEdEU7RUN4QkYsc0JBMURpQixFQUFBOztBckIrdkRuQiwwRUFBMEU7QW9CanJEdEU7RUNwQ0YscUJBekNrQixFQUFBOztBckJrd0RwQiwwRUFBMEU7QW9CanJEdEU7RUN4QkYsb0JBekRrQixFQUFBOztBckJzd0RwQiwwRUFBMEU7QW9CenJEdEU7RUNwQ0YsbUJBeENnQixFQUFBOztBckJ5d0RsQiwwRUFBMEU7QW9CenJEdEU7RUN4QkYsa0JBeERnQixFQUFBOztBckI2d0RsQiwwRUFBMEU7QW9CanNEdEU7RUNwQ0Ysb0JBdkNrQixFQUFBOztBckJneERwQiwwRUFBMEU7QW9CanNEdEU7RUN4QkYsbUJBdkRrQixFQUFBOztBckJveERwQiwyRUFBMkU7QW9CL3JEekU7RUMvQ0EsdUJBbkRrQjtFQW9EbEIsbUJBeENnQjtFRHdGZCxxQkFBcUIsRUFBQTs7QXBCbXNEekIsMkVBQTJFO0FvQjdyRHJFO0VDaENKLFFEK0JnQixFQUFBOztBcEJrc0RsQiwyRUFBMkU7QW9CanNEckU7RUNoQ0osUUQrQmdCLEVBQUE7O0FwQnNzRGxCLDJFQUEyRTtBb0Jyc0RyRTtFQ2hDSixRRCtCZ0IsRUFBQTs7QXBCMHNEbEIsMkVBQTJFO0FvQnpzRHJFO0VDaENKLFFEK0JnQixFQUFBOztBcEI4c0RsQiwyRUFBMkU7QW9CN3NEckU7RUNoQ0osUUQrQmdCLEVBQUE7O0FwQmt0RGxCLDJFQUEyRTtBb0JqdERyRTtFQ2hDSixRRCtCZ0IsRUFBQTs7QVRzRVY7RVhpcEROLDJFQUEyRTtFb0J0dER2RTtJQ2hDSixRRCtCZ0IsRUFBQTtFcEIwdERoQiwyRUFBMkU7RW9CenREdkU7SUNoQ0osUUQrQmdCLEVBQUE7RXBCNnREaEIsMkVBQTJFO0VvQjV0RHZFO0lDaENKLFFEK0JnQixFQUFBO0VwQmd1RGhCLDJFQUEyRTtFb0IvdER2RTtJQ2hDSixRRCtCZ0IsRUFBQTtFcEJtdURoQiwyRUFBMkU7RW9CbHVEdkU7SUNoQ0osUUQrQmdCLEVBQUE7RXBCc3VEaEIsMkVBQTJFO0VvQnJ1RHZFO0lDaENKLFFEK0JnQixFQUFBLEVBR1g7O0FUbUVDO0VYcXFETiwyRUFBMkU7RW9CMXVEdkU7SUNoQ0osUUQrQmdCLEVBQUE7RXBCOHVEaEIsMkVBQTJFO0VvQjd1RHZFO0lDaENKLFFEK0JnQixFQUFBO0VwQml2RGhCLDJFQUEyRTtFb0JodkR2RTtJQ2hDSixRRCtCZ0IsRUFBQTtFcEJvdkRoQiwyRUFBMkU7RW9CbnZEdkU7SUNoQ0osUUQrQmdCLEVBQUE7RXBCdXZEaEIsMkVBQTJFO0VvQnR2RHZFO0lDaENKLFFEK0JnQixFQUFBO0VwQjB2RGhCLDJFQUEyRTtFb0J6dkR2RTtJQ2hDSixRRCtCZ0IsRUFBQSxFQUdYOztBVHdFQztFWG9yRE4sMkVBQTJFO0VvQjl2RHZFO0lDaENKLFFEK0JnQixFQUFBO0VwQmt3RGhCLDJFQUEyRTtFb0Jqd0R2RTtJQ2hDSixRRCtCZ0IsRUFBQTtFcEJxd0RoQiwyRUFBMkU7RW9CcHdEdkU7SUNoQ0osUUQrQmdCLEVBQUE7RXBCd3dEaEIsMkVBQTJFO0VvQnZ3RHZFO0lDaENKLFFEK0JnQixFQUFBO0VwQjJ3RGhCLDJFQUEyRTtFb0Ixd0R2RTtJQ2hDSixRRCtCZ0IsRUFBQTtFcEI4d0RoQiwyRUFBMkU7RW9CN3dEdkU7SUNoQ0osUUQrQmdCLEVBQUEsRUFHWDs7QVR3RUM7RVh3c0ROLDJFQUEyRTtFb0JseER2RTtJQ2hDSixRRCtCZ0IsRUFBQTtFcEJzeERoQiwyRUFBMkU7RW9CcnhEdkU7SUNoQ0osUUQrQmdCLEVBQUE7RXBCeXhEaEIsMkVBQTJFO0VvQnh4RHZFO0lDaENKLFFEK0JnQixFQUFBO0VwQjR4RGhCLDJFQUEyRTtFb0IzeER2RTtJQ2hDSixRRCtCZ0IsRUFBQTtFcEIreERoQiwyRUFBMkU7RW9COXhEdkU7SUNoQ0osUUQrQmdCLEVBQUE7RXBCa3lEaEIsMkVBQTJFO0VvQmp5RHZFO0lDaENKLFFEK0JnQixFQUFBLEVBR1g7O0FwQm15RFAsMEVBQTBFO0FvQmw0RHhFO0VDWUEsYUFBYSxFQUFBOztBckIwM0RmLDBFQUEwRTtBb0JsNER4RTtFQUNFLGNBQWMsRUFBQTs7QXBCcTREbEIsMEVBQTBFO0FvQmw0RHhFO0VBQ0UsY0FBYyxFQUFBOztBcEJxNERsQiwwRUFBMEU7QW9CbDREeEU7RUFDRSxjQUFjLEVBQUE7O0FwQnE0RGxCLDBFQUEwRTtBb0JqNER0RTtFQ3NERixtQkFuRVUsRUFBQTs7QXJCazVEWiwwRUFBMEU7QW9CcjREdEU7RUNzREYsMkJBbEUwQixFQUFBOztBckJxNUQ1QiwwRUFBMEU7QW9CejREdEU7RUNzREYsc0JBakVnQixFQUFBOztBckJ3NURsQiwwRUFBMEU7QW9CNzREdEU7RUNzREYsOEJBaEVnQyxFQUFBOztBVjJKMUI7RVhpd0ROLDBFQUEwRTtFb0J4NERsRTtJQ2ZSLGFBQWEsRUFBQTtFckIwNURiLDBFQUEwRTtFb0J2NERsRTtJQUNFLGNBQWMsRUFBQTtFcEJ5NER4QiwwRUFBMEU7RW9CdDREbEU7SUFDRSxjQUFjLEVBQUE7RXBCdzREeEIsMEVBQTBFO0VvQnI0RGxFO0lBQ0UsY0FBYyxFQUFBO0VwQnU0RHhCLDBFQUEwRTtFb0JuNERoRTtJQzJCVixtQkFuRVUsRUFBQTtFckI4NkRWLDBFQUEwRTtFb0J0NERoRTtJQzJCViwyQkFsRTBCLEVBQUE7RXJCZzdEMUIsMEVBQTBFO0VvQno0RGhFO0lDMkJWLHNCQWpFZ0IsRUFBQTtFckJrN0RoQiwwRUFBMEU7RW9CNTREaEU7SUMyQlYsOEJBaEVnQyxFQUFBLEVEdUNyQjs7QVRvSEw7RVgyeEROLDBFQUEwRTtFb0JsNkRsRTtJQ2ZSLGFBQWEsRUFBQTtFckJvN0RiLDBFQUEwRTtFb0JqNkRsRTtJQUNFLGNBQWMsRUFBQTtFcEJtNkR4QiwwRUFBMEU7RW9CaDZEbEU7SUFDRSxjQUFjLEVBQUE7RXBCazZEeEIsMEVBQTBFO0VvQi81RGxFO0lBQ0UsY0FBYyxFQUFBO0VwQmk2RHhCLDBFQUEwRTtFb0I3NURoRTtJQzJCVixtQkFuRVUsRUFBQTtFckJ3OERWLDBFQUEwRTtFb0JoNkRoRTtJQzJCViwyQkFsRTBCLEVBQUE7RXJCMDhEMUIsMEVBQTBFO0VvQm42RGhFO0lDMkJWLHNCQWpFZ0IsRUFBQTtFckI0OERoQiwwRUFBMEU7RW9CdDZEaEU7SUMyQlYsOEJBaEVnQyxFQUFBLEVEdUNyQjs7QVR5SEw7RVhnekROLDBFQUEwRTtFb0I1N0RsRTtJQ2ZSLGFBQWEsRUFBQTtFckI4OERiLDBFQUEwRTtFb0IzN0RsRTtJQUNFLGNBQWMsRUFBQTtFcEI2N0R4QiwwRUFBMEU7RW9CMTdEbEU7SUFDRSxjQUFjLEVBQUE7RXBCNDdEeEIsMEVBQTBFO0VvQno3RGxFO0lBQ0UsY0FBYyxFQUFBO0VwQjI3RHhCLDBFQUEwRTtFb0J2N0RoRTtJQzJCVixtQkFuRVUsRUFBQTtFckJrK0RWLDBFQUEwRTtFb0IxN0RoRTtJQzJCViwyQkFsRTBCLEVBQUE7RXJCbytEMUIsMEVBQTBFO0VvQjc3RGhFO0lDMkJWLHNCQWpFZ0IsRUFBQTtFckJzK0RoQiwwRUFBMEU7RW9CaDhEaEU7SUMyQlYsOEJBaEVnQyxFQUFBLEVEdUNyQjs7QVR5SEw7RVgwMEROLDBFQUEwRTtFb0J0OURsRTtJQ2ZSLGFBQWEsRUFBQTtFckJ3K0RiLDBFQUEwRTtFb0JyOURsRTtJQUNFLGNBQWMsRUFBQTtFcEJ1OUR4QiwwRUFBMEU7RW9CcDlEbEU7SUFDRSxjQUFjLEVBQUE7RXBCczlEeEIsMEVBQTBFO0VvQm45RGxFO0lBQ0UsY0FBYyxFQUFBO0VwQnE5RHhCLDBFQUEwRTtFb0JqOURoRTtJQzJCVixtQkFuRVUsRUFBQTtFckI0L0RWLDBFQUEwRTtFb0JwOURo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REc7SVh1cUdKLGtFQUFrRTtJZ0NwdkdsRTtNQVdRLG1CQUF5QixFQUFBLEVBYWhDO0VoQyt0R0gsa0VBQWtFO0VnQ3Z2Ry9EO0lBaUJPLHFCQUFhO1lBQWIsYUFBYTtJQUNiLGtCQUFrQixFQUFBO0loQ3l1RzFCLGtFQUFrRTtJZ0MzdkdqRTtNQXFCVyxnQkFBZ0IsRUFBQTs7QUMvSGhDOzs7Ozs7Ozs7RWpDazNHRTtBRWwzR0Y7Ozs7Ozs7Ozs7O0VGODNHRTtBRWozR0Y7O0VGbzNHRTtBR2o0R0Y7Ozs7Ozs7Ozs7O0VINjRHRTtBR3AyR0Y7OytFSHUyRytFO0FHbjJHL0UsYUFBQTtBQVdBLGFBQUE7QUF5Q0E7OytFSG96RytFO0FHaHpHL0UsWUFBQTtBQUtBLFlBQUE7QUMxR0E7Ozs7Ozs7Ozs7O0VKbTZHRTtBSXQ1R0Y7Ozs7OztFSjY1R0U7QUk5NEdGOzs7RUprNUdFO0FJeDRHRjs7O0VKNDRHRTtBSWo0R0Y7O0VKbzRHRTtBQUNGLGlFQUFpRTtBaUNuNkdoRTtFQUNDLG1CekJ5RThEO0V5QnhFOUQsY0FBYztFQUNkLG1CQUFtQixFQUFBOztBakNzNkdyQixpRUFBaUU7QWlDbjZHaEU7RUFDQyxXQUFXO0VBRVgsNENBQTRDO0VBQzVDLCtCQUErQjtFQUMvQixrQzlCNkJ3QztFOEI1QnhDLGVBQWU7RUFDZixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLGlCQUFpQjtFQUFFLFNBQUE7RUFDbkIsc0JBQXNCO0VBQ3RCLG1CQUFtQjtFQUVuQiw2QkFBNkI7RUFDN0Isb0JBQW9CO0VBQ3BCLG1CQUFtQixFQUFBOztBakNxNkdyQixpRUFBaUU7QWlDbDZHaEU7RUFDQyxlQUFlO0VBQ2YsaUJBQWlCLEVBQUE7O0FqQ3E2R25CLGlFQUFpRTtBaUNsNkdoRTtFQUNDLGFBQWEsRUFBQTs7QWhDNkRmOzsrRUQwMkcrRSIsImZpbGUiOiJzY3JlZW4uY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGNoYXJzZXQgXCJVVEYtOFwiO1xuLyoqXG4gKiBzY3JlZW4uc2Nzc1xuICpcbiAqIFlvdXIgZGVzY3JpcHRpb25cbiAqXG4gKiBDb3B5cmlnaHQgU0hPUlQgQ1VUUyBHbWJIXG4gKiBodHRwOi8vd3d3LnNob3J0LWN1dHMuZGVcbiAqXG4gKiBEYXRlOiAyMDE2LTEyLTMxXG4gKiBBdXRob3I6IEthaSBTZWxpZ2VyIChzZWxpZ2VyQHNob3J0LWN1dHMuZGUpXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29yZSBmdW5jdGlvbnMsIHZhcmlhYmxlcyBhbmQgbWl4aW5zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBmdW5jdGlvbnMuc2Nzc1xuICpcbiAqIFlvdXIgZGVzY3JpcHRpb25cbiAqXG4gKiBDb3B5cmlnaHQgU0hPUlQgQ1VUUyBHbWJIXG4gKiBodHRwOi8vd3d3LnNob3J0LWN1dHMuZGVcbiAqXG4gKiBEYXRlOiAyMDE2LTEyLTMxXG4gKiBBdXRob3I6IEthaSBTZWxpZ2VyIChoZWxsb0B5ZXNqb2FyLmNvbSlcbiAqIE1JVCBMaWNlbnNlIChNSVQpXG4gKi9cbi8qKlxuICogUmV0dXJuIHNwZWNpZmljIGNvbG9yXG4gKi9cbi8qKlxuICogdmFyaWFibGVzLnNjc3NcbiAqXG4gKiBZb3VyIGRlc2NyaXB0aW9uXG4gKlxuICogQ29weXJpZ2h0IFNIT1JUIENVVFMgR21iSFxuICogaHR0cDovL3d3dy5zaG9ydC1jdXRzLmRlXG4gKlxuICogRGF0ZTogMjAxNi0xMi0zMVxuICogQXV0aG9yOiBLYWkgU2VsaWdlciAoaGVsbG9AeWVzam9hci5jb20pXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29sb3JzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPEBjb2xvcnMgKi9cbi8qIGNvbG9yc0A+ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSWNvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA8QGljb25zICovXG4vKiBpY29uc0A+ICovXG4vKipcbiAqIG1peGlucy5zY3NzXG4gKlxuICogWW91ciBkZXNjcmlwdGlvblxuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHA6Ly93d3cuc2hvcnQtY3V0cy5kZVxuICpcbiAqIERhdGU6IDIwMTYtMTItMzFcbiAqIEF1dGhvcjogS2FpIFNlbGlnZXIgKGhlbGxvQHllc2pvYXIuY29tKVxuICogTUlUIExpY2Vuc2UgKE1JVClcbiAqL1xuLyoqXG4gKiBNaXhpbiBmb3Igc3R5bGluZyBpbnB1dCBwbGFjZWhvbGRlci5cbiAqXG4gKiBAaW5jbHVkZSBwbGFjZWhvbGRlcigpe1xuICogICBjb250ZW50IGdvZXMgaGVyZVxuICogfVxuICovXG4vKipcbiAqXG4gKlxuICovXG4vKipcbiAqXG4gKlxuICovXG4vKipcbiAqXG4gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBSZXNldCBhbmQgZGVwZW5kZW5jaWVzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBGb3VuZGF0aW9uIGZvciBTaXRlc1xuICogVmVyc2lvbiA2LjcuNVxuICogaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuICogTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG4gKi9cbi8qISBub3JtYWxpemUuY3NzIHY4LjAuMCB8IE1JVCBMaWNlbnNlIHwgZ2l0aHViLmNvbS9uZWNvbGFzL25vcm1hbGl6ZS5jc3MgKi9cbi8qIGxpbmUgMTIsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyAqL1xuaHRtbCB7XG4gIGxpbmUtaGVpZ2h0OiAxLjE1O1xuICAtd2Via2l0LXRleHQtc2l6ZS1hZGp1c3Q6IDEwMCU7IH1cblxuLyogbGluZSAyMiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzICovXG5ib2R5IHtcbiAgbWFyZ2luOiAwOyB9XG5cbi8qIGxpbmUgMjksIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyAqL1xuaDEge1xuICBmb250LXNpemU6IDJlbTtcbiAgbWFyZ2luOiAwLjY3ZW0gMDsgfVxuXG4vKiBsaW5lIDQwLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy92ZW5kb3Ivbm9ybWFsaXplLnNjc3MgKi9cbmhyIHtcbiAgYm94LXNpemluZzogY29udGVudC1ib3g7XG4gIGhlaWdodDogMDtcbiAgb3ZlcmZsb3c6IHZpc2libGU7IH1cblxuLyogbGluZSA0OSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzICovXG5wcmUge1xuICBmb250LWZhbWlseTogbW9ub3NwYWNlLCBtb25vc3BhY2U7XG4gIGZvbnQtc2l6ZTogMWVtOyB9XG5cbi8qIGxpbmUgNTksIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyAqL1xuYSB7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OyB9XG5cbi8qIGxpbmUgNjYsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyAqL1xuYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAwO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IH1cblxuLyogbGluZSA3MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzICovXG5iLFxuc3Ryb25nIHtcbiAgZm9udC13ZWlnaHQ6IGJvbGRlcjsgfVxuXG4vKiBsaW5lIDgxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy92ZW5kb3Ivbm9ybWFsaXplLnNjc3MgKi9cbmNvZGUsXG5rYmQsXG5zYW1wIHtcbiAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlO1xuICBmb250LXNpemU6IDFlbTsgfVxuXG4vKiBsaW5lIDkwLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy92ZW5kb3Ivbm9ybWFsaXplLnNjc3MgKi9cbnNtYWxsIHtcbiAgZm9udC1zaXplOiA4MCU7IH1cblxuLyogbGluZSA5NywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzICovXG5zdWIsXG5zdXAge1xuICBmb250LXNpemU6IDc1JTtcbiAgbGluZS1oZWlnaHQ6IDA7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9XG5cbi8qIGxpbmUgMTA1LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy92ZW5kb3Ivbm9ybWFsaXplLnNjc3MgKi9cbnN1YiB7XG4gIGJvdHRvbTogLTAuMjVlbTsgfVxuXG4vKiBsaW5lIDEwOSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzICovXG5zdXAge1xuICB0b3A6IC0wLjVlbTsgfVxuXG4vKiBsaW5lIDExOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzICovXG5pbWcge1xuICBib3JkZXItc3R5bGU6IG5vbmU7IH1cblxuLyogbGluZSAxMjgsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyAqL1xuYnV0dG9uLFxuaW5wdXQsXG5vcHRncm91cCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgbGluZS1oZWlnaHQ6IDEuMTU7XG4gIG1hcmdpbjogMDsgfVxuXG4vKiBsaW5lIDE0MiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzICovXG5idXR0b24sXG5pbnB1dCB7XG4gIG92ZXJmbG93OiB2aXNpYmxlOyB9XG5cbi8qIGxpbmUgMTUwLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy92ZW5kb3Ivbm9ybWFsaXplLnNjc3MgKi9cbmJ1dHRvbixcbnNlbGVjdCB7XG4gIHRleHQtdHJhbnNmb3JtOiBub25lOyB9XG5cbi8qIGxpbmUgMTU3LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy92ZW5kb3Ivbm9ybWFsaXplLnNjc3MgKi9cbmJ1dHRvbixcblt0eXBlPVwiYnV0dG9uXCJdLFxuW3R5cGU9XCJyZXNldFwiXSxcblt0eXBlPVwic3VibWl0XCJdIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IH1cblxuLyogbGluZSAxNjYsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyAqL1xuYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJidXR0b25cIl06Oi1tb3otZm9jdXMtaW5uZXIsXG5bdHlwZT1cInJlc2V0XCJdOjotbW96LWZvY3VzLWlubmVyLFxuW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICBib3JkZXItc3R5bGU6IG5vbmU7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyogbGluZSAxNzYsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyAqL1xuYnV0dG9uOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG5bdHlwZT1cInJlc2V0XCJdOi1tb3otZm9jdXNyaW5nLFxuW3R5cGU9XCJzdWJtaXRcIl06LW1vei1mb2N1c3Jpbmcge1xuICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7IH1cblxuLyogbGluZSAxODUsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyAqL1xuZmllbGRzZXQge1xuICBwYWRkaW5nOiAwLjM1ZW0gMC43NWVtIDAuNjI1ZW07IH1cblxuLyogbGluZSAxOTQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyAqL1xubGVnZW5kIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIGRpc3BsYXk6IHRhYmxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDA7XG4gIHdoaXRlLXNwYWNlOiBub3JtYWw7IH1cblxuLyogbGluZSAyMDUsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyAqL1xucHJvZ3Jlc3Mge1xuICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7IH1cblxuLyogbGluZSAyMTEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyAqL1xudGV4dGFyZWEge1xuICBvdmVyZmxvdzogYXV0bzsgfVxuXG4vKiBsaW5lIDIxOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzICovXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyogbGluZSAyMjYsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyAqL1xuW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtaW5uZXItc3Bpbi1idXR0b24sXG5bdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1vdXRlci1zcGluLWJ1dHRvbiB7XG4gIGhlaWdodDogYXV0bzsgfVxuXG4vKiBsaW5lIDIzNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzICovXG5bdHlwZT1cInNlYXJjaFwiXSB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkO1xuICBvdXRsaW5lLW9mZnNldDogLTJweDsgfVxuXG4vKiBsaW5lIDI0MSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzICovXG5bdHlwZT1cInNlYXJjaFwiXTo6LXdlYmtpdC1zZWFyY2gtZGVjb3JhdGlvbiB7XG4gIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTsgfVxuXG4vKiBsaW5lIDI0OCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzICovXG46Oi13ZWJraXQtZmlsZS11cGxvYWQtYnV0dG9uIHtcbiAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247XG4gIGZvbnQ6IGluaGVyaXQ7IH1cblxuLyogbGluZSAyNTgsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyAqL1xuZGV0YWlscyB7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIGxpbmUgMjY0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy92ZW5kb3Ivbm9ybWFsaXplLnNjc3MgKi9cbnN1bW1hcnkge1xuICBkaXNwbGF5OiBsaXN0LWl0ZW07IH1cblxuLyogbGluZSAyNzMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyAqL1xudGVtcGxhdGUge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIGxpbmUgMjc5LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy92ZW5kb3Ivbm9ybWFsaXplLnNjc3MgKi9cbltoaWRkZW5dIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBsaW5lIDI4OCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdmVuZG9yL25vcm1hbGl6ZS5zY3NzICovXG5bZGF0YS13aGF0aW50ZW50PVwibW91c2VcIl0gKiwgW2RhdGEtd2hhdGludGVudD1cIm1vdXNlXCJdICo6Zm9jdXMsXG5bZGF0YS13aGF0aW50ZW50PVwidG91Y2hcIl0gKixcbltkYXRhLXdoYXRpbnRlbnQ9XCJ0b3VjaFwiXSAqOmZvY3VzLFxuW2RhdGEtd2hhdGlucHV0PVwibW91c2VcIl0gKixcbltkYXRhLXdoYXRpbnB1dD1cIm1vdXNlXCJdICo6Zm9jdXMsXG5bZGF0YS13aGF0aW5wdXQ9XCJ0b3VjaFwiXSAqLFxuW2RhdGEtd2hhdGlucHV0PVwidG91Y2hcIl0gKjpmb2N1cyB7XG4gIG91dGxpbmU6IG5vbmU7IH1cblxuLyogbGluZSAyOTQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3ZlbmRvci9ub3JtYWxpemUuc2NzcyAqL1xuW2RyYWdnYWJsZT1mYWxzZV0ge1xuICAtd2Via2l0LXRvdWNoLWNhbGxvdXQ6IG5vbmU7XG4gIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7IH1cblxuLyogbGluZSAxNDQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL19nbG9iYWwuc2NzcyAqL1xuLmZvdW5kYXRpb24tbXEge1xuICBmb250LWZhbWlseTogXCJzbWFsbD0wZW0mbWVkaXVtPTQwZW0mbGFyZ2U9NjRlbSZ4bGFyZ2U9NzVlbSZ4eGxhcmdlPTkwZW0meHM9MGVtJnNtPTMwZW0mbWQ9NDhlbSZsZz02MmVtJnhsPTc1ZW1cIjsgfVxuXG4vKiBsaW5lIDE0OCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzICovXG5odG1sIHtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgZm9udC1zaXplOiAxMDAlOyB9XG5cbi8qIGxpbmUgMTU0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MgKi9cbiosXG4qOjpiZWZvcmUsXG4qOjphZnRlciB7XG4gIGJveC1zaXppbmc6IGluaGVyaXQ7IH1cblxuLyogbGluZSAxNjEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL19nbG9iYWwuc2NzcyAqL1xuYm9keSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgYmFja2dyb3VuZDogI2ZlZmVmZTtcbiAgZm9udC1mYW1pbHk6IFwiYWRlbHBoaS1wZS12YXJpYWJsZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogMS41O1xuICBjb2xvcjogIzAwMDtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7IH1cblxuLyogbGluZSAxODYsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL19nbG9iYWwuc2NzcyAqL1xuaW1nIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogYXV0bztcbiAgLW1zLWludGVycG9sYXRpb24tbW9kZTogYmljdWJpYzsgfVxuXG4vKiBsaW5lIDE5OCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzICovXG50ZXh0YXJlYSB7XG4gIGhlaWdodDogYXV0bztcbiAgbWluLWhlaWdodDogNTBweDtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG4vKiBsaW5lIDIwNSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzICovXG5zZWxlY3Qge1xuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICB3aWR0aDogMTAwJTtcbiAgYm9yZGVyLXJhZGl1czogMDsgfVxuXG4vKiBsaW5lIDIxNSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzICovXG4ubWFwX2NhbnZhcyBpbWcsXG4ubWFwX2NhbnZhcyBlbWJlZCxcbi5tYXBfY2FudmFzIG9iamVjdCxcbi5tcWEtZGlzcGxheSBpbWcsXG4ubXFhLWRpc3BsYXkgZW1iZWQsXG4ubXFhLWRpc3BsYXkgb2JqZWN0IHtcbiAgbWF4LXdpZHRoOiBub25lICFpbXBvcnRhbnQ7IH1cblxuLyogbGluZSAyMjMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL19nbG9iYWwuc2NzcyAqL1xuYnV0dG9uIHtcbiAgcGFkZGluZzogMDtcbiAgYXBwZWFyYW5jZTogbm9uZTtcbiAgYm9yZGVyOiAwO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIGN1cnNvcjogYXV0bzsgfVxuICAvKiBsaW5lIDIwMiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdXRpbC9fbWl4aW5zLnNjc3MgKi9cbiAgW2RhdGEtd2hhdGlucHV0PSdtb3VzZSddIGJ1dHRvbiB7XG4gICAgb3V0bGluZTogMDsgfVxuXG4vKiBsaW5lIDIzNSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzICovXG5wcmUge1xuICBvdmVyZmxvdzogYXV0bztcbiAgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6IHRvdWNoOyB9XG5cbi8qIGxpbmUgMjQxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MgKi9cbmJ1dHRvbixcbmlucHV0LFxub3B0Z3JvdXAsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0OyB9XG5cbi8qIGxpbmUgMjUwLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9fZ2xvYmFsLnNjc3MgKi9cbi5pcy12aXNpYmxlIHtcbiAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuXG4vKiBsaW5lIDI1NCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvX2dsb2JhbC5zY3NzICovXG4uaXMtaGlkZGVuIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi8qIGxpbmUgMjI4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MgKi9cbmRpdixcbmRsLFxuZHQsXG5kZCxcbnVsLFxub2wsXG5saSxcbmgxLFxuaDIsXG5oMyxcbmg0LFxuaDUsXG5oNixcbnByZSxcbmZvcm0sXG5wLFxuYmxvY2txdW90ZSxcbnRoLFxudGQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7IH1cblxuLyogbGluZSAyNTIsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyAqL1xucCB7XG4gIG1hcmdpbi1ib3R0b206IDFyZW07XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsgfVxuXG4vKiBsaW5lIDI2MSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzICovXG5lbSxcbmkge1xuICBmb250LXN0eWxlOiBpdGFsaWM7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0OyB9XG5cbi8qIGxpbmUgMjY4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MgKi9cbnN0cm9uZyxcbmIge1xuICBmb250LXdlaWdodDogYm9sZDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuLyogbGluZSAyNzUsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyAqL1xuc21hbGwge1xuICBmb250LXNpemU6IDYwJTtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7IH1cblxuLyogbGluZSAyODEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyAqL1xuaDEsIC5oMSxcbmgyLCAuaDIsXG5oMywgLmgzLFxuaDQsIC5oNCxcbmg1LCAuaDUsXG5oNiwgLmg2IHtcbiAgZm9udC1mYW1pbHk6IFwiaXZ5bW9kZVwiLCBzYW5zLXNlcmlmO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGNvbG9yOiBpbmhlcml0O1xuICB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyB9XG4gIC8qIGxpbmUgMjkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MgKi9cbiAgaDEgc21hbGwsIC5oMSBzbWFsbCxcbiAgaDIgc21hbGwsIC5oMiBzbWFsbCxcbiAgaDMgc21hbGwsIC5oMyBzbWFsbCxcbiAgaDQgc21hbGwsIC5oNCBzbWFsbCxcbiAgaDUgc21hbGwsIC5oNSBzbWFsbCxcbiAgaDYgc21hbGwsIC5oNiBzbWFsbCB7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgY29sb3I6ICMwMDA7IH1cblxuLyogbGluZSAzMDQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyAqL1xuaDEsIC5oMSB7XG4gIGZvbnQtc2l6ZTogMi44MTI1cmVtO1xuICBsaW5lLWhlaWdodDogMS4xMTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07IH1cblxuLyogbGluZSAzMDQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyAqL1xuaDIsIC5oMiB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTE7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDEuODc1cmVtOyB9XG5cbi8qIGxpbmUgMzA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MgKi9cbmgzLCAuaDMge1xuICBmb250LXNpemU6IDEuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjExO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTsgfVxuXG4vKiBsaW5lIDMwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzICovXG5oNCwgLmg0IHtcbiAgZm9udC1zaXplOiAxLjc1cmVtO1xuICBsaW5lLWhlaWdodDogMS4xMTtcbiAgbWFyZ2luLXRvcDogMDtcbiAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07IH1cblxuLyogbGluZSAzMDQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyAqL1xuaDUsIC5oNSB7XG4gIGZvbnQtc2l6ZTogMS43NXJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMTE7XG4gIG1hcmdpbi10b3A6IDA7XG4gIG1hcmdpbi1ib3R0b206IDEuODc1cmVtOyB9XG5cbi8qIGxpbmUgMzA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MgKi9cbmg2LCAuaDYge1xuICBmb250LXNpemU6IDEuNzVyZW07XG4gIGxpbmUtaGVpZ2h0OiAxLjExO1xuICBtYXJnaW4tdG9wOiAwO1xuICBtYXJnaW4tYm90dG9tOiAxLjg3NXJlbTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAvKiBsaW5lIDMwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzICovXG4gIGgxLCAuaDEge1xuICAgIGZvbnQtc2l6ZTogMy43NXJlbTsgfVxuICAvKiBsaW5lIDMwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzICovXG4gIGgyLCAuaDIge1xuICAgIGZvbnQtc2l6ZTogMi4yNXJlbTsgfVxuICAvKiBsaW5lIDMwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzICovXG4gIGgzLCAuaDMge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTsgfVxuICAvKiBsaW5lIDMwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzICovXG4gIGg0LCAuaDQge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTsgfVxuICAvKiBsaW5lIDMwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzICovXG4gIGg1LCAuaDUge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTsgfVxuICAvKiBsaW5lIDMwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzICovXG4gIGg2LCAuaDYge1xuICAgIGZvbnQtc2l6ZTogMS43NXJlbTsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLyogbGluZSAzMDQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyAqL1xuICBoMSwgLmgxIHtcbiAgICBmb250LXNpemU6IDVyZW07IH1cbiAgLyogbGluZSAzMDQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyAqL1xuICBoMiwgLmgyIHtcbiAgICBmb250LXNpemU6IDIuODEyNXJlbTsgfVxuICAvKiBsaW5lIDMwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzICovXG4gIGgzLCAuaDMge1xuICAgIGZvbnQtc2l6ZTogMi4zNzVyZW07IH1cbiAgLyogbGluZSAzMDQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyAqL1xuICBoNCwgLmg0IHtcbiAgICBmb250LXNpemU6IDIuMzc1cmVtOyB9XG4gIC8qIGxpbmUgMzA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MgKi9cbiAgaDUsIC5oNSB7XG4gICAgZm9udC1zaXplOiAyLjM3NXJlbTsgfVxuICAvKiBsaW5lIDMwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzICovXG4gIGg2LCAuaDYge1xuICAgIGZvbnQtc2l6ZTogMi4zNzVyZW07IH0gfVxuXG4vKiBsaW5lIDM0MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzICovXG5hIHtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIGNvbG9yOiAjMTc3OWJhO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICAvKiBsaW5lIDM1MCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzICovXG4gIGE6aG92ZXIsIGE6Zm9jdXMge1xuICAgIGNvbG9yOiAjMTQ2OGEwOyB9XG4gIC8qIGxpbmUgMzU4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MgKi9cbiAgYSBpbWcge1xuICAgIGJvcmRlcjogMDsgfVxuXG4vKiBsaW5lIDM2NCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzICovXG5ociB7XG4gIGNsZWFyOiBib3RoO1xuICBtYXgtd2lkdGg6IDg1cmVtO1xuICBoZWlnaHQ6IDA7XG4gIG1hcmdpbjogMS44NzVyZW0gYXV0bztcbiAgYm9yZGVyLXRvcDogMDtcbiAgYm9yZGVyLXJpZ2h0OiAwO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDtcbiAgYm9yZGVyLWxlZnQ6IDA7IH1cblxuLyogbGluZSAzNzgsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyAqL1xudWwsXG5vbCxcbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgbGlzdC1zdHlsZS1wb3NpdGlvbjogb3V0c2lkZTtcbiAgbGluZS1oZWlnaHQ6IDEuNjsgfVxuXG4vKiBsaW5lIDM4NywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzICovXG5saSB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuXG4vKiBsaW5lIDM5MiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzICovXG51bCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBsaXN0LXN0eWxlLXR5cGU6IGRpc2M7IH1cblxuLyogbGluZSAzOTgsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyAqL1xub2wge1xuICBtYXJnaW4tbGVmdDogMS4yNXJlbTsgfVxuXG4vKiBsaW5lIDQwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzICovXG51bCB1bCwgb2wgdWwsIHVsIG9sLCBvbCBvbCB7XG4gIG1hcmdpbi1sZWZ0OiAxLjI1cmVtO1xuICBtYXJnaW4tYm90dG9tOiAwOyB9XG5cbi8qIGxpbmUgNDExLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MgKi9cbmRsIHtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTsgfVxuICAvKiBsaW5lIDQxNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzICovXG4gIGRsIGR0IHtcbiAgICBtYXJnaW4tYm90dG9tOiAwLjNyZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cblxuLyogbGluZSA0MjEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyAqL1xuYmxvY2txdW90ZSB7XG4gIG1hcmdpbjogMCAwIDFyZW07XG4gIHBhZGRpbmc6IDAuNTYyNXJlbSAxLjI1cmVtIDAgMS4xODc1cmVtO1xuICBib3JkZXItbGVmdDogMXB4IHNvbGlkICNjYWNhY2E7IH1cbiAgLyogbGluZSA0MjYsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyAqL1xuICBibG9ja3F1b3RlLCBibG9ja3F1b3RlIHAge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgY29sb3I6ICM4YThhOGE7IH1cblxuLyogbGluZSA0NDIsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2Jhc2Uuc2NzcyAqL1xuYWJiciwgYWJiclt0aXRsZV0ge1xuICBib3JkZXItYm90dG9tOiAxcHggZG90dGVkICMwYTBhMGE7XG4gIGN1cnNvcjogaGVscDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lOyB9XG5cbi8qIGxpbmUgNDQ5LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19iYXNlLnNjc3MgKi9cbmZpZ3VyZSB7XG4gIG1hcmdpbjogMDsgfVxuXG4vKiBsaW5lIDQ2MSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYmFzZS5zY3NzICovXG5rYmQge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMjVyZW0gMDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U2ZTZlNjtcbiAgZm9udC1mYW1pbHk6IENvbnNvbGFzLCBcIkxpYmVyYXRpb24gTW9ub1wiLCBDb3VyaWVyLCBtb25vc3BhY2U7XG4gIGNvbG9yOiAjMGEwYTBhOyB9XG5cbi8qIGxpbmUgMTM0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19oZWxwZXJzLnNjc3MgKi9cbi5zdWJoZWFkZXIge1xuICBtYXJnaW4tdG9wOiAwLjJyZW07XG4gIG1hcmdpbi1ib3R0b206IDAuNXJlbTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDEuNDtcbiAgY29sb3I6ICM4YThhOGE7IH1cblxuLyogbGluZSAxNDQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyAqL1xuLmxlYWQge1xuICBmb250LXNpemU6IDEyNSU7XG4gIGxpbmUtaGVpZ2h0OiAxLjY7IH1cblxuLyogbGluZSAxNTAsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyAqL1xuLnN0YXQge1xuICBmb250LXNpemU6IDIuNXJlbTtcbiAgbGluZS1oZWlnaHQ6IDE7IH1cbiAgLyogbGluZSAxNTQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyAqL1xuICBwICsgLnN0YXQge1xuICAgIG1hcmdpbi10b3A6IC0xcmVtOyB9XG5cbi8qIGxpbmUgMTYxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19oZWxwZXJzLnNjc3MgKi9cbnVsLm5vLWJ1bGxldCwgb2wubm8tYnVsbGV0IHtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7IH1cblxuLyogbGluZSAxNjcsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyAqL1xuY2l0ZSwgLmNpdGUtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgY29sb3I6ICM4YThhOGE7XG4gIGZvbnQtc2l6ZTogMC44MTI1cmVtOyB9XG4gIC8qIGxpbmUgOTAsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyAqL1xuICBjaXRlOmJlZm9yZSwgLmNpdGUtYmxvY2s6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIuKAlCBcIjsgfVxuXG4vKiBsaW5lIDE3NSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9faGVscGVycy5zY3NzICovXG5jb2RlLCAuY29kZS1pbmxpbmUge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIHBhZGRpbmc6IDAuMTI1cmVtIDAuMzEyNXJlbSAwLjA2MjVyZW07IH1cblxuLyogbGluZSAxODQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2hlbHBlcnMuc2NzcyAqL1xuLmNvZGUtYmxvY2sge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2FjYWNhO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTZlNmU2O1xuICBmb250LWZhbWlseTogQ29uc29sYXMsIFwiTGliZXJhdGlvbiBNb25vXCIsIENvdXJpZXIsIG1vbm9zcGFjZTtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgY29sb3I6ICMwYTBhMGE7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBvdmVyZmxvdzogYXV0bztcbiAgd2hpdGUtc3BhY2U6IHByZTtcbiAgcGFkZGluZzogMXJlbTtcbiAgbWFyZ2luLWJvdHRvbTogMS41cmVtOyB9XG5cbi8qIGxpbmUgMTUsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzICovXG4udGV4dC1sZWZ0IHtcbiAgdGV4dC1hbGlnbjogbGVmdDsgfVxuXG4vKiBsaW5lIDE1LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyAqL1xuLnRleHQtcmlnaHQge1xuICB0ZXh0LWFsaWduOiByaWdodDsgfVxuXG4vKiBsaW5lIDE1LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyAqL1xuLnRleHQtY2VudGVyIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi8qIGxpbmUgMTUsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzICovXG4udGV4dC1qdXN0aWZ5IHtcbiAgdGV4dC1hbGlnbjoganVzdGlmeTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAvKiBsaW5lIDEwLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyAqL1xuICAubWVkaXVtLXRleHQtbGVmdCB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDsgfVxuICAvKiBsaW5lIDEwLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyAqL1xuICAubWVkaXVtLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC8qIGxpbmUgMTAsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzICovXG4gIC5tZWRpdW0tdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAvKiBsaW5lIDEwLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyAqL1xuICAubWVkaXVtLXRleHQtanVzdGlmeSB7XG4gICAgdGV4dC1hbGlnbjoganVzdGlmeTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC8qIGxpbmUgMTAsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzICovXG4gIC5sYXJnZS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLyogbGluZSAxMCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MgKi9cbiAgLmxhcmdlLXRleHQtcmlnaHQge1xuICAgIHRleHQtYWxpZ246IHJpZ2h0OyB9XG4gIC8qIGxpbmUgMTAsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzICovXG4gIC5sYXJnZS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC8qIGxpbmUgMTAsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzICovXG4gIC5sYXJnZS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC8qIGxpbmUgMTAsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzICovXG4gIC54bGFyZ2UtdGV4dC1sZWZ0IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0OyB9XG4gIC8qIGxpbmUgMTAsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzICovXG4gIC54bGFyZ2UtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLyogbGluZSAxMCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MgKi9cbiAgLnhsYXJnZS10ZXh0LWNlbnRlciB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIC8qIGxpbmUgMTAsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX2FsaWdubWVudC5zY3NzICovXG4gIC54bGFyZ2UtdGV4dC1qdXN0aWZ5IHtcbiAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAvKiBsaW5lIDEwLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyAqL1xuICAueHhsYXJnZS10ZXh0LWxlZnQge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7IH1cbiAgLyogbGluZSAxMCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MgKi9cbiAgLnh4bGFyZ2UtdGV4dC1yaWdodCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7IH1cbiAgLyogbGluZSAxMCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fYWxpZ25tZW50LnNjc3MgKi9cbiAgLnh4bGFyZ2UtdGV4dC1jZW50ZXIge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICAvKiBsaW5lIDEwLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19hbGlnbm1lbnQuc2NzcyAqL1xuICAueHhsYXJnZS10ZXh0LWp1c3RpZnkge1xuICAgIHRleHQtYWxpZ246IGp1c3RpZnk7IH0gfVxuXG4vKiBsaW5lIDE4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzICovXG4uc2hvdy1mb3ItcHJpbnQge1xuICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH1cblxuQG1lZGlhIHByaW50IHtcbiAgLyogbGluZSAyMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyAqL1xuICAqIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiBibGFjayAhaW1wb3J0YW50O1xuICAgIHByaW50LWNvbG9yLWFkanVzdDogZWNvbm9teTtcbiAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDsgfVxuICAvKiBsaW5lIDM4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzICovXG4gIC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAvKiBsaW5lIDM5LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzICovXG4gIC5oaWRlLWZvci1wcmludCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG4gIC8qIGxpbmUgNDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MgKi9cbiAgdGFibGUuc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlICFpbXBvcnRhbnQ7IH1cbiAgLyogbGluZSA0MiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyAqL1xuICB0aGVhZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgLyogbGluZSA0MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyAqL1xuICB0Ym9keS5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgLyogbGluZSA0NCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyAqL1xuICB0ci5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtcm93ICFpbXBvcnRhbnQ7IH1cbiAgLyogbGluZSA0NSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyAqL1xuICB0ZC5zaG93LWZvci1wcmludCB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbCAhaW1wb3J0YW50OyB9XG4gIC8qIGxpbmUgNDYsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MgKi9cbiAgdGguc2hvdy1mb3ItcHJpbnQge1xuICAgIGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuICAvKiBsaW5lIDQ5LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzICovXG4gIGEsXG4gIGE6dmlzaXRlZCB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgLyogbGluZSA1MiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyAqL1xuICBhW2hyZWZdOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIiAoXCIgYXR0cihocmVmKSBcIilcIjsgfVxuICAvKiBsaW5lIDU2LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzICovXG4gIC5pciBhOmFmdGVyLFxuICBhW2hyZWZePSdqYXZhc2NyaXB0OiddOmFmdGVyLFxuICBhW2hyZWZePScjJ106YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnOyB9XG4gIC8qIGxpbmUgNjEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MgKi9cbiAgYWJiclt0aXRsZV06YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwiIChcIiBhdHRyKHRpdGxlKSBcIilcIjsgfVxuICAvKiBsaW5lIDY0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzICovXG4gIHByZSxcbiAgYmxvY2txdW90ZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzhhOGE4YTtcbiAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cbiAgLyogbGluZSA3MSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyAqL1xuICB0aGVhZCB7XG4gICAgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG4gIC8qIGxpbmUgNzMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MgKi9cbiAgdHIsXG4gIGltZyB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkOyB9XG4gIC8qIGxpbmUgNzYsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MgKi9cbiAgaW1nIHtcbiAgICBtYXgtd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgfVxuICBAcGFnZSB7XG4gICAgbWFyZ2luOiAwLjVjbTsgfVxuICAvKiBsaW5lIDgwLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy90eXBvZ3JhcGh5L19wcmludC5zY3NzICovXG4gIHAsXG4gIGgyLFxuICBoMyB7XG4gICAgb3JwaGFuczogMztcbiAgICB3aWRvd3M6IDM7IH1cbiAgLyogbGluZSA4OCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvdHlwb2dyYXBoeS9fcHJpbnQuc2NzcyAqL1xuICBoMixcbiAgaDMge1xuICAgIHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG4gIC8qIGxpbmUgOTIsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL3R5cG9ncmFwaHkvX3ByaW50LnNjc3MgKi9cbiAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgcGFnZS1icmVhay1pbnNpZGU6IGF1dG87IH0gfVxuXG4vKiBsaW5lIDEyOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbi5yb3cge1xuICBtYXgtd2lkdGg6IDg1cmVtO1xuICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWZsb3c6IHJvdyB3cmFwOyB9XG4gIC8qIGxpbmUgMTMyLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAucm93IC5yb3cge1xuICAgIG1hcmdpbi1yaWdodDogLTAuOTM3NXJlbTtcbiAgICBtYXJnaW4tbGVmdDogLTAuOTM3NXJlbTsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAvKiBsaW5lIDEzMiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgICAgIC5yb3cgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07IH0gfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgICAvKiBsaW5lIDEzMiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgICAgIC5yb3cgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTAuOTM3NXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0wLjkzNzVyZW07IH0gfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgIC8qIGxpbmUgMTMyLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAgICAgLnJvdyAucm93IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAtMS4yNXJlbTtcbiAgICAgICAgbWFyZ2luLWxlZnQ6IC0xLjI1cmVtOyB9IH1cbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgICAvKiBsaW5lIDEzMiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgICAgIC5yb3cgLnJvdyB7XG4gICAgICAgIG1hcmdpbi1yaWdodDogLTEuMjVyZW07XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAtMS4yNXJlbTsgfSB9XG4gICAgLyogbGluZSAxMzUsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gICAgLnJvdyAucm93LmNvbGxhcHNlIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwOyB9XG4gIC8qIGxpbmUgMTQyLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAucm93LmV4cGFuZGVkIHtcbiAgICBtYXgtd2lkdGg6IG5vbmU7IH1cbiAgICAvKiBsaW5lIDE0NSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgICAucm93LmV4cGFuZGVkIC5yb3cge1xuICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luLWxlZnQ6IGF1dG87IH1cbiAgLyogbGluZSAxNTEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5yb3c6bm90KC5leHBhbmRlZCkgLnJvdyB7XG4gICAgbWF4LXdpZHRoOiBub25lOyB9XG4gIC8qIGxpbmUgMTU2LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAucm93LmNvbGxhcHNlID4gLmNvbHVtbiwgLnJvdy5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIHBhZGRpbmctbGVmdDogMDsgfVxuICAvKiBsaW5lIDE2MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnJvdy5pcy1jb2xsYXBzZS1jaGlsZCxcbiAgLnJvdy5jb2xsYXBzZSA+IC5jb2x1bW4gPiAucm93LFxuICAucm93LmNvbGxhcHNlID4gLmNvbHVtbnMgPiAucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7IH1cblxuLyogbGluZSAxNzEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4uY29sdW1uLCAuY29sdW1ucyB7XG4gIGZsZXg6IDEgMSAwcHg7XG4gIHBhZGRpbmctcmlnaHQ6IDAuOTM3NXJlbTtcbiAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07XG4gIG1pbi13aWR0aDogMDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLyogbGluZSAxNzEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gICAgLmNvbHVtbiwgLmNvbHVtbnMge1xuICAgICAgcGFkZGluZy1yaWdodDogMS4yNXJlbTtcbiAgICAgIHBhZGRpbmctbGVmdDogMS4yNXJlbTsgfSB9XG5cbi8qIGxpbmUgMTc3LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuLmNvbHVtbi5yb3cucm93LCAucm93LnJvdy5jb2x1bW5zIHtcbiAgZmxvYXQ6IG5vbmU7XG4gIGRpc3BsYXk6IGJsb2NrOyB9XG5cbi8qIGxpbmUgMTgzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuLnJvdyAuY29sdW1uLnJvdy5yb3csIC5yb3cgLnJvdy5yb3cuY29sdW1ucyB7XG4gIG1hcmdpbi1yaWdodDogMDtcbiAgbWFyZ2luLWxlZnQ6IDA7XG4gIHBhZGRpbmctcmlnaHQ6IDA7XG4gIHBhZGRpbmctbGVmdDogMDsgfVxuXG4vKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbi5zbWFsbC0xIHtcbiAgZmxleDogMCAwIDguMzMzMzMlO1xuICBtYXgtd2lkdGg6IDguMzMzMzMlOyB9XG5cbi8qIGxpbmUgMjAxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuLnNtYWxsLW9mZnNldC0wIHtcbiAgbWFyZ2luLWxlZnQ6IDAlOyB9XG5cbi8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuLnNtYWxsLTIge1xuICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuXG4vKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbi5zbWFsbC1vZmZzZXQtMSB7XG4gIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuXG4vKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbi5zbWFsbC0zIHtcbiAgZmxleDogMCAwIDI1JTtcbiAgbWF4LXdpZHRoOiAyNSU7IH1cblxuLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4uc21hbGwtb2Zmc2V0LTIge1xuICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG5cbi8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuLnNtYWxsLTQge1xuICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuXG4vKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbi5zbWFsbC1vZmZzZXQtMyB7XG4gIG1hcmdpbi1sZWZ0OiAyNSU7IH1cblxuLyogbGluZSAxOTMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4uc21hbGwtNSB7XG4gIGZsZXg6IDAgMCA0MS42NjY2NyU7XG4gIG1heC13aWR0aDogNDEuNjY2NjclOyB9XG5cbi8qIGxpbmUgMjAxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuLnNtYWxsLW9mZnNldC00IHtcbiAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuXG4vKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbi5zbWFsbC02IHtcbiAgZmxleDogMCAwIDUwJTtcbiAgbWF4LXdpZHRoOiA1MCU7IH1cblxuLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4uc21hbGwtb2Zmc2V0LTUge1xuICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG5cbi8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuLnNtYWxsLTcge1xuICBmbGV4OiAwIDAgNTguMzMzMzMlO1xuICBtYXgtd2lkdGg6IDU4LjMzMzMzJTsgfVxuXG4vKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbi5zbWFsbC1vZmZzZXQtNiB7XG4gIG1hcmdpbi1sZWZ0OiA1MCU7IH1cblxuLyogbGluZSAxOTMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4uc21hbGwtOCB7XG4gIGZsZXg6IDAgMCA2Ni42NjY2NyU7XG4gIG1heC13aWR0aDogNjYuNjY2NjclOyB9XG5cbi8qIGxpbmUgMjAxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuLnNtYWxsLW9mZnNldC03IHtcbiAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuXG4vKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbi5zbWFsbC05IHtcbiAgZmxleDogMCAwIDc1JTtcbiAgbWF4LXdpZHRoOiA3NSU7IH1cblxuLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4uc21hbGwtb2Zmc2V0LTgge1xuICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG5cbi8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuLnNtYWxsLTEwIHtcbiAgZmxleDogMCAwIDgzLjMzMzMzJTtcbiAgbWF4LXdpZHRoOiA4My4zMzMzMyU7IH1cblxuLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4uc21hbGwtb2Zmc2V0LTkge1xuICBtYXJnaW4tbGVmdDogNzUlOyB9XG5cbi8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuLnNtYWxsLTExIHtcbiAgZmxleDogMCAwIDkxLjY2NjY3JTtcbiAgbWF4LXdpZHRoOiA5MS42NjY2NyU7IH1cblxuLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4uc21hbGwtb2Zmc2V0LTEwIHtcbiAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuXG4vKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbi5zbWFsbC0xMiB7XG4gIGZsZXg6IDAgMCAxMDAlO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4uc21hbGwtb2Zmc2V0LTExIHtcbiAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuXG4vKiBsaW5lIDIwOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbi5zbWFsbC11cC0xIHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC8qIGxpbmUgMTA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAuc21hbGwtdXAtMSA+IC5jb2x1bW4sIC5zbWFsbC11cC0xID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuXG4vKiBsaW5lIDIwOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbi5zbWFsbC11cC0yIHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC8qIGxpbmUgMTA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAuc21hbGwtdXAtMiA+IC5jb2x1bW4sIC5zbWFsbC11cC0yID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7IH1cblxuLyogbGluZSAyMDgsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4uc21hbGwtdXAtMyB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAvKiBsaW5lIDEwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnNtYWxsLXVwLTMgPiAuY29sdW1uLCAuc21hbGwtdXAtMyA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG5cbi8qIGxpbmUgMjA4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuLnNtYWxsLXVwLTQge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLyogbGluZSAxMDQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5zbWFsbC11cC00ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTQgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTsgfVxuXG4vKiBsaW5lIDIwOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbi5zbWFsbC11cC01IHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC8qIGxpbmUgMTA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAuc21hbGwtdXAtNSA+IC5jb2x1bW4sIC5zbWFsbC11cC01ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAyMCU7XG4gICAgbWF4LXdpZHRoOiAyMCU7IH1cblxuLyogbGluZSAyMDgsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4uc21hbGwtdXAtNiB7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuICAvKiBsaW5lIDEwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnNtYWxsLXVwLTYgPiAuY29sdW1uLCAuc21hbGwtdXAtNiA+IC5jb2x1bW5zIHtcbiAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XG5cbi8qIGxpbmUgMjA4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuLnNtYWxsLXVwLTcge1xuICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgLyogbGluZSAxMDQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5zbWFsbC11cC03ID4gLmNvbHVtbiwgLnNtYWxsLXVwLTcgPiAuY29sdW1ucyB7XG4gICAgZmxleDogMCAwIDE0LjI4NTcxJTtcbiAgICBtYXgtd2lkdGg6IDE0LjI4NTcxJTsgfVxuXG4vKiBsaW5lIDIwOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbi5zbWFsbC11cC04IHtcbiAgZmxleC13cmFwOiB3cmFwOyB9XG4gIC8qIGxpbmUgMTA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAuc21hbGwtdXAtOCA+IC5jb2x1bW4sIC5zbWFsbC11cC04ID4gLmNvbHVtbnMge1xuICAgIGZsZXg6IDAgMCAxMi41JTtcbiAgICBtYXgtd2lkdGg6IDEyLjUlOyB9XG5cbi8qIGxpbmUgMjM3LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuLnNtYWxsLWNvbGxhcHNlID4gLmNvbHVtbiwgLnNtYWxsLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICBwYWRkaW5nLXJpZ2h0OiAwO1xuICBwYWRkaW5nLWxlZnQ6IDA7IH1cblxuLyogbGluZSAyNDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4uc21hbGwtdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5zbWFsbC11bmNvbGxhcHNlID4gLmNvbHVtbnMge1xuICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubWVkaXVtLTEge1xuICAgIGZsZXg6IDAgMCA4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMlOyB9XG4gIC8qIGxpbmUgMjAxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubWVkaXVtLW9mZnNldC0wIHtcbiAgICBtYXJnaW4tbGVmdDogMCU7IH1cbiAgLyogbGluZSAxOTMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5tZWRpdW0tMiB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLm1lZGl1bS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubWVkaXVtLTMge1xuICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgbWF4LXdpZHRoOiAyNSU7IH1cbiAgLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5tZWRpdW0tb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLyogbGluZSAxOTMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5tZWRpdW0tNCB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLm1lZGl1bS1vZmZzZXQtMyB7XG4gICAgbWFyZ2luLWxlZnQ6IDI1JTsgfVxuICAvKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLm1lZGl1bS01IHtcbiAgICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclOyB9XG4gIC8qIGxpbmUgMjAxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubWVkaXVtLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubWVkaXVtLTYge1xuICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5tZWRpdW0tb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLyogbGluZSAxOTMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5tZWRpdW0tNyB7XG4gICAgZmxleDogMCAwIDU4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLm1lZGl1bS1vZmZzZXQtNiB7XG4gICAgbWFyZ2luLWxlZnQ6IDUwJTsgfVxuICAvKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLm1lZGl1bS04IHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclOyB9XG4gIC8qIGxpbmUgMjAxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubWVkaXVtLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubWVkaXVtLTkge1xuICAgIGZsZXg6IDAgMCA3NSU7XG4gICAgbWF4LXdpZHRoOiA3NSU7IH1cbiAgLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5tZWRpdW0tb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLyogbGluZSAxOTMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5tZWRpdW0tMTAge1xuICAgIGZsZXg6IDAgMCA4My4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5tZWRpdW0tb2Zmc2V0LTkge1xuICAgIG1hcmdpbi1sZWZ0OiA3NSU7IH1cbiAgLyogbGluZSAxOTMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5tZWRpdW0tMTEge1xuICAgIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5tZWRpdW0tb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubWVkaXVtLTEyIHtcbiAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7IH1cbiAgLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5tZWRpdW0tb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC8qIGxpbmUgMjA4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubWVkaXVtLXVwLTEge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC8qIGxpbmUgMTA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAgIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMSA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC8qIGxpbmUgMjA4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubWVkaXVtLXVwLTIge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC8qIGxpbmUgMTA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAgIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtMiA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAvKiBsaW5lIDIwOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLm1lZGl1bS11cC0zIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAvKiBsaW5lIDEwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgICAubWVkaXVtLXVwLTMgPiAuY29sdW1uLCAubWVkaXVtLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLyogbGluZSAyMDgsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5tZWRpdW0tdXAtNCB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLyogbGluZSAxMDQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gICAgLm1lZGl1bS11cC00ID4gLmNvbHVtbiwgLm1lZGl1bS11cC00ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDI1JTtcbiAgICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC8qIGxpbmUgMjA4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubWVkaXVtLXVwLTUge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC8qIGxpbmUgMTA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAgIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtNSA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAyMCU7XG4gICAgICBtYXgtd2lkdGg6IDIwJTsgfVxuICAvKiBsaW5lIDIwOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLm1lZGl1bS11cC02IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAvKiBsaW5lIDEwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgICAubWVkaXVtLXVwLTYgPiAuY29sdW1uLCAubWVkaXVtLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLyogbGluZSAyMDgsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5tZWRpdW0tdXAtNyB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLyogbGluZSAxMDQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gICAgLm1lZGl1bS11cC03ID4gLmNvbHVtbiwgLm1lZGl1bS11cC03ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDE0LjI4NTcxJTtcbiAgICAgIG1heC13aWR0aDogMTQuMjg1NzElOyB9XG4gIC8qIGxpbmUgMjA4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubWVkaXVtLXVwLTgge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC8qIGxpbmUgMTA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAgIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW4sIC5tZWRpdW0tdXAtOCA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAxMi41JTtcbiAgICAgIG1heC13aWR0aDogMTIuNSU7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLyogbGluZSAyMTYsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5tZWRpdW0tZXhwYW5kIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9IH1cblxuLyogbGluZSAyMjQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4ucm93Lm1lZGl1bS11bnN0YWNrID4gLmNvbHVtbiwgLnJvdy5tZWRpdW0tdW5zdGFjayA+IC5jb2x1bW5zIHtcbiAgZmxleDogMCAwIDEwMCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAvKiBsaW5lIDIyNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgICAucm93Lm1lZGl1bS11bnN0YWNrID4gLmNvbHVtbiwgLnJvdy5tZWRpdW0tdW5zdGFjayA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAvKiBsaW5lIDIzNywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLm1lZGl1bS1jb2xsYXBzZSA+IC5jb2x1bW4sIC5tZWRpdW0tY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLyogbGluZSAyNDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW4sIC5tZWRpdW0tdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAwLjkzNzVyZW07XG4gICAgcGFkZGluZy1sZWZ0OiAwLjkzNzVyZW07IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAvKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLmxhcmdlLTEge1xuICAgIGZsZXg6IDAgMCA4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDguMzMzMzMlOyB9XG4gIC8qIGxpbmUgMjAxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubGFyZ2Utb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAvKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLmxhcmdlLTIge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5sYXJnZS1vZmZzZXQtMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDguMzMzMzMlOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubGFyZ2UtMyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLmxhcmdlLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubGFyZ2UtNCB7XG4gICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDMzLjMzMzMzJTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLmxhcmdlLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubGFyZ2UtNSB7XG4gICAgZmxleDogMCAwIDQxLjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLmxhcmdlLW9mZnNldC00IHtcbiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubGFyZ2UtNiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLmxhcmdlLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubGFyZ2UtNyB7XG4gICAgZmxleDogMCAwIDU4LjMzMzMzJTtcbiAgICBtYXgtd2lkdGg6IDU4LjMzMzMzJTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLmxhcmdlLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubGFyZ2UtOCB7XG4gICAgZmxleDogMCAwIDY2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLmxhcmdlLW9mZnNldC03IHtcbiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubGFyZ2UtOSB7XG4gICAgZmxleDogMCAwIDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLmxhcmdlLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubGFyZ2UtMTAge1xuICAgIGZsZXg6IDAgMCA4My4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4My4zMzMzMyU7IH1cbiAgLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5sYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAvKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLmxhcmdlLTExIHtcbiAgICBmbGV4OiAwIDAgOTEuNjY2NjclO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjclOyB9XG4gIC8qIGxpbmUgMjAxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubGFyZ2Utb2Zmc2V0LTEwIHtcbiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubGFyZ2UtMTIge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLmxhcmdlLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAvKiBsaW5lIDIwOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLmxhcmdlLXVwLTEge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC8qIGxpbmUgMTA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAgIC5sYXJnZS11cC0xID4gLmNvbHVtbiwgLmxhcmdlLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAvKiBsaW5lIDIwOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLmxhcmdlLXVwLTIge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC8qIGxpbmUgMTA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAgIC5sYXJnZS11cC0yID4gLmNvbHVtbiwgLmxhcmdlLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLyogbGluZSAyMDgsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5sYXJnZS11cC0zIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAvKiBsaW5lIDEwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgICAubGFyZ2UtdXAtMyA+IC5jb2x1bW4sIC5sYXJnZS11cC0zID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG4gIC8qIGxpbmUgMjA4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubGFyZ2UtdXAtNCB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLyogbGluZSAxMDQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gICAgLmxhcmdlLXVwLTQgPiAuY29sdW1uLCAubGFyZ2UtdXAtNCA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAvKiBsaW5lIDIwOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLmxhcmdlLXVwLTUge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC8qIGxpbmUgMTA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAgIC5sYXJnZS11cC01ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMjAlO1xuICAgICAgbWF4LXdpZHRoOiAyMCU7IH1cbiAgLyogbGluZSAyMDgsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5sYXJnZS11cC02IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAvKiBsaW5lIDEwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgICAubGFyZ2UtdXAtNiA+IC5jb2x1bW4sIC5sYXJnZS11cC02ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XG4gIC8qIGxpbmUgMjA4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubGFyZ2UtdXAtNyB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLyogbGluZSAxMDQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gICAgLmxhcmdlLXVwLTcgPiAuY29sdW1uLCAubGFyZ2UtdXAtNyA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAxNC4yODU3MSU7XG4gICAgICBtYXgtd2lkdGg6IDE0LjI4NTcxJTsgfVxuICAvKiBsaW5lIDIwOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLmxhcmdlLXVwLTgge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC8qIGxpbmUgMTA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAgIC5sYXJnZS11cC04ID4gLmNvbHVtbiwgLmxhcmdlLXVwLTggPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTIuNSU7XG4gICAgICBtYXgtd2lkdGg6IDEyLjUlOyB9IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC8qIGxpbmUgMjE2LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubGFyZ2UtZXhwYW5kIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9IH1cblxuLyogbGluZSAyMjQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4ucm93LmxhcmdlLXVuc3RhY2sgPiAuY29sdW1uLCAucm93LmxhcmdlLXVuc3RhY2sgPiAuY29sdW1ucyB7XG4gIGZsZXg6IDAgMCAxMDAlOyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gICAgLyogbGluZSAyMjQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gICAgLnJvdy5sYXJnZS11bnN0YWNrID4gLmNvbHVtbiwgLnJvdy5sYXJnZS11bnN0YWNrID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMSAxIDBweDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC8qIGxpbmUgMjM3LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAubGFyZ2UtY29sbGFwc2UgPiAuY29sdW1uLCAubGFyZ2UtY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7IH1cbiAgLyogbGluZSAyNDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC5sYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLmxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMC45Mzc1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMC45Mzc1cmVtOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAvKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnhsYXJnZS0xIHtcbiAgICBmbGV4OiAwIDAgOC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnhsYXJnZS1vZmZzZXQtMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDAlOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueGxhcmdlLTIge1xuICAgIGZsZXg6IDAgMCAxNi42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC54bGFyZ2Utb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAvKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnhsYXJnZS0zIHtcbiAgICBmbGV4OiAwIDAgMjUlO1xuICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC8qIGxpbmUgMjAxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueGxhcmdlLW9mZnNldC0yIHtcbiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueGxhcmdlLTQge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC54bGFyZ2Utb2Zmc2V0LTMge1xuICAgIG1hcmdpbi1sZWZ0OiAyNSU7IH1cbiAgLyogbGluZSAxOTMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC54bGFyZ2UtNSB7XG4gICAgZmxleDogMCAwIDQxLjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDQxLjY2NjY3JTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnhsYXJnZS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAvKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnhsYXJnZS02IHtcbiAgICBmbGV4OiAwIDAgNTAlO1xuICAgIG1heC13aWR0aDogNTAlOyB9XG4gIC8qIGxpbmUgMjAxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueGxhcmdlLW9mZnNldC01IHtcbiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueGxhcmdlLTcge1xuICAgIGZsZXg6IDAgMCA1OC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC54bGFyZ2Utb2Zmc2V0LTYge1xuICAgIG1hcmdpbi1sZWZ0OiA1MCU7IH1cbiAgLyogbGluZSAxOTMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC54bGFyZ2UtOCB7XG4gICAgZmxleDogMCAwIDY2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDY2LjY2NjY3JTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnhsYXJnZS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAvKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnhsYXJnZS05IHtcbiAgICBmbGV4OiAwIDAgNzUlO1xuICAgIG1heC13aWR0aDogNzUlOyB9XG4gIC8qIGxpbmUgMjAxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueGxhcmdlLW9mZnNldC04IHtcbiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueGxhcmdlLTEwIHtcbiAgICBmbGV4OiAwIDAgODMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMlOyB9XG4gIC8qIGxpbmUgMjAxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueGxhcmdlLW9mZnNldC05IHtcbiAgICBtYXJnaW4tbGVmdDogNzUlOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueGxhcmdlLTExIHtcbiAgICBmbGV4OiAwIDAgOTEuNjY2NjclO1xuICAgIG1heC13aWR0aDogOTEuNjY2NjclOyB9XG4gIC8qIGxpbmUgMjAxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueGxhcmdlLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAvKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnhsYXJnZS0xMiB7XG4gICAgZmxleDogMCAwIDEwMCU7XG4gICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC8qIGxpbmUgMjAxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueGxhcmdlLW9mZnNldC0xMSB7XG4gICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JTsgfVxuICAvKiBsaW5lIDIwOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnhsYXJnZS11cC0xIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAvKiBsaW5lIDEwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgICAueGxhcmdlLXVwLTEgPiAuY29sdW1uLCAueGxhcmdlLXVwLTEgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTAwJTtcbiAgICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAvKiBsaW5lIDIwOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnhsYXJnZS11cC0yIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAvKiBsaW5lIDEwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgICAueGxhcmdlLXVwLTIgPiAuY29sdW1uLCAueGxhcmdlLXVwLTIgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgNTAlO1xuICAgICAgbWF4LXdpZHRoOiA1MCU7IH1cbiAgLyogbGluZSAyMDgsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC54bGFyZ2UtdXAtMyB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLyogbGluZSAxMDQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gICAgLnhsYXJnZS11cC0zID4gLmNvbHVtbiwgLnhsYXJnZS11cC0zID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDMzLjMzMzMzJTtcbiAgICAgIG1heC13aWR0aDogMzMuMzMzMzMlOyB9XG4gIC8qIGxpbmUgMjA4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueGxhcmdlLXVwLTQge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC8qIGxpbmUgMTA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAgIC54bGFyZ2UtdXAtNCA+IC5jb2x1bW4sIC54bGFyZ2UtdXAtNCA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAyNSU7XG4gICAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAvKiBsaW5lIDIwOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnhsYXJnZS11cC01IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAvKiBsaW5lIDEwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgICAueGxhcmdlLXVwLTUgPiAuY29sdW1uLCAueGxhcmdlLXVwLTUgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMjAlO1xuICAgICAgbWF4LXdpZHRoOiAyMCU7IH1cbiAgLyogbGluZSAyMDgsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC54bGFyZ2UtdXAtNiB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLyogbGluZSAxMDQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gICAgLnhsYXJnZS11cC02ID4gLmNvbHVtbiwgLnhsYXJnZS11cC02ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICAgIG1heC13aWR0aDogMTYuNjY2NjclOyB9XG4gIC8qIGxpbmUgMjA4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueGxhcmdlLXVwLTcge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC8qIGxpbmUgMTA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAgIC54bGFyZ2UtdXAtNyA+IC5jb2x1bW4sIC54bGFyZ2UtdXAtNyA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAxNC4yODU3MSU7XG4gICAgICBtYXgtd2lkdGg6IDE0LjI4NTcxJTsgfVxuICAvKiBsaW5lIDIwOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnhsYXJnZS11cC04IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAvKiBsaW5lIDEwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgICAueGxhcmdlLXVwLTggPiAuY29sdW1uLCAueGxhcmdlLXVwLTggPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTIuNSU7XG4gICAgICBtYXgtd2lkdGg6IDEyLjUlOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkgYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLyogbGluZSAyMTYsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC54bGFyZ2UtZXhwYW5kIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9IH1cblxuLyogbGluZSAyMjQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4ucm93LnhsYXJnZS11bnN0YWNrID4gLmNvbHVtbiwgLnJvdy54bGFyZ2UtdW5zdGFjayA+IC5jb2x1bW5zIHtcbiAgZmxleDogMCAwIDEwMCU7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgIC8qIGxpbmUgMjI0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAgIC5yb3cueGxhcmdlLXVuc3RhY2sgPiAuY29sdW1uLCAucm93LnhsYXJnZS11bnN0YWNrID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMSAxIDBweDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLyogbGluZSAyMzcsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC54bGFyZ2UtY29sbGFwc2UgPiAuY29sdW1uLCAueGxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC8qIGxpbmUgMjQxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueGxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1uLCAueGxhcmdlLXVuY29sbGFwc2UgPiAuY29sdW1ucyB7XG4gICAgcGFkZGluZy1yaWdodDogMS4yNXJlbTtcbiAgICBwYWRkaW5nLWxlZnQ6IDEuMjVyZW07IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueHhsYXJnZS0xIHtcbiAgICBmbGV4OiAwIDAgOC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA4LjMzMzMzJTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnh4bGFyZ2Utb2Zmc2V0LTAge1xuICAgIG1hcmdpbi1sZWZ0OiAwJTsgfVxuICAvKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnh4bGFyZ2UtMiB7XG4gICAgZmxleDogMCAwIDE2LjY2NjY3JTtcbiAgICBtYXgtd2lkdGg6IDE2LjY2NjY3JTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnh4bGFyZ2Utb2Zmc2V0LTEge1xuICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJTsgfVxuICAvKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnh4bGFyZ2UtMyB7XG4gICAgZmxleDogMCAwIDI1JTtcbiAgICBtYXgtd2lkdGg6IDI1JTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnh4bGFyZ2Utb2Zmc2V0LTIge1xuICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyU7IH1cbiAgLyogbGluZSAxOTMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC54eGxhcmdlLTQge1xuICAgIGZsZXg6IDAgMCAzMy4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC54eGxhcmdlLW9mZnNldC0zIHtcbiAgICBtYXJnaW4tbGVmdDogMjUlOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueHhsYXJnZS01IHtcbiAgICBmbGV4OiAwIDAgNDEuNjY2NjclO1xuICAgIG1heC13aWR0aDogNDEuNjY2NjclOyB9XG4gIC8qIGxpbmUgMjAxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueHhsYXJnZS1vZmZzZXQtNCB7XG4gICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJTsgfVxuICAvKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnh4bGFyZ2UtNiB7XG4gICAgZmxleDogMCAwIDUwJTtcbiAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnh4bGFyZ2Utb2Zmc2V0LTUge1xuICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyU7IH1cbiAgLyogbGluZSAxOTMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC54eGxhcmdlLTcge1xuICAgIGZsZXg6IDAgMCA1OC4zMzMzMyU7XG4gICAgbWF4LXdpZHRoOiA1OC4zMzMzMyU7IH1cbiAgLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC54eGxhcmdlLW9mZnNldC02IHtcbiAgICBtYXJnaW4tbGVmdDogNTAlOyB9XG4gIC8qIGxpbmUgMTkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueHhsYXJnZS04IHtcbiAgICBmbGV4OiAwIDAgNjYuNjY2NjclO1xuICAgIG1heC13aWR0aDogNjYuNjY2NjclOyB9XG4gIC8qIGxpbmUgMjAxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueHhsYXJnZS1vZmZzZXQtNyB7XG4gICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJTsgfVxuICAvKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnh4bGFyZ2UtOSB7XG4gICAgZmxleDogMCAwIDc1JTtcbiAgICBtYXgtd2lkdGg6IDc1JTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnh4bGFyZ2Utb2Zmc2V0LTgge1xuICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyU7IH1cbiAgLyogbGluZSAxOTMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC54eGxhcmdlLTEwIHtcbiAgICBmbGV4OiAwIDAgODMuMzMzMzMlO1xuICAgIG1heC13aWR0aDogODMuMzMzMzMlOyB9XG4gIC8qIGxpbmUgMjAxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueHhsYXJnZS1vZmZzZXQtOSB7XG4gICAgbWFyZ2luLWxlZnQ6IDc1JTsgfVxuICAvKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnh4bGFyZ2UtMTEge1xuICAgIGZsZXg6IDAgMCA5MS42NjY2NyU7XG4gICAgbWF4LXdpZHRoOiA5MS42NjY2NyU7IH1cbiAgLyogbGluZSAyMDEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC54eGxhcmdlLW9mZnNldC0xMCB7XG4gICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJTsgfVxuICAvKiBsaW5lIDE5MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnh4bGFyZ2UtMTIge1xuICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTsgfVxuICAvKiBsaW5lIDIwMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnh4bGFyZ2Utb2Zmc2V0LTExIHtcbiAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjclOyB9XG4gIC8qIGxpbmUgMjA4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueHhsYXJnZS11cC0xIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAvKiBsaW5lIDEwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgICAueHhsYXJnZS11cC0xID4gLmNvbHVtbiwgLnh4bGFyZ2UtdXAtMSA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAxMDAlO1xuICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9XG4gIC8qIGxpbmUgMjA4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueHhsYXJnZS11cC0yIHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAvKiBsaW5lIDEwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgICAueHhsYXJnZS11cC0yID4gLmNvbHVtbiwgLnh4bGFyZ2UtdXAtMiA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCA1MCU7XG4gICAgICBtYXgtd2lkdGg6IDUwJTsgfVxuICAvKiBsaW5lIDIwOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnh4bGFyZ2UtdXAtMyB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLyogbGluZSAxMDQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gICAgLnh4bGFyZ2UtdXAtMyA+IC5jb2x1bW4sIC54eGxhcmdlLXVwLTMgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMzMuMzMzMzMlO1xuICAgICAgbWF4LXdpZHRoOiAzMy4zMzMzMyU7IH1cbiAgLyogbGluZSAyMDgsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC54eGxhcmdlLXVwLTQge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC8qIGxpbmUgMTA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAgIC54eGxhcmdlLXVwLTQgPiAuY29sdW1uLCAueHhsYXJnZS11cC00ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDI1JTtcbiAgICAgIG1heC13aWR0aDogMjUlOyB9XG4gIC8qIGxpbmUgMjA4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueHhsYXJnZS11cC01IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAvKiBsaW5lIDEwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgICAueHhsYXJnZS11cC01ID4gLmNvbHVtbiwgLnh4bGFyZ2UtdXAtNSA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAyMCU7XG4gICAgICBtYXgtd2lkdGg6IDIwJTsgfVxuICAvKiBsaW5lIDIwOCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnh4bGFyZ2UtdXAtNiB7XG4gICAgZmxleC13cmFwOiB3cmFwOyB9XG4gICAgLyogbGluZSAxMDQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gICAgLnh4bGFyZ2UtdXAtNiA+IC5jb2x1bW4sIC54eGxhcmdlLXVwLTYgPiAuY29sdW1ucyB7XG4gICAgICBmbGV4OiAwIDAgMTYuNjY2NjclO1xuICAgICAgbWF4LXdpZHRoOiAxNi42NjY2NyU7IH1cbiAgLyogbGluZSAyMDgsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gIC54eGxhcmdlLXVwLTcge1xuICAgIGZsZXgtd3JhcDogd3JhcDsgfVxuICAgIC8qIGxpbmUgMTA0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAgIC54eGxhcmdlLXVwLTcgPiAuY29sdW1uLCAueHhsYXJnZS11cC03ID4gLmNvbHVtbnMge1xuICAgICAgZmxleDogMCAwIDE0LjI4NTcxJTtcbiAgICAgIG1heC13aWR0aDogMTQuMjg1NzElOyB9XG4gIC8qIGxpbmUgMjA4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueHhsYXJnZS11cC04IHtcbiAgICBmbGV4LXdyYXA6IHdyYXA7IH1cbiAgICAvKiBsaW5lIDEwNCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgICAueHhsYXJnZS11cC04ID4gLmNvbHVtbiwgLnh4bGFyZ2UtdXAtOCA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDAgMCAxMi41JTtcbiAgICAgIG1heC13aWR0aDogMTIuNSU7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAvKiBsaW5lIDIxNiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgLnh4bGFyZ2UtZXhwYW5kIHtcbiAgICBmbGV4OiAxIDEgMHB4OyB9IH1cblxuLyogbGluZSAyMjQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4ucm93Lnh4bGFyZ2UtdW5zdGFjayA+IC5jb2x1bW4sIC5yb3cueHhsYXJnZS11bnN0YWNrID4gLmNvbHVtbnMge1xuICBmbGV4OiAwIDAgMTAwJTsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgLyogbGluZSAyMjQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4gICAgLnJvdy54eGxhcmdlLXVuc3RhY2sgPiAuY29sdW1uLCAucm93Lnh4bGFyZ2UtdW5zdGFjayA+IC5jb2x1bW5zIHtcbiAgICAgIGZsZXg6IDEgMSAwcHg7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC8qIGxpbmUgMjM3LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueHhsYXJnZS1jb2xsYXBzZSA+IC5jb2x1bW4sIC54eGxhcmdlLWNvbGxhcHNlID4gLmNvbHVtbnMge1xuICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwOyB9XG4gIC8qIGxpbmUgMjQxLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuICAueHhsYXJnZS11bmNvbGxhcHNlID4gLmNvbHVtbiwgLnh4bGFyZ2UtdW5jb2xsYXBzZSA+IC5jb2x1bW5zIHtcbiAgICBwYWRkaW5nLXJpZ2h0OiAxLjI1cmVtO1xuICAgIHBhZGRpbmctbGVmdDogMS4yNXJlbTsgfSB9XG5cbi8qIGxpbmUgMjQ2LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9ncmlkL19mbGV4LWdyaWQuc2NzcyAqL1xuLnNocmluayB7XG4gIGZsZXg6IDAgMCBhdXRvO1xuICBtYXgtd2lkdGg6IDEwMCU7IH1cblxuLyogbGluZSAyNTIsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2dyaWQvX2ZsZXgtZ3JpZC5zY3NzICovXG4uY29sdW1uLWJsb2NrIHtcbiAgbWFyZ2luLWJvdHRvbTogMS44NzVyZW07IH1cbiAgLyogbGluZSA2MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZ3V0dGVyLnNjc3MgKi9cbiAgLmNvbHVtbi1ibG9jayA+IDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAvKiBsaW5lIDI1MiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZmxleC1ncmlkLnNjc3MgKi9cbiAgICAuY29sdW1uLWJsb2NrIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDIuNXJlbTsgfVxuICAgICAgLyogbGluZSA2MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvZ3JpZC9fZ3V0dGVyLnNjc3MgKi9cbiAgICAgIC5jb2x1bW4tYmxvY2sgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDA7IH0gfVxuXG4vKiBsaW5lIDc1LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbi5hbGlnbi1sZWZ0IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0OyB9XG5cbi8qIGxpbmUgNzUsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuLmFsaWduLXJpZ2h0IHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuXG4vKiBsaW5lIDc1LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbi5hbGlnbi1jZW50ZXIge1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4vKiBsaW5lIDc1LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbi5hbGlnbi1qdXN0aWZ5IHtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOyB9XG5cbi8qIGxpbmUgNzUsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuLmFsaWduLXNwYWNlZCB7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYXJvdW5kOyB9XG5cbi8qIGxpbmUgODQsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuLmFsaWduLWxlZnQudmVydGljYWwubWVudSA+IGxpID4gYSB7XG4gIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsgfVxuXG4vKiBsaW5lIDg0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbi5hbGlnbi1yaWdodC52ZXJ0aWNhbC5tZW51ID4gbGkgPiBhIHtcbiAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfVxuXG4vKiBsaW5lIDg0LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbi5hbGlnbi1jZW50ZXIudmVydGljYWwubWVudSA+IGxpID4gYSB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyOyB9XG5cbi8qIGxpbmUgOTMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuLmFsaWduLXRvcCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG5cbi8qIGxpbmUgOTcsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuLmFsaWduLXNlbGYtdG9wIHtcbiAgYWxpZ24tc2VsZjogZmxleC1zdGFydDsgfVxuXG4vKiBsaW5lIDkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbi5hbGlnbi1ib3R0b20ge1xuICBhbGlnbi1pdGVtczogZmxleC1lbmQ7IH1cblxuLyogbGluZSA5NywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4uYWxpZ24tc2VsZi1ib3R0b20ge1xuICBhbGlnbi1zZWxmOiBmbGV4LWVuZDsgfVxuXG4vKiBsaW5lIDkzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbi5hbGlnbi1taWRkbGUge1xuICBhbGlnbi1pdGVtczogY2VudGVyOyB9XG5cbi8qIGxpbmUgOTcsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuLmFsaWduLXNlbGYtbWlkZGxlIHtcbiAgYWxpZ24tc2VsZjogY2VudGVyOyB9XG5cbi8qIGxpbmUgOTMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuLmFsaWduLXN0cmV0Y2gge1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDsgfVxuXG4vKiBsaW5lIDk3LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbi5hbGlnbi1zZWxmLXN0cmV0Y2gge1xuICBhbGlnbi1zZWxmOiBzdHJldGNoOyB9XG5cbi8qIGxpbmUgMTAzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbi5hbGlnbi1jZW50ZXItbWlkZGxlIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4vKiBsaW5lIDExMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4uc21hbGwtb3JkZXItMSB7XG4gIG9yZGVyOiAxOyB9XG5cbi8qIGxpbmUgMTExLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbi5zbWFsbC1vcmRlci0yIHtcbiAgb3JkZXI6IDI7IH1cblxuLyogbGluZSAxMTEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuLnNtYWxsLW9yZGVyLTMge1xuICBvcmRlcjogMzsgfVxuXG4vKiBsaW5lIDExMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4uc21hbGwtb3JkZXItNCB7XG4gIG9yZGVyOiA0OyB9XG5cbi8qIGxpbmUgMTExLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbi5zbWFsbC1vcmRlci01IHtcbiAgb3JkZXI6IDU7IH1cblxuLyogbGluZSAxMTEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuLnNtYWxsLW9yZGVyLTYge1xuICBvcmRlcjogNjsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAvKiBsaW5lIDExMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4gIC5tZWRpdW0tb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLyogbGluZSAxMTEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuICAubWVkaXVtLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC8qIGxpbmUgMTExLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLm1lZGl1bS1vcmRlci0zIHtcbiAgICBvcmRlcjogMzsgfVxuICAvKiBsaW5lIDExMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4gIC5tZWRpdW0tb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7IH1cbiAgLyogbGluZSAxMTEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuICAubWVkaXVtLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC8qIGxpbmUgMTExLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLm1lZGl1bS1vcmRlci02IHtcbiAgICBvcmRlcjogNjsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC8qIGxpbmUgMTExLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLmxhcmdlLW9yZGVyLTEge1xuICAgIG9yZGVyOiAxOyB9XG4gIC8qIGxpbmUgMTExLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLmxhcmdlLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC8qIGxpbmUgMTExLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLmxhcmdlLW9yZGVyLTMge1xuICAgIG9yZGVyOiAzOyB9XG4gIC8qIGxpbmUgMTExLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLmxhcmdlLW9yZGVyLTQge1xuICAgIG9yZGVyOiA0OyB9XG4gIC8qIGxpbmUgMTExLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLmxhcmdlLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC8qIGxpbmUgMTExLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLmxhcmdlLW9yZGVyLTYge1xuICAgIG9yZGVyOiA2OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAvKiBsaW5lIDExMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4gIC54bGFyZ2Utb3JkZXItMSB7XG4gICAgb3JkZXI6IDE7IH1cbiAgLyogbGluZSAxMTEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuICAueGxhcmdlLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC8qIGxpbmUgMTExLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLnhsYXJnZS1vcmRlci0zIHtcbiAgICBvcmRlcjogMzsgfVxuICAvKiBsaW5lIDExMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4gIC54bGFyZ2Utb3JkZXItNCB7XG4gICAgb3JkZXI6IDQ7IH1cbiAgLyogbGluZSAxMTEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuICAueGxhcmdlLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC8qIGxpbmUgMTExLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLnhsYXJnZS1vcmRlci02IHtcbiAgICBvcmRlcjogNjsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLyogbGluZSAxMTEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuICAueHhsYXJnZS1vcmRlci0xIHtcbiAgICBvcmRlcjogMTsgfVxuICAvKiBsaW5lIDExMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4gIC54eGxhcmdlLW9yZGVyLTIge1xuICAgIG9yZGVyOiAyOyB9XG4gIC8qIGxpbmUgMTExLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLnh4bGFyZ2Utb3JkZXItMyB7XG4gICAgb3JkZXI6IDM7IH1cbiAgLyogbGluZSAxMTEsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuICAueHhsYXJnZS1vcmRlci00IHtcbiAgICBvcmRlcjogNDsgfVxuICAvKiBsaW5lIDExMSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4gIC54eGxhcmdlLW9yZGVyLTUge1xuICAgIG9yZGVyOiA1OyB9XG4gIC8qIGxpbmUgMTExLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLnh4bGFyZ2Utb3JkZXItNiB7XG4gICAgb3JkZXI6IDY7IH0gfVxuXG4vKiBsaW5lIDE4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbi5mbGV4LWNvbnRhaW5lciB7XG4gIGRpc3BsYXk6IGZsZXg7IH1cblxuLyogbGluZSAyMiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4uZmxleC1jaGlsZC1hdXRvIHtcbiAgZmxleDogMSAxIGF1dG87IH1cblxuLyogbGluZSAyNiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4uZmxleC1jaGlsZC1ncm93IHtcbiAgZmxleDogMSAwIGF1dG87IH1cblxuLyogbGluZSAzMCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4uZmxleC1jaGlsZC1zaHJpbmsge1xuICBmbGV4OiAwIDEgYXV0bzsgfVxuXG4vKiBsaW5lIDM1LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbi5mbGV4LWRpci1yb3cge1xuICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG5cbi8qIGxpbmUgMzUsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuLmZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG5cbi8qIGxpbmUgMzUsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuLmZsZXgtZGlyLWNvbHVtbiB7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cblxuLyogbGluZSAzNSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4uZmxleC1kaXItY29sdW1uLXJldmVyc2Uge1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH1cblxuQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgLyogbGluZSA0NSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4gIC5tZWRpdW0tZmxleC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLyogbGluZSA0OSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4gIC5tZWRpdW0tZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bzsgfVxuICAvKiBsaW5lIDUzLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLm1lZGl1bS1mbGV4LWNoaWxkLWdyb3cge1xuICAgIGZsZXg6IDEgMCBhdXRvOyB9XG4gIC8qIGxpbmUgNTcsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuICAubWVkaXVtLWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICBmbGV4OiAwIDEgYXV0bzsgfVxuICAvKiBsaW5lIDYyLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLm1lZGl1bS1mbGV4LWRpci1yb3cge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7IH1cbiAgLyogbGluZSA2MiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4gIC5tZWRpdW0tZmxleC1kaXItcm93LXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfVxuICAvKiBsaW5lIDYyLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLm1lZGl1bS1mbGV4LWRpci1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLyogbGluZSA2MiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4gIC5tZWRpdW0tZmxleC1kaXItY29sdW1uLXJldmVyc2Uge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSB7XG4gIC8qIGxpbmUgNDUsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuICAubGFyZ2UtZmxleC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLyogbGluZSA0OSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4gIC5sYXJnZS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvOyB9XG4gIC8qIGxpbmUgNTMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuICAubGFyZ2UtZmxleC1jaGlsZC1ncm93IHtcbiAgICBmbGV4OiAxIDAgYXV0bzsgfVxuICAvKiBsaW5lIDU3LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLmxhcmdlLWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICBmbGV4OiAwIDEgYXV0bzsgfVxuICAvKiBsaW5lIDYyLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLmxhcmdlLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAvKiBsaW5lIDYyLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLmxhcmdlLWZsZXgtZGlyLXJvdy1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7IH1cbiAgLyogbGluZSA2MiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4gIC5sYXJnZS1mbGV4LWRpci1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLyogbGluZSA2MiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4gIC5sYXJnZS1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAvKiBsaW5lIDQ1LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLnhsYXJnZS1mbGV4LWNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDsgfVxuICAvKiBsaW5lIDQ5LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLnhsYXJnZS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgIGZsZXg6IDEgMSBhdXRvOyB9XG4gIC8qIGxpbmUgNTMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuICAueGxhcmdlLWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87IH1cbiAgLyogbGluZSA1NywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4gIC54bGFyZ2UtZmxleC1jaGlsZC1zaHJpbmsge1xuICAgIGZsZXg6IDAgMSBhdXRvOyB9XG4gIC8qIGxpbmUgNjIsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuICAueGxhcmdlLWZsZXgtZGlyLXJvdyB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdzsgfVxuICAvKiBsaW5lIDYyLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLnhsYXJnZS1mbGV4LWRpci1yb3ctcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG4gIC8qIGxpbmUgNjIsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuICAueGxhcmdlLWZsZXgtZGlyLWNvbHVtbiB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfVxuICAvKiBsaW5lIDYyLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLnhsYXJnZS1mbGV4LWRpci1jb2x1bW4tcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbi1yZXZlcnNlOyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAvKiBsaW5lIDQ1LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLnh4bGFyZ2UtZmxleC1jb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLyogbGluZSA0OSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4gIC54eGxhcmdlLWZsZXgtY2hpbGQtYXV0byB7XG4gICAgZmxleDogMSAxIGF1dG87IH1cbiAgLyogbGluZSA1MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4gIC54eGxhcmdlLWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgZmxleDogMSAwIGF1dG87IH1cbiAgLyogbGluZSA1NywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4gIC54eGxhcmdlLWZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICBmbGV4OiAwIDEgYXV0bzsgfVxuICAvKiBsaW5lIDYyLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL19mbGV4LnNjc3MgKi9cbiAgLnh4bGFyZ2UtZmxleC1kaXItcm93IHtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gIC8qIGxpbmUgNjIsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuICAueHhsYXJnZS1mbGV4LWRpci1yb3ctcmV2ZXJzZSB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlOyB9XG4gIC8qIGxpbmUgNjIsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX2ZsZXguc2NzcyAqL1xuICAueHhsYXJnZS1mbGV4LWRpci1jb2x1bW4ge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH1cbiAgLyogbGluZSA2MiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fZmxleC5zY3NzICovXG4gIC54eGxhcmdlLWZsZXgtZGlyLWNvbHVtbi1yZXZlcnNlIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7IH0gfVxuXG4vKiBsaW5lIDY1LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MgKi9cbi5oaWRlIHtcbiAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi8qIGxpbmUgNjksIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyAqL1xuLmludmlzaWJsZSB7XG4gIHZpc2liaWxpdHk6IGhpZGRlbjsgfVxuXG4vKiBsaW5lIDcyLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MgKi9cbi52aXNpYmxlIHtcbiAgdmlzaWJpbGl0eTogdmlzaWJsZTsgfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSkge1xuICAvKiBsaW5lIDg4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MgKi9cbiAgLmhpZGUtZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDBlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAvKiBsaW5lIDkyLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MgKi9cbiAgLnNob3ctZm9yLXNtYWxsLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gIC8qIGxpbmUgNzksIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyAqL1xuICAuaGlkZS1mb3ItbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzOS45OTg3NWVtKSB7XG4gIC8qIGxpbmUgODMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyAqL1xuICAuc2hvdy1mb3ItbWVkaXVtIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkgYW5kIChtYXgtd2lkdGg6IDYzLjk5ODc1ZW0pIHtcbiAgLyogbGluZSA4OCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzICovXG4gIC5oaWRlLWZvci1tZWRpdW0tb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMzkuOTk4NzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAvKiBsaW5lIDkyLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MgKi9cbiAgLnNob3ctZm9yLW1lZGl1bS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAvKiBsaW5lIDc5LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MgKi9cbiAgLmhpZGUtZm9yLWxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA2My45OTg3NWVtKSB7XG4gIC8qIGxpbmUgODMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyAqL1xuICAuc2hvdy1mb3ItbGFyZ2Uge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA2NGVtKSBhbmQgKG1heC13aWR0aDogNzQuOTk4NzVlbSkge1xuICAvKiBsaW5lIDg4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MgKi9cbiAgLmhpZGUtZm9yLWxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDYzLjk5ODc1ZW0pLCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgLyogbGluZSA5MiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzICovXG4gIC5zaG93LWZvci1sYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gIC8qIGxpbmUgNzksIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyAqL1xuICAuaGlkZS1mb3IteGxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSB7XG4gIC8qIGxpbmUgODMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyAqL1xuICAuc2hvdy1mb3IteGxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSBhbmQgKG1heC13aWR0aDogODkuOTk4NzVlbSkge1xuICAvKiBsaW5lIDg4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MgKi9cbiAgLmhpZGUtZm9yLXhsYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA3NC45OTg3NWVtKSwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gIC8qIGxpbmUgOTIsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyAqL1xuICAuc2hvdy1mb3IteGxhcmdlLW9ubHkge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbkBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDkwZW0pIHtcbiAgLyogbGluZSA3OSwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzICovXG4gIC5oaWRlLWZvci14eGxhcmdlIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG5AbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA4OS45OTg3NWVtKSB7XG4gIC8qIGxpbmUgODMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyAqL1xuICAuc2hvdy1mb3IteHhsYXJnZSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogOTBlbSkge1xuICAvKiBsaW5lIDg4LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MgKi9cbiAgLmhpZGUtZm9yLXh4bGFyZ2Utb25seSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogODkuOTk4NzVlbSksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMGVtKSB7XG4gIC8qIGxpbmUgOTIsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyAqL1xuICAuc2hvdy1mb3IteHhsYXJnZS1vbmx5IHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBsaW5lIDk5LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MgKi9cbi5zaG93LWZvci1zcixcbi5zaG93LW9uLWZvY3VzIHtcbiAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7XG4gIHdpZHRoOiAxcHggIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCkgIWltcG9ydGFudDtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDsgfVxuXG4vKiBsaW5lIDEwNiwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzICovXG4uc2hvdy1vbi1mb2N1czphY3RpdmUsIC5zaG93LW9uLWZvY3VzOmZvY3VzIHtcbiAgcG9zaXRpb246IHN0YXRpYyAhaW1wb3J0YW50O1xuICB3aWR0aDogYXV0byAhaW1wb3J0YW50O1xuICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2xpcDogYXV0byAhaW1wb3J0YW50O1xuICB3aGl0ZS1zcGFjZTogbm9ybWFsICFpbXBvcnRhbnQ7IH1cblxuLyogbGluZSAxMTMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyAqL1xuLnNob3ctZm9yLWxhbmRzY2FwZSxcbi5oaWRlLWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAvKiBsaW5lIDExMywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzICovXG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfSB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChvcmllbnRhdGlvbjogcG9ydHJhaXQpIHtcbiAgICAvKiBsaW5lIDExMywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzICovXG4gICAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgICAuaGlkZS1mb3ItcG9ydHJhaXQge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH1cblxuLyogbGluZSAxMjYsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyAqL1xuLmhpZGUtZm9yLWxhbmRzY2FwZSxcbi5zaG93LWZvci1wb3J0cmFpdCB7XG4gIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgIC8qIGxpbmUgMTI2LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MgKi9cbiAgICAuaGlkZS1mb3ItbGFuZHNjYXBlLFxuICAgIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAob3JpZW50YXRpb246IHBvcnRyYWl0KSB7XG4gICAgLyogbGluZSAxMjYsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyAqL1xuICAgIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gICAgLnNob3ctZm9yLXBvcnRyYWl0IHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH0gfVxuXG4vKiBsaW5lIDE0MCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzICovXG4uc2hvdy1mb3ItZGFyay1tb2RlIHtcbiAgZGlzcGxheTogbm9uZTsgfVxuXG4vKiBsaW5lIDE0MywgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzICovXG4uaGlkZS1mb3ItZGFyay1tb2RlIHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuQG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gIC8qIGxpbmUgMTQ3LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MgKi9cbiAgLnNob3ctZm9yLWRhcmstbW9kZSB7XG4gICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAvKiBsaW5lIDE1MCwgYm93ZXJfY29tcG9uZW50cy9mb3VuZGF0aW9uLXNpdGVzL3Njc3MvY29tcG9uZW50cy9fdmlzaWJpbGl0eS5zY3NzICovXG4gIC5oaWRlLWZvci1kYXJrLW1vZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi8qIGxpbmUgMTU2LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MgKi9cbi5zaG93LWZvci1pZSB7XG4gIGRpc3BsYXk6IG5vbmU7IH1cblxuQG1lZGlhIGFsbCBhbmQgKC1tcy1oaWdoLWNvbnRyYXN0OiBub25lKSwgKC1tcy1oaWdoLWNvbnRyYXN0OiBhY3RpdmUpIHtcbiAgLyogbGluZSAxNjAsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyAqL1xuICAuc2hvdy1mb3ItaWUge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IH1cbiAgLyogbGluZSAxNjMsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyAqL1xuICAuaGlkZS1mb3ItaWUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfSB9XG5cbi8qIGxpbmUgMTY5LCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MgKi9cbi5zaG93LWZvci1zdGlja3kge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qIGxpbmUgMTcyLCBib3dlcl9jb21wb25lbnRzL2ZvdW5kYXRpb24tc2l0ZXMvc2Nzcy9jb21wb25lbnRzL192aXNpYmlsaXR5LnNjc3MgKi9cbi5pcy1zdHVjayAuc2hvdy1mb3Itc3RpY2t5IHtcbiAgZGlzcGxheTogYmxvY2s7IH1cblxuLyogbGluZSAxNzUsIGJvd2VyX2NvbXBvbmVudHMvZm91bmRhdGlvbi1zaXRlcy9zY3NzL2NvbXBvbmVudHMvX3Zpc2liaWxpdHkuc2NzcyAqL1xuLmlzLXN0dWNrIC5oaWRlLWZvci1zdGlja3kge1xuICBkaXNwbGF5OiBub25lOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBEZWZhdWx0IGxheW91dCBwYXJ0aWFsc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogbGF5b3V0LnNjc3NcbiAqXG4gKiBZb3VyIGRlc2NyaXB0aW9uXG4gKlxuICogQ29weXJpZ2h0IFNIT1JUIENVVFMgR21iSFxuICogaHR0cDovL3d3dy5zaG9ydC1jdXRzLmRlXG4gKlxuICogRGF0ZTogMjAxNi0xMi0zMVxuICogQXV0aG9yOiBLYWkgU2VsaWdlciAoaGVsbG9AeWVzam9hci5jb20pXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG4vKiBsaW5lIDE1LCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9zYXNzL3BhcnRpYWxzL19sYXlvdXQuc2NzcyAqL1xuYm9keSB7XG4gIG92ZXJmbG93LXg6IGhpZGRlbjsgfVxuXG4vKiBsaW5lIDIwLCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9zYXNzL3BhcnRpYWxzL19sYXlvdXQuc2NzcyAqL1xuLmJnLS1waW5rIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0VGNzk5NjsgfVxuXG4vKiBsaW5lIDIzLCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9zYXNzL3BhcnRpYWxzL19sYXlvdXQuc2NzcyAqL1xuLmJnLS15ZWxsb3cge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjRkVEMTZEOyB9XG5cbi8qIGxpbmUgMjYsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL3Nhc3MvcGFydGlhbHMvX2xheW91dC5zY3NzICovXG4uYmctLXB1cnBsZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNBNUE1RDM7IH1cblxuLyogbGluZSAyOSwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvc2Fzcy9wYXJ0aWFscy9fbGF5b3V0LnNjc3MgKi9cbi5iZy0tYmx1ZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM3MkM0RUY7IH1cblxuLyogbGluZSAzNiwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvc2Fzcy9wYXJ0aWFscy9fbGF5b3V0LnNjc3MgKi9cbi5mZy0td2hpdGUgLnBhZ2VfX3RpdGxlIHtcbiAgY29sb3I6ICNmZmY7IH1cblxuLyogbGluZSA0MCwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvc2Fzcy9wYXJ0aWFscy9fbGF5b3V0LnNjc3MgKi9cbi5mZy0td2hpdGUgLmhlYWRlcl9fMjAyNSBwYXRoLFxuLmZnLS13aGl0ZSAuaGVhZGVyX19sb2dvIHBhdGgge1xuICBmaWxsOiAjZmZmOyB9XG5cbi8qIGxpbmUgNDgsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL3Nhc3MvcGFydGlhbHMvX2xheW91dC5zY3NzICovXG4udGV4dC1yaWdodCB7XG4gIHRleHQtYWxpZ246IHJpZ2h0OyB9XG5cbi8qIGxpbmUgNTEsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL3Nhc3MvcGFydGlhbHMvX2xheW91dC5zY3NzICovXG4udGV4dC1jZW50ZXIge1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cblxuLyogbGluZSA1NiwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvc2Fzcy9wYXJ0aWFscy9fbGF5b3V0LnNjc3MgKi9cbi53cmFwcGVyID4gZGl2IHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxOyB9XG5cbi8qIGxpbmUgNjIsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL3Nhc3MvcGFydGlhbHMvX2xheW91dC5zY3NzICovXG4uc2xpcHBlcmFuaW1hbCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgei1pbmRleDogLTE7XG4gIHRvcDogMjBweDtcbiAgbGVmdDogNTAlO1xuICBoZWlnaHQ6IGF1dG87XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfVxuICAvKiBsaW5lIDcyLCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9zYXNzL3BhcnRpYWxzL19sYXlvdXQuc2NzcyAqL1xuICAuc2xpcHBlcmFuaW1hbC0tYmx1ZSBzdmcuc2xpcHBlcmFuaW1hbCBwYXRoIHtcbiAgICBmaWxsOiAjNzJDNEVGOyB9XG4gIC8qIGxpbmUgNzgsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL3Nhc3MvcGFydGlhbHMvX2xheW91dC5zY3NzICovXG4gIC5zbGlwcGVyYW5pbWFsLS1wZWFjaCBzdmcuc2xpcHBlcmFuaW1hbCBwYXRoIHtcbiAgICBmaWxsOiAjRjA4MjcyOyB9XG4gIC8qIGxpbmUgODQsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL3Nhc3MvcGFydGlhbHMvX2xheW91dC5zY3NzICovXG4gIC5zbGlwcGVyYW5pbWFsLS15ZWxsb3cgc3ZnLnNsaXBwZXJhbmltYWwgcGF0aCB7XG4gICAgZmlsbDogI0ZFRDE2RDsgfVxuICAvKiBsaW5lIDkwLCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9zYXNzL3BhcnRpYWxzL19sYXlvdXQuc2NzcyAqL1xuICAuc2xpcHBlcmFuaW1hbC0tYmx1ZS1kYXJrIHN2Zy5zbGlwcGVyYW5pbWFsIHBhdGgge1xuICAgIGZpbGw6ICMwMDNGNjA7IH1cbiAgLyogbGluZSA5NSwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvc2Fzcy9wYXJ0aWFscy9fbGF5b3V0LnNjc3MgKi9cbiAgLnNsaXBwZXJhbmltYWwtLW1pcnJvcmVkIHN2Zy5zbGlwcGVyYW5pbWFsIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgc2NhbGVYKC0xKTsgfVxuICAvKiBsaW5lIDk5LCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9zYXNzL3BhcnRpYWxzL19sYXlvdXQuc2NzcyAqL1xuICAuc2xpcHBlcmFuaW1hbF9fcHNldWRvIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSk7XG4gICAgYXNwZWN0LXJhdGlvOiAxO1xuICAgIG1heC13aWR0aDogOTE2cHg7XG4gICAgbWFyZ2luOiAwIGF1dG8gMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgbWFyZ2luOiAyMHB4IGF1dG8gMDsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAvKiBsaW5lIDk5LCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9zYXNzL3BhcnRpYWxzL19sYXlvdXQuc2NzcyAqL1xuICAgICAgLnNsaXBwZXJhbmltYWxfX3BzZXVkbyB7XG4gICAgICAgIG1hcmdpbjogLTUwcHggYXV0byAwOyB9IH1cbiAgICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNjRlbSkge1xuICAgICAgLyogbGluZSA5OSwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvc2Fzcy9wYXJ0aWFscy9fbGF5b3V0LnNjc3MgKi9cbiAgICAgIC5zbGlwcGVyYW5pbWFsX19wc2V1ZG8ge1xuICAgICAgICBhc3BlY3QtcmF0aW86IDI7XG4gICAgICAgIG1hcmdpbi10b3A6IDMwcHg7IH0gfVxuICAvKiBsaW5lIDExOCwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvc2Fzcy9wYXJ0aWFscy9fbGF5b3V0LnNjc3MgKi9cbiAgLnNsaXBwZXJhbmltYWxfX3BzZXVkby10ZXh0IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiA1MCU7XG4gICAgbWF4LXdpZHRoOiA5MTZweDtcbiAgICB3aWR0aDogOTB2dztcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTsgfVxuXG4vKiBsaW5lIDEzMiwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvc2Fzcy9wYXJ0aWFscy9fbGF5b3V0LnNjc3MgKi9cbi5tYWluIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBwYWRkaW5nOiAwIDAgMTEuMjVyZW0gMDsgfVxuXG4vKiBsaW5lIDE0MywgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvc2Fzcy9wYXJ0aWFscy9fbGF5b3V0LnNjc3MgKi9cbi5yb3ctLWNvbG9yZWQge1xuICBwYWRkaW5nLXRvcDogNDBweDtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7IH1cblxuLyogbGluZSAxNDgsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL3Nhc3MvcGFydGlhbHMvX2xheW91dC5zY3NzICovXG4ucm93LS13aGl0ZSB7XG4gIGJhY2tncm91bmQ6ICNmZmY7IH1cblxuLyogbGluZSAxNTUsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL3Nhc3MvcGFydGlhbHMvX2xheW91dC5zY3NzICovXG5vbCBsaSB7XG4gIG1hcmdpbi1sZWZ0OiAxNXB4O1xuICBtYXJnaW4tYm90dG9tOiAyNXB4OyB9XG5cbi8qKlxuICogdHlwby5zY3NzXG4gKlxuICogWW91ciBkZXNjcmlwdGlvblxuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHA6Ly93d3cuc2hvcnQtY3V0cy5kZVxuICpcbiAqIERhdGU6IDIwMTYtMTItMzFcbiAqIEF1dGhvcjogS2FpIFNlbGlnZXIgKGhlbGxvQHllc2pvYXIuY29tKVxuICogTUlUIExpY2Vuc2UgKE1JVClcbiAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0V2ViZm9udHNcblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbkBmb250LWZhY2Uge1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtZmFtaWx5OiBcIml2eW1vZGVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgZm9udC1zdHlsZTogbm9ybWFsOyB9XG5cbkBmb250LWZhY2Uge1xuICBmb250LWRpc3BsYXk6IHN3YXA7XG4gIGZvbnQtZmFtaWx5OiBcImFkZWxwaGktcGUtdmFyaWFibGVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC12YXJpYXRpb24tc2V0dGluZ3M6IFwib3BzelwiIDYsIFwic2xudFwiIDAsIFwid2dodFwiIDQwMDsgfVxuXG5AZm9udC1mYWNlIHtcbiAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICBmb250LWZhbWlseTogXCJhZGVscGhpLXBlLXZhcmlhYmxlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBcIm9wc3pcIiA2LCBcInNsbnRcIiAwLCBcIndnaHRcIiA1MDA7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0R2xvYmFsIFR5cG8gU3R5bGVzXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiBsaW5lIDQ3LCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9zYXNzL3BhcnRpYWxzL190eXBvLnNjc3MgKi9cbmJvZHkge1xuICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogXCJvcHN6XCIgNiwgXCJzbG50XCIgMCwgXCJ3Z2h0XCIgNDAwO1xuICBoeXBoZW5zOiBhdXRvO1xuICBoeXBoZW5hdGUtbGltaXQtY2hhcnM6IDggNDsgfVxuXG4vKiBsaW5lIDUzLCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9zYXNzL3BhcnRpYWxzL190eXBvLnNjc3MgKi9cbnAsIG1haW4gbGkge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjI1OyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAvKiBsaW5lIDUzLCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9zYXNzL3BhcnRpYWxzL190eXBvLnNjc3MgKi9cbiAgICBwLCBtYWluIGxpIHtcbiAgICAgIGZvbnQtc2l6ZTogMzJweDsgfSB9XG5cbi8qIGxpbmUgNjIsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL3Nhc3MvcGFydGlhbHMvX3R5cG8uc2NzcyAqL1xubWFpbiBhIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG4gIGNvbG9yOiAjMDAwOyB9XG5cbi8qIGxpbmUgOTQsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL3Nhc3MvcGFydGlhbHMvX3R5cG8uc2NzcyAqL1xuLnRleHQtLXdoaXRlIHtcbiAgY29sb3I6ICNmZmY7IH1cblxuLyoqXG4gKiBpY29uLWZvbnQuc2Nzc1xuICpcbiAqIFlvdXIgZGVzY3JpcHRpb25cbiAqXG4gKiBDb3B5cmlnaHQgU0hPUlQgQ1VUUyBHbWJIXG4gKiBodHRwOi8vd3d3LnNob3J0LWN1dHMuZGVcbiAqXG4gKiBEYXRlOiAyMDE2LTEyLTMxXG4gKiBBdXRob3I6IEthaSBTZWxpZ2VyIChoZWxsb0B5ZXNqb2FyLmNvbSlcbiAqIE1JVCBMaWNlbnNlIChNSVQpXG4gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBJY29uIEZvbnQgc2V0dGluZ3NcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AZm9udC1mYWNlIHtcbiAgZm9udC1mYW1pbHk6IFwiZm9udGVsbG9cIjtcbiAgc3JjOiB1cmwoXCIuLi9mb250cy9pY29uZm9udC9mb250ZWxsby5lb3RcIik7XG4gIHNyYzogdXJsKFwiLi4vZm9udHMvaWNvbmZvbnQvZm9udGVsbG8uZW90PyNpZWZpeFwiKSBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSwgdXJsKFwiLi4vZm9udHMvaWNvbmZvbnQvZm9udGVsbG8ud29mZlwiKSBmb3JtYXQoXCJ3b2ZmXCIpLCB1cmwoXCIuLi9mb250cy9pY29uZm9udC9mb250ZWxsby50dGZcIikgZm9ybWF0KFwidHJ1ZXR5cGVcIiksIHVybChcIi4uL2ZvbnRzL2ljb25mb250L2ZvbnRlbGxvLnN2ZyNmb250ZWxsb1wiKSBmb3JtYXQoXCJzdmdcIik7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDsgfVxuXG4vKiBsaW5lIDMxLCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9zYXNzL3BhcnRpYWxzL19pY29uLWZvbnQuc2NzcyAqL1xuLnV0aWwtaWNvbi0tYmVmb3JlOmJlZm9yZSxcbi51dGlsLWljb24tLWFmdGVyOmFmdGVyIHtcbiAgZm9udC1mYW1pbHk6IFwiZm9udGVsbG9cIiAhaW1wb3J0YW50O1xuICBmb250LXN0eWxlOiBub3JtYWwgIWltcG9ydGFudDtcbiAgZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbCAhaW1wb3J0YW50O1xuICB0ZXh0LXRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xuICBzcGVhazogbm9uZTtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOyB9XG5cbi8qIGxpbmUgNDksIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL3Nhc3MvcGFydGlhbHMvX2ljb24tZm9udC5zY3NzICovXG4udXRpbC1pY29uLS1iZWZvcmUudXRpbC1pY29uLS1hbmdsZS1sZWZ0OmJlZm9yZSxcbi51dGlsLWljb24tLWFmdGVyLnV0aWwtaWNvbi0tYW5nbGUtbGVmdDphZnRlciB7XG4gIGNvbnRlbnQ6IFwi74SEXCI7IH1cblxuLyogbGluZSA0OSwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvc2Fzcy9wYXJ0aWFscy9faWNvbi1mb250LnNjc3MgKi9cbi51dGlsLWljb24tLWJlZm9yZS51dGlsLWljb24tLWFuZ2xlLXJpZ2h0OmJlZm9yZSxcbi51dGlsLWljb24tLWFmdGVyLnV0aWwtaWNvbi0tYW5nbGUtcmlnaHQ6YWZ0ZXIge1xuICBjb250ZW50OiBcIu+EhVwiOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnRzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBoZWFkZXIuc2Nzc1xuICpcbiAqIFlvdXIgZGVzY3JpcHRpb25cbiAqXG4gKiBDb3B5cmlnaHQgU0hPUlQgQ1VUUyBHbWJIXG4gKiBodHRwOi8vd3d3LnNob3J0LWN1dHMuZGVcbiAqXG4gKiBEYXRlOiAyMDE2LTEyLTMxXG4gKiBBdXRob3I6IEthaSBTZWxpZ2VyIChzZWxpZ2VyQHNob3J0LWN1dHMuZGUpXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG4vKipcbiAqIGZ1bmN0aW9ucy5zY3NzXG4gKlxuICogWW91ciBkZXNjcmlwdGlvblxuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHA6Ly93d3cuc2hvcnQtY3V0cy5kZVxuICpcbiAqIERhdGU6IDIwMTYtMTItMzFcbiAqIEF1dGhvcjogS2FpIFNlbGlnZXIgKGhlbGxvQHllc2pvYXIuY29tKVxuICogTUlUIExpY2Vuc2UgKE1JVClcbiAqL1xuLyoqXG4gKiBSZXR1cm4gc3BlY2lmaWMgY29sb3JcbiAqL1xuLyoqXG4gKiB2YXJpYWJsZXMuc2Nzc1xuICpcbiAqIFlvdXIgZGVzY3JpcHRpb25cbiAqXG4gKiBDb3B5cmlnaHQgU0hPUlQgQ1VUUyBHbWJIXG4gKiBodHRwOi8vd3d3LnNob3J0LWN1dHMuZGVcbiAqXG4gKiBEYXRlOiAyMDE2LTEyLTMxXG4gKiBBdXRob3I6IEthaSBTZWxpZ2VyIChoZWxsb0B5ZXNqb2FyLmNvbSlcbiAqIE1JVCBMaWNlbnNlIChNSVQpXG4gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb2xvcnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA8QGNvbG9ycyAqL1xuLyogY29sb3JzQD4gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBJY29uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIDxAaWNvbnMgKi9cbi8qIGljb25zQD4gKi9cbi8qKlxuICogbWl4aW5zLnNjc3NcbiAqXG4gKiBZb3VyIGRlc2NyaXB0aW9uXG4gKlxuICogQ29weXJpZ2h0IFNIT1JUIENVVFMgR21iSFxuICogaHR0cDovL3d3dy5zaG9ydC1jdXRzLmRlXG4gKlxuICogRGF0ZTogMjAxNi0xMi0zMVxuICogQXV0aG9yOiBLYWkgU2VsaWdlciAoaGVsbG9AeWVzam9hci5jb20pXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG4vKipcbiAqIE1peGluIGZvciBzdHlsaW5nIGlucHV0IHBsYWNlaG9sZGVyLlxuICpcbiAqIEBpbmNsdWRlIHBsYWNlaG9sZGVyKCl7XG4gKiAgIGNvbnRlbnQgZ29lcyBoZXJlXG4gKiB9XG4gKi9cbi8qKlxuICpcbiAqXG4gKi9cbi8qKlxuICpcbiAqXG4gKi9cbi8qKlxuICpcbiAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEhlYWRlclxuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIGxpbmUgMjYsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9oZWFkZXIvaGVhZGVyLnNjc3MgKi9cbi5oZWFkZXIge1xuICBtYXJnaW4tdG9wOiA0MHB4OyB9XG4gIC8qIGxpbmUgMjksIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9oZWFkZXIvaGVhZGVyLnNjc3MgKi9cbiAgLmhlYWRlciA+IC5yb3cge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB6LWluZGV4OiAxOyB9XG4gIC8qIGxpbmUgMzQsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9oZWFkZXIvaGVhZGVyLnNjc3MgKi9cbiAgLmhlYWRlcl9fMjAyNSB7XG4gICAgd2lkdGg6IDMxLjQxMDI2cHg7XG4gICAgaGVpZ2h0OiA1MHB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC8qIGxpbmUgMzQsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9oZWFkZXIvaGVhZGVyLnNjc3MgKi9cbiAgICAgIC5oZWFkZXJfXzIwMjUge1xuICAgICAgICB3aWR0aDogNDlweDtcbiAgICAgICAgaGVpZ2h0OiA3OHB4OyB9IH1cbiAgLyogbGluZSA0NCwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L2hlYWRlci9oZWFkZXIuc2NzcyAqL1xuICAuaGVhZGVyX19sb2dvIHtcbiAgICB3aWR0aDogMjUwcHg7XG4gICAgaGVpZ2h0OiA2NXB4OyB9XG4gICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAgIC8qIGxpbmUgNDQsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9oZWFkZXIvaGVhZGVyLnNjc3MgKi9cbiAgICAgIC5oZWFkZXJfX2xvZ28ge1xuICAgICAgICB3aWR0aDogMzI1cHg7XG4gICAgICAgIGhlaWdodDogODguNjI5cHg7IH0gfVxuXG4vKipcbiAqIGZvb3Rlci5zY3NzXG4gKlxuICogWW91ciBkZXNjcmlwdGlvblxuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHA6Ly93d3cuc2hvcnQtY3V0cy5kZVxuICpcbiAqIERhdGU6IDIwMTYtMTItMzFcbiAqIEF1dGhvcjogS2FpIFNlbGlnZXIgKHNlbGlnZXJAc2hvcnQtY3V0cy5kZSlcbiAqIE1JVCBMaWNlbnNlIChNSVQpXG4gKi9cbi8qKlxuICogZnVuY3Rpb25zLnNjc3NcbiAqXG4gKiBZb3VyIGRlc2NyaXB0aW9uXG4gKlxuICogQ29weXJpZ2h0IFNIT1JUIENVVFMgR21iSFxuICogaHR0cDovL3d3dy5zaG9ydC1jdXRzLmRlXG4gKlxuICogRGF0ZTogMjAxNi0xMi0zMVxuICogQXV0aG9yOiBLYWkgU2VsaWdlciAoaGVsbG9AeWVzam9hci5jb20pXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG4vKipcbiAqIFJldHVybiBzcGVjaWZpYyBjb2xvclxuICovXG4vKipcbiAqIHZhcmlhYmxlcy5zY3NzXG4gKlxuICogWW91ciBkZXNjcmlwdGlvblxuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHA6Ly93d3cuc2hvcnQtY3V0cy5kZVxuICpcbiAqIERhdGU6IDIwMTYtMTItMzFcbiAqIEF1dGhvcjogS2FpIFNlbGlnZXIgKGhlbGxvQHllc2pvYXIuY29tKVxuICogTUlUIExpY2Vuc2UgKE1JVClcbiAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbG9yc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIDxAY29sb3JzICovXG4vKiBjb2xvcnNAPiAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEljb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPEBpY29ucyAqL1xuLyogaWNvbnNAPiAqL1xuLyoqXG4gKiBtaXhpbnMuc2Nzc1xuICpcbiAqIFlvdXIgZGVzY3JpcHRpb25cbiAqXG4gKiBDb3B5cmlnaHQgU0hPUlQgQ1VUUyBHbWJIXG4gKiBodHRwOi8vd3d3LnNob3J0LWN1dHMuZGVcbiAqXG4gKiBEYXRlOiAyMDE2LTEyLTMxXG4gKiBBdXRob3I6IEthaSBTZWxpZ2VyIChoZWxsb0B5ZXNqb2FyLmNvbSlcbiAqIE1JVCBMaWNlbnNlIChNSVQpXG4gKi9cbi8qKlxuICogTWl4aW4gZm9yIHN0eWxpbmcgaW5wdXQgcGxhY2Vob2xkZXIuXG4gKlxuICogQGluY2x1ZGUgcGxhY2Vob2xkZXIoKXtcbiAqICAgY29udGVudCBnb2VzIGhlcmVcbiAqIH1cbiAqL1xuLyoqXG4gKlxuICpcbiAqL1xuLyoqXG4gKlxuICpcbiAqL1xuLyoqXG4gKlxuICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRm9vdGVyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogbGluZSAyNiwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L2Zvb3Rlci9mb290ZXIuc2NzcyAqL1xuLmZvb3RlciB7XG4gIGJhY2tncm91bmQ6ICMwMDA7XG4gIHBhZGRpbmc6IDQwcHg7IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgIC8qIGxpbmUgMzAsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9mb290ZXIvZm9vdGVyLnNjc3MgKi9cbiAgICAuZm9vdGVyID4gLnJvdyB7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyOyB9IH1cbiAgLyogbGluZSAzNywgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L2Zvb3Rlci9mb290ZXIuc2NzcyAqL1xuICAuZm9vdGVyX19jb2x1bW4tLWxvZ28ge1xuICAgIGRpc3BsYXk6IGZsZXg7IH1cbiAgLyogbGluZSA0MiwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L2Zvb3Rlci9mb290ZXIuc2NzcyAqL1xuICAuZm9vdGVyX19sb2dvIHtcbiAgICB3aWR0aDogMjU5cHg7XG4gICAgaGVpZ2h0OiAyMnB4OyB9XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgICAgLyogbGluZSA0MiwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L2Zvb3Rlci9mb290ZXIuc2NzcyAqL1xuICAgICAgLmZvb3Rlcl9fbG9nbyB7XG4gICAgICAgIHdpZHRoOiAyNDBweDtcbiAgICAgICAgaGVpZ2h0OiAyMHB4OyB9IH1cblxuLyoqXG4gKiBuYXYtbWFpbi5zY3NzXG4gKlxuICogWW91ciBkZXNjcmlwdGlvblxuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHA6Ly93d3cuc2hvcnQtY3V0cy5kZVxuICpcbiAqIERhdGU6IDIwMTYtMTItMzFcbiAqIEF1dGhvcjogS2FpIFNlbGlnZXIgKHNlbGlnZXJAc2hvcnQtY3V0cy5kZSlcbiAqIE1JVCBMaWNlbnNlIChNSVQpXG4gKi9cbi8qKlxuICogZnVuY3Rpb25zLnNjc3NcbiAqXG4gKiBZb3VyIGRlc2NyaXB0aW9uXG4gKlxuICogQ29weXJpZ2h0IFNIT1JUIENVVFMgR21iSFxuICogaHR0cDovL3d3dy5zaG9ydC1jdXRzLmRlXG4gKlxuICogRGF0ZTogMjAxNi0xMi0zMVxuICogQXV0aG9yOiBLYWkgU2VsaWdlciAoaGVsbG9AeWVzam9hci5jb20pXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG4vKipcbiAqIFJldHVybiBzcGVjaWZpYyBjb2xvclxuICovXG4vKipcbiAqIHZhcmlhYmxlcy5zY3NzXG4gKlxuICogWW91ciBkZXNjcmlwdGlvblxuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHA6Ly93d3cuc2hvcnQtY3V0cy5kZVxuICpcbiAqIERhdGU6IDIwMTYtMTItMzFcbiAqIEF1dGhvcjogS2FpIFNlbGlnZXIgKGhlbGxvQHllc2pvYXIuY29tKVxuICogTUlUIExpY2Vuc2UgKE1JVClcbiAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbG9yc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIDxAY29sb3JzICovXG4vKiBjb2xvcnNAPiAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEljb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPEBpY29ucyAqL1xuLyogaWNvbnNAPiAqL1xuLyoqXG4gKiBtaXhpbnMuc2Nzc1xuICpcbiAqIFlvdXIgZGVzY3JpcHRpb25cbiAqXG4gKiBDb3B5cmlnaHQgU0hPUlQgQ1VUUyBHbWJIXG4gKiBodHRwOi8vd3d3LnNob3J0LWN1dHMuZGVcbiAqXG4gKiBEYXRlOiAyMDE2LTEyLTMxXG4gKiBBdXRob3I6IEthaSBTZWxpZ2VyIChoZWxsb0B5ZXNqb2FyLmNvbSlcbiAqIE1JVCBMaWNlbnNlIChNSVQpXG4gKi9cbi8qKlxuICogTWl4aW4gZm9yIHN0eWxpbmcgaW5wdXQgcGxhY2Vob2xkZXIuXG4gKlxuICogQGluY2x1ZGUgcGxhY2Vob2xkZXIoKXtcbiAqICAgY29udGVudCBnb2VzIGhlcmVcbiAqIH1cbiAqL1xuLyoqXG4gKlxuICpcbiAqL1xuLyoqXG4gKlxuICpcbiAqL1xuLyoqXG4gKlxuICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXHRNYWluIE5hdmlnYXRpb25cblx0PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIGxpbmUgMjgsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9uYXYtbWFpbi9uYXYtbWFpbi5zY3NzICovXG4ubmF2LW1haW5fX3NtYWxsLXdyYXBwZXIge1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBiYWNrZ3JvdW5kOiAjRkZGO1xuICBib3gtc2hhZG93OiAwcHggMnB4IDZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgd2lkdGg6IDQwcHg7XG4gIGhlaWdodDogMzhweDtcbiAgcGFkZGluZzogMTBweCA1cHg7XG4gIG1hcmdpbi10b3A6IDI1cHg7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXJnaW46IDAgYXV0bztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdHJhbnNpdGlvbjogd2lkdGggLjZzIGVhc2UtaW4tb3V0LCBoZWlnaHQgLjZzIGVhc2UtaW4tb3V0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG4gIC8qIGxpbmUgNDYsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9uYXYtbWFpbi9uYXYtbWFpbi5zY3NzICovXG4gIC5uYXYtbWFpbl9fc21hbGwtd3JhcHBlci0tb3BlbmVkIHtcbiAgICB3aWR0aDogODB2dztcbiAgICBoZWlnaHQ6IDQwMHB4OyB9XG5cbi8qIGxpbmUgNTIsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9uYXYtbWFpbi9uYXYtbWFpbi5zY3NzICovXG4ubmF2LW1haW5fX3RyaWdnZXIge1xuICB3aWR0aDogMS4wOTM3NXJlbTtcbiAgaGVpZ2h0OiAwLjlyZW07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogMjA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAxMS44cHg7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpOyB9XG5cbi8qIGxpbmUgNjYsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9uYXYtbWFpbi9uYXYtbWFpbi5zY3NzICovXG4ubmF2LW1haW5fX3RyaWdnZXItbGluZSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICMwMDA7XG4gIHdpZHRoOiAxMDAlO1xuICBoZWlnaHQ6IDAuMTI1cmVtO1xuICBib3JkZXItcmFkaXVzOiAwO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGxlZnQ6IDA7XG4gIHRyYW5zZm9ybS1vcmlnaW46IGNlbnRlcjsgfVxuICAvKiBsaW5lIDc1LCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvbmF2LW1haW4vbmF2LW1haW4uc2NzcyAqL1xuICAubmF2LW1haW5fX3RyaWdnZXItbGluZS0tMSB7XG4gICAgdG9wOiAwO1xuICAgIHRyYW5zaXRpb246IHRvcCAuMTVzIC4xNXMgZWFzZS1pbi1vdXQsIHRyYW5zZm9ybSAuMTVzIGVhc2UtaW4tb3V0OyB9XG4gICAgLyogbGluZSA3OSwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L25hdi1tYWluL25hdi1tYWluLnNjc3MgKi9cbiAgICAubmF2LW1haW5fX3RyaWdnZXItLWNyb3NzZWQgLm5hdi1tYWluX190cmlnZ2VyLWxpbmUtLTEge1xuICAgICAgdG9wOiAwLjM4NzVyZW07XG4gICAgICB0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG4gICAgICB0cmFuc2l0aW9uOiB0b3AgLjE1cyBlYXNlLWluLW91dCwgdHJhbnNmb3JtIC4xNXMgLjE1cyBlYXNlLWluLW91dDsgfVxuICAvKiBsaW5lIDg2LCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvbmF2LW1haW4vbmF2LW1haW4uc2NzcyAqL1xuICAubmF2LW1haW5fX3RyaWdnZXItbGluZS0tMiB7XG4gICAgdG9wOiAwLjM4NzVyZW07XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4xNXMgLjE1cyBlYXNlLWluLW91dDsgfVxuICAgIC8qIGxpbmUgOTEsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9uYXYtbWFpbi9uYXYtbWFpbi5zY3NzICovXG4gICAgLm5hdi1tYWluX190cmlnZ2VyLS1jcm9zc2VkIC5uYXYtbWFpbl9fdHJpZ2dlci1saW5lLS0yIHtcbiAgICAgIG9wYWNpdHk6IDA7XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IC4xNXMgMHMgZWFzZS1pbi1vdXQ7IH1cbiAgLyogbGluZSA5NywgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L25hdi1tYWluL25hdi1tYWluLnNjc3MgKi9cbiAgLm5hdi1tYWluX190cmlnZ2VyLWxpbmUtLTMge1xuICAgIGJvdHRvbTogMDtcbiAgICB0cmFuc2l0aW9uOiBib3R0b20gLjE1cyAuMTVzIGVhc2UtaW4tb3V0LCB0cmFuc2Zvcm0gLjE1cyBlYXNlLWluLW91dDsgfVxuICAgIC8qIGxpbmUgMTAxLCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvbmF2LW1haW4vbmF2LW1haW4uc2NzcyAqL1xuICAgIC5uYXYtbWFpbl9fdHJpZ2dlci0tY3Jvc3NlZCAubmF2LW1haW5fX3RyaWdnZXItbGluZS0tMyB7XG4gICAgICBib3R0b206IDAuMzg3NXJlbTtcbiAgICAgIHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG4gICAgICB0cmFuc2l0aW9uOiBib3R0b20gLjE1cyBlYXNlLWluLW91dCwgdHJhbnNmb3JtIC4xNXMgLjE1cyBlYXNlLWluLW91dDsgfVxuXG4vKiBsaW5lIDEwOSwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L25hdi1tYWluL25hdi1tYWluLnNjc3MgKi9cbi5uYXYtbWFpbl9fbGlzdCB7XG4gIHBhZGRpbmc6IDA7XG4gIG1hcmdpbjogMDtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLXRvcDogMy43NXJlbTtcbiAgZ2FwOiAyLjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAvKiBsaW5lIDEwOSwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L25hdi1tYWluL25hdi1tYWluLnNjc3MgKi9cbiAgICAubmF2LW1haW5fX2xpc3Qge1xuICAgICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIG1hcmdpbi10b3A6IDI1cHg7IH0gfVxuXG4vKiBsaW5lIDEzMCwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L25hdi1tYWluL25hdi1tYWluLnNjc3MgKi9cbi5uYXYtbWFpbl9fbGluayB7XG4gIHdpZHRoOiAxNTBweDtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBcIm9wc3pcIiA2LCBcInNsbnRcIiAwLCBcIndnaHRcIiA1MDA7IH1cbiAgLyogbGluZSAxMzUsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9uYXYtbWFpbi9uYXYtbWFpbi5zY3NzICovXG4gIC5uYXYtbWFpbl9fbGluay0tYWN0aXZlIHtcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSAhaW1wb3J0YW50OyB9XG4gIC8qIGxpbmUgMTM4LCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvbmF2LW1haW4vbmF2LW1haW4uc2NzcyAqL1xuICAubmF2LW1haW5fX2xpbms6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50OyB9XG5cbi8qKlxuICogbmF2LWZvb3Rlci5zY3NzXG4gKlxuICogQ29weXJpZ2h0IFNIT1JUIENVVFMgR21iSFxuICogaHR0cHM6Ly93d3cuc2hvcnQtY3V0cy5kZS9cbiAqXG4gKiBEYXRlOiAyMDI1LTAxLTExXG4gKiBBdXRob3I6IHJpY28gKCpAc2hvcnQtY3V0cy5kZSlcbiAqIE1JVCBMaWNlbnNlIChNSVQpXG4gKi9cbi8qKlxuICogZnVuY3Rpb25zLnNjc3NcbiAqXG4gKiBZb3VyIGRlc2NyaXB0aW9uXG4gKlxuICogQ29weXJpZ2h0IFNIT1JUIENVVFMgR21iSFxuICogaHR0cDovL3d3dy5zaG9ydC1jdXRzLmRlXG4gKlxuICogRGF0ZTogMjAxNi0xMi0zMVxuICogQXV0aG9yOiBLYWkgU2VsaWdlciAoaGVsbG9AeWVzam9hci5jb20pXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG4vKipcbiAqIFJldHVybiBzcGVjaWZpYyBjb2xvclxuICovXG4vKipcbiAqIHZhcmlhYmxlcy5zY3NzXG4gKlxuICogWW91ciBkZXNjcmlwdGlvblxuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHA6Ly93d3cuc2hvcnQtY3V0cy5kZVxuICpcbiAqIERhdGU6IDIwMTYtMTItMzFcbiAqIEF1dGhvcjogS2FpIFNlbGlnZXIgKGhlbGxvQHllc2pvYXIuY29tKVxuICogTUlUIExpY2Vuc2UgKE1JVClcbiAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIENvbG9yc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIDxAY29sb3JzICovXG4vKiBjb2xvcnNAPiAqL1xuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEljb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPEBpY29ucyAqL1xuLyogaWNvbnNAPiAqL1xuLyoqXG4gKiBtaXhpbnMuc2Nzc1xuICpcbiAqIFlvdXIgZGVzY3JpcHRpb25cbiAqXG4gKiBDb3B5cmlnaHQgU0hPUlQgQ1VUUyBHbWJIXG4gKiBodHRwOi8vd3d3LnNob3J0LWN1dHMuZGVcbiAqXG4gKiBEYXRlOiAyMDE2LTEyLTMxXG4gKiBBdXRob3I6IEthaSBTZWxpZ2VyIChoZWxsb0B5ZXNqb2FyLmNvbSlcbiAqIE1JVCBMaWNlbnNlIChNSVQpXG4gKi9cbi8qKlxuICogTWl4aW4gZm9yIHN0eWxpbmcgaW5wdXQgcGxhY2Vob2xkZXIuXG4gKlxuICogQGluY2x1ZGUgcGxhY2Vob2xkZXIoKXtcbiAqICAgY29udGVudCBnb2VzIGhlcmVcbiAqIH1cbiAqL1xuLyoqXG4gKlxuICpcbiAqL1xuLyoqXG4gKlxuICpcbiAqL1xuLyoqXG4gKlxuICovXG4vKiBsaW5lIDIwLCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvbmF2LWZvb3Rlci9uYXYtZm9vdGVyLnNjc3MgKi9cbi5uYXYtZm9vdGVyIHtcbiAgbWFyZ2luOiAzMnB4IDAgMCAwO1xuICBwYWRkaW5nOiAwO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBnYXA6IDQwcHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAvKiBsaW5lIDIwLCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvbmF2LWZvb3Rlci9uYXYtZm9vdGVyLnNjc3MgKi9cbiAgICAubmF2LWZvb3RlciB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA5MGVtKSB7XG4gICAgLyogbGluZSAyMCwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L25hdi1mb290ZXIvbmF2LWZvb3Rlci5zY3NzICovXG4gICAgLm5hdi1mb290ZXIge1xuICAgICAgbWFyZ2luOiAwOyB9IH1cbiAgLyogbGluZSAzOCwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L25hdi1mb290ZXIvbmF2LWZvb3Rlci5zY3NzICovXG4gIC5uYXYtZm9vdGVyLS1yaWdodCB7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAgIC8qIGxpbmUgMzgsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9uYXYtZm9vdGVyL25hdi1mb290ZXIuc2NzcyAqL1xuICAgICAgLm5hdi1mb290ZXItLXJpZ2h0IHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDsgfSB9XG4gIC8qIGxpbmUgNDcsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9uYXYtZm9vdGVyL25hdi1mb290ZXIuc2NzcyAqL1xuICAubmF2LWZvb3Rlci0tY2VudGVyIHtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuICAgIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgICAvKiBsaW5lIDQ3LCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvbmF2LWZvb3Rlci9uYXYtZm9vdGVyLnNjc3MgKi9cbiAgICAgIC5uYXYtZm9vdGVyLS1jZW50ZXIge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9IH1cbiAgLyogbGluZSA1NCwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L25hdi1mb290ZXIvbmF2LWZvb3Rlci5zY3NzICovXG4gIC5uYXYtZm9vdGVyX19saW5rIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsO1xuICAgIHdpZHRoOiAxNTBweDtcbiAgICBmb250LXZhcmlhdGlvbi1zZXR0aW5nczogXCJvcHN6XCIgNiwgXCJzbG50XCIgMCwgXCJ3Z2h0XCIgNDAwO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZmY7IH1cblxuLyoqXG4gKiBidXR0b24uc2Nzc1xuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHBzOi8vd3d3LnNob3J0LWN1dHMuZGUvXG4gKlxuICogRGF0ZTogMjAyNS0wMS0xMlxuICogQXV0aG9yOiByaWNvICgqQHNob3J0LWN1dHMuZGUpXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG4vKipcbiAqIGZ1bmN0aW9ucy5zY3NzXG4gKlxuICogWW91ciBkZXNjcmlwdGlvblxuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHA6Ly93d3cuc2hvcnQtY3V0cy5kZVxuICpcbiAqIERhdGU6IDIwMTYtMTItMzFcbiAqIEF1dGhvcjogS2FpIFNlbGlnZXIgKGhlbGxvQHllc2pvYXIuY29tKVxuICogTUlUIExpY2Vuc2UgKE1JVClcbiAqL1xuLyoqXG4gKiBSZXR1cm4gc3BlY2lmaWMgY29sb3JcbiAqL1xuLyoqXG4gKiB2YXJpYWJsZXMuc2Nzc1xuICpcbiAqIFlvdXIgZGVzY3JpcHRpb25cbiAqXG4gKiBDb3B5cmlnaHQgU0hPUlQgQ1VUUyBHbWJIXG4gKiBodHRwOi8vd3d3LnNob3J0LWN1dHMuZGVcbiAqXG4gKiBEYXRlOiAyMDE2LTEyLTMxXG4gKiBBdXRob3I6IEthaSBTZWxpZ2VyIChoZWxsb0B5ZXNqb2FyLmNvbSlcbiAqIE1JVCBMaWNlbnNlIChNSVQpXG4gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb2xvcnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA8QGNvbG9ycyAqL1xuLyogY29sb3JzQD4gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBJY29uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIDxAaWNvbnMgKi9cbi8qIGljb25zQD4gKi9cbi8qKlxuICogbWl4aW5zLnNjc3NcbiAqXG4gKiBZb3VyIGRlc2NyaXB0aW9uXG4gKlxuICogQ29weXJpZ2h0IFNIT1JUIENVVFMgR21iSFxuICogaHR0cDovL3d3dy5zaG9ydC1jdXRzLmRlXG4gKlxuICogRGF0ZTogMjAxNi0xMi0zMVxuICogQXV0aG9yOiBLYWkgU2VsaWdlciAoaGVsbG9AeWVzam9hci5jb20pXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG4vKipcbiAqIE1peGluIGZvciBzdHlsaW5nIGlucHV0IHBsYWNlaG9sZGVyLlxuICpcbiAqIEBpbmNsdWRlIHBsYWNlaG9sZGVyKCl7XG4gKiAgIGNvbnRlbnQgZ29lcyBoZXJlXG4gKiB9XG4gKi9cbi8qKlxuICpcbiAqXG4gKi9cbi8qKlxuICpcbiAqXG4gKi9cbi8qKlxuICpcbiAqL1xuLyogbGluZSAyMCwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L2J1dHRvbi9idXR0b24uc2NzcyAqL1xuLmJ1dHRvbiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgY29sb3I6ICMwMDA7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBib3JkZXItcmFkaXVzOiA1MHB4O1xuICBib3gtc2hhZG93OiAwcHggMnB4IDhweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgcGFkZGluZzogNXB4O1xuICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIC4zcyBlYXNlLWluLW91dCwgY29sb3IgLjNzIGVhc2UtaW4tb3V0OyB9XG4gIC8qIGxpbmUgMzYsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9idXR0b24vYnV0dG9uLnNjc3MgKi9cbiAgLmJ1dHRvbi0tcHJpbWFyeSB7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgYmFja2dyb3VuZDogI0ZGRjsgfVxuICAgIC8qIGxpbmUgNDAsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9idXR0b24vYnV0dG9uLnNjc3MgKi9cbiAgICAuYnV0dG9uLS1wcmltYXJ5OmhvdmVyIHtcbiAgICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgICBjb2xvcjogI0ZGRjsgfVxuICAvKiBsaW5lIDQ2LCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvYnV0dG9uL2J1dHRvbi5zY3NzICovXG4gIC5idXR0b24tLWxhcmdlIHtcbiAgICB3aWR0aDogMzQwcHg7XG4gICAgZm9udC1zaXplOiAyNHB4OyB9XG4gIC8qIGxpbmUgNTEsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9idXR0b24vYnV0dG9uLnNjc3MgKi9cbiAgLmJ1dHRvbi0taW52ZXJ0ZWQge1xuICAgIGJhY2tncm91bmQ6ICMwMDA7XG4gICAgY29sb3I6ICNGRkY7IH1cbiAgICAvKiBsaW5lIDU1LCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvYnV0dG9uL2J1dHRvbi5zY3NzICovXG4gICAgLmJ1dHRvbi0taW52ZXJ0ZWQ6aG92ZXIge1xuICAgICAgY29sb3I6ICMwMDA7XG4gICAgICBiYWNrZ3JvdW5kOiAjRkZGOyB9XG5cbi8qKlxuICogYWNjb3JkaW9uLnNjc3NcbiAqXG4gKiBDb3B5cmlnaHQgU0hPUlQgQ1VUUyBHbWJIXG4gKiBodHRwczovL3d3dy5zaG9ydC1jdXRzLmRlL1xuICpcbiAqIERhdGU6IDIwMjUtMDEtMTJcbiAqIEF1dGhvcjogcmljbyAoKkBzaG9ydC1jdXRzLmRlKVxuICogTUlUIExpY2Vuc2UgKE1JVClcbiAqL1xuLyoqXG4gKiBmdW5jdGlvbnMuc2Nzc1xuICpcbiAqIFlvdXIgZGVzY3JpcHRpb25cbiAqXG4gKiBDb3B5cmlnaHQgU0hPUlQgQ1VUUyBHbWJIXG4gKiBodHRwOi8vd3d3LnNob3J0LWN1dHMuZGVcbiAqXG4gKiBEYXRlOiAyMDE2LTEyLTMxXG4gKiBBdXRob3I6IEthaSBTZWxpZ2VyIChoZWxsb0B5ZXNqb2FyLmNvbSlcbiAqIE1JVCBMaWNlbnNlIChNSVQpXG4gKi9cbi8qKlxuICogUmV0dXJuIHNwZWNpZmljIGNvbG9yXG4gKi9cbi8qKlxuICogdmFyaWFibGVzLnNjc3NcbiAqXG4gKiBZb3VyIGRlc2NyaXB0aW9uXG4gKlxuICogQ29weXJpZ2h0IFNIT1JUIENVVFMgR21iSFxuICogaHR0cDovL3d3dy5zaG9ydC1jdXRzLmRlXG4gKlxuICogRGF0ZTogMjAxNi0xMi0zMVxuICogQXV0aG9yOiBLYWkgU2VsaWdlciAoaGVsbG9AeWVzam9hci5jb20pXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29sb3JzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPEBjb2xvcnMgKi9cbi8qIGNvbG9yc0A+ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSWNvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA8QGljb25zICovXG4vKiBpY29uc0A+ICovXG4vKipcbiAqIG1peGlucy5zY3NzXG4gKlxuICogWW91ciBkZXNjcmlwdGlvblxuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHA6Ly93d3cuc2hvcnQtY3V0cy5kZVxuICpcbiAqIERhdGU6IDIwMTYtMTItMzFcbiAqIEF1dGhvcjogS2FpIFNlbGlnZXIgKGhlbGxvQHllc2pvYXIuY29tKVxuICogTUlUIExpY2Vuc2UgKE1JVClcbiAqL1xuLyoqXG4gKiBNaXhpbiBmb3Igc3R5bGluZyBpbnB1dCBwbGFjZWhvbGRlci5cbiAqXG4gKiBAaW5jbHVkZSBwbGFjZWhvbGRlcigpe1xuICogICBjb250ZW50IGdvZXMgaGVyZVxuICogfVxuICovXG4vKipcbiAqXG4gKlxuICovXG4vKipcbiAqXG4gKlxuICovXG4vKipcbiAqXG4gKi9cbi8qIGxpbmUgMjEsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9hY2NvcmRpb24vYWNjb3JkaW9uLnNjc3MgKi9cbi5hY2NvcmRpb25fX2l0ZW0ge1xuICBiYWNrZ3JvdW5kOiAjRkZGO1xuICBwYWRkaW5nOiAxNXB4IDQwcHggMjBweCA0MHB4O1xuICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTsgfVxuICAvKiBsaW5lIDMwLCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvYWNjb3JkaW9uL2FjY29yZGlvbi5zY3NzICovXG4gIC5hY2NvcmRpb25fX2l0ZW0gKyAuYWNjb3JkaW9uX19pdGVtIHtcbiAgICBtYXJnaW4tdG9wOiA4MHB4OyB9XG5cbi8qIGxpbmUgMzUsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9hY2NvcmRpb24vYWNjb3JkaW9uLnNjc3MgKi9cbi5hY2NvcmRpb25fX3RpdGxlIHtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtZmFtaWx5OiBcIml2eW1vZGVcIiwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAzMnB4O1xuICBmb250LXdlaWdodDogNzAwOyB9XG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDc1ZW0pIHtcbiAgICAvKiBsaW5lIDM1LCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvYWNjb3JkaW9uL2FjY29yZGlvbi5zY3NzICovXG4gICAgLmFjY29yZGlvbl9fdGl0bGUge1xuICAgICAgZm9udC1zaXplOiA0NXB4OyB9IH1cblxuLyogbGluZSA0NiwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L2FjY29yZGlvbi9hY2NvcmRpb24uc2NzcyAqL1xuLmFjY29yZGlvbl9faWNvbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDQ0cHg7XG4gIHRvcDogNDVweDtcbiAgd2lkdGg6IDE0cHg7XG4gIGhlaWdodDogOXB4O1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzE0JyBoZWlnaHQ9JzknIGZpbGw9J25vbmUnJTNFJTNDcGF0aCBzdHJva2U9JyUyMzAwMCcgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyBzdHJva2Utd2lkdGg9JzInIGQ9J20xMyAxLjUtNiA2LTYtNicvJTNFJTNDL3N2ZyUzRVwiKTtcbiAgdHJhbnNpdGlvbjogYWxsIDAuM3MgZWFzZS1pbi1vdXQ7IH1cbiAgLyogbGluZSA1OCwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L2FjY29yZGlvbi9hY2NvcmRpb24uc2NzcyAqL1xuICAuYWNjb3JkaW9uLS1vcGVuIC5hY2NvcmRpb25fX2ljb24ge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH1cblxuLyogbGluZSA2MywgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L2FjY29yZGlvbi9hY2NvcmRpb24uc2NzcyAqL1xuLmFjY29yZGlvbl9fY29udGVudCB7XG4gIG1hcmdpbi10b3A6IDIwcHg7IH1cbiAgLyogbGluZSA2NiwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L2FjY29yZGlvbi9hY2NvcmRpb24uc2NzcyAqL1xuICAuYWNjb3JkaW9uX19jb250ZW50IGgxLCAuYWNjb3JkaW9uX19jb250ZW50IGgyLCAuYWNjb3JkaW9uX19jb250ZW50IGgzLCAuYWNjb3JkaW9uX19jb250ZW50IGg0LCAuYWNjb3JkaW9uX19jb250ZW50IGg1LCAuYWNjb3JkaW9uX19jb250ZW50IGg2IHtcbiAgICBtYXJnaW4tdG9wOiA0MHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7IH1cblxuLyoqXG4gKiBqdXJ5LnNjc3NcbiAqXG4gKiBDb3B5cmlnaHQgU0hPUlQgQ1VUUyBHbWJIXG4gKiBodHRwczovL3d3dy5zaG9ydC1jdXRzLmRlL1xuICpcbiAqIERhdGU6IDIwMjUtMDEtMTJcbiAqIEF1dGhvcjogcmljbyAoKkBzaG9ydC1jdXRzLmRlKVxuICogTUlUIExpY2Vuc2UgKE1JVClcbiAqL1xuLyoqXG4gKiBmdW5jdGlvbnMuc2Nzc1xuICpcbiAqIFlvdXIgZGVzY3JpcHRpb25cbiAqXG4gKiBDb3B5cmlnaHQgU0hPUlQgQ1VUUyBHbWJIXG4gKiBodHRwOi8vd3d3LnNob3J0LWN1dHMuZGVcbiAqXG4gKiBEYXRlOiAyMDE2LTEyLTMxXG4gKiBBdXRob3I6IEthaSBTZWxpZ2VyIChoZWxsb0B5ZXNqb2FyLmNvbSlcbiAqIE1JVCBMaWNlbnNlIChNSVQpXG4gKi9cbi8qKlxuICogUmV0dXJuIHNwZWNpZmljIGNvbG9yXG4gKi9cbi8qKlxuICogdmFyaWFibGVzLnNjc3NcbiAqXG4gKiBZb3VyIGRlc2NyaXB0aW9uXG4gKlxuICogQ29weXJpZ2h0IFNIT1JUIENVVFMgR21iSFxuICogaHR0cDovL3d3dy5zaG9ydC1jdXRzLmRlXG4gKlxuICogRGF0ZTogMjAxNi0xMi0zMVxuICogQXV0aG9yOiBLYWkgU2VsaWdlciAoaGVsbG9AeWVzam9hci5jb20pXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29sb3JzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyogPEBjb2xvcnMgKi9cbi8qIGNvbG9yc0A+ICovXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSWNvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA8QGljb25zICovXG4vKiBpY29uc0A+ICovXG4vKipcbiAqIG1peGlucy5zY3NzXG4gKlxuICogWW91ciBkZXNjcmlwdGlvblxuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHA6Ly93d3cuc2hvcnQtY3V0cy5kZVxuICpcbiAqIERhdGU6IDIwMTYtMTItMzFcbiAqIEF1dGhvcjogS2FpIFNlbGlnZXIgKGhlbGxvQHllc2pvYXIuY29tKVxuICogTUlUIExpY2Vuc2UgKE1JVClcbiAqL1xuLyoqXG4gKiBNaXhpbiBmb3Igc3R5bGluZyBpbnB1dCBwbGFjZWhvbGRlci5cbiAqXG4gKiBAaW5jbHVkZSBwbGFjZWhvbGRlcigpe1xuICogICBjb250ZW50IGdvZXMgaGVyZVxuICogfVxuICovXG4vKipcbiAqXG4gKlxuICovXG4vKipcbiAqXG4gKlxuICovXG4vKipcbiAqXG4gKi9cbi8qIGxpbmUgMjEsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9qdXJ5L2p1cnkuc2NzcyAqL1xuLmp1cnlfX2l0ZW0ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgaGVpZ2h0OiAxMDAlOyB9XG4gIC8qIGxpbmUgMjcsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9qdXJ5L2p1cnkuc2NzcyAqL1xuICAuanVyeV9faXRlbSArIC5qdXJ5X19pdGVtIHtcbiAgICBtYXJnaW4tdG9wOiAyLjVyZW07IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAvKiBsaW5lIDIxLCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvanVyeS9qdXJ5LnNjc3MgKi9cbiAgICAuanVyeV9faXRlbSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93OyB9XG4gICAgICAvKiBsaW5lIDMzLCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvanVyeS9qdXJ5LnNjc3MgKi9cbiAgICAgIC5qdXJ5X19pdGVtLS1pbWFnZS1yaWdodCB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTsgfSB9XG4gIC8qIGxpbmUgMzksIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9qdXJ5L2p1cnkuc2NzcyAqL1xuICAuanVyeV9faXRlbS0tcGVhY2ggLmp1cnlfX2ltYWdlLWlubmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjRjA4MjcyOyB9XG4gIC8qIGxpbmUgNDAsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9qdXJ5L2p1cnkuc2NzcyAqL1xuICAuanVyeV9faXRlbS0tcGVhY2ggc3ZnIHBhdGgge1xuICAgIGZpbGw6ICNGMDgyNzI7IH1cbiAgLyogbGluZSA0MywgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L2p1cnkvanVyeS5zY3NzICovXG4gIC5qdXJ5X19pdGVtLS1wdXJwbGUgLmp1cnlfX2ltYWdlLWlubmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjQTVBNUQzOyB9XG4gIC8qIGxpbmUgNDQsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9qdXJ5L2p1cnkuc2NzcyAqL1xuICAuanVyeV9faXRlbS0tcHVycGxlIHN2ZyBwYXRoIHtcbiAgICBmaWxsOiAjQTVBNUQzOyB9XG4gIC8qIGxpbmUgNDcsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9qdXJ5L2p1cnkuc2NzcyAqL1xuICAuanVyeV9faXRlbS0teWVsbG93IC5qdXJ5X19pbWFnZS1pbm5lciB7XG4gICAgYmFja2dyb3VuZDogI0ZFRDE2RDsgfVxuICAvKiBsaW5lIDQ4LCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvanVyeS9qdXJ5LnNjc3MgKi9cbiAgLmp1cnlfX2l0ZW0tLXllbGxvdyBzdmcgcGF0aCB7XG4gICAgZmlsbDogI0ZFRDE2RDsgfVxuXG4vKiBsaW5lIDUzLCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvanVyeS9qdXJ5LnNjc3MgKi9cbi5qdXJ5X19pbWFnZSB7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgcGFkZGluZzogMCAxMHB4OyB9XG4gIEBtZWRpYSBwcmludCwgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0MGVtKSB7XG4gICAgLyogbGluZSA1MywgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L2p1cnkvanVyeS5zY3NzICovXG4gICAgLmp1cnlfX2ltYWdlIHtcbiAgICAgIGZsZXg6IDEgMCA1MCU7IH0gfVxuICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NWVtKSB7XG4gICAgLyogbGluZSA1MywgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L2p1cnkvanVyeS5zY3NzICovXG4gICAgLmp1cnlfX2ltYWdlIHtcbiAgICAgIGZsZXg6IDEgMCAzMy4zMzMzMyU7IH0gfVxuICAvKiBsaW5lIDY0LCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvanVyeS9qdXJ5LnNjc3MgKi9cbiAgLmp1cnlfX2ltYWdlLWlubmVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qIGxpbmUgNzMsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9qdXJ5L2p1cnkuc2NzcyAqL1xuLmp1cnlfX3NsaXBwZXJhbmltYWwge1xuICB6LWluZGV4OiAxO1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7IH1cblxuLyogbGluZSA4MCwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L2p1cnkvanVyeS5zY3NzICovXG4uanVyeV9faW1nIHtcbiAgd2lkdGg6IDEwMCU7IH1cbiAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDQwZW0pIHtcbiAgICAvKiBsaW5lIDgwLCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvanVyeS9qdXJ5LnNjc3MgKi9cbiAgICAuanVyeV9faW1nIHtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB6LWluZGV4OiAwO1xuICAgICAgYXNwZWN0LXJhdGlvOiA0NDYgLyA1MjA7XG4gICAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICAgIG9iamVjdC1wb3NpdGlvbjogY2VudGVyOyB9IH1cblxuLyogbGluZSA5MywgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L2p1cnkvanVyeS5zY3NzICovXG4uanVyeV9fcm9sZSB7XG4gIGZvbnQtc2l6ZTogMnJlbTtcbiAgbGluZS1oZWlnaHQ6IDEuMjU7XG4gIG1hcmdpbi1ib3R0b206IDAuNjI1cmVtOyB9XG5cbi8qIGxpbmUgOTksIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9qdXJ5L2p1cnkuc2NzcyAqL1xuLmp1cnlfX25hbWUge1xuICBsaW5lLWhlaWdodDogMS4xMTtcbiAgbWFyZ2luLWJvdHRvbTogMC4zMTI1cmVtOyB9XG5cbi8qIGxpbmUgMTA0LCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvanVyeS9qdXJ5LnNjc3MgKi9cbi5qdXJ5IGhyIHtcbiAgbWFyZ2luOiAxMHB4IDA7IH1cblxuLyogbGluZSAxMDgsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9qdXJ5L2p1cnkuc2NzcyAqL1xuLmp1cnlfX3RleHQge1xuICBwYWRkaW5nOiAwIDEwcHg7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07IH1cbiAgLyogbGluZSAxMTAsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9qdXJ5L2p1cnkuc2NzcyAqL1xuICAuanVyeV9fdGV4dC1pbm5lciB7XG4gICAgYmFja2dyb3VuZDogd2hpdGU7XG4gICAgcGFkZGluZzogMi41cmVtO1xuICAgIGhlaWdodDogMTAwJTsgfVxuICBAbWVkaWEgcHJpbnQsIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNDBlbSkge1xuICAgIC8qIGxpbmUgMTA4LCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvanVyeS9qdXJ5LnNjc3MgKi9cbiAgICAuanVyeV9fdGV4dCB7XG4gICAgICBmbGV4OiAxIDAgNTAlOyB9IH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNzVlbSkge1xuICAgIC8qIGxpbmUgMTA4LCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvanVyeS9qdXJ5LnNjc3MgKi9cbiAgICAuanVyeV9fdGV4dCB7XG4gICAgICBmbGV4OiAxIDAgNjYuNjY2NjclOyB9IH1cbiAgLyogbGluZSAxMjQsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9qdXJ5L2p1cnkuc2NzcyAqL1xuICAuanVyeV9fdGV4dCBwIHtcbiAgICBoeXBoZW5zOiBhdXRvO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsgfVxuICAgIC8qIGxpbmUgMTI4LCBSZXNvdXJjZXMvUHJpdmF0ZS9Gcm9udGVuZC9jb21wb25lbnQvanVyeS9qdXJ5LnNjc3MgKi9cbiAgICAuanVyeV9fdGV4dCBwOmxhc3QtY2hpbGQge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4vKipcbiAqIHBvc3Quc2Nzc1xuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHBzOi8vd3d3LnNob3J0LWN1dHMuZGUvXG4gKlxuICogRGF0ZTogMjAyNS0wMS0xNVxuICogQXV0aG9yOiByaWNvICgqQHNob3J0LWN1dHMuZGUpXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG4vKipcbiAqIGZ1bmN0aW9ucy5zY3NzXG4gKlxuICogWW91ciBkZXNjcmlwdGlvblxuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHA6Ly93d3cuc2hvcnQtY3V0cy5kZVxuICpcbiAqIERhdGU6IDIwMTYtMTItMzFcbiAqIEF1dGhvcjogS2FpIFNlbGlnZXIgKGhlbGxvQHllc2pvYXIuY29tKVxuICogTUlUIExpY2Vuc2UgKE1JVClcbiAqL1xuLyoqXG4gKiBSZXR1cm4gc3BlY2lmaWMgY29sb3JcbiAqL1xuLyoqXG4gKiB2YXJpYWJsZXMuc2Nzc1xuICpcbiAqIFlvdXIgZGVzY3JpcHRpb25cbiAqXG4gKiBDb3B5cmlnaHQgU0hPUlQgQ1VUUyBHbWJIXG4gKiBodHRwOi8vd3d3LnNob3J0LWN1dHMuZGVcbiAqXG4gKiBEYXRlOiAyMDE2LTEyLTMxXG4gKiBBdXRob3I6IEthaSBTZWxpZ2VyIChoZWxsb0B5ZXNqb2FyLmNvbSlcbiAqIE1JVCBMaWNlbnNlIChNSVQpXG4gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb2xvcnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4vKiA8QGNvbG9ycyAqL1xuLyogY29sb3JzQD4gKi9cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBJY29uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qIDxAaWNvbnMgKi9cbi8qIGljb25zQD4gKi9cbi8qKlxuICogbWl4aW5zLnNjc3NcbiAqXG4gKiBZb3VyIGRlc2NyaXB0aW9uXG4gKlxuICogQ29weXJpZ2h0IFNIT1JUIENVVFMgR21iSFxuICogaHR0cDovL3d3dy5zaG9ydC1jdXRzLmRlXG4gKlxuICogRGF0ZTogMjAxNi0xMi0zMVxuICogQXV0aG9yOiBLYWkgU2VsaWdlciAoaGVsbG9AeWVzam9hci5jb20pXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG4vKipcbiAqIE1peGluIGZvciBzdHlsaW5nIGlucHV0IHBsYWNlaG9sZGVyLlxuICpcbiAqIEBpbmNsdWRlIHBsYWNlaG9sZGVyKCl7XG4gKiAgIGNvbnRlbnQgZ29lcyBoZXJlXG4gKiB9XG4gKi9cbi8qKlxuICpcbiAqXG4gKi9cbi8qKlxuICpcbiAqXG4gKi9cbi8qKlxuICpcbiAqL1xuLyogbGluZSAyMSwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L3Bvc3QvcG9zdC5zY3NzICovXG4ucG9zdF9fZGF0ZSB7XG4gIGZvbnQtc2l6ZTogMS4xMjVyZW07XG4gIGNvbG9yOiAjN0Q3RDdEO1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi8qIGxpbmUgMjcsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9wb3N0L3Bvc3Quc2NzcyAqL1xuLnBvc3RfX3RpdGxlIHtcbiAgY29sb3I6ICMwMDA7XG4gIC13ZWJraXQtdGV4dC1zdHJva2Utd2lkdGg6IDAuNjk5OTk5OTg4MDc5MDcxO1xuICAtd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yOiAjMDAwO1xuICBmb250LWZhbWlseTogXCJpdnltb2RlXCIsIHNhbnMtc2VyaWY7XG4gIGZvbnQtc2l6ZTogMzJweDtcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNzAwO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgLyogMTI1JSAqL1xuICBsZXR0ZXItc3BhY2luZzogMC45NnB4O1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDtcbiAgcGFkZGluZy1ib3R0b206IDE1cHg7XG4gIG1hcmdpbi1ib3R0b206IDEwcHg7IH1cblxuLyogbGluZSA0NSwgUmVzb3VyY2VzL1ByaXZhdGUvRnJvbnRlbmQvY29tcG9uZW50L3Bvc3QvcG9zdC5zY3NzICovXG4ucG9zdF9fZGVzY3JpcHRpb24ge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGxpbmUtaGVpZ2h0OiAxLjMzOyB9XG5cbi8qIGxpbmUgNTAsIFJlc291cmNlcy9Qcml2YXRlL0Zyb250ZW5kL2NvbXBvbmVudC9wb3N0L3Bvc3Quc2NzcyAqL1xuLnBvc3RfX2NvbnRlbnQge1xuICBwYWRkaW5nOiAyMHB4OyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBVdGlsaXR5IGNsYXNzZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIHNjcmVlbi5zY3NzXG4gKlxuICogWW91ciBkZXNjcmlwdGlvblxuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHA6Ly93d3cuc2hvcnQtY3V0cy5kZVxuICpcbiAqIERhdGU6IDIwMTYtMTItMzFcbiAqIEF1dGhvcjogS2FpIFNlbGlnZXIgKHNlbGlnZXJAc2hvcnQtY3V0cy5kZSlcbiAqIE1JVCBMaWNlbnNlIChNSVQpXG4gKi9cblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQ29yZSBmdW5jdGlvbnMsIHZhcmlhYmxlcyBhbmQgbWl4aW5zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQGltcG9ydCAndXRpbC91dGlsJztcbkBpbXBvcnQgXCJwYXJ0aWFscy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJwYXJ0aWFscy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJwYXJ0aWFscy9taXhpbnNcIjtcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgUmVzZXQgYW5kIGRlcGVuZGVuY2llc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuLy8gZm91bmRhdGlvbi1zaXRlc1xuLy8gaHR0cHM6Ly9naXRodWIuY29tL3p1cmIvZm91bmRhdGlvbi1zaXRlc1xuLy8gZGVmaW5lZCBpbiBndWxwZmlsZS5qcyBpbmNsdWRlUGF0aHNcbkBpbXBvcnQgJ2ZvdW5kYXRpb24nO1xuXG4vLyBHbG9iYWwgc3R5bGVzXG5AaW5jbHVkZSBmb3VuZGF0aW9uLWdsb2JhbC1zdHlsZXM7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuQGluY2x1ZGUgZm91bmRhdGlvbi10eXBvZ3JhcGh5O1xuXG4vLyBHcmlkcyAoY2hvb3NlIG9uZSlcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24teHktZ3JpZC1jbGFzc2VzO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuQGluY2x1ZGUgZm91bmRhdGlvbi1mbGV4LWdyaWQ7XG5cbi8vIEdlbmVyaWMgY29tcG9uZW50c1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b247XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbi1ncm91cDtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1sYWJlbDtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tcHJvZ3Jlc3MtYmFyO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXN3aXRjaDtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tdGFibGU7XG5cbi8vIEJhc2ljIGNvbXBvbmVudHNcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWJyZWFkY3J1bWJzO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1jYWxsb3V0O1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1jYXJkO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bjtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tcGFnaW5hdGlvbjtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcblxuLy8gQ29udGFpbmVyc1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb247XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tb3JiaXQ7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXJlc3BvbnNpdmUtZW1iZWQ7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXRodW1ibmFpbDtcblxuLy8gTWVudS1iYXNlZCBjb250YWluZXJzXG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnU7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uLW1lbnU7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyaWxsZG93bi1tZW51O1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuXG4vLyBMYXlvdXQgY29tcG9uZW50c1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1vZmYtY2FudmFzO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLXN0aWNreTtcbi8vIEBpbmNsdWRlIGZvdW5kYXRpb24tdGl0bGUtYmFyO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuXG4vLyBIZWxwZXJzXG4vLyBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsb2F0LWNsYXNzZXM7XG5AaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlcztcbkBpbmNsdWRlIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzO1xuLy8gQGluY2x1ZGUgZm91bmRhdGlvbi1wcm90b3R5cGUtY2xhc3NlcztcblxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRGVmYXVsdCBsYXlvdXQgcGFydGlhbHNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5AaW1wb3J0IFwicGFydGlhbHMvbGF5b3V0XCI7XG5AaW1wb3J0IFwicGFydGlhbHMvdHlwb1wiO1xuQGltcG9ydCBcInBhcnRpYWxzL2ljb24tZm9udFwiO1xuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb21wb25lbnRzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudC9oZWFkZXIvaGVhZGVyXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50L2Zvb3Rlci9mb290ZXJcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnQvbmF2LW1haW4vbmF2LW1haW5cIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnQvbmF2LWZvb3Rlci9uYXYtZm9vdGVyXCI7XG5AaW1wb3J0IFwiLi4vY29tcG9uZW50L2J1dHRvbi9idXR0b25cIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnQvYWNjb3JkaW9uL2FjY29yZGlvblwiO1xuQGltcG9ydCBcIi4uL2NvbXBvbmVudC9qdXJ5L2p1cnlcIjtcbkBpbXBvcnQgXCIuLi9jb21wb25lbnQvcG9zdC9wb3N0XCI7Ly8gPEBuZXdDb21wb25lbnRAPlxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgVXRpbGl0eSBjbGFzc2VzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLy8gQGltcG9ydCBcInBhcnRpYWxzL3V0aWxzXCI7IiwiQGNoYXJzZXQgXCJ1dGYtOFwiO1xuLyoqXG4gKiBmdW5jdGlvbnMuc2Nzc1xuICpcbiAqIFlvdXIgZGVzY3JpcHRpb25cbiAqXG4gKiBDb3B5cmlnaHQgU0hPUlQgQ1VUUyBHbWJIXG4gKiBodHRwOi8vd3d3LnNob3J0LWN1dHMuZGVcbiAqXG4gKiBEYXRlOiAyMDE2LTEyLTMxXG4gKiBBdXRob3I6IEthaSBTZWxpZ2VyIChoZWxsb0B5ZXNqb2FyLmNvbSlcbiAqIE1JVCBMaWNlbnNlIChNSVQpXG4gKi9cblxuLyoqXG4gKiBSZXR1cm4gc3BlY2lmaWMgY29sb3JcbiAqL1xuQGZ1bmN0aW9uIGNvbG9yKCRjb2xvcikge1xuXHRAaWYgbnVsbCA9PSBtYXAtZ2V0KCRjb2xvcnMsICRjb2xvcikge1xuXHRcdEB3YXJuICdjb2xvcigpOiBcIiN7JGNvbG9yfVwiIGlzIG5vdCBkZWZpbmVkLiBBdmFpbGFibGUgY29sb3JzIGFyZTogI3ttYXAtdG8tbGlzdCgkY29sb3JzLCAka2VlcDogJ2tleXMnKX0nO1xuXHR9XG5cdEByZXR1cm4gbWFwLWdldCgkY29sb3JzLCAkY29sb3IpO1xufVxuIiwiQGNoYXJzZXQgXCJ1dGYtOFwiO1xuLyoqXG4gKiB2YXJpYWJsZXMuc2Nzc1xuICpcbiAqIFlvdXIgZGVzY3JpcHRpb25cbiAqXG4gKiBDb3B5cmlnaHQgU0hPUlQgQ1VUUyBHbWJIXG4gKiBodHRwOi8vd3d3LnNob3J0LWN1dHMuZGVcbiAqXG4gKiBEYXRlOiAyMDE2LTEyLTMxXG4gKiBBdXRob3I6IEthaSBTZWxpZ2VyIChoZWxsb0B5ZXNqb2FyLmNvbSlcbiAqIE1JVCBMaWNlbnNlIChNSVQpXG4gKi9cbiRnbG9iYWwtd2lkdGg6IHJlbS1jYWxjKDEzNjApO1xuJGJvZHktZm9udC1mYW1pbHk6IFwiYWRlbHBoaS1wZS12YXJpYWJsZVwiLCBzYW5zLXNlcmlmO1xuJGJvZHktZm9udC1jb2xvcjogIzAwMDtcbiRnbG9iYWwtd2VpZ2h0LW5vcm1hbDogNDAwO1xuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdDtcbiRncmlkLWNvbHVtbi1hbGlhczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIDIuIEJyZWFrcG9pbnRzXG4vLyAtLS0tLS0tLS0tLS0tLVxuJGJyZWFrcG9pbnRzOiAoXG5cdHNtYWxsOiAwcHgsXG5cdG1lZGl1bTogNjQwcHgsXG5cdGxhcmdlOiAxMDI0cHgsXG5cdHhsYXJnZTogMTIwMHB4LFxuXHR4eGxhcmdlOiAxNDQwcHgsXG5cdHhzOiAwcHgsXG5cdHNtOiA0ODBweCxcblx0bWQ6IDc2OHB4LFxuXHRsZzogOTkycHgsXG5cdHhsOiAxMjAwcHhcbik7XG5cbiRncmlkLWNvbHVtbi1ndXR0ZXI6IChcblx0c21hbGw6IDMwcHgsXG5cdHhsYXJnZTogNDBweCxcbik7XG5cbiRicmVha3BvaW50LWNsYXNzZXM6ICgnc21hbGwnLCAnbWVkaXVtJywgJ2xhcmdlJywgJ3hsYXJnZScsICd4eGxhcmdlJyk7XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBDb2xvcnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbi8qIDxAY29sb3JzICovXG4kY29sb3JzOiAoXG5cdCdibGFjayc6ICMwMDAsXG5cdCd3aGl0ZSc6ICNmZmYsXG5cdCdwaW5rJzogI0VGNzk5Nixcblx0J3llbGxvdyc6ICNGRUQxNkQsXG5cdCdwdXJwbGUnOiAjQTVBNUQzLFxuXHQncGVhY2gnOiAjRjA4MjcyLFxuXHQnYmx1ZSc6ICM3MkM0RUYsXG5cdCdibHVlLWRhcmsnOiAjMDAzRjYwLFxuKTtcbi8qIGNvbG9yc0A+ICovXG5cblxuJGhlYWRlci1mb250LWZhbWlseTogXCJpdnltb2RlXCIsIHNhbnMtc2VyaWY7XG4kaGVhZGVyLWZvbnQtd2VpZ2h0OiA3MDA7XG4kaGVhZGVyLWxpbmVoZWlnaHQ6IDEuMTE7XG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IHJlbS1jYWxjKDMwKTtcbiRzbWFsbC1mb250LXNpemU6IDYwJTtcbiRoZWFkZXItc21hbGwtZm9udC1jb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuJGhlYWRlci1zdHlsZXM6IChcblx0XCJzbWFsbFwiOiAoXG5cdFx0J2gxJzogKCdmb250LXNpemUnOiA0NSksXG5cdFx0J2gyJzogKCdmb250LXNpemUnOiAzMiksXG5cdFx0J2gzJzogKCdmb250LXNpemUnOiAyOCksXG5cdFx0J2g0JzogKCdmb250LXNpemUnOiAyOCksXG5cdFx0J2g1JzogKCdmb250LXNpemUnOiAyOCksXG5cdFx0J2g2JzogKCdmb250LXNpemUnOiAyOCksXG5cdCksXG5cdFwibWVkaXVtXCI6IChcblx0XHQnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDYwKSxcblx0XHQnaDInOiAoJ2ZvbnQtc2l6ZSc6IDM2KSxcblx0XHQnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDI4KSxcblx0XHQnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDI4KSxcblx0XHQnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDI4KSxcblx0XHQnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDI4KSxcblx0KSxcblx0XCJ4bGFyZ2VcIjogKFxuXHRcdCdoMSc6ICgnZm9udC1zaXplJzogODApLFxuXHRcdCdoMic6ICgnZm9udC1zaXplJzogNDUpLFxuXHRcdCdoMyc6ICgnZm9udC1zaXplJzogMzgpLFxuXHRcdCdoNCc6ICgnZm9udC1zaXplJzogMzgpLFxuXHRcdCdoNSc6ICgnZm9udC1zaXplJzogMzgpLFxuXHRcdCdoNic6ICgnZm9udC1zaXplJzogMzgpLFxuXHQpLFxuKTtcblxuJGhyLXdpZHRoOiAkZ2xvYmFsLXdpZHRoO1xuJGhyLWJvcmRlcjogMXB4IHNvbGlkICMwMDA7XG4kaHItbWFyZ2luOiByZW0tY2FsYygzMCkgYXV0bztcblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEljb25zXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4vKiA8QGljb25zICovXG4kaWNvbnM6IChcblx0YW5nbGUtbGVmdDogJ1xcRjEwNCcsXG5cdGFuZ2xlLXJpZ2h0OiAnXFxGMTA1J1xuKTtcbi8qIGljb25zQD4gKi8iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIG1peGlucy5zY3NzXG4gKlxuICogWW91ciBkZXNjcmlwdGlvblxuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHA6Ly93d3cuc2hvcnQtY3V0cy5kZVxuICpcbiAqIERhdGU6IDIwMTYtMTItMzFcbiAqIEF1dGhvcjogS2FpIFNlbGlnZXIgKGhlbGxvQHllc2pvYXIuY29tKVxuICogTUlUIExpY2Vuc2UgKE1JVClcbiAqL1xuXG4vKipcbiAqIE1peGluIGZvciBzdHlsaW5nIGlucHV0IHBsYWNlaG9sZGVyLlxuICpcbiAqIEBpbmNsdWRlIHBsYWNlaG9sZGVyKCl7XG4gKiAgIGNvbnRlbnQgZ29lcyBoZXJlXG4gKiB9XG4gKi9cbkBtaXhpbiBwbGFjZWhvbGRlciB7XG5cdCY6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge0Bjb250ZW50fVxuXHQmOi1tb3otcGxhY2Vob2xkZXIgICAgICAgICAgIHtAY29udGVudH1cblx0Jjo6LW1vei1wbGFjZWhvbGRlciAgICAgICAgICB7QGNvbnRlbnR9XG5cdCY6LW1zLWlucHV0LXBsYWNlaG9sZGVyICAgICAge0Bjb250ZW50fVxufVxuXG5cbi8qKlxuICpcbiAqXG4gKi9cbkBtaXhpbiB1dGlsLWljb24oJGljb246IGljb24pIHtcblx0QGV4dGVuZCAldXRpbC1pY29uO1xuXHRjb250ZW50OiBtYXAtZ2V0KCRpY29ucywgJGljb24pO1xufVxuXG5cbi8qKlxuICpcbiAqXG4gKi9cbkBtaXhpbiBwc2V1ZG8oJGRpc3BsYXk6IGJsb2NrLCAkcG9zOiBhYnNvbHV0ZSwgJGNvbnRlbnQ6ICcnKXtcblx0Y29udGVudDogJGNvbnRlbnQ7XG5cdGRpc3BsYXk6ICRkaXNwbGF5O1xuXHRwb3NpdGlvbjogJHBvcztcbn1cblxuXG4vKipcbiAqXG4gKi9cbkBtaXhpbiByZXNwb25zaXZlLXJhdGlvKCR4LCR5LCAkcHNldWRvOiBmYWxzZSkge1xuXHQkcGFkZGluZzogdW5xdW90ZSggKCAkeSAvICR4ICkgKiAxMDAgKyAnJScgKTtcblx0QGlmICRwc2V1ZG8ge1xuXHRcdCY6YmVmb3JlIHtcblx0XHRcdEBpbmNsdWRlIHBzZXVkbygkcG9zOiByZWxhdGl2ZSk7XG5cdFx0XHR3aWR0aDogMTAwJTtcblx0XHRcdHBhZGRpbmctdG9wOiAkcGFkZGluZztcblx0XHR9XG5cdH0gQGVsc2Uge1xuXHRcdHBhZGRpbmctdG9wOiAkcGFkZGluZztcblx0fVxufSIsIi8qKlxuICogRm91bmRhdGlvbiBmb3IgU2l0ZXNcbiAqIFZlcnNpb24gNi43LjVcbiAqIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbiAqIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuICovXG5cbi8vIC0tLSBEZXBlbmRlbmNpZXMgLS0tXG5AaW1wb3J0ICd2ZW5kb3Ivbm9ybWFsaXplJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvaGVscGVycy9taXNzaW5nLWRlcGVuZGVuY2llcyc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2hlbHBlcnMvdHJ1ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9jb250YWluJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3B1cmdlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3JlbW92ZSc7XG5AaW1wb3J0ICcuLi9fdmVuZG9yL3Nhc3N5LWxpc3RzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9yZXBsYWNlJztcbkBpbXBvcnQgJy4uL192ZW5kb3Ivc2Fzc3ktbGlzdHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL3RvLWxpc3QnO1xuXG4vLyAtLS0gU2V0dGluZ3MgLS0tXG4vLyBpbXBvcnQgeW91ciBvd24gYHNldHRpbmdzYCBoZXJlIG9yXG4vLyBpbXBvcnQgYW5kIG1vZGlmeSB0aGUgZGVmYXVsdCBzZXR0aW5ncyB0aHJvdWdoXG4vLyBAaW1wb3J0ICdzZXR0aW5ncy9zZXR0aW5ncyc7XG5cbi8vIC0tLSBDb21wb25lbnRzIC0tLVxuLy8gVXRpbGl0aWVzXG5AaW1wb3J0ICd1dGlsL3V0aWwnO1xuLy8gR2xvYmFsIHN0eWxlc1xuQGltcG9ydCAnZ2xvYmFsJztcbkBpbXBvcnQgJ2Zvcm1zL2Zvcm1zJztcbkBpbXBvcnQgJ3R5cG9ncmFwaHkvdHlwb2dyYXBoeSc7XG5cbi8vIEdyaWRzXG5AaW1wb3J0ICdncmlkL2dyaWQnO1xuQGltcG9ydCAneHktZ3JpZC94eS1ncmlkJztcbi8vIEdlbmVyaWMgY29tcG9uZW50c1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9idXR0b24tZ3JvdXAnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jbG9zZS1idXR0b24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9sYWJlbCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3Byb2dyZXNzLWJhcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3NsaWRlcic7XG5AaW1wb3J0ICdjb21wb25lbnRzL3N3aXRjaCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RhYmxlJztcbi8vIEJhc2ljIGNvbXBvbmVudHNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYmFkZ2UnO1xuQGltcG9ydCAnY29tcG9uZW50cy9icmVhZGNydW1icyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2NhbGxvdXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9jYXJkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24nO1xuQGltcG9ydCAnY29tcG9uZW50cy9wYWdpbmF0aW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdG9vbHRpcCc7XG5cbi8vIENvbnRhaW5lcnNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvYWNjb3JkaW9uJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVkaWEtb2JqZWN0JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvb3JiaXQnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXNwb25zaXZlLWVtYmVkJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvdGFicyc7XG5AaW1wb3J0ICdjb21wb25lbnRzL3RodW1ibmFpbCc7XG4vLyBNZW51LWJhc2VkIGNvbnRhaW5lcnNcbkBpbXBvcnQgJ2NvbXBvbmVudHMvbWVudSc7XG5AaW1wb3J0ICdjb21wb25lbnRzL21lbnUtaWNvbic7XG5AaW1wb3J0ICdjb21wb25lbnRzL2FjY29yZGlvbi1tZW51JztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJpbGxkb3duJztcbkBpbXBvcnQgJ2NvbXBvbmVudHMvZHJvcGRvd24tbWVudSc7XG5cbi8vIExheW91dCBjb21wb25lbnRzXG5AaW1wb3J0ICdjb21wb25lbnRzL29mZi1jYW52YXMnO1xuQGltcG9ydCAnY29tcG9uZW50cy9yZXZlYWwnO1xuQGltcG9ydCAnY29tcG9uZW50cy9zdGlja3knO1xuQGltcG9ydCAnY29tcG9uZW50cy90aXRsZS1iYXInO1xuQGltcG9ydCAnY29tcG9uZW50cy90b3AtYmFyJztcblxuLy8gSGVscGVyc1xuQGltcG9ydCAnY29tcG9uZW50cy9mbG9hdCc7XG5AaW1wb3J0ICdjb21wb25lbnRzL2ZsZXgnO1xuQGltcG9ydCAnY29tcG9uZW50cy92aXNpYmlsaXR5JztcbkBpbXBvcnQgJ3Byb3RvdHlwZS9wcm90b3R5cGUnO1xuXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWV2ZXJ5dGhpbmcoXG4gICRmbGV4OiB0cnVlLFxuICAkcHJvdG90eXBlOiBmYWxzZSxcbiAgJHh5LWdyaWQ6ICR4eS1ncmlkXG4pIHtcbiAgQGlmICRmbGV4IHtcbiAgICAkZ2xvYmFsLWZsZXhib3g6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIEBpZiAkeHktZ3JpZCB7XG4gICAgJHh5LWdyaWQ6IHRydWUgIWdsb2JhbDtcbiAgfVxuXG4gIC8vIEdsb2JhbCBzdHlsZXNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWZvcm1zO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXR5cG9ncmFwaHk7XG5cbiAgLy8gR3JpZHNcbiAgQGlmIG5vdCAkZmxleCB7XG4gICAgQGluY2x1ZGUgZm91bmRhdGlvbi1ncmlkO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAaWYgJHh5LWdyaWQge1xuICAgICAgQGluY2x1ZGUgZm91bmRhdGlvbi14eS1ncmlkLWNsYXNzZXM7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIGZvdW5kYXRpb24tZmxleC1ncmlkO1xuICAgIH1cbiAgfVxuXG4gIC8vIEdlbmVyaWMgY29tcG9uZW50c1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWJ1dHRvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1idXR0b24tZ3JvdXA7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2xvc2UtYnV0dG9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWxhYmVsO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb2dyZXNzLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1zbGlkZXI7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3dpdGNoO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYmxlO1xuICAvLyBCYXNpYyBjb21wb25lbnRzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYmFkZ2U7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYnJlYWRjcnVtYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tY2FsbG91dDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1jYXJkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLWRyb3Bkb3duO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXBhZ2luYXRpb247XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdG9vbHRpcDtcblxuICAvLyBDb250YWluZXJzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tYWNjb3JkaW9uO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lZGlhLW9iamVjdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1vcmJpdDtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXNwb25zaXZlLWVtYmVkO1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRhYnM7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tdGh1bWJuYWlsO1xuICAvLyBNZW51LWJhc2VkIGNvbnRhaW5lcnNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1tZW51O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLW1lbnUtaWNvbjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1hY2NvcmRpb24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcmlsbGRvd24tbWVudTtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1kcm9wZG93bi1tZW51O1xuXG4gIC8vIExheW91dCBjb21wb25lbnRzXG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tb2ZmLWNhbnZhcztcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1yZXZlYWw7XG4gIEBpbmNsdWRlIGZvdW5kYXRpb24tc3RpY2t5O1xuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXRpdGxlLWJhcjtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi10b3AtYmFyO1xuXG4gIC8vIEhlbHBlcnNcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1mbG9hdC1jbGFzc2VzO1xuICBAaWYgJGZsZXggeyBAaW5jbHVkZSBmb3VuZGF0aW9uLWZsZXgtY2xhc3NlczsgfVxuICBAaW5jbHVkZSBmb3VuZGF0aW9uLXZpc2liaWxpdHktY2xhc3NlcztcbiAgQGlmICRwcm90b3R5cGUgeyBAaW5jbHVkZSBmb3VuZGF0aW9uLXByb3RvdHlwZS1jbGFzc2VzOyB9XG59XG4iLCIvLyBzYXNzLWxpbnQ6ZGlzYWJsZSBuby12ZW5kb3ItcHJlZml4ZXNcblxuQG1peGluIGZvdW5kYXRpb24tbm9ybWFsaXplKCkge1xuICAvKiEgbm9ybWFsaXplLmNzcyB2OC4wLjAgfCBNSVQgTGljZW5zZSB8IGdpdGh1Yi5jb20vbmVjb2xhcy9ub3JtYWxpemUuY3NzICovXG5cbiAgLy8gRG9jdW1lbnRcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBsaW5lIGhlaWdodCBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIFByZXZlbnQgYWRqdXN0bWVudHMgb2YgZm9udCBzaXplIGFmdGVyIG9yaWVudGF0aW9uIGNoYW5nZXMgaW4gaU9TLlxuXG4gIGh0bWwge1xuICAgIGxpbmUtaGVpZ2h0OiAxLjE1OyAvLyAxXG4gICAgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAvLyAyXG4gIH1cblxuICAvLyBTZWN0aW9uc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgbWFyZ2luIGluIGFsbCBicm93c2Vycy5cblxuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBmb250IHNpemUgYW5kIG1hcmdpbiBvbiBgaDFgIGVsZW1lbnRzIHdpdGhpbiBgc2VjdGlvbmAgYW5kXG4gIC8vIGBhcnRpY2xlYCBjb250ZXh0cyBpbiBDaHJvbWUsIEZpcmVmb3gsIGFuZCBTYWZhcmkuXG5cbiAgaDEge1xuICAgIGZvbnQtc2l6ZTogMmVtO1xuICAgIG1hcmdpbjogMC42N2VtIDA7XG4gIH1cblxuICAvLyBHcm91cGluZyBjb250ZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQWRkIHRoZSBjb3JyZWN0IGJveCBzaXppbmcgaW4gRmlyZWZveC5cbiAgLy8gMi4gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gRWRnZSBhbmQgSUUuXG5cbiAgaHIge1xuICAgIGJveC1zaXppbmc6IGNvbnRlbnQtYm94OyAvLyAxXG4gICAgaGVpZ2h0OiAwOyAvLyAxXG4gICAgb3ZlcmZsb3c6IHZpc2libGU7IC8vIDJcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIGluaGVyaXRhbmNlIGFuZCBzY2FsaW5nIG9mIGZvbnQgc2l6ZSBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIENvcnJlY3QgdGhlIG9kZCBgZW1gIGZvbnQgc2l6aW5nIGluIGFsbCBicm93c2Vycy5cblxuICBwcmUge1xuICAgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2UsIG1vbm9zcGFjZTsgLy8gMVxuICAgIGZvbnQtc2l6ZTogMWVtOyAvLyAyXG4gIH1cblxuICAvLyBUZXh0LWxldmVsIHNlbWFudGljc1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIFJlbW92ZSB0aGUgZ3JheSBiYWNrZ3JvdW5kIG9uIGFjdGl2ZSBsaW5rcyBpbiBJRSAxMC5cblxuICBhIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuXG4gIC8vIDEuIFJlbW92ZSB0aGUgYm90dG9tIGJvcmRlciBpbiBDaHJvbWUgNTctXG4gIC8vIDIuIEFkZCB0aGUgY29ycmVjdCB0ZXh0IGRlY29yYXRpb24gaW4gQ2hyb21lLCBFZGdlLCBJRSwgT3BlcmEsIGFuZCBTYWZhcmkuXG5cbiAgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206IDA7IC8vIDFcbiAgICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZSBkb3R0ZWQ7IC8vIDJcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHdlaWdodCBpbiBDaHJvbWUsIEVkZ2UsIGFuZCBTYWZhcmkuXG5cbiAgYixcbiAgc3Ryb25nIHtcbiAgICBmb250LXdlaWdodDogYm9sZGVyO1xuICB9XG5cbiAgLy8gMS4gQ29ycmVjdCB0aGUgaW5oZXJpdGFuY2UgYW5kIHNjYWxpbmcgb2YgZm9udCBzaXplIGluIGFsbCBicm93c2Vycy5cbiAgLy8gMi4gQ29ycmVjdCB0aGUgb2RkIGBlbWAgZm9udCBzaXppbmcgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIGNvZGUsXG4gIGtiZCxcbiAgc2FtcCB7XG4gICAgZm9udC1mYW1pbHk6IG1vbm9zcGFjZSwgbW9ub3NwYWNlOyAvLyAxXG4gICAgZm9udC1zaXplOiAxZW07IC8vIDJcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBmb250IHNpemUgaW4gYWxsIGJyb3dzZXJzLlxuXG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgfVxuXG4gIC8vIFByZXZlbnQgYHN1YmAgYW5kIGBzdXBgIGVsZW1lbnRzIGZyb20gYWZmZWN0aW5nIHRoZSBsaW5lIGhlaWdodCBpblxuICAvLyBhbGwgYnJvd3NlcnMuXG5cbiAgc3ViLFxuICBzdXAge1xuICAgIGZvbnQtc2l6ZTogNzUlO1xuICAgIGxpbmUtaGVpZ2h0OiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogYmFzZWxpbmU7XG4gIH1cblxuICBzdWIge1xuICAgIGJvdHRvbTogLTAuMjVlbTtcbiAgfVxuXG4gIHN1cCB7XG4gICAgdG9wOiAtMC41ZW07XG4gIH1cblxuICAvLyBFbWJlZGRlZCBjb250ZW50XG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gUmVtb3ZlIHRoZSBib3JkZXIgb24gaW1hZ2VzIGluc2lkZSBsaW5rcyBpbiBJRSAxMC5cblxuICBpbWcge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgfVxuXG4gIC8vIEZvcm1zXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLy8gMS4gQ2hhbmdlIHRoZSBmb250IHN0eWxlcyBpbiBhbGwgYnJvd3NlcnMuXG4gIC8vIDIuIFJlbW92ZSB0aGUgbWFyZ2luIGluIEZpcmVmb3ggYW5kIFNhZmFyaS5cblxuICBidXR0b24sXG4gIGlucHV0LFxuICBvcHRncm91cCxcbiAgc2VsZWN0LFxuICB0ZXh0YXJlYSB7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7IC8vIDFcbiAgICBmb250LXNpemU6IDEwMCU7IC8vIDFcbiAgICBsaW5lLWhlaWdodDogMS4xNTsgLy8gMVxuICAgIG1hcmdpbjogMDsgLy8gMlxuICB9XG5cbiAgLy8gU2hvdyB0aGUgb3ZlcmZsb3cgaW4gSUUuXG4gIC8vIDEuIFNob3cgdGhlIG92ZXJmbG93IGluIEVkZ2UuXG5cbiAgYnV0dG9uLFxuICBpbnB1dCB7IC8vIDFcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5oZXJpdGFuY2Ugb2YgdGV4dCB0cmFuc2Zvcm0gaW4gRWRnZSwgRmlyZWZveCwgYW5kIElFLlxuICAvLyAxLiBSZW1vdmUgdGhlIGluaGVyaXRhbmNlIG9mIHRleHQgdHJhbnNmb3JtIGluIEZpcmVmb3guXG5cbiAgYnV0dG9uLFxuICBzZWxlY3QgeyAvLyAxXG4gICAgdGV4dC10cmFuc2Zvcm06IG5vbmU7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuXG4gIGJ1dHRvbixcbiAgW3R5cGU9XCJidXR0b25cIl0sXG4gIFt0eXBlPVwicmVzZXRcIl0sXG4gIFt0eXBlPVwic3VibWl0XCJdIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IGJ1dHRvbjtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgaW5uZXIgYm9yZGVyIGFuZCBwYWRkaW5nIGluIEZpcmVmb3guXG5cbiAgYnV0dG9uOjotbW96LWZvY3VzLWlubmVyLFxuICBbdHlwZT1cImJ1dHRvblwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJyZXNldFwiXTo6LW1vei1mb2N1cy1pbm5lcixcbiAgW3R5cGU9XCJzdWJtaXRcIl06Oi1tb3otZm9jdXMtaW5uZXIge1xuICAgIGJvcmRlci1zdHlsZTogbm9uZTtcbiAgICBwYWRkaW5nOiAwO1xuICB9XG5cbiAgLy8gUmVzdG9yZSB0aGUgZm9jdXMgc3R5bGVzIHVuc2V0IGJ5IHRoZSBwcmV2aW91cyBydWxlLlxuXG4gIGJ1dHRvbjotbW96LWZvY3VzcmluZyxcbiAgW3R5cGU9XCJidXR0b25cIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwicmVzZXRcIl06LW1vei1mb2N1c3JpbmcsXG4gIFt0eXBlPVwic3VibWl0XCJdOi1tb3otZm9jdXNyaW5nIHtcbiAgICBvdXRsaW5lOiAxcHggZG90dGVkIEJ1dHRvblRleHQ7XG4gIH1cblxuICAvLyBDb3JyZWN0IHRoZSBwYWRkaW5nIGluIEZpcmVmb3guXG5cbiAgZmllbGRzZXQge1xuICAgIHBhZGRpbmc6IDAuMzVlbSAwLjc1ZW0gMC42MjVlbTtcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIHRleHQgd3JhcHBpbmcgaW4gRWRnZSBhbmQgSUUuXG4gIC8vIDIuIENvcnJlY3QgdGhlIGNvbG9yIGluaGVyaXRhbmNlIGZyb20gYGZpZWxkc2V0YCBlbGVtZW50cyBpbiBJRS5cbiAgLy8gMy4gUmVtb3ZlIHRoZSBwYWRkaW5nIHNvIGRldmVsb3BlcnMgYXJlIG5vdCBjYXVnaHQgb3V0IHdoZW4gdGhleSB6ZXJvIG91dFxuICAvLyAgICBgZmllbGRzZXRgIGVsZW1lbnRzIGluIGFsbCBicm93c2Vycy5cblxuICBsZWdlbmQge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7IC8vIDFcbiAgICBjb2xvcjogaW5oZXJpdDsgLy8gMlxuICAgIGRpc3BsYXk6IHRhYmxlOyAvLyAxXG4gICAgbWF4LXdpZHRoOiAxMDAlOyAvLyAxXG4gICAgcGFkZGluZzogMDsgLy8gM1xuICAgIHdoaXRlLXNwYWNlOiBub3JtYWw7IC8vIDFcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCB2ZXJ0aWNhbCBhbGlnbm1lbnQgaW4gQ2hyb21lLCBGaXJlZm94LCBhbmQgT3BlcmEuXG5cbiAgcHJvZ3Jlc3Mge1xuICAgIHZlcnRpY2FsLWFsaWduOiBiYXNlbGluZTtcbiAgfVxuXG4gIC8vIFJlbW92ZSB0aGUgZGVmYXVsdCB2ZXJ0aWNhbCBzY3JvbGxiYXIgaW4gSUUgMTArLlxuXG4gIHRleHRhcmVhIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgfVxuXG4gIC8vIDEuIEFkZCB0aGUgY29ycmVjdCBib3ggc2l6aW5nIGluIElFIDEwLlxuICAvLyAyLiBSZW1vdmUgdGhlIHBhZGRpbmcgaW4gSUUgMTAuXG5cbiAgW3R5cGU9XCJjaGVja2JveFwiXSxcbiAgW3R5cGU9XCJyYWRpb1wiXSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgLy8gMVxuICAgIHBhZGRpbmc6IDA7IC8vIDJcbiAgfVxuXG4gIC8vIENvcnJlY3QgdGhlIGN1cnNvciBzdHlsZSBvZiBpbmNyZW1lbnQgYW5kIGRlY3JlbWVudCBidXR0b25zIGluIENocm9tZS5cblxuICBbdHlwZT1cIm51bWJlclwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbixcbiAgW3R5cGU9XCJudW1iZXJcIl06Oi13ZWJraXQtb3V0ZXItc3Bpbi1idXR0b24ge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIC8vIDEuIENvcnJlY3QgdGhlIG9kZCBhcHBlYXJhbmNlIGluIENocm9tZSBhbmQgU2FmYXJpLlxuICAvLyAyLiBDb3JyZWN0IHRoZSBvdXRsaW5lIHN0eWxlIGluIFNhZmFyaS5cblxuICBbdHlwZT1cInNlYXJjaFwiXSB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiB0ZXh0ZmllbGQ7IC8vIDFcbiAgICBvdXRsaW5lLW9mZnNldDogLTJweDsgLy8gMlxuICB9XG5cbiAgLy8gUmVtb3ZlIHRoZSBpbm5lciBwYWRkaW5nIGluIENocm9tZSBhbmQgU2FmYXJpIG9uIG1hY09TLlxuXG4gIFt0eXBlPVwic2VhcmNoXCJdOjotd2Via2l0LXNlYXJjaC1kZWNvcmF0aW9uIHtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gIH1cblxuICAvLyAxLiBDb3JyZWN0IHRoZSBpbmFiaWxpdHkgdG8gc3R5bGUgY2xpY2thYmxlIHR5cGVzIGluIGlPUyBhbmQgU2FmYXJpLlxuICAvLyAyLiBDaGFuZ2UgZm9udCBwcm9wZXJ0aWVzIHRvIGBpbmhlcml0YCBpbiBTYWZhcmkuXG5cbiAgOjotd2Via2l0LWZpbGUtdXBsb2FkLWJ1dHRvbiB7XG4gICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IC8vIDFcbiAgICBmb250OiBpbmhlcml0OyAvLyAyXG4gIH1cblxuICAvLyBJbnRlcmFjdGl2ZVxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIEVkZ2UsIElFIDEwKywgYW5kIEZpcmVmb3guXG5cbiAgZGV0YWlscyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cblxuICAvLyBBZGQgdGhlIGNvcnJlY3QgZGlzcGxheSBpbiBhbGwgYnJvd3NlcnMuXG5cbiAgc3VtbWFyeSB7XG4gICAgZGlzcGxheTogbGlzdC1pdGVtO1xuICB9XG5cbiAgLy8gTWlzY1xuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwKy5cblxuICB0ZW1wbGF0ZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIC8vIEFkZCB0aGUgY29ycmVjdCBkaXNwbGF5IGluIElFIDEwLlxuXG4gIFtoaWRkZW5dIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5cbiAgLy8gRGlzYWJsZSBvdXRsaW5lIHdoZW4gaW50ZW50IGlzIGNsZWFybHkgbW91c2UgYW5kIHRvdWNoXG4gIFtkYXRhLXdoYXRpbnRlbnQ9XCJtb3VzZVwiXSxcbiAgW2RhdGEtd2hhdGludGVudD1cInRvdWNoXCJdLFxuICBbZGF0YS13aGF0aW5wdXQ9XCJtb3VzZVwiXSxcbiAgW2RhdGEtd2hhdGlucHV0PVwidG91Y2hcIl0ge1xuICAgICosICo6Zm9jdXMge1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICB9XG4gIH1cblxuICAvLyBEaXNhYmxlIGlPUyBjYWxsb3V0cyB3aGVuIGRyYWdnYWJsZSBpcyBmYWxzZVxuICBbZHJhZ2dhYmxlPWZhbHNlXSB7XG4gICAgLXdlYmtpdC10b3VjaC1jYWxsb3V0OiBub25lO1xuICAgIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8gc2Fzcy1saW50OmRpc2FibGUgbm8tY29sb3ItbGl0ZXJhbHMsIG5vLXF1YWxpZnlpbmctZWxlbWVudHNcblxuLy8vL1xuLy8vIEBncm91cCBnbG9iYWxcbi8vLy9cblxuQGltcG9ydCAndXRpbC91dGlsJztcblxuLy8vIEZvbnQgc2l6ZSBhdHRyaWJ1dGUgYXBwbGllZCB0byBgPGh0bWw+YCBhbmQgYDxib2R5PmAuIFdlIHVzZSAxMDAlIGJ5IGRlZmF1bHQgc28gdGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSB1c2VyJ3MgYnJvd3NlciBzZXR0aW5ncy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtZm9udC1zaXplOiAxMDAlICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHdpZHRoIG9mIHlvdXIgc2l0ZS4gVXNlZCBieSB0aGUgZ3JpZCB0byBkZXRlcm1pbmUgcm93IHdpZHRoLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC13aWR0aDogcmVtLWNhbGMoMTIwMCkgIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGxpbmUgaGVpZ2h0IGZvciBhbGwgdHlwZS4gYCRnbG9iYWwtbGluZWhlaWdodGAgaXMgMjRweCB3aGlsZSBgJGdsb2JhbC1mb250LXNpemVgIGlzIDE2cHhcbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbGluZWhlaWdodDogMS41ICFkZWZhdWx0O1xuXG4vLy8gQ29sb3JzIHVzZWQgZm9yIGJ1dHRvbnMsIGNhbGxvdXRzLCBsaW5rcywgZXRjLiBUaGVyZSBtdXN0IGFsd2F5cyBiZSBhIGNvbG9yIGNhbGxlZCBgcHJpbWFyeWAuXG4vLy8gQHR5cGUgTWFwXG4kZm91bmRhdGlvbi1wYWxldHRlOiAoXG4gIFwicHJpbWFyeVwiOiAjMTc3OWJhLFxuICBcInNlY29uZGFyeVwiOiAjNzY3Njc2LFxuICBcInN1Y2Nlc3NcIjogIzNhZGI3NixcbiAgXCJ3YXJuaW5nXCI6ICNmZmFlMDAsXG4gIFwiYWxlcnRcIjogI2NjNGIzNyxcbikgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBsaWdodCBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbGlnaHQtZ3JheTogI2U2ZTZlNiAhZGVmYXVsdDtcblxuLy8vIENvbG9yIHVzZWQgZm9yIG1lZGl1bSBncmF5IFVJIGl0ZW1zLlxuLy8vIEB0eXBlIENvbG9yXG4kbWVkaXVtLWdyYXk6ICNjYWNhY2EgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBkYXJrIGdyYXkgVUkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiRkYXJrLWdyYXk6ICM4YThhOGEgIWRlZmF1bHQ7XG5cbi8vLyBDb2xvciB1c2VkIGZvciBibGFjayB1aSBpdGVtcy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsYWNrOiAjMGEwYTBhICFkZWZhdWx0O1xuXG4vLy8gQ29sb3IgdXNlZCBmb3Igd2hpdGUgdWkgaXRlbXMuXG4vLy8gQHR5cGUgQ29sb3JcbiR3aGl0ZTogI2ZlZmVmZSAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWJhY2tncm91bmQ6ICR3aGl0ZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3Igb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgQ29sb3JcbiRib2R5LWZvbnQtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc3RhY2sgb2YgdGhlIGJvZHkuXG4vLy8gQHR5cGUgTGlzdFxuJGJvZHktZm9udC1mYW1pbHk6ICdIZWx2ZXRpY2EgTmV1ZScsIEhlbHZldGljYSwgUm9ib3RvLCBBcmlhbCwgc2Fucy1zZXJpZiAhZGVmYXVsdDtcblxuLy8vIFNldCB0byBgdHJ1ZWAgdG8gZW5hYmxlIHNhZmUgcGFkZGluZyBvbiB0aGUgYm9keSBmb3Igbm9uLXJlY3Rhbmd1bGFyIGRldmljZXMgKGkuZS4gcGhvbmVzIHdpdGggbm90Y2hlcylcbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1zYWZlLXBhZGRpbmc6IGZhbHNlICFkZWZhdWx0O1xuXG4vLy8gU2V0IHRvIGB0cnVlYCB0byBlbmFibGUgYW50aWFsaWFzZWQgdHlwZSwgdXNpbmcgdGhlIGAtd2Via2l0LWZvbnQtc21vb3RoaW5nYCBhbmQgYC1tb3otb3N4LWZvbnQtc21vb3RoaW5nYCBDU1MgcHJvcGVydGllcy5cbi8vLyBAdHlwZSBCb29sZWFuXG4kYm9keS1hbnRpYWxpYXNlZDogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBtYXJnaW4gb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtbWFyZ2luOiAxcmVtICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIHBhZGRpbmcgb24gY29tcG9uZW50cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcGFkZGluZzogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBwb3NpdGlvbmluZyBvbiBjb21wb25lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1wb3NpdGlvbjogMXJlbSAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBub3JtYWwgdHlwZS5cbi8vLyBAdHlwZSBLZXl3b3JkIHwgTnVtYmVyXG4kZ2xvYmFsLXdlaWdodC1ub3JtYWw6IG5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCBmb250IHdlaWdodCB1c2VkIGZvciBib2xkIHR5cGUuXG4vLy8gQHR5cGUgS2V5d29yZCB8IE51bWJlclxuJGdsb2JhbC13ZWlnaHQtYm9sZDogYm9sZCAhZGVmYXVsdDtcblxuLy8vIEdsb2JhbCB2YWx1ZSB1c2VkIGZvciBhbGwgZWxlbWVudHMgdGhhdCBoYXZlIGEgYm9yZGVyIHJhZGl1cy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRnbG9iYWwtcmFkaXVzOiAwICFkZWZhdWx0O1xuXG4vLy8gR2xvYmFsIHZhbHVlIHVzZWQgZm9yIGFsbCBtZW51IHN0eWxlcy4gQ2FuIGJlIG92ZXJ3cml0dGVuIGF0IGluZGl2aWR1YWwgbWVudSBjb21wb25lbnQgbGV2ZWwuXG4vLy8gQHR5cGUgTnVtYmVyXG4kZ2xvYmFsLW1lbnUtcGFkZGluZzogMC43cmVtIDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBHbG9iYWwgdmFsdWUgdXNlZCBmb3IgYWxsIG1lbnUgc3R5bGVzLiBOZXN0ZWQgbWFyZ2luIGZvciBzdWJtZW51LlxuJGdsb2JhbC1tZW51LW5lc3RlZC1tYXJnaW46IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB0ZXh0IGRpcmVjdGlvbiBvZiB0aGUgQ1NTLiBDYW4gYmUgZWl0aGVyIGBsdHJgIG9yIGBydGxgLlxuLy8vIEB0eXBlIEtleXdvcmRcbiRnbG9iYWwtdGV4dC1kaXJlY3Rpb246IGx0ciAhZGVmYXVsdDtcblxuLy8vIEVuYWJsZXMgZmxleGJveCBmb3IgY29tcG9uZW50cyB0aGF0IHN1cHBvcnQgaXQuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGdsb2JhbC1mbGV4Ym94OiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gRW5hYmxlZCByZXNwb25zaXZlIGJyZWFrcG9pbnRzIGZvciBwcm90b3R5cGVzIGlmIGFwcGxpY2FibGVcbi8vLyBAdHlwZSBCb29sZWFuXG4kZ2xvYmFsLXByb3RvdHlwZS1icmVha3BvaW50czogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBCdXR0b24gY3Vyc29yJ3MgdmFsdWUsIGBhdXRvYCBieSBkZWZhdWx0XG4vLy8gQHR5cGUgS2V5d29yZFxuJGdsb2JhbC1idXR0b24tY3Vyc29yOiBhdXRvICFkZWZhdWx0O1xuXG5AaWYgbm90IG1hcC1oYXMta2V5KCRmb3VuZGF0aW9uLXBhbGV0dGUsIHByaW1hcnkpIHtcbiAgQGVycm9yICdJbiAkZm91bmRhdGlvbi1wYWxldHRlLCB5b3UgbXVzdCBoYXZlIGEgY29sb3IgbmFtZWQgXCJwcmltYXJ5XCIuJztcbn1cblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIHRleHQgZGlyZWN0aW9uXG4kZ2xvYmFsLWxlZnQ6IGlmKCRnbG9iYWwtdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCByaWdodCwgbGVmdCk7XG4kZ2xvYmFsLXJpZ2h0OiBpZigkZ2xvYmFsLXRleHQtZGlyZWN0aW9uID09IHJ0bCwgbGVmdCwgcmlnaHQpO1xuXG4vLyBJbnRlcm5hbCB2YXJpYWJsZSB0aGF0IGNvbnRhaW5zIHRoZSBmbGV4IGp1c3RpZnlpbmcgb3B0aW9uc1xuJC16Zi1mbGV4LWp1c3RpZnk6IC16Zi1mbGV4LWp1c3RpZnkoJGdsb2JhbC10ZXh0LWRpcmVjdGlvbik7XG5cbi8vLyBHbG9iYWwgdG9sZXJhbmNlIGZvciBjb2xvciBwaWNrIGNvbnRyYXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGdsb2JhbC1jb2xvci1waWNrLWNvbnRyYXN0LXRvbGVyYW5jZTogMCAhZGVmYXVsdDtcblxuLy8gSW50ZXJuYWwgdmFyaWFibGVzIHVzZWQgZm9yIGNvbG9yc1xuQGluY2x1ZGUgYWRkLWZvdW5kYXRpb24tY29sb3JzO1xuXG5AbWl4aW4gZm91bmRhdGlvbi1nbG9iYWwtc3R5bGVzIHtcbiAgQGluY2x1ZGUgZm91bmRhdGlvbi1ub3JtYWxpemU7XG5cbiAgLy8gVGhlc2Ugc3R5bGVzIGFyZSBhcHBsaWVkIHRvIGEgPG1ldGE+IHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0XG4gIC5mb3VuZGF0aW9uLW1xIHtcbiAgICBmb250LWZhbWlseTogJyN7LXpmLWJwLXNlcmlhbGl6ZSgkYnJlYWtwb2ludHMpfSc7XG4gIH1cblxuICBodG1sIHtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBTZXQgYm94LXNpemluZyBnbG9iYWxseSB0byBoYW5kbGUgcGFkZGluZyBhbmQgYm9yZGVyIHdpZHRoc1xuICAqLFxuICAqOjpiZWZvcmUsXG4gICo6OmFmdGVyIHtcbiAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICB9XG5cbiAgLy8gRGVmYXVsdCBib2R5IHN0eWxlc1xuICBib2R5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcblxuICAgIEBpZiAoJGJvZHktc2FmZS1wYWRkaW5nKSB7XG4gICAgICAvLyB1c2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gYWNjb3VudCBmb3Igbm9uLXJlY3Rhbmd1bGFyIGRpc3BsYXlzIGUuZy4gcGhvbmVzIHdpdGggbm90Y2hlc1xuICAgICAgcGFkZGluZy10b3A6IGVudihzYWZlLWFyZWEtaW5zZXQtdG9wKTtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IGVudihzYWZlLWFyZWEtaW5zZXQtcmlnaHQpO1xuICAgICAgcGFkZGluZy1ib3R0b206IGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKTtcbiAgICAgIHBhZGRpbmctbGVmdDogZW52KHNhZmUtYXJlYS1pbnNldC1sZWZ0KTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYm9keS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRib2R5LWZvbnQtZmFtaWx5O1xuICAgIGZvbnQtd2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ub3JtYWw7XG4gICAgbGluZS1oZWlnaHQ6ICRnbG9iYWwtbGluZWhlaWdodDtcbiAgICBjb2xvcjogJGJvZHktZm9udC1jb2xvcjtcblxuICAgIEBpZiAoJGJvZHktYW50aWFsaWFzZWQpIHtcbiAgICAgIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLXZlbmRvci1wcmVmaXhlc1xuICAgICAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSBuby12ZW5kb3ItcHJlZml4ZXNcbiAgICB9XG4gIH1cblxuICBpbWcge1xuICAgIC8vIEdldCByaWQgb2YgZ2FwIHVuZGVyIGltYWdlcyBieSBtYWtpbmcgdGhlbSBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IGJ5IGRlZmF1bHRcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgIC8vIEdyaWQgZGVmYXVsdHMgdG8gZ2V0IGltYWdlcyBhbmQgZW1iZWRzIHRvIHdvcmsgcHJvcGVybHlcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiBhdXRvO1xuICAgIC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7XG4gIH1cblxuICAvLyBNYWtlIHN1cmUgdGV4dGFyZWEgdGFrZXMgb24gaGVpZ2h0IGF1dG9tYXRpY2FsbHlcbiAgdGV4dGFyZWEge1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtaW4taGVpZ2h0OiA1MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6ICRnbG9iYWwtcmFkaXVzO1xuICB9XG5cbiAgLy8gTWFrZSBzZWxlY3QgZWxlbWVudHMgYXJlIDEwMCUgd2lkdGggYnkgZGVmYXVsdFxuICBzZWxlY3Qge1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogJGdsb2JhbC1yYWRpdXM7XG4gIH1cblxuICAvLyBTdHlsZXMgR29vZ2xlIE1hcHMgYW5kIE1hcFF1ZXN0IGVtYmVkcyBwcm9wZXJseVxuICAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIG5vLWlkc1xuICAubWFwX2NhbnZhcyxcbiAgLm1xYS1kaXNwbGF5IHtcbiAgICBpbWcsXG4gICAgZW1iZWQsXG4gICAgb2JqZWN0IHtcbiAgICAgIG1heC13aWR0aDogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFJlc2V0IDxidXR0b24+IHN0eWxlcyBjcmVhdGVkIGJ5IG1vc3QgYnJvd3NlcnNcbiAgYnV0dG9uIHtcbiAgICBAaW5jbHVkZSBkaXNhYmxlLW1vdXNlLW91dGxpbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJvcmRlcjogMDtcbiAgICBib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBjdXJzb3I6ICRnbG9iYWwtYnV0dG9uLWN1cnNvcjtcbiAgfVxuXG4gIC8vIFByZXZlbnQgdGV4dCBvdmVyZmxvdyBvbiBwcmVcbiAgcHJlIHtcbiAgICBvdmVyZmxvdzogYXV0bztcbiAgICAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGluZzogdG91Y2g7XG4gIH1cblxuICAvLyBNYWtlIHJlc2V0IGluaGVyaXQgZm9udC1mYW1pbHkgaW5zdGVhZCBvZiBzZXR0aW5ncyBzYW5zLXNlcmlmXG4gIGJ1dHRvbixcbiAgaW5wdXQsXG4gIG9wdGdyb3VwLFxuICBzZWxlY3QsXG4gIHRleHRhcmVhIHtcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIEludGVybmFsIGNsYXNzZXMgdG8gc2hvdy9oaWRlIGVsZW1lbnRzIGluIEphdmFTY3JpcHRcbiAgLmlzLXZpc2libGUge1xuICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gIH1cblxuICAuaXMtaGlkZGVuIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuQGltcG9ydCAnbWF0aCc7XG5cbiR1bml0LXdhcm5pbmdzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4kZ2xvYmFsLWZvbnQtc2l6ZTogMTAwJSAhZGVmYXVsdDtcblxuLy8vIFJlbW92ZXMgdGhlIHVuaXQgKGUuZy4gcHgsIGVtLCByZW0pIGZyb20gYSB2YWx1ZSwgcmV0dXJuaW5nIHRoZSBudW1iZXIgb25seS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbnVtIC0gTnVtYmVyIHRvIHN0cmlwIHVuaXQgZnJvbS5cbi8vL1xuLy8vIEByZXR1cm5zIHtOdW1iZXJ9IFRoZSBzYW1lIG51bWJlciwgc2FucyB1bml0LlxuQGZ1bmN0aW9uIHN0cmlwLXVuaXQoJG51bSkge1xuICBAcmV0dXJuIGRpdmlkZSgkbnVtLCAkbnVtICogMCArIDEpO1xufVxuXG4vLy8gQ29udmVydHMgb25lIG9yIG1vcmUgcGl4ZWwgdmFsdWVzIGludG8gbWF0Y2hpbmcgcmVtIHZhbHVlcy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICR2YWx1ZXMgLSBPbmUgb3IgbW9yZSB2YWx1ZXMgdG8gY29udmVydC4gQmUgc3VyZSB0byBzZXBhcmF0ZSB0aGVtIHdpdGggc3BhY2VzIGFuZCBub3QgY29tbWFzLiBJZiB5b3UgbmVlZCB0byBjb252ZXJ0IGEgY29tbWEtc2VwYXJhdGVkIGxpc3QsIHdyYXAgdGhlIGxpc3QgaW4gcGFyZW50aGVzZXMuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiYXNlIFtudWxsXSAtIFRoZSBiYXNlIHZhbHVlIHRvIHVzZSB3aGVuIGNhbGN1bGF0aW5nIHRoZSBgcmVtYC4gSWYgeW91J3JlIHVzaW5nIEZvdW5kYXRpb24gb3V0IG9mIHRoZSBib3gsIHRoaXMgaXMgMTZweC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgYG51bGxgLCB0aGUgZnVuY3Rpb24gd2lsbCByZWZlcmVuY2UgdGhlIGAkZ2xvYmFsLWZvbnQtc2l6ZWAgdmFyaWFibGUgYXMgdGhlIGJhc2UuXG4vLy9cbi8vLyBAcmV0dXJucyB7TGlzdH0gQSBsaXN0IG9mIGNvbnZlcnRlZCB2YWx1ZXMuXG5AZnVuY3Rpb24gcmVtLWNhbGMoJHZhbHVlcywgJGJhc2U6IG51bGwpIHtcbiAgJHJlbS12YWx1ZXM6ICgpO1xuICAkY291bnQ6IGxlbmd0aCgkdmFsdWVzKTtcblxuICAvLyBJZiBubyBiYXNlIGlzIGRlZmluZWQsIGRlZmVyIHRvIHRoZSBnbG9iYWwgZm9udCBzaXplXG4gIEBpZiAkYmFzZSA9PSBudWxsIHtcbiAgICAkYmFzZTogJGdsb2JhbC1mb250LXNpemU7XG4gIH1cblxuICAvLyBJZiB0aGUgYmFzZSBmb250IHNpemUgaXMgYSAlLCB0aGVuIG11bHRpcGx5IGl0IGJ5IDE2cHhcbiAgLy8gVGhpcyBpcyBiZWNhdXNlIDEwMCUgZm9udCBzaXplID0gMTZweCBpbiBtb3N0IGFsbCBicm93c2Vyc1xuICBAaWYgdW5pdCgkYmFzZSkgPT0gJyUnIHtcbiAgICAkYmFzZTogZGl2aWRlKCRiYXNlLCAxMDAlKSAqIDE2cHg7XG4gIH1cblxuICAvLyBVc2luZyByZW0gYXMgYmFzZSBhbGxvd3MgY29ycmVjdCBzY2FsaW5nXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiAkY291bnQgPT0gMSB7XG4gICAgQHJldHVybiAtemYtdG8tcmVtKCR2YWx1ZXMsICRiYXNlKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvdW50IHtcbiAgICAkcmVtLXZhbHVlczogYXBwZW5kKCRyZW0tdmFsdWVzLCAtemYtdG8tcmVtKG50aCgkdmFsdWVzLCAkaSksICRiYXNlKSk7XG4gIH1cblxuICBAcmV0dXJuICRyZW0tdmFsdWVzO1xufVxuXG4vLyBDb252ZXJ0cyBhIHVuaXRsZXNzLCBwaXhlbCwgb3IgcmVtIHZhbHVlIHRvIGVtLCBmb3IgdXNlIGluIGJyZWFrcG9pbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC10by1lbSgkdmFsdWUpIHtcbiAgLy8gUGl4ZWwgYW5kIHVuaXRsZXNzIHZhbHVlcyBhcmUgY29udmVydGVkIHRvIHJlbXNcbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAncHgnIG9yIHVuaXRsZXNzKCR2YWx1ZSkge1xuICAgICR2YWx1ZTogcmVtLWNhbGMoJHZhbHVlLCAkYmFzZTogMTZweCk7XG4gIH1cblxuICAvLyBUaGVuIHRoZSB2YWx1ZSBpcyBjb252ZXJ0ZWQgdG8gZW1zXG4gIEByZXR1cm4gc3RyaXAtdW5pdCgkdmFsdWUpICogMWVtO1xufVxuXG4vLy8gQ29udmVydHMgYSBwaXhlbCB2YWx1ZSB0byBtYXRjaGluZyByZW0gdmFsdWUuICpBbnkqIHZhbHVlIHBhc3NlZCwgcmVnYXJkbGVzcyBvZiB1bml0LCBpcyBhc3N1bWVkIHRvIGJlIGEgcGl4ZWwgdmFsdWUuIEJ5IGRlZmF1bHQsIHRoZSBiYXNlIHBpeGVsIHZhbHVlIHVzZWQgdG8gY2FsY3VsYXRlIHRoZSByZW0gdmFsdWUgaXMgdGFrZW4gZnJvbSB0aGUgYCRnbG9iYWwtZm9udC1zaXplYCB2YXJpYWJsZS5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkdmFsdWUgLSBQaXhlbCB2YWx1ZSB0byBjb252ZXJ0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSBbbnVsbF0gLSBCYXNlIGZvciBwaXhlbCBjb252ZXJzaW9uLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gQSBudW1iZXIgaW4gcmVtcywgY2FsY3VsYXRlZCBiYXNlZCBvbiB0aGUgZ2l2ZW4gdmFsdWUgYW5kIHRoZSBiYXNlIHBpeGVsIHZhbHVlLiByZW0gdmFsdWVzIGFyZSBwYXNzZWQgdGhyb3VnaCBhcyBpcy5cbkBmdW5jdGlvbiAtemYtdG8tcmVtKCR2YWx1ZSwgJGJhc2U6IG51bGwpIHtcbiAgLy8gQ2hlY2sgaWYgdGhlIHZhbHVlIGlzIGEgbnVtYmVyXG4gIEBpZiB0eXBlLW9mKCR2YWx1ZSkgIT0gJ251bWJlcicge1xuICAgIEBpZiAkdW5pdC13YXJuaW5ncyB7XG4gICAgICBAd2FybiBpbnNwZWN0KCR2YWx1ZSkgKyAnIHdhcyBwYXNzZWQgdG8gcmVtLWNhbGMoKSwgd2hpY2ggaXMgbm90IGEgbnVtYmVyLic7XG4gICAgfVxuICAgIEByZXR1cm4gJHZhbHVlO1xuICB9XG5cbiAgLy8gVHJhbnNmb3JtIGVtIGludG8gcmVtIGlmIHNvbWVvbmUgaGFuZHMgb3ZlciAnZW0nc1xuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogMXJlbTtcbiAgfVxuXG4gIC8vIENhbGN1bGF0ZSByZW0gaWYgdW5pdHMgZm9yICR2YWx1ZSBpcyBub3QgcmVtIG9yIGVtXG4gIEBpZiB1bml0KCR2YWx1ZSkgIT0gJ3JlbScge1xuICAgICR2YWx1ZTogZGl2aWRlKHN0cmlwLXVuaXQoJHZhbHVlKSwgc3RyaXAtdW5pdCgkYmFzZSkpICogMXJlbTtcbiAgfVxuXG4gIC8vIFR1cm4gMHJlbSBpbnRvIDBcbiAgQGlmICR2YWx1ZSA9PSAwcmVtIHtcbiAgICAkdmFsdWU6IDA7XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cblxuLy8vIENvbnZlcnRzIGEgcGl4ZWwsIHBlcmNlbnRhZ2UsIHJlbSBvciBlbSB2YWx1ZSB0byBhIHVuaXRsZXNzIHZhbHVlIGJhc2VkIG9uIGEgZ2l2ZW4gZm9udCBzaXplLiBJZGVhbCBmb3Igd29ya2luZyBvdXQgdW5pdGxlc3MgbGluZSBoZWlnaHRzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGNvbnZlcnQgdG8gYSB1bml0bGVzcyBsaW5lIGhlaWdodFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBmb250IHNpemUgdG8gdXNlIHRvIHdvcmsgb3V0IHRoZSBsaW5lIGhlaWdodCAtIGRlZmF1bHRzIHRvICRnbG9iYWwtZm9udC1zaXplXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gVW5pdGxlc3MgbnVtYmVyXG5AZnVuY3Rpb24gdW5pdGxlc3MtY2FsYygkdmFsdWUsICRiYXNlOiBudWxsKSB7XG5cbiAgLy8gSWYgbm8gYmFzZSBpcyBkZWZpbmVkLCBkZWZlciB0byB0aGUgZ2xvYmFsIGZvbnQgc2l6ZVxuICBAaWYgJGJhc2UgPT0gbnVsbCB7XG4gICAgJGJhc2U6ICRnbG9iYWwtZm9udC1zaXplO1xuICB9XG5cbiAgLy8gRmlyc3QsIGxldHMgY29udmVydCBvdXIgJGJhc2UgdG8gcGl4ZWxzXG5cbiAgLy8gSWYgdGhlIGJhc2UgZm9udCBzaXplIGlzIGEgJSwgdGhlbiBtdWx0aXBseSBpdCBieSAxNnB4XG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnJScge1xuICAgICRiYXNlOiBkaXZpZGUoJGJhc2UsIDEwMCUpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAncmVtJyB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXQoJGJhc2UpICogMTZweDtcbiAgfVxuXG4gIEBpZiB1bml0KCRiYXNlKSA9PSAnZW0nIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdCgkYmFzZSkgKiAxNnB4O1xuICB9XG5cbiAgLy8gTm93IGxldCdzIGNvbnZlcnQgb3VyIHZhbHVlIHRvIHBpeGVscyB0b29cbiAgQGlmIHVuaXQoJHZhbHVlKSA9PSAnJScge1xuICAgICR2YWx1ZTogZGl2aWRlKCR2YWx1ZSwgMTAwJSkgKiAkYmFzZTtcbiAgfVxuXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3JlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICBAaWYgdW5pdCgkdmFsdWUpID09ICdlbScge1xuICAgICR2YWx1ZTogc3RyaXAtdW5pdCgkdmFsdWUpICogJGJhc2U7XG4gIH1cblxuICAvLyAncHgnXG4gIEBpZiB1bml0KCR2YWx1ZSkgPT0gJ3B4JyB7XG4gICAgQHJldHVybiBkaXZpZGUoc3RyaXAtdW5pdCgkdmFsdWUpLCBzdHJpcC11bml0KCRiYXNlKSk7XG4gIH1cblxuICAvLyBhc3N1bWUgdGhhdCBsaW5lLWhlaWdodHMgZ3JlYXRlciB0aGFuIDEwIGFyZSBtZWFudCB0byBiZSBhYnNvbHV0ZSBpbiAncHgnXG4gIEBpZiB1bml0bGVzcygkdmFsdWUpIGFuZCAoJHZhbHVlID4gMTApIHtcbiAgICBAcmV0dXJuIGRpdmlkZSgkdmFsdWUsIHN0cmlwLXVuaXQoJGJhc2UpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHZhbHVlO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGZ1bmN0aW9uc1xuLy8vL1xuXG4vLyBQYXRjaCB0byBmaXggaXNzdWUgIzEyMDgwXG4kLXpmLWJwLXZhbHVlOiBudWxsO1xuXG4vLy8gQ3JlYXRlcyBhbiBpbm5lciBib3gtc2hhZG93IGZvciBvbmx5IG9uZSBzaWRlXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaWRlIC0gU2lkZSB0aGUgc2hhZG93IGlzIHN1cHBvc2VkIHRvIGFwcGVhci4gQ2FuIGJlIGB0b3BgLCBgbGVmdGAsIGByaWdodGAgb3IgYGJvdHRvbWAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzaXplIC0gV2lkdGggZm9yIHRoZSB0YXJnZXQgc2lkZS5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3IgLSBDb2xvciBvZiB0aGUgc2hhZG93LlxuQG1peGluIGlubmVyLXNpZGUtc2hhZG93KFxuICAkc2lkZTogYm90dG9tLFxuICAkc2l6ZTogMjBweCxcbiAgJGNvbG9yOiByZ2JhKCRibGFjaywgMC4yNSlcbikge1xuXG4gICRoZWxwZXI6IHJvdW5kKCRzaXplICogMC42NSk7XG5cbiAgQGlmICgkc2lkZSA9PSB0b3ApIHtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwICRoZWxwZXIgJHNpemUgKC0xKSokaGVscGVyICRjb2xvcjtcbiAgfSBAZWxzZSBpZiAoJHNpZGUgPT0gbGVmdCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0ICRoZWxwZXIgMCAkc2l6ZSAoLTEpKiRoZWxwZXIgJGNvbG9yO1xuICB9IEBlbHNlIGlmICgkc2lkZSA9PSByaWdodCkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0ICgtMSkqJGhlbHBlciAwICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH0gQGVsc2UgaWYgKCRzaWRlID09IGJvdHRvbSkge1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgKC0xKSokaGVscGVyICRzaXplICgtMSkqJGhlbHBlciAkY29sb3I7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBDU1MgdHJpYW5nbGUsIHdoaWNoIGNhbiBiZSB1c2VkIGZvciBkcm9wZG93biBhcnJvd3MsIGRyb3Bkb3duIHBpcHMsIGFuZCBtb3JlLiBVc2UgdGhpcyBtaXhpbiBpbnNpZGUgYSBgJjo6YmVmb3JlYCBvciBgJjo6YWZ0ZXJgIHNlbGVjdG9yLCB0byBhdHRhY2ggdGhlIHRyaWFuZ2xlIHRvIGFuIGV4aXN0aW5nIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJHRyaWFuZ2xlLXNpemUgLSBXaWR0aCBvZiB0aGUgdHJpYW5nbGUuXG4vLy8gQHBhcmFtIHtDb2xvcn0gJHRyaWFuZ2xlLWNvbG9yIC0gQ29sb3Igb2YgdGhlIHRyaWFuZ2xlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHRyaWFuZ2xlLWRpcmVjdGlvbiAtIERpcmVjdGlvbiB0aGUgdHJpYW5nbGUgcG9pbnRzLiBDYW4gYmUgYHVwYCwgYHJpZ2h0YCwgYGRvd25gLCBvciBgbGVmdGAuXG5AbWl4aW4gY3NzLXRyaWFuZ2xlKFxuICAkdHJpYW5nbGUtc2l6ZSxcbiAgJHRyaWFuZ2xlLWNvbG9yLFxuICAkdHJpYW5nbGUtZGlyZWN0aW9uXG4pIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIHdpZHRoOiAwO1xuICBoZWlnaHQ6IDA7XG5cbiAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgYm9yZGVyLXdpZHRoOiAkdHJpYW5nbGUtc2l6ZTtcblxuICBjb250ZW50OiAnJztcblxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gZG93bikge1xuICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiAkdHJpYW5nbGUtY29sb3IgdHJhbnNwYXJlbnQgdHJhbnNwYXJlbnQ7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IHVwKSB7XG4gICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvcjtcbiAgfVxuICBAaWYgKCR0cmlhbmdsZS1kaXJlY3Rpb24gPT0gcmlnaHQpIHtcbiAgICBib3JkZXItcmlnaHQtd2lkdGg6IDA7XG4gICAgYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCB0cmFuc3BhcmVudCAkdHJpYW5nbGUtY29sb3I7XG4gIH1cbiAgQGlmICgkdHJpYW5nbGUtZGlyZWN0aW9uID09IGxlZnQpIHtcbiAgICBib3JkZXItbGVmdC13aWR0aDogMDtcbiAgICBib3JkZXItY29sb3I6IHRyYW5zcGFyZW50ICR0cmlhbmdsZS1jb2xvciB0cmFuc3BhcmVudCB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4vLy8gQ3JlYXRlcyBhIG1lbnUgaWNvbiB3aXRoIGEgc2V0IHdpZHRoLCBoZWlnaHQsIG51bWJlciBvZiBiYXJzLCBhbmQgY29sb3JzLiBUaGUgbWl4aW4gdXNlcyB0aGUgaGVpZ2h0IG9mIHRoZSBpY29uIGFuZCB0aGUgd2VpZ2h0IG9mIHRoZSBiYXJzIHRvIGRldGVybWluZSBzcGFjaW5nLiA8ZGl2IGNsYXNzPVwiZG9jcy1leGFtcGxlLWJ1cmdlclwiPjwvZGl2PlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge0NvbG9yfSAkY29sb3ItaG92ZXIgWyRkYXJrLWdyYXldIC0gQ29sb3IgdG8gdXNlIHdoZW4gdGhlIGljb24gaXMgaG92ZXJlZCBvdmVyLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzIwcHhdIC0gV2lkdGggb2YgdGhlIGljb24uXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRoZWlnaHQgWzE2cHhdIC0gSGVpZ2h0IG9mIHRoZSBpY29uLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2VpZ2h0IFsycHhdIC0gSGVpZ2h0IG9mIGluZGl2aWR1YWwgYmFycyBpbiB0aGUgaWNvbi5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGJhcnMgWzNdIC0gTnVtYmVyIG9mIGJhcnMgaW4gdGhlIGljb24uXG5AbWl4aW4gaGFtYnVyZ2VyKFxuICAkY29sb3I6ICRibGFjayxcbiAgJGNvbG9yLWhvdmVyOiAkZGFyay1ncmF5LFxuICAkd2lkdGg6IDIwcHgsXG4gICRoZWlnaHQ6IDE2cHgsXG4gICR3ZWlnaHQ6IDJweCxcbiAgJGJhcnM6IDNcbikge1xuICAvLyBib3gtc2hhZG93IENTUyBvdXRwdXRcbiAgJHNoYWRvdzogKCk7XG4gICRob3Zlci1zaGFkb3c6ICgpO1xuXG4gIC8vIFNwYWNpbmcgYmV0d2VlbiBiYXJzIGlzIGNhbGN1bGF0ZWQgYmFzZWQgb24gdGhlIHRvdGFsIGhlaWdodCBvZiB0aGUgaWNvbiBhbmQgdGhlIHdlaWdodCBvZiBlYWNoIGJhclxuICAkc3BhY2luZzogZGl2aWRlKCRoZWlnaHQgLSAoJHdlaWdodCAqICRiYXJzKSwgJGJhcnMgLSAxKTtcblxuICBAaWYgdW5pdCgkc3BhY2luZykgPT0gJ3B4JyB7XG4gICAgJHNwYWNpbmc6IGZsb29yKCRzcGFjaW5nKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICRvZmZzZXQ6ICgkd2VpZ2h0ICsgJHNwYWNpbmcpICogKCRpIC0gMSk7XG4gICAgJHNoYWRvdzogYXBwZW5kKCRzaGFkb3csIDAgJG9mZnNldCAwICRjb2xvciwgY29tbWEpO1xuICB9XG5cbiAgLy8gSWNvbiBjb250YWluZXJcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAkd2lkdGg7XG4gIGhlaWdodDogJGhlaWdodDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gIC8vIEljb24gYmFyc1xuICAmOjphZnRlciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuXG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgYmFja2dyb3VuZDogJGNvbG9yO1xuICAgIGJveC1zaGFkb3c6ICRzaGFkb3c7XG5cbiAgICBjb250ZW50OiAnJztcbiAgfVxuXG4gIC8vIEhvdmVyIHN0YXRlXG4gIEBpZiAkY29sb3ItaG92ZXIge1xuICAgIC8vIEdlbmVyYXRlIENTU1xuICAgIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJGJhcnMge1xuICAgICAgJG9mZnNldDogKCR3ZWlnaHQgKyAkc3BhY2luZykgKiAoJGkgLSAxKTtcbiAgICAgICRob3Zlci1zaGFkb3c6IGFwcGVuZCgkaG92ZXItc2hhZG93LCAwICRvZmZzZXQgMCAkY29sb3ItaG92ZXIsIGNvbW1hKTtcbiAgICB9XG5cbiAgICAmOmhvdmVyOjphZnRlciB7XG4gICAgICBiYWNrZ3JvdW5kOiAkY29sb3ItaG92ZXI7XG4gICAgICBib3gtc2hhZG93OiAkaG92ZXItc2hhZG93O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQWRkcyBhIGRvd253YXJkLWZhY2luZyB0cmlhbmdsZSBhcyBhIGJhY2tncm91bmQgaW1hZ2UgdG8gYW4gZWxlbWVudC4gVGhlIGltYWdlIGlzIGZvcm1hdHRlZCBhcyBhbiBTVkcsIG1ha2luZyBpdCBlYXN5IHRvIGNoYW5nZSB0aGUgY29sb3IuIEJlY2F1c2UgSW50ZXJuZXQgRXhwbG9yZXIgZG9lc24ndCBzdXBwb3J0IGVuY29kZWQgU1ZHcyBhcyBiYWNrZ3JvdW5kIGltYWdlcywgYSBQTkcgZmFsbGJhY2sgaXMgYWxzbyBpbmNsdWRlZC5cbi8vLyBUaGVyZSBhcmUgdHdvIFBORyBmYWxsYmFja3M6IGEgYmxhY2sgdHJpYW5nbGUgYW5kIGEgd2hpdGUgdHJpYW5nbGUuIFRoZSBvbmUgdXNlZCBkZXBlbmRzIG9uIHRoZSBsaWdodG5lc3Mgb2YgdGhlIGlucHV0IGNvbG9yLlxuLy8vXG4vLy8gQHBhcmFtIHtDb2xvcn0gJGNvbG9yIFskYmxhY2tdIC0gQ29sb3IgdG8gdXNlIGZvciB0aGUgdHJpYW5nbGUuXG5AbWl4aW4gYmFja2dyb3VuZC10cmlhbmdsZSgkY29sb3I6ICRibGFjaykge1xuICAkcmdiOiAncmdiJTI4I3tyb3VuZChyZWQoJGNvbG9yKSl9LCAje3JvdW5kKGdyZWVuKCRjb2xvcikpfSwgI3tyb3VuZChibHVlKCRjb2xvcikpfSUyOSc7XG5cbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3N2Zyt4bWw7dXRmOCw8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2ZXJzaW9uPVwiMS4xXCIgd2lkdGg9XCIzMlwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAzMiAyNFwiPjxwb2x5Z29uIHBvaW50cz1cIjAsMCAzMiwwIDE2LDI0XCIgc3R5bGU9XCJmaWxsOiAjeyRyZ2J9XCI+PC9wb2x5Z29uPjwvc3ZnPicpO1xuXG4gIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDBcXDApIHtcbiAgICBAaWYgbGlnaHRuZXNzKCRjb2xvcikgPCA2MCUge1xuICAgICAgLy8gV2hpdGUgdHJpYW5nbGVcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgnZGF0YTppbWFnZS9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFDQUFBQUFZQ0FZQUFBQ2JVLzgwQUFBQUdYUkZXSFJUYjJaMGQyRnlaUUJCWkc5aVpTQkpiV0ZuWlZKbFlXUjVjY2xsUEFBQUFJcEpSRUZVZU5yRWtja05nREFNQkJmUmtFdDBPYlJCQmRzR1hVRGdtUWZLNFhoSDJtOGN6UUFBeTI3UjN0c3c0UWZlMng4dU9PNm9ZTGI2R2xPb3IzR0Yrc3dVUkFPbVVKK1J3dEVKczlXdlRHRVl4QlhxSTFNUUFaaENmVVFLUnpETVZqK1R3ckFJVjZqdlNVRWtZQXIxTFNrY3lUQmIvVitLWWZYN3hBZXVzcTNzTER0R0gza0VHQUNQV0lmbE5aZmhSUUFBQUFCSlJVNUVya0pnZ2c9PScpO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAvLyBCbGFjayB0cmlhbmdsZVxuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUNBQUFBQVlDQVlBQUFDYlUvODBBQUFBR1hSRldIUlRiMlowZDJGeVpRQkJaRzlpWlNCSmJXRm5aVkpsWVdSNWNjbGxQQUFBQU1CSlJFRlVlTnJFbGxzT2hDQU1SVnN6QzlJbHpVN0tDbVZIVEpzb01XWU1VdHB5djlCZ2J1WFFCNVpTZGdCWVlZNHljZ0Jpdms4S1lGc1FNZk1pVFRCUDRvM25VekNLek9hYkxKYkx5Mi9nMzFldkdrQWdpblI0L1plZ0tINXFYM2JKQ3NjQTN0MHgza2dPNXRRRnloaEZmNTB4UnFGTGJ5TVVOSlF6Z3lqR1Mvd2dDcHZLcWtSQnB1V3JFNFY5ZCsxRTRkUFVYcUlnMTA3U1FPRS8yRFJReE13VER5Z0lJblZERVQ5VDNsQ29qLzZqL1ZDbUdqWk9sMmxLcFo4QUF3RFFQN3pJaW1ER0ZRQUFBQUJKUlU1RXJrSmdnZz09Jyk7XG4gICAgfVxuICB9XG59XG5cbi8vLyBBcHBsaWVzIHRoZSBtaWNybyBjbGVhcmZpeCBoYWNrIHBvcHVsYXJpemVkIGJ5IE5pY29sYXMgR2FsbGFnaGVyLiBJbmNsdWRlIHRoaXMgbWl4aW4gb24gYSBjb250YWluZXIgaWYgaXRzIGNoaWxkcmVuIGFyZSBhbGwgZmxvYXRlZCwgdG8gZ2l2ZSB0aGUgY29udGFpbmVyIGEgcHJvcGVyIGhlaWdodC5cbi8vLyBUaGUgY2xlYXJmaXggaXMgYXVnbWVudGVkIHdpdGggc3BlY2lmaWMgc3R5bGVzIHRvIHByZXZlbnQgYm9yZGVycyBpbiBmbGV4Ym94IGVudmlyb25tZW50c1xuLy8vIEBsaW5rIGh0dHA6Ly9uaWNvbGFzZ2FsbGFnaGVyLmNvbS9taWNyby1jbGVhcmZpeC1oYWNrLyBNaWNybyBDbGVhcmZpeCBIYWNrXG4vLy8gQGxpbmsgaHR0cDovL2RhbmlzYWRlc2lnbmVyLmNvbS9ibG9nL2ZsZXhib3gtY2xlYXItZml4LXBzZXVkby1lbGVtZW50cy8gRmxleGJveCBmaXhcbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmJlZm9yZSxcbiAgJjo6YWZ0ZXIge1xuICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgIGNvbnRlbnQ6ICcgJztcblxuICAgIEBpZiAkZ2xvYmFsLWZsZXhib3gge1xuICAgICAgZmxleC1iYXNpczogMDtcbiAgICAgIG9yZGVyOiAxO1xuICAgIH1cbiAgfVxuXG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgfVxufVxuXG4vLy8gQWRkcyBDU1MgZm9yIGEgXCJxdWFudGl0eSBxdWVyeVwiIHNlbGVjdG9yIHRoYXQgYXV0b21hdGljYWxseSBzaXplcyBlbGVtZW50cyBiYXNlZCBvbiBob3cgbWFueSB0aGVyZSBhcmUgaW5zaWRlIGEgY29udGFpbmVyLlxuLy8vIEBsaW5rIGh0dHA6Ly9hbGlzdGFwYXJ0LmNvbS9hcnRpY2xlL3F1YW50aXR5LXF1ZXJpZXMtZm9yLWNzcyBRdWFudGl0eSBRdWVyaWVzIGZvciBDU1Ncbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IC0gTWF4aW11bSBudW1iZXIgb2YgaXRlbXMgdG8gZGV0ZWN0LiBUaGUgaGlnaGVyIHRoaXMgbnVtYmVyIGlzLCB0aGUgbW9yZSBDU1MgdGhhdCdzIHJlcXVpcmVkIHRvIGNvdmVyIGVhY2ggbnVtYmVyIG9mIGl0ZW1zLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGVsZW0gW2xpXSAtIFRhZyB0byB1c2UgZm9yIHNpYmxpbmcgc2VsZWN0b3JzLlxuQG1peGluIGF1dG8td2lkdGgoJG1heCwgJGVsZW06IGxpKSB7XG4gIEBmb3IgJGkgZnJvbSAyIHRocm91Z2ggJG1heCB7XG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQsXG4gICAgJjpudGgtbGFzdC1jaGlsZCgjeyRpfSk6Zmlyc3QtY2hpbGQgfiAjeyRlbGVtfSB7XG4gICAgICB3aWR0aDogcGVyY2VudGFnZShkaXZpZGUoMSwgJGkpKTtcbiAgICB9XG4gIH1cbn1cblxuLy8vIFJlbW92ZXMgdGhlIGZvY3VzIHJpbmcgYXJvdW5kIGFuIGVsZW1lbnQgd2hlbiBhIG1vdXNlIGlucHV0IGlzIGRldGVjdGVkLlxuQG1peGluIGRpc2FibGUtbW91c2Utb3V0bGluZSB7XG4gIFtkYXRhLXdoYXRpbnB1dD0nbW91c2UnXSAmIHtcbiAgICBvdXRsaW5lOiAwO1xuICB9XG59XG5cbi8vLyBNYWtlcyBhbiBlbGVtZW50IHZpc3VhbGx5IGhpZGRlbiwgYnV0IHN0aWxsIGFjY2Vzc2libGUgdG8ga2V5Ym9hcmRzIGFuZCBhc3Npc3RpdmUgZGV2aWNlcy5cbi8vLyBAbGluayBodHRwOi8vc25vb2suY2EvYXJjaGl2ZXMvaHRtbF9hbmRfY3NzL2hpZGluZy1jb250ZW50LWZvci1hY2Nlc3NpYmlsaXR5IEhpZGluZyBDb250ZW50IGZvciBBY2Nlc3NpYmlsaXR5XG4vLy8gQGxpbmsgaHR0cDovL2h1Z29naXJhdWRlbC5jb20vMjAxNi8xMC8xMy9jc3MtaGlkZS1hbmQtc2Vlay9cbi8vL1xuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGVuZm9yY2UgLSBJZiBgdHJ1ZWAsIHVzZSBgIWltcG9ydGFudGAgb24gYXBwbGllZCBwcm9wZXJ0aWVzXG5AbWl4aW4gZWxlbWVudC1pbnZpc2libGUoXG4gICRlbmZvcmNlOiB0cnVlXG4pIHtcbiAgJGltcG9ydGFudDogaWYoJGVuZm9yY2UsICchaW1wb3J0YW50JywgbnVsbCk7XG5cbiAgcG9zaXRpb246IGFic29sdXRlICN7JGltcG9ydGFudH07XG4gIHdpZHRoOiAxcHggI3skaW1wb3J0YW50fTtcbiAgaGVpZ2h0OiAxcHggI3skaW1wb3J0YW50fTtcbiAgcGFkZGluZzogMCAjeyRpbXBvcnRhbnR9O1xuICBvdmVyZmxvdzogaGlkZGVuICN7JGltcG9ydGFudH07XG4gIGNsaXA6IHJlY3QoMCwgMCwgMCwgMCkgI3skaW1wb3J0YW50fTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcCAjeyRpbXBvcnRhbnR9O1xuICBib3JkZXI6IDAgI3skaW1wb3J0YW50fTtcbn1cblxuLy8vIFJldmVyc2VzIHRoZSBDU1Mgb3V0cHV0IGNyZWF0ZWQgYnkgdGhlIGBlbGVtZW50LWludmlzaWJsZSgpYCBtaXhpbi5cbi8vLyBAcGFyYW0ge0Jvb2xlYW59ICRlbmZvcmNlIC0gSWYgYHRydWVgLCB1c2UgYCFpbXBvcnRhbnRgIG9uIGFwcGxpZWQgcHJvcGVydGllc1xuQG1peGluIGVsZW1lbnQtaW52aXNpYmxlLW9mZihcbiAgJGVuZm9yY2U6IHRydWVcbikge1xuICAkaW1wb3J0YW50OiBpZigkZW5mb3JjZSwgJyFpbXBvcnRhbnQnLCBudWxsKTtcblxuICBwb3NpdGlvbjogc3RhdGljICN7JGltcG9ydGFudH07XG4gIHdpZHRoOiBhdXRvICN7JGltcG9ydGFudH07XG4gIGhlaWdodDogYXV0byAjeyRpbXBvcnRhbnR9O1xuICBvdmVyZmxvdzogdmlzaWJsZSAjeyRpbXBvcnRhbnR9O1xuICBjbGlwOiBhdXRvICN7JGltcG9ydGFudH07XG4gIHdoaXRlLXNwYWNlOiBub3JtYWwgI3skaW1wb3J0YW50fTtcbn1cblxuLy8vIFZlcnRpY2FsbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gdmVydGljYWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xufVxuXG4vLy8gSG9yaXpvbnRhbGx5IGNlbnRlcnMgdGhlIGVsZW1lbnQgaW5zaWRlIG9mIGl0cyBmaXJzdCBub24tc3RhdGljIHBhcmVudCxcbi8vLyBAbGluayBodHRwOi8vd3d3LnNpdGVwb2ludC5jb20vY2VudGVyaW5nLXdpdGgtc2Fzcy8gQ2VudGVyaW5nIFdpdGggU2Fzc1xuQG1peGluIGhvcml6b250YWwtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbn1cblxuLy8vIEFic29sdXRlbHkgY2VudGVycyB0aGUgZWxlbWVudCBpbnNpZGUgb2YgaXRzIGZpcnN0IG5vbi1zdGF0aWMgcGFyZW50LFxuLy8vIEBsaW5rIGh0dHA6Ly93d3cuc2l0ZXBvaW50LmNvbS9jZW50ZXJpbmctd2l0aC1zYXNzLyBDZW50ZXJpbmcgV2l0aCBTYXNzXG5AbWl4aW4gYWJzb2x1dGUtY2VudGVyIHtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDUwJTtcbiAgbGVmdDogNTAlO1xuICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtNTAlKTtcbn1cblxuLy8vIEl0ZXJhdGVzIHRocm91Z2ggYnJlYWtwb2ludHMgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnQtY2xhc3Nlc2AgYW5kIHByaW50cyB0aGUgQ1NTIGluc2lkZSB0aGUgbWl4aW4gYXQgZWFjaCBicmVha3BvaW50J3MgbWVkaWEgcXVlcnkuIFVzZSB0aGlzIHdpdGggdGhlIGdyaWQsIG9yIGFueSBvdGhlciBjb21wb25lbnQgdGhhdCBoYXMgcmVzcG9uc2l2ZSBjbGFzc2VzLlxuLy8vXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkc21hbGwgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgc2tpcCB0aGUgYHNtYWxsYCBicmVha3BvaW50LiBVc2UgdGhpcyB3aXRoIGNvbXBvbmVudHMgdGhhdCBkb24ndCBwcmVmaXggY2xhc3NlcyB3aXRoIGBzbWFsbC1gLCBvbmx5IGBtZWRpdW0tYCBhbmQgdXAuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHMgW3RydWVdIC0gSWYgYGZhbHNlYCwgdGhlIG1peGluIHdpbGwgaXRlcmF0ZSBvdmVyIGJyZWFrcG9pbnRzIHdpdGhvdXQgZG9pbmcgdGhlIG1lZGlhIHF1ZXJ5IGl0c2VsZi4gVXNlZnVsIGZvciBtb3JlIGNvbXBsZXggbWVkaWEgcXVlcnkgZ2VuZXJhdGlvbiBhcyBpbiB0aGUgbWFyZ2luIGdyaWQuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludChcbiAgJHNtYWxsOiB0cnVlLFxuICAkYXV0by1pbnNlcnQtYnJlYWtwb2ludHM6IHRydWVcbikge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50LWluKGF1dG8sIC16Zi1ib29sKCRzbWFsbCksIC16Zi1ib29sKCRhdXRvLWluc2VydC1icmVha3BvaW50cykpIHtcbiAgICBAY29udGVudFxuICB9O1xufVxuXG4vLy8gSXRlcmF0ZXMgd2l0aCBgQGNvbnRlbnRgIHRocm91Z2ggdGhlIGdpdmVuIGxpc3Qgb2YgYnJlYWtwb2ludHMgYCRicmVha3BvaW50c2AuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYnJlYWtwb2ludHMgW2F1dG9dIC0gQnJlYWtwb2ludHMgdG8gaXRlcmF0ZXMgb24uIEl0IGNhbiBiZSBhIGJyZWFrcG9pbnQgbmFtZSwgbGlzdCBvZiBicmVha3BvaW50cyBvciBgYXV0b2AgZm9yIGFsbCBicmVha3BvaW50cy5cbi8vLyBAcGFyYW0ge0Jvb2xlYW58TnVsbH0gJHplcm8tYnJlYWtwb2ludCBbbnVsbF0gLSBXaGV0aGVyIHRoZSB6ZXJvLWJyZWFrcG9pbnQgKG9mdGVuIGBzbWFsbGApIG11c3QgYmUgaW5jbHVkZWQuIElmIGB0cnVlYCwgaXQgd2lsbCBhbHdheXMgYmUgYWRkZWQgdG8gdGhlIGxpc3QgaWYgbm90IGFscmVhZHkgdGhlcmUuIElmIGBmYWxzZWAsIGl0IHdpbGwgYWx3YXlzIGJlIHJlbW92ZWQuIERvZXMgbm90aGluZyBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbnxLZXl3b3JkfSAkbWVkaWEtcXVlcmllcyBbdHJ1ZV0gLSBXaGV0aGVyIG1lZGlhLXF1ZXJpZXMgbXVzdCBiZSBnZW5lcmF0ZWQuIElmIGBmb3ItbGlzdHNgLCBvbmx5IGdlbmVyYXRlIG1lZGlhLXF1ZXJpZXMgd2hlbiBgJGJyZWFrcG9pbnRzYCBpcyBhIGxpc3QuXG5AbWl4aW4gLXpmLWVhY2gtYnJlYWtwb2ludC1pbihcbiAgJGJyZWFrcG9pbnRzOiBhdXRvLFxuICAkemVyby1icmVha3BvaW50OiBudWxsLFxuICAkbWVkaWEtcXVlcmllczogdHJ1ZVxuKSB7XG4gICQtbGlzdDogKCk7XG4gICQtYnJlYWtwb2ludHMtaXMtYS1saXN0OiB0cnVlO1xuXG4gIC8vIFJldHJpZXZlIHRoZSBsaXN0IG9mIGJyZWFrcG9pbnQocykgdG8gaXRlcmF0ZSBvbi5cbiAgQGlmICRicmVha3BvaW50cyA9PSBhdXRvIHtcbiAgICAkLWxpc3Q6ICRicmVha3BvaW50LWNsYXNzZXM7XG4gIH1cbiAgQGVsc2UgaWYgdHlwZS1vZigkYnJlYWtwb2ludHMpID09ICdsaXN0JyB7XG4gICAgJC1saXN0OiAkYnJlYWtwb2ludHM7XG4gIH1cbiAgQGVsc2UgaWYgdHlwZS1vZigkYnJlYWtwb2ludHMpID09ICdzdHJpbmcnIHtcbiAgICAkLWxpc3Q6ICgkYnJlYWtwb2ludHMpO1xuICAgICQtYnJlYWtwb2ludHMtaXMtYS1saXN0OiBmYWxzZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGVycm9yICdXcm9uZyBzeW50YXggZm9yIFwiJGJyZWFrcG9pbnRzXCIgaW4gXCItemYtZWFjaC1icmVha3BvaW50LWluKClcIi4gR290IFwiI3skYnJlYWtwb2ludHN9XCIgKCN7dHlwZS1vZigkYnJlYWtwb2ludHMpfSkuIEV4cGVjdGVkIGEgYnJlYWtwb2ludCBuYW1lLCBhIGxpc3Qgb2YgYnJlYWtwb2ludHMgb3IgXCJhdXRvXCInO1xuICB9XG5cbiAgLy8gQWRkIG9yIHJlbW92ZSB0aGUgemVybyBicmVha3BvaW50IGFjY29yZGluZyB0byBgJHplcm8tYnJlYWtwb2ludGBcbiAgQGlmICR6ZXJvLWJyZWFrcG9pbnQgPT0gdHJ1ZSB7XG4gICAgJC1saXN0OiBqb2luKCgkLXpmLXplcm8tYnJlYWtwb2ludCksIHNsLXJlbW92ZSgkLWxpc3QsICQtemYtemVyby1icmVha3BvaW50KSk7XG4gIH1cbiAgQGVsc2UgaWYgJHplcm8tYnJlYWtwb2ludCA9PSBmYWxzZSB7XG4gICAgJC1saXN0OiBzbC1yZW1vdmUoJC1saXN0LCAkLXpmLXplcm8tYnJlYWtwb2ludCk7XG4gIH1cblxuICAvLyBJdGVyYXRlIG9uIGJyZWFrcG9pbnQocylcbiAgQGVhY2ggJGJwIGluICQtbGlzdCB7XG4gICAgJG9sZC16Zi1zaXplOiBudWxsO1xuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG4gICAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgICB9XG4gICAgJC16Zi1zaXplOiAkYnAgIWdsb2JhbDtcblxuICAgIEBpZiAoJG1lZGlhLXF1ZXJpZXMgPT0gdHJ1ZSBvciAoJG1lZGlhLXF1ZXJpZXMgPT0gJ2Zvci1saXN0cycgYW5kICQtYnJlYWtwb2ludHMtaXMtYS1saXN0KSkge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkYnApIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgICQtemYtc2l6ZTogJG9sZC16Zi1zaXplICFnbG9iYWw7XG4gIH1cbn1cblxuLy8vIEdlbmVyYXRlIHRoZSBgQGNvbnRlbnRgIHBhc3NlZCB0byB0aGUgbWl4aW4gd2l0aCBhIHZhbHVlIGAkLXpmLWJwLXZhbHVlYCByZWxhdGVkIHRvIGEgYnJlYWtwb2ludCwgZGVwZW5kaW5nIG9uIHRoZSBgJG5hbWVgIHBhcmFtZXRlcjpcbi8vLyAtIEZvciBhIHNpbmdsZSB2YWx1ZSwgYCQtemYtYnAtdmFsdWVgIGlzIHRoaXMgdmFsdWUuXG4vLy8gLSBGb3IgYSBicmVha3BvaW50IG5hbWUsIGAkLXpmLWJwLXZhbHVlYCBpcyB0aGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlIGluIGAkbWFwYC5cbi8vLyAtIEZvciBcImF1dG9cIiwgYCQtemYtYnAtdmFsdWVgIGlzIHRoZSBjb3JyZXNwb25kaW5nIGJyZWFrcG9pbnQgdmFsdWUgaW4gYCRtYXBgIGFuZCBpcyBwYXNzZWQgdG8gYEBjb250ZW50YCwgd2hpY2ggaXMgbWFkZSByZXNwb25zaXZlIGZvciBlYWNoIGJyZWFrcG9pbnQgb2YgYCRtYXBgLlxuLy8vIEBwYXJhbSB7TnVtYmVyfEFycmF5fEtleXdvcmR9ICRuYW1lIFthdXRvXSAtIFNpbmdsZSB2YWx1ZSwgYnJlYWtwb2ludCBuYW1lLCBvciBsaXN0IG9mIGJyZWFrcG9pbnQgbmFtZXMgdG8gdXNlLiBcImF1dG9cIiBieSBkZWZhdWx0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJG1hcCAtIE1hcCBvZiBicmVha3BvaW50cyBhbmQgdmFsdWVzIG9yIHNpbmdsZSB2YWx1ZSB0byB1c2UuXG5AbWl4aW4gLXpmLWJyZWFrcG9pbnQtdmFsdWUoXG4gICRuYW1lOiBhdXRvLFxuICAkbWFwOiBudWxsXG4pIHtcbiAgQGlmICRuYW1lID09IGF1dG8gYW5kIHR5cGUtb2YoJG1hcCkgPT0gJ21hcCcge1xuICAgIC8vIFwiYXV0b1wiXG4gICAgQGVhY2ggJGssICR2IGluICRtYXAge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkaykge1xuICAgICAgICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkdiwgJG1hcCkge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICAvLyBicmVha3BvaW50IG5hbWVcbiAgICBAaWYgdHlwZS1vZigkbmFtZSkgPT0gJ3N0cmluZycge1xuICAgICAgJGJwLXZhbHVlOiAtemYtZ2V0LWJwLXZhbCgkbWFwLCAkbmFtZSk7XG4gICAgICBAaWYgJGJwLXZhbHVlICE9IG51bGwge1xuICAgICAgICAkbmFtZTogJGJwLXZhbHVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIGJyZWFrcG9pbnQgdmFsdWVcbiAgICAkLXpmLWJwLXZhbHVlOiAkbmFtZSAhZ2xvYmFsO1xuICAgIEBjb250ZW50O1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgdHlwb2dyYXBoeS1iYXNlXG4vLy8vXG5cbi8vIEJhc2UgVHlwb2dyYXBoeVxuLy8gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC0gLSAtIC1cbi8vIFRoZXNlIGFyZSBzdHlsZXMgYXBwbGllZCB0byBiYXNpYyBIVE1MIHRhZ3MsIGluY2x1ZGluZzpcbi8vICAgLSBQYXJhZ3JhcGhzIDxwPlxuLy8gICAtIEJvbGQvaXRhbGljcyA8Yj4gPHN0cm9uZz4gPGk+IDxlbT5cbi8vICAgLSBTbWFsbCB0ZXh0IDxzbWFsbD5cbi8vICAgLSBIZWFkaW5ncyA8aDE+LTxoNj5cbi8vICAgLSBBbmNob3JzIDxhPlxuLy8gICAtIERpdmlkZXJzIDxocj5cbi8vICAgLSBMaXN0cyA8dWw+IDxvbD4gPGRsPlxuLy8gICAtIEJsb2NrcXVvdGVzIDxibG9ja3F1b3RlPlxuLy8gICAtIENvZGUgYmxvY2tzIDxjb2RlPlxuLy8gICAtIEFiYnJldmlhdGlvbnMgPGFiYnI+XG4vLyAgIC0gQ2l0YXRpb25zIDxjaXRlPlxuLy8gICAtIEtleXN0cm9rZXMgPGtiZD5cblxuLy8vIEZvbnQgZmFtaWx5IGZvciBoZWFkZXIgZWxlbWVudHMuXG4vLy8gQHR5cGUgU3RyaW5nIHwgTGlzdFxuJGhlYWRlci1mb250LWZhbWlseTogJGJvZHktZm9udC1mYW1pbHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXdlaWdodDogJGdsb2JhbC13ZWlnaHQtbm9ybWFsICFkZWZhdWx0O1xuXG4vLy8gRm9udCBzdHlsZSAoZS5nLiBpdGFsaWNpemVkKSBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGhlYWRlci1mb250LXN0eWxlOiBub3JtYWwgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHN0YWNrIHVzZWQgZm9yIGVsZW1lbnRzIHRoYXQgdXNlIG1vbm9zcGFjZWQgdHlwZSwgc3VjaCBhcyBjb2RlIHNhbXBsZXNcbi8vLyBAdHlwZSBTdHJpbmcgfCBMaXN0XG4kZm9udC1mYW1pbHktbW9ub3NwYWNlOiBDb25zb2xhcywgJ0xpYmVyYXRpb24gTW9ubycsIENvdXJpZXIsIG1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIENvbG9yIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgQ29sb3JcbiRoZWFkZXItY29sb3I6IGluaGVyaXQgIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBvZiBoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJGhlYWRlci1saW5laGVpZ2h0OiAxLjQgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kaGVhZGVyLW1hcmdpbi1ib3R0b206IDAuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFN0eWxlcyBmb3IgaGVhZGluZ3MgYXQgdmFyaW91cyBzY3JlZW4gc2l6ZXMuIEVhY2gga2V5IGlzIGEgYnJlYWtwb2ludCwgYW5kIGVhY2ggdmFsdWUgaXMgYSBtYXAgb2YgaGVhZGluZyBzdHlsZXMuXG4vLy8gQHR5cGUgTWFwXG4kaGVhZGVyLXN0eWxlczogKFxuICBzbWFsbDogKFxuICAgICdoMSc6ICgnZm9udC1zaXplJzogMjQpLFxuICAgICdoMic6ICgnZm9udC1zaXplJzogMjApLFxuICAgICdoMyc6ICgnZm9udC1zaXplJzogMTkpLFxuICAgICdoNCc6ICgnZm9udC1zaXplJzogMTgpLFxuICAgICdoNSc6ICgnZm9udC1zaXplJzogMTcpLFxuICAgICdoNic6ICgnZm9udC1zaXplJzogMTYpLFxuICApLFxuICBtZWRpdW06IChcbiAgICAnaDEnOiAoJ2ZvbnQtc2l6ZSc6IDQ4KSxcbiAgICAnaDInOiAoJ2ZvbnQtc2l6ZSc6IDQwKSxcbiAgICAnaDMnOiAoJ2ZvbnQtc2l6ZSc6IDMxKSxcbiAgICAnaDQnOiAoJ2ZvbnQtc2l6ZSc6IDI1KSxcbiAgICAnaDUnOiAoJ2ZvbnQtc2l6ZSc6IDIwKSxcbiAgICAnaDYnOiAoJ2ZvbnQtc2l6ZSc6IDE2KSxcbiAgKSxcbikgIWRlZmF1bHQ7XG5cbi8vICRoZWFkZXItc3R5bGVzIG1hcCBpcyBidWlsdCBmcm9tICRoZWFkZXItc2l6ZXMgaW4gb3JkZXIgdG8gZW5zdXJlIGRvd253YXJkIGNvbXBhdGliaWxpdHlcbi8vIHdoZW4gJGhlYWRlci1zaXplcyBpcyBkZXByZWNpYXRlZCwgJGhlYWRlci1zdHlsZXMgbmVlZHMgdG8gZ2V0ICFkZWZhdWx0IHZhbHVlcyBsaWtlIHNldHRpbmdzLnNjc3NcbkBmdW5jdGlvbiBidWlsZC1mcm9tLWhlYWRlci1zaXplcygkaGVhZGVyLXNpemVzKSB7XG4gIEB3YXJuICdOb3RlLCB0aGF0ICRoZWFkZXItc2l6ZXMgaGFzIGJlZW4gcmVwbGFjZWQgd2l0aCAkaGVhZGVyLXN0eWxlcy4gJGhlYWRlci1zaXplcyBzdGlsbCB3b3JrcywgYnV0IGl0IGlzIGdvaW5nIHRvIGJlIGRlcHJlY2lhdGVkLic7XG4gICRoZWFkZXItc3R5bGVzOiAoKTtcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc2l6ZXMge1xuICAgICRoZWFkZXItbWFwOiAoKTtcbiAgICBAZWFjaCAkaGVhZGVyLCAkZm9udC1zaXplIGluICRoZWFkZXJzIHtcbiAgICAgICRoZWFkZXItbWFwOiBtYXAtbWVyZ2UoJGhlYWRlci1tYXAsICgkaGVhZGVyOiAoJ2ZvbnQtc2l6ZSc6ICRmb250LXNpemUpKSk7XG4gICAgfVxuICAgICRoZWFkZXItc3R5bGVzOiBtYXAtbWVyZ2UoJGhlYWRlci1zdHlsZXMsICgkc2l6ZTogJGhlYWRlci1tYXApKTtcbiAgfVxuICBAcmV0dXJuICRoZWFkZXItc3R5bGVzO1xufVxuXG4vLyBJZiBpdCBleGlzdHMgJGhlYWRlcnMtc2l6ZXMgaXMgdXNlZCB0byBidWlsZCAkaGVhZGVyLXN0eWxlcy4gU2VlIHRoZSBkb2N1bWVudGF0aW9uLlxuQGlmIHZhcmlhYmxlLWV4aXN0cyhoZWFkZXItc2l6ZXMpIHtcbiAgJGhlYWRlci1zdHlsZXM6IGJ1aWxkLWZyb20taGVhZGVyLXNpemVzKCRoZWFkZXItc2l6ZXMpO1xufVxuXG4vLy8gVGV4dCByZW5kZXJpbmcgbWV0aG9kIG9mIGhlYWRlcnMuXG4vLy8gQHR5cGUgU3RyaW5nXG4kaGVhZGVyLXRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkgIWRlZmF1bHQ7XG5cbi8vLyBGb250IHNpemUgb2YgYDxzbWFsbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHNtYWxsLWZvbnQtc2l6ZTogODAlICFkZWZhdWx0O1xuXG4vLy8gQ29sb3Igb2YgYDxzbWFsbD5gIGVsZW1lbnRzIHdoZW4gcGxhY2VkIGluc2lkZSBoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I6ICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIExpbmUgaGVpZ2h0IG9mIHRleHQgaW5zaWRlIGA8cD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJHBhcmFncmFwaC1saW5laGVpZ2h0OiAxLjYgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gbWFyZ2luIG9mIHBhcmFncmFwaHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kcGFyYWdyYXBoLW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IHJlbmRlcmluZyBtZXRob2QgZm9yIHBhcmFncmFwaCB0ZXh0LlxuLy8vIEB0eXBlIFN0cmluZ1xuJHBhcmFncmFwaC10ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5ICFkZWZhdWx0O1xuXG4vLy8gVXNlIHRoZSBgLmNvZGUtaW5saW5lYCBjb21wb25lbnQgYXMgZGVmYXVsdCBmb3IgYDxjb2RlPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQm9vbGVhblxuJGVuYWJsZS1jb2RlLWlubGluZTogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yOiAkcHJpbWFyeS1jb2xvciAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgY29sb3IgZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIENvbG9yXG4kYW5jaG9yLWNvbG9yLWhvdmVyOiBzY2FsZS1jb2xvcigkYW5jaG9yLWNvbG9yLCAkbGlnaHRuZXNzOiAtMTQlKSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdGV4dCBkZWNvcmF0aW9uIGZvciBsaW5rcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRhbmNob3ItdGV4dC1kZWNvcmF0aW9uOiBub25lICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCB0ZXh0IGRlY29yYXRpb24gZm9yIGxpbmtzIG9uIGhvdmVyLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGFuY2hvci10ZXh0LWRlY29yYXRpb24taG92ZXI6IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLyBNYXhpbXVtIHdpZHRoIG9mIGEgZGl2aWRlci5cbi8vLyBAdHlwZSBOdW1iZXJcbiRoci13aWR0aDogJGdsb2JhbC13aWR0aCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgYm9yZGVyIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTGlzdFxuJGhyLWJvcmRlcjogMXB4IHNvbGlkICRtZWRpdW0tZ3JheSAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgbWFyZ2luIGZvciBhIGRpdmlkZXIuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGhyLW1hcmdpbjogcmVtLWNhbGMoMjApIGF1dG8gIWRlZmF1bHQ7XG5cbi8vLyBMaW5lIGhlaWdodCBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbGluZWhlaWdodDogJHBhcmFncmFwaC1saW5laGVpZ2h0ICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgaXRlbXMgaW4gYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tICFkZWZhdWx0O1xuXG4vLy8gQnVsbGV0IHR5cGUgdG8gdXNlIGZvciB1bm9yZGVyZWQgbGlzdHMgKGUuZy4sIGBzcXVhcmVgLCBgY2lyY2xlYCwgYGRpc2NgKS5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXR5cGU6IGRpc2MgIWRlZmF1bHQ7XG5cbi8vLyBQb3NpdGlvbmluZyBmb3IgYnVsbGV0cyBvbiB1bm9yZGVyZWQgbGlzdCBpdGVtcy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRsaXN0LXN0eWxlLXBvc2l0aW9uOiBvdXRzaWRlICFkZWZhdWx0O1xuXG4vLy8gTGVmdCAob3IgcmlnaHQpIG1hcmdpbiBmb3IgbGlzdHMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kbGlzdC1zaWRlLW1hcmdpbjogMS4yNXJlbSAhZGVmYXVsdDtcblxuLy8vIExlZnQgKG9yIHJpZ2h0KSBtYXJnaW4gZm9yIGEgbGlzdCBpbnNpZGUgYSBsaXN0LlxuLy8vIEB0eXBlIE51bWJlclxuJGxpc3QtbmVzdGVkLXNpZGUtbWFyZ2luOiAxLjI1cmVtICFkZWZhdWx0O1xuXG4vLy8gQm90dG9tIG1hcmdpbiBmb3IgYDxkbD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LW1hcmdpbi1ib3R0b206IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBGb250IHdlaWdodCBmb3IgYDxkdD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGRlZm5saXN0LXRlcm0td2VpZ2h0OiAkZ2xvYmFsLXdlaWdodC1ib2xkICFkZWZhdWx0O1xuXG4vLy8gU3BhY2luZyBiZXR3ZWVuIGA8ZHQ+YCBhbmQgYDxkZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlclxuJGRlZm5saXN0LXRlcm0tbWFyZ2luLWJvdHRvbTogMC4zcmVtICFkZWZhdWx0O1xuXG4vLy8gVGV4dCBjb2xvciBvZiBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGJsb2NrcXVvdGUtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGluc2lkZSBhIGA8YmxvY2txdW90ZT5gIGVsZW1lbnQuXG4vLy8gQHR5cGUgTnVtYmVyIHwgTGlzdFxuJGJsb2NrcXVvdGUtcGFkZGluZzogcmVtLWNhbGMoOSAyMCAwIDE5KSAhZGVmYXVsdDtcblxuLy8vIFNpZGUgYm9yZGVyIGZvciBgPGJsb2NrcXVvdGU+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYmxvY2txdW90ZS1ib3JkZXI6IDFweCBzb2xpZCAkbWVkaXVtLWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBVc2UgdGhlIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50IGFzIGRlZmF1bHQgZm9yIGA8Y2l0ZT5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRlbmFibGUtY2l0ZS1ibG9jazogdHJ1ZSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgZmFtaWx5IGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRrZXlzdHJva2UtZm9udDogJGZvbnQtZmFtaWx5LW1vbm9zcGFjZSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3IgZm9yIGA8a2JkPmAgZWxlbWVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRrZXlzdHJva2UtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBQYWRkaW5nIGZvciBgPGtiZD5gIGVsZW1lbnRzLlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRrZXlzdHJva2UtcGFkZGluZzogcmVtLWNhbGMoMiA0IDApICFkZWZhdWx0O1xuXG4vLy8gQm9yZGVyIHJhZGl1cyBmb3IgYDxrYmQ+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBOdW1iZXIgfCBMaXN0XG4ka2V5c3Ryb2tlLXJhZGl1czogJGdsb2JhbC1yYWRpdXMgIWRlZmF1bHQ7XG5cbi8vLyBCb3R0b20gYm9yZGVyIHN0eWxlIGZvciBgPGFiYnI+YCBlbGVtZW50cy5cbi8vLyBAdHlwZSBMaXN0XG4kYWJici11bmRlcmxpbmU6IDFweCBkb3R0ZWQgJGJsYWNrICFkZWZhdWx0O1xuXG5AbWl4aW4gZm91bmRhdGlvbi10eXBvZ3JhcGh5LWJhc2Uge1xuICAvLyBUeXBvZ3JhcGh5IHJlc2V0c1xuICBkaXYsXG4gIGRsLFxuICBkdCxcbiAgZGQsXG4gIHVsLFxuICBvbCxcbiAgbGksXG4gIGgxLFxuICBoMixcbiAgaDMsXG4gIGg0LFxuICBoNSxcbiAgaDYsXG4gIHByZSxcbiAgZm9ybSxcbiAgcCxcbiAgYmxvY2txdW90ZSxcbiAgdGgsXG4gIHRkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgfVxuXG4gIC8vIFBhcmFncmFwaHNcbiAgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJHBhcmFncmFwaC1tYXJnaW4tYm90dG9tO1xuXG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRwYXJhZ3JhcGgtdGV4dC1yZW5kZXJpbmc7XG4gIH1cblxuICAvLyBFbXBoYXNpemVkIHRleHRcbiAgZW0sXG4gIGkge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgfVxuXG4gIC8vIFN0cm9uZyB0ZXh0XG4gIHN0cm9uZyxcbiAgYiB7XG4gICAgZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LWJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBTbWFsbCB0ZXh0XG4gIHNtYWxsIHtcbiAgICBmb250LXNpemU6ICRzbWFsbC1mb250LXNpemU7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBIZWFkaW5nc1xuICBoMSwgLmgxLFxuICBoMiwgLmgyLFxuICBoMywgLmgzLFxuICBoNCwgLmg0LFxuICBoNSwgLmg1LFxuICBoNiwgLmg2IHtcbiAgICBmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcbiAgICBmb250LXN0eWxlOiAkaGVhZGVyLWZvbnQtc3R5bGU7XG4gICAgZm9udC13ZWlnaHQ6ICRoZWFkZXItZm9udC13ZWlnaHQ7XG4gICAgY29sb3I6ICRoZWFkZXItY29sb3I7XG4gICAgdGV4dC1yZW5kZXJpbmc6ICRoZWFkZXItdGV4dC1yZW5kZXJpbmc7XG5cbiAgICBzbWFsbCB7XG4gICAgICBsaW5lLWhlaWdodDogMDtcbiAgICAgIGNvbG9yOiAkaGVhZGVyLXNtYWxsLWZvbnQtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSGVhZGluZyBzdHlsZXNcbiAgQGVhY2ggJHNpemUsICRoZWFkZXJzIGluICRoZWFkZXItc3R5bGVzIHtcbiAgICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgICBAZWFjaCAkaGVhZGVyLCAkaGVhZGVyLWRlZnMgaW4gJGhlYWRlcnMge1xuICAgICAgICAkZm9udC1zaXplLXRlbXA6IDFyZW07XG4gICAgICAgICN7JGhlYWRlcn0sIC4jeyRoZWFkZXJ9IHtcblxuICAgICAgICAgIEBpZiBtYXAtaGFzLWtleSgkaGVhZGVyLWRlZnMsIGZvbnQtc2l6ZSkge1xuICAgICAgICAgICAgJGZvbnQtc2l6ZS10ZW1wOiByZW0tY2FsYyhtYXAtZ2V0KCRoZWFkZXItZGVmcywgZm9udC1zaXplKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgZnMpIHtcbiAgICAgICAgICAgICRmb250LXNpemUtdGVtcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGZzKSk7XG4gICAgICAgICAgICBmb250LXNpemU6ICRmb250LXNpemUtdGVtcDtcbiAgICAgICAgICB9IEBlbHNlIGlmICRzaXplID09ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogJGZvbnQtc2l6ZS10ZW1wO1xuICAgICAgICAgIH1cbiAgICAgICAgICBAaWYgbWFwLWhhcy1rZXkoJGhlYWRlci1kZWZzLCBsaW5lLWhlaWdodCkge1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IHVuaXRsZXNzLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIGxpbmUtaGVpZ2h0KSwgJGZvbnQtc2l6ZS10ZW1wKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbGgpIHtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiB1bml0bGVzcy1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBsaCksICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfSBAZWxzZSBpZiAkc2l6ZSA9PSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogdW5pdGxlc3MtY2FsYygkaGVhZGVyLWxpbmVoZWlnaHQsICRmb250LXNpemUtdGVtcCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLXRvcCkge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi10b3ApKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbXQpIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtdCkpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWFyZ2luLWJvdHRvbSkge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMobWFwLWdldCgkaGVhZGVyLWRlZnMsIG1hcmdpbi1ib3R0b20pKTtcbiAgICAgICAgICB9IEBlbHNlIGlmIG1hcC1oYXMta2V5KCRoZWFkZXItZGVmcywgbWIpIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IHJlbS1jYWxjKG1hcC1nZXQoJGhlYWRlci1kZWZzLCBtYikpO1xuICAgICAgICAgIH0gQGVsc2UgaWYgJHNpemUgPT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJGhlYWRlci1tYXJnaW4tYm90dG9tKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBMaW5rc1xuICBhIHtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogJGFuY2hvci1jb2xvcjtcbiAgICB0ZXh0LWRlY29yYXRpb246ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uO1xuXG4gICAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgIGNvbG9yOiAkYW5jaG9yLWNvbG9yLWhvdmVyO1xuICAgICAgQGlmICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uLWhvdmVyICE9ICRhbmNob3ItdGV4dC1kZWNvcmF0aW9uIHtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiAkYW5jaG9yLXRleHQtZGVjb3JhdGlvbi1ob3ZlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpbWcge1xuICAgICAgYm9yZGVyOiAwO1xuICAgIH1cbiAgfVxuXG4gIC8vIEhvcml6b250YWwgcnVsZVxuICBociB7XG4gICAgY2xlYXI6IGJvdGg7XG5cbiAgICBtYXgtd2lkdGg6ICRoci13aWR0aDtcbiAgICBoZWlnaHQ6IDA7XG4gICAgbWFyZ2luOiAkaHItbWFyZ2luO1xuXG4gICAgYm9yZGVyLXRvcDogMDtcbiAgICBib3JkZXItcmlnaHQ6IDA7XG4gICAgYm9yZGVyLWJvdHRvbTogJGhyLWJvcmRlcjtcbiAgICBib3JkZXItbGVmdDogMDtcbiAgfVxuXG4gIC8vIExpc3RzXG4gIHVsLFxuICBvbCxcbiAgZGwge1xuICAgIG1hcmdpbi1ib3R0b206ICRsaXN0LW1hcmdpbi1ib3R0b207XG4gICAgbGlzdC1zdHlsZS1wb3NpdGlvbjogJGxpc3Qtc3R5bGUtcG9zaXRpb247XG4gICAgbGluZS1oZWlnaHQ6ICRsaXN0LWxpbmVoZWlnaHQ7XG4gIH1cblxuICAvLyBMaXN0IGl0ZW1zXG4gIGxpIHtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gIH1cblxuICAvLyBVbm9yZGVyZWQgbGlzdHNcbiAgdWwge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICAgIGxpc3Qtc3R5bGUtdHlwZTogJGxpc3Qtc3R5bGUtdHlwZTtcbiAgfVxuXG4gIC8vIE9yZGVyZWQgbGlzdHNcbiAgb2wge1xuICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LXNpZGUtbWFyZ2luO1xuICB9XG5cbiAgLy8gTmVzdGVkIHVub3JkZXJlZC9vcmRlcmVkIGxpc3RzXG4gIHVsLCBvbCB7XG4gICAgJiAmIHtcbiAgICAgIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06ICRsaXN0LW5lc3RlZC1zaWRlLW1hcmdpbjtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG5cbiAgLy8gRGVmaW5pdGlvbiBsaXN0c1xuICBkbCB7XG4gICAgbWFyZ2luLWJvdHRvbTogJGRlZm5saXN0LW1hcmdpbi1ib3R0b207XG5cbiAgICBkdCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAkZGVmbmxpc3QtdGVybS1tYXJnaW4tYm90dG9tO1xuICAgICAgZm9udC13ZWlnaHQ6ICRkZWZubGlzdC10ZXJtLXdlaWdodDtcbiAgICB9XG4gIH1cblxuICAvLyBCbG9ja3F1b3Rlc1xuICBibG9ja3F1b3RlIHtcbiAgICBtYXJnaW46IDAgMCAkcGFyYWdyYXBoLW1hcmdpbi1ib3R0b207XG4gICAgcGFkZGluZzogJGJsb2NrcXVvdGUtcGFkZGluZztcbiAgICBib3JkZXItI3skZ2xvYmFsLWxlZnR9OiAkYmxvY2txdW90ZS1ib3JkZXI7XG5cbiAgICAmLCBwIHtcbiAgICAgIGxpbmUtaGVpZ2h0OiAkcGFyYWdyYXBoLWxpbmVoZWlnaHQ7XG4gICAgICBjb2xvcjogJGJsb2NrcXVvdGUtY29sb3I7XG4gICAgfVxuICB9XG5cbiAgLy8gSW5saW5lIENpdGF0aW9uc1xuICBAaWYgKCRlbmFibGUtY2l0ZS1ibG9jayA9PSB0cnVlKSB7XG4gICAgY2l0ZSB7XG4gICAgICAvLyBFeHRlbmRpbmcgYSBjbGFzcyBpcyBub3QgcmVjb21tZW5kZWQuXG4gICAgICAvLyBUT0RPOiBCcmVhayB0aGUgdHlwb2dyYXBoeS1iYXNlL3R5cG9ncmFwaHktaGVscGVycyBzZXBhcmF0aW9uXG4gICAgICBAZXh0ZW5kICVjaXRlLWJsb2NrO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFiYnJldmlhdGlvbnNcbiAgYWJiciwgYWJiclt0aXRsZV0ge1xuICAgIGJvcmRlci1ib3R0b206ICRhYmJyLXVuZGVybGluZTtcbiAgICBjdXJzb3I6IGhlbHA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICB9XG5cbiAgLy8gRmlndXJlc1xuICBmaWd1cmUge1xuICAgIG1hcmdpbjogMDtcbiAgfVxuXG4gIC8vIENvZGVcbiAgQGlmICgkZW5hYmxlLWNvZGUtaW5saW5lID09IHRydWUpIHtcbiAgICBjb2RlIHtcbiAgICAgIEBleHRlbmQgJWNvZGUtaW5saW5lO1xuICAgIH1cbiAgfVxuXG4gIC8vIEtleXN0cm9rZXNcbiAga2JkIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogJGtleXN0cm9rZS1wYWRkaW5nO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGtleXN0cm9rZS1iYWNrZ3JvdW5kO1xuXG4gICAgZm9udC1mYW1pbHk6ICRrZXlzdHJva2UtZm9udDtcbiAgICBjb2xvcjogJGtleXN0cm9rZS1jb2xvcjtcblxuICAgIEBpZiBoYXMtdmFsdWUoJGtleXN0cm9rZS1yYWRpdXMpIHtcbiAgICAgIGJvcmRlci1yYWRpdXM6ICRrZXlzdHJva2UtcmFkaXVzO1xuICAgIH1cbiAgfVxufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIGJyZWFrcG9pbnRzXG4vLy8vXG5cbi8vLyBQYXRjaCB0byBmaXggaXNzdWUgIzEyMDgwXG4kLXpmLXNpemU6IG51bGw7XG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMuXG4vLy8gQHR5cGUgTWFwXG4kYnJlYWtwb2ludHM6IChcbiAgXCJzbWFsbFwiOiAwLFxuICBcIm1lZGl1bVwiOiA2NDBweCxcbiAgXCJsYXJnZVwiOiAxMDI0cHgsXG4gIFwieGxhcmdlXCI6IDEyMDBweCxcbiAgXCJ4eGxhcmdlXCI6IDE0NDBweCxcbikgIWRlZmF1bHQ7XG5cbi8vLyBBIGxpc3Qgb2YgbmFtZWQgSGlEUEkgYnJlYWtwb2ludHMuIFlvdSBjYW4gdXNlIHRoZXNlIHdpdGggdGhlIGBicmVha3BvaW50KClgIG1peGluIHRvIHF1aWNrbHkgY3JlYXRlIG1lZGlhIHF1ZXJpZXMgZm9yIHJlc29sdXRpb25zLlxuLy8vIFZhbHVlcyBtdXN0IHJlcHJlc2VudCB0aGUgZGV2aWNlIHBpeGVscyAvIHdlYiBwaXhlbHMgcmF0aW9uIGFuZCBiZSB1bml0bGVzcyBvciBpbiBEUFBYLlxuLy8vIEB0eXBlIE1hcFxuJGJyZWFrcG9pbnRzLWhpZHBpOiAoXG4gIFwiaGlkcGktMVwiOiAxLFxuICBcImhpZHBpLTEtNVwiOiAxLjUsXG4gIFwiaGlkcGktMlwiOiAyLFxuICBcInJldGluYVwiOiAyLFxuICBcImhpZHBpLTNcIjogM1xuKSAhZGVmYXVsdDtcblxuLy8vIFRoZSBsYXJnZXN0IG5hbWVkIGJyZWFrcG9pbnQgaW4gd2hpY2ggdG8gaW5jbHVkZSBwcmludCBhcyBhIG1lZGlhIHR5cGVcbi8vLyBAdHlwZSBLZXl3b3JkXG4kcHJpbnQtYnJlYWtwb2ludDogbGFyZ2UgIWRlZmF1bHQ7XG5cbiQtemYtemVyby1icmVha3BvaW50OiBzbWFsbCAhZGVmYXVsdDtcblxuJC16Zi1icmVha3BvaW50cy1rZXlzOiBtYXAtdG8tbGlzdCgkYnJlYWtwb2ludHMsICdrZXlzJyk7XG5cbkBpZiBudGgobWFwLXZhbHVlcygkYnJlYWtwb2ludHMpLCAxKSAhPSAwIHtcbiAgQGVycm9yICdUaGUgZmlyc3Qga2V5IGluIHRoZSAkYnJlYWtwb2ludHMgbWFwIG11c3QgaGF2ZSBhIHZhbHVlIG9mIFwiMFwiLic7XG59XG5AZWxzZSB7XG4gICQtemYtemVyby1icmVha3BvaW50OiBudGgobWFwLWtleXMoJGJyZWFrcG9pbnRzKSwgMSk7XG59XG5cbi8vLyBBbGwgb2YgdGhlIG5hbWVzIGluIHRoaXMgbGlzdCB3aWxsIGJlIG91dHB1dCBhcyBjbGFzc2VzIGluIHlvdXIgQ1NTLCBsaWtlIGAuc21hbGwtMTJgLCBgLm1lZGl1bS02YCwgYW5kIHNvIG9uLiBFYWNoIHZhbHVlIGluIHRoaXMgbGlzdCBtdXN0IGFsc28gYmUgaW4gdGhlIGAkYnJlYWtwb2ludHNgIG1hcC5cbi8vLyBAdHlwZSBMaXN0XG4kYnJlYWtwb2ludC1jbGFzc2VzOiAoc21hbGwgbWVkaXVtIGxhcmdlKSAhZGVmYXVsdDtcblxuLy8vIEdlbmVyYXRlcyBhIG1lZGlhIHF1ZXJ5IHN0cmluZyBtYXRjaGluZyB0aGUgaW5wdXQgdmFsdWUuIFJlZmVyIHRvIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgYGJyZWFrcG9pbnQoKWAgbWl4aW4gdG8gc2VlIHdoYXQgdGhlIHBvc3NpYmxlIGlucHV0cyBhcmUuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsIFtzbWFsbF0gLSBCcmVha3BvaW50IG5hbWUsIG9yIHB4LCByZW0sIG9yIGVtIHZhbHVlIHRvIHByb2Nlc3MuXG5AZnVuY3Rpb24gYnJlYWtwb2ludCgkdmFsOiAkLXpmLXplcm8tYnJlYWtwb2ludCkge1xuICAvLyBXZWIgc3RhbmRhcmQgUGl4ZWxzIHBlciBpbmNoLiAoMWRkcHggLyAkc3RkLXdlYi1kcGkpID0gMWRwaVxuICAvLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy12YWx1ZXMtMy8jYWJzb2x1dGUtbGVuZ3Roc1xuICAkc3RkLXdlYi1kcGk6IDk2O1xuXG4gIC8vIFNpemUgb3Iga2V5d29yZFxuICAkYnA6IG50aCgkdmFsLCAxKTtcbiAgLy8gVmFsdWUgb2YgdGhlIGZvbGxvd2luZyBicmVha3BvaW50XG4gICRicC1uZXh0OiBudWxsO1xuICAvLyBWYWx1ZSBmb3IgbWF4LXdpZHRoIG1lZGlhIHF1ZXJpZXNcbiAgJGJwLW1pbjogbnVsbDtcbiAgLy8gVmFsdWUgZm9yIG1pbi13aWR0aCBtZWRpYSBxdWVyaWVzXG4gICRicC1tYXg6IG51bGw7XG4gIC8vIERpcmVjdGlvbiBvZiBtZWRpYSBxdWVyeSAodXAsIGRvd24sIG9yIG9ubHkpXG4gICRkaXI6IGlmKGxlbmd0aCgkdmFsKSA+IDEsIG50aCgkdmFsLCAyKSwgdXApO1xuICAvLyBJZiBuYW1lZCwgbmFtZSBvZiB0aGUgYnJlYWtwb2ludFxuICAkbmFtZTogbnVsbDtcbiAgLy8gSWYgdGhlIGJyZWFrcG9pbnQgaXMgYSBIaURQSSBicmVha3BvaW50XG4gICRoaWRwaTogZmFsc2U7XG5cbiAgLy8gT3JpZW50YXRpb24gbWVkaWEgcXVlcmllcyBoYXZlIGEgdW5pcXVlIHN5bnRheFxuICBAaWYgJGJwID09ICdsYW5kc2NhcGUnIG9yICRicCA9PSAncG9ydHJhaXQnIHtcbiAgICBAcmV0dXJuICcob3JpZW50YXRpb246ICN7JGJwfSknO1xuICB9XG5cbiAgLy8gSWYgYSBicmVha3BvaW50IG5hbWUgaXMgZ2l2ZW4sIGdldCBpdHMgdmFsdWUgZnJvbSB0aGUgJGJyZWFrcG9pbnRzLyRicmVha3BvaW50cy1oaWRwaSBtYXAuXG4gIEBpZiB0eXBlLW9mKCRicCkgPT0gJ3N0cmluZycge1xuICAgIEBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICRicCkge1xuICAgICAgJG5hbWU6ICRicDtcbiAgICAgICRicDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgICAgICRicC1uZXh0OiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cy1oaWRwaSwgJGJwKSB7XG4gICAgICAkbmFtZTogJGJwO1xuICAgICAgJGJwOiBtYXAtZ2V0KCRicmVha3BvaW50cy1oaWRwaSwgJG5hbWUpO1xuICAgICAgJGJwLW5leHQ6IC16Zi1tYXAtbmV4dC1udW1iZXIoJGJyZWFrcG9pbnRzLWhpZHBpLCAkYnApO1xuICAgICAgJGhpZHBpOiB0cnVlO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICAkYnA6IDA7XG4gICAgICBAd2FybiAnYnJlYWtwb2ludCgpOiBcIiN7JHZhbH1cIiBpcyBub3QgZGVmaW5lZCBpbiB5b3VyIGAkYnJlYWtwb2ludHNgIG9yIGAkYnJlYWtwb2ludHMtaGlkcGlgIHNldHRpbmcuJztcbiAgICB9XG4gIH1cblxuICBAaWYgbm90ICRuYW1lIGFuZCAkZGlyID09ICdvbmx5JyB7XG4gICAgQHdhcm4gJ2JyZWFrcG9pbnQoKTogT25seSBuYW1lZCBtZWRpYSBxdWVyaWVzIGNhbiBoYXZlIGFuIGBvbmx5YCByYW5nZS4nO1xuICAgIEByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIE9ubHkgJ29ubHknIGFuZCAndXAnIGhhdmUgYSBtaW4gbGltaXQuXG4gIEBpZiAkZGlyID09ICdvbmx5JyBvciAkZGlyID09ICd1cCcge1xuICAgICRicC1taW46IGlmKCRoaWRwaSwgc3RyaXAtdW5pdCgkYnApLCAtemYtYnAtdG8tZW0oJGJwKSk7XG4gIH1cbiAgLy8gT25seSAnb25seScgYW5kICdkb3duJyBoYXZlIGEgbWF4IGxpbWl0LlxuICBAaWYgJGRpciA9PSAnb25seScgb3IgJGRpciA9PSAnZG93bicge1xuICAgIC8vIElmIHRoZSBicmVha3BvaW50IGlzIGEgdmFsdWUsIHVzZSBpdCBhcyBtYXggbGltaXQuXG4gICAgQGlmIG5vdCAkbmFtZSB7XG4gICAgICAkYnAtbWF4OiBpZigkaGlkcGksIHN0cmlwLXVuaXQoJGJwKSwgLXpmLWJwLXRvLWVtKCRicCkpO1xuICAgIH1cbiAgICAvLyBJZiB0aGUgYnJlYWtwb2ludCBpcyBuYW1lZCwgdGhlIG1heCBsaW1pdCBpcyB0aGUgZm9sbG93aW5nIGJyZWFrcG9pbnQgLSAxcHguXG4gICAgQGVsc2UgaWYgJGJwLW5leHQge1xuICAgICAgLy8gTWF4IHZhbHVlIGlzIDAuMnB4IHVuZGVyIHRoZSBuZXh0IGJyZWFrcG9pbnQgKDAuMDIgLyAxNiA9IDAuMDAxMjUpLlxuICAgICAgLy8gVXNlIGEgcHJlY2lzaW9uIHVuZGVyIDFweCB0byBzdXBwb3J0IGJyb3dzZXIgem9vbSwgYnV0IG5vdCB0byBsb3cgdG8gYXZvaWQgcm91bmRpbmcuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZvdW5kYXRpb24vZm91bmRhdGlvbi1zaXRlcy9pc3N1ZXMvMTEzMTNcbiAgICAgICRicC1tYXg6IGlmKCRoaWRwaSwgJGJwLW5leHQgLSBkaXZpZGUoMSwgJHN0ZC13ZWItZHBpKSwgLXpmLWJwLXRvLWVtKCRicC1uZXh0KSAtIDAuMDAxMjUpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEdlbmVyYXRlIHRoZSBtZWRpYSBxdWVyeSBzdHJpbmcgZnJvbSBtaW4gYW5kIG1heCBsaW1pdHMuXG4gIEBpZiAkaGlkcGkge1xuICAgIC8vIEdlbmVyYXRlIHZhbHVlcyBpbiBEUEkgaW5zdGVhZCBvZiBEUFBYIGZvciBhbiBJRTktMTEvT3BlcmEgbWluaSBjb21wYXRpYmlsaXR5LlxuICAgIC8vIFNlZSBodHRwczovL2Nhbml1c2UuY29tLyNmZWF0PWNzcy1tZWRpYS1yZXNvbHV0aW9uXG4gICAgJGJwLW1pbi1kcGk6IGlmKCRicC1taW4sICRicC1taW4gKiAkc3RkLXdlYi1kcGkgKiAxZHBpLCAkYnAtbWluKTtcbiAgICAkYnAtbWF4LWRwaTogaWYoJGJwLW1heCwgJGJwLW1heCAqICRzdGQtd2ViLWRwaSAqIDFkcGksICRicC1tYXgpO1xuICAgIEByZXR1cm4gemYtc3RyLWpvaW4oXG4gICAgICAtemYtYnAtam9pbigkYnAtbWluLCAkYnAtbWF4LCAnLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvJywgJy13ZWJraXQtbWF4LWRldmljZS1waXhlbC1yYXRpbycpLFxuICAgICAgLXpmLWJwLWpvaW4oJGJwLW1pbi1kcGksICRicC1tYXgtZHBpLCAnbWluLXJlc29sdXRpb24nLCAnbWF4LXJlc29sdXRpb24nKSxcbiAgICAgICcsICcpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIC16Zi1icC1qb2luKCRicC1taW4sICRicC1tYXgpO1xuICB9XG59XG5cbi8vLyBXcmFwcyBhIG1lZGlhIHF1ZXJ5IGFyb3VuZCB0aGUgY29udGVudCB5b3UgcHV0IGluc2lkZSB0aGUgbWl4aW4uIFRoaXMgbWl4aW4gYWNjZXB0cyBhIG51bWJlciBvZiB2YWx1ZXM6XG4vLy8gIC0gSWYgYSBzdHJpbmcgaXMgcGFzc2VkLCB0aGUgbWl4aW4gd2lsbCBsb29rIGZvciBpdCBpbiB0aGUgYCRicmVha3BvaW50c2AgYW5kIGAkYnJlYWtwb2ludHMtaGlkcGlgIG1hcHMsIGFuZCB1c2UgYSBtZWRpYSBxdWVyeSB0aGVyZS5cbi8vLyAgLSBJZiBhIHBpeGVsIHZhbHVlIGlzIHBhc3NlZCwgaXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gYW4gZW0gdmFsdWUgdXNpbmcgYCRnbG9iYWwtZm9udC1zaXplYCBhcyB0aGUgYmFzZS5cbi8vLyAgLSBJZiBhIHJlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB1bml0IHdpbGwgYmUgY2hhbmdlZCB0byBlbS5cbi8vLyAgLSBJZiBhbiBlbSB2YWx1ZSBpcyBwYXNzZWQsIHRoZSB2YWx1ZSB3aWxsIGJlIHVzZWQgYXMtaXMuXG4vLy9cbi8vLyBJZiBtdWx0aXBsZSB2YWx1ZXMgYXJlIHBhc3NlZCwgdGhlIG1peGluIHdpbGwgZ2VuZXJhdGUgYSBtZWRpYSBxdWVyeSBmb3IgZWFjaCBvZiB0aGVtIGFzIGRlc2NyaWJlZCBhYm92ZS5cbi8vLyBTaW5jZSB0aGUgY29udGVudCBpcyBkdXBsaWNhdGVkIGZvciBlYWNoIGJyZWFrcG9pbnQsIHRoaXMgbWl4aW4gc2hvdWxkIG9ubHkgYmUgdXNlZCB3aXRoIHByb3BlcnRpZXMgdGhhdFxuLy8vIGNoYW5nZSBhY3Jvc3MgYnJlYWtwb2ludHMuXG4vLy9cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkdmFsdWVzLi4uIC0gQnJlYWtwb2ludCBuYW1lIG9yIHB4L3JlbS9lbSB2YWx1ZSB0byBwcm9jZXNzLlxuLy8vXG4vLy8gQG91dHB1dCBJZiB0aGUgYnJlYWtwb2ludCBpcyBcIjBweCBhbmQgbGFyZ2VyXCIsIG91dHB1dHMgdGhlIGNvbnRlbnQgYXMtaXMuIE90aGVyd2lzZSwgb3V0cHV0cyB0aGUgY29udGVudCB3cmFwcGVkIGluIGEgbWVkaWEgcXVlcnkuXG5AbWl4aW4gYnJlYWtwb2ludCgkdmFsdWVzLi4uKSB7XG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggbGVuZ3RoKCR2YWx1ZXMpIHtcbiAgICAkdmFsdWU6IG50aCgkdmFsdWVzLCAkaSk7XG4gICAgJHN0cjogYnJlYWtwb2ludCgkdmFsdWUpO1xuICAgICRicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCBudGgoJHZhbHVlLCAxKSk7XG4gICAgJHBicDogaW5kZXgoJC16Zi1icmVha3BvaW50cy1rZXlzLCAkcHJpbnQtYnJlYWtwb2ludCk7XG4gICAgLy8gRGlyZWN0aW9uIG9mIG1lZGlhIHF1ZXJ5ICh1cCwgZG93biwgb3Igb25seSlcbiAgICAkZGlyOiBpZihsZW5ndGgoJHZhbHVlKSA+IDEsIG50aCgkdmFsdWUsIDIpLCB1cCk7XG5cbiAgICAkb2xkLXpmLXNpemU6IG51bGw7XG5cbiAgICAvLyBNYWtlIGJyZWFrcG9pbnQgc2l6ZSBhdmFpbGFibGUgYXMgYSB2YXJpYWJsZVxuICAgIEBpZiBnbG9iYWwtdmFyaWFibGUtZXhpc3RzKC16Zi1zaXplKSB7XG4gICAgICAkb2xkLXpmLXNpemU6ICQtemYtc2l6ZTtcbiAgICB9XG4gICAgJC16Zi1zaXplOiBudGgoJHZhbHVlLCAxKSAhZ2xvYmFsOyAvLyBnZXQgdGhlIGZpcnN0IHZhbHVlIHRvIGFjY291bnQgZm9yIGBvbmx5YCBhbmQgYGRvd25gIGtleXdvcmRzXG5cbiAgICAvLyBJZiAkc3RyIGlzIHN0aWxsIGFuIGVtcHR5IHN0cmluZywgbm8gbWVkaWEgcXVlcnkgaXMgbmVlZGVkXG4gICAgQGlmICRzdHIgPT0gJycge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuXG4gICAgLy8gT3RoZXJ3aXNlLCB3cmFwIHRoZSBjb250ZW50IGluIGEgbWVkaWEgcXVlcnlcbiAgICBAZWxzZSB7XG4gICAgICAvLyBGb3IgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuIG9yIGVxdWFsIHRvICRwcmludC1icmVha3BvaW50LCBhZGQgcHJpbnQgdG8gdGhlIG1lZGlhIHR5cGVzXG4gICAgICAvLyBnZW5lcmF0ZSBwcmludCBpZiB0aGUgYnJlYWtwb2ludCBhZmZlY3RzIHRoZSBwcmludC1icmVha3BvaW50IChvciBzbWFsbGVyKS5cbiAgICAgIC8vIFRoaXMgbWVhbnMgdGhlIGN1cnJlbnQgY29uZGl0aW9uIG9ubHkgbmVlZHMgdG8gYmUgZXh0ZW5kZWQgc28gJ2Rvd24nIGFsd2F5cyBnZW5lcmF0ZXMgcHJpbnQuXG4gICAgICBAaWYgJGJwICE9IG51bGwgYW5kICgkYnAgPD0gJHBicCBvciAkZGlyID09IGRvd24pIHtcbiAgICAgICAgQG1lZGlhIHByaW50LCBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBAZWxzZSB7XG4gICAgICAgIEBtZWRpYSBzY3JlZW4gYW5kICN7JHN0cn0ge1xuICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgJC16Zi1zaXplOiAkb2xkLXpmLXNpemUgIWdsb2JhbDtcbiAgfVxufVxuXG4vLy8gQ29udmVydHMgdGhlIGJyZWFrcG9pbnRzIG1hcCB0byBhIFVSTC1lbmNvZGVkIHN0cmluZywgbGlrZSB0aGlzOiBga2V5MT12YWx1ZTEma2V5Mj12YWx1ZTJgLiBUaGUgdmFsdWUgaXMgdGhlbiBkcm9wcGVkIGludG8gdGhlIENTUyBmb3IgYSBzcGVjaWFsIGA8bWV0YT5gIHRhZywgd2hpY2ggaXMgcmVhZCBieSB0aGUgRm91bmRhdGlvbiBKYXZhU2NyaXB0LiBUaGlzIGlzIGhvdyB3ZSB0cmFuc2ZlciB2YWx1ZXMgZnJvbSBTYXNzIHRvIEphdmFTY3JpcHQsIHNvIHRoZXkgY2FuIGJlIGRlZmluZWQgaW4gb25lIHBsYWNlLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gY29udmVydC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IEEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIG1hcCdzIGNvbnRlbnRzLlxuQGZ1bmN0aW9uIC16Zi1icC1zZXJpYWxpemUoJG1hcCkge1xuICAkc3RyOiAnJztcbiAgQGVhY2ggJGtleSwgJHZhbHVlIGluICRtYXAge1xuICAgICRzdHI6ICRzdHIgKyAka2V5ICsgJz0nICsgLXpmLWJwLXRvLWVtKCR2YWx1ZSkgKyAnJic7XG4gIH1cbiAgJHN0cjogc3RyLXNsaWNlKCRzdHIsIDEsIC0yKTtcblxuICBAcmV0dXJuICRzdHI7XG59XG5cbi8vLyBGaW5kIHRoZSBuZXh0IGtleSBpbiBhIG1hcC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TWFwfSAkbWFwIC0gTWFwIHRvIHRyYXZlcnNlLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRrZXkgLSBLZXkgdG8gdXNlIGFzIGEgc3RhcnRpbmcgcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7TWl4ZWR9IFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBhZnRlciBgJGtleWAsIGlmIGAka2V5YCB3YXMgZm91bmQuIElmIGAka2V5YCB3YXMgbm90IGZvdW5kLCBvciBgJGtleWAgd2FzIHRoZSBsYXN0IHZhbHVlIGluIHRoZSBtYXAsIHJldHVybnMgYG51bGxgLlxuQGZ1bmN0aW9uIC16Zi1tYXAtbmV4dCgkbWFwLCAka2V5KSB7XG5cbiAgLy8gU3RvcmUgdGhlIGtleXMgb2YgdGhlIG1hcCBhcyBhIGxpc3RcbiAgJHZhbHVlczogbWFwLWtleXMoJG1hcCk7XG5cbiAgJGk6IDA7XG5cbiAgLy8gSWYgdGhlIEtleSBFeGlzdHMsIEdldCB0aGUgaW5kZXggb2YgdGhlIGtleSB3aXRoaW4gdGhlIG1hcCBhbmQgYWRkIDEgdG8gaXQgZm9yIHRoZSBuZXh0IGJyZWFrcG9pbnQgaW4gdGhlIG1hcFxuICBAaWYgKG1hcC1oYXMta2V5KCRtYXAsICRrZXkpKSB7XG4gICAgJGk6IGluZGV4KCR2YWx1ZXMsICRrZXkpICsgMTtcbiAgfVxuXG4gIC8vIElmIHRoZSBrZXkgZG9lc24ndCBleGlzdCwgb3IgaXQncyB0aGUgbGFzdCBrZXkgaW4gdGhlIG1hcCwgcmV0dXJuIG51bGxcbiAgQGlmICgkaSA+IGxlbmd0aCgkbWFwKSBvciAkaSA9PSAwKSB7XG4gICAgQHJldHVybiBudWxsO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgcmV0dXJuIHRoZSB2YWx1ZVxuICBAZWxzZSB7XG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsIG50aCgkdmFsdWVzLCAkaSkpO1xuICB9XG5cbn1cblxuLy8vIEZpbmQgdGhlIG5leHQgbnVtYmVyIGluIGEgbWFwLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICRtYXAgLSBNYXAgdG8gdHJhdmVyc2UuXG4vLy8gQHBhcmFtIHtNaXhlZH0gJG51bWJlciAtIE51bWJlciB0byB1c2UgYXMgYSBzdGFydGluZyBwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtNaXhlZH0gVGhlIG51bWJlciBmb2xsb3dpbmcgYCRudW1iZXJgLCBpZiBgJG51bWJlcmAgd2FzIGZvdW5kLiBJZiBgJG51bWJlcmAgd2FzIG5vdCBmb3VuZCwgb3IgYCRudW1iZXJgIHdhcyB0aGUgYmlnZ2VzdCBudW1iZXIgaW4gdGhlIG1hcCwgcmV0dXJucyBgbnVsbGAuXG5AZnVuY3Rpb24gLXpmLW1hcC1uZXh0LW51bWJlcigkbWFwLCAkbnVtYmVyKSB7XG5cbiAgJG5leHQtbnVtYmVyOiBudWxsO1xuXG4gIEBlYWNoICRrLCAkdiBpbiAkbWFwIHtcbiAgICBAaWYgdHlwZS1vZigkdikgPT0gJ251bWJlcicgYW5kICR2ID4gJG51bWJlciBhbmQgKCRuZXh0LW51bWJlciA9PSBudWxsIG9yICR2IDwgJG5leHQtbnVtYmVyKSB7XG4gICAgICAkbmV4dC1udW1iZXI6ICR2O1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJG5leHQtbnVtYmVyO1xufVxuXG4vLy8gUmV0dXJuIGEgbGlzdCBvZiBvdXIgbmFtZWQgYnJlYWtwb2ludHMgbGVzcyB0aGFuICRrZXkuIFVzZWZ1bCBmb3IgZGVhbGluZyB3aXRoXG4vLy8gcmVzcG9uc2l2ZSBndXR0ZXJzIGZvciB0aGUgZ3JpZC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAka2V5IC0gS2V5IHRvIHVzZSBhcyBsYXN0IGJyZWFrcG9pbnQuXG4vLy9cbi8vLyBAcmV0dXJucyB7QXJyYXl9IFRoZSBsaXN0IG9mIGJyZWFrcG9pbnRzIHVwIHRvIGFuZC4gSWYgJGtleSBpcyBhdXRvLCByZXR1cm5zIGJyZWFrcG9pbnRzIGFib3ZlIHRoZSB6ZXJvXG5AZnVuY3Rpb24gLXpmLWJyZWFrcG9pbnRzLWxlc3MtdGhhbigka2V5KSB7XG4gICRsaXN0OiAoKTtcbiAgJGZvdW5kLWtleTogZmFsc2U7XG5cbiAgQGVhY2ggJG5hbWUgaW4gJC16Zi1icmVha3BvaW50cy1rZXlzIHtcbiAgICBAaWYgKCRuYW1lID09ICRrZXkpIHtcbiAgICAgICRmb3VuZC1rZXk6IHRydWU7XG4gICAgfVxuICAgIEBpZiBub3QgJGZvdW5kLWtleSB7XG4gICAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkbmFtZSk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJGxpc3Q7XG59XG5cbi8vLyBSZXR1cm4gYSBsaXN0IG9mIG91ciBuYW1lZCBicmVha3BvaW50cyBsZXNzIHRoYW4gJGtleS4gVXNlZnVsIGZvciBkZWFsaW5nIHdpdGhcbi8vLyByZXNwb25zaXZlIGd1dHRlcnMgZm9yIHRoZSBncmlkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRicmVha3BvaW50IC0gYSBuYW1lZCBvciBub24tbmFtZWQgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEByZXR1cm5zIHtBcnJheX0gVGhlIGxpc3Qgb2YgYnJlYWtwb2ludHMgdXAgdG8gYW5kLiBJZiAka2V5IGlzIGF1dG8sIHJldHVybnMgYnJlYWtwb2ludHMgYWJvdmUgdGhlIHplcm9cbkBmdW5jdGlvbiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCRicmVha3BvaW50KSB7XG4gICRsYXN0OiAkLXpmLXplcm8tYnJlYWtwb2ludDtcbiAgJGZvdW5kOiBmYWxzZTtcblxuICAkdmFsdWU6IHVuaXRsZXNzLWNhbGMoJGJyZWFrcG9pbnQsIDFweCk7XG4gIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICBAaWYgbm90ICRmb3VuZCB7XG4gICAgICBAaWYgdW5pdGxlc3MtY2FsYygkdmFsKSA+ICR2YWx1ZSB7XG4gICAgICAgICRmb3VuZDogdHJ1ZTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkbGFzdDogJGtleTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICRsYXN0O1xufVxuXG4vLy8gR2V0IGEgdmFsdWUgZm9yIGEgYnJlYWtwb2ludCBmcm9tIGEgcmVzcG9uc2l2ZSBjb25maWcgbWFwIG9yIHNpbmdsZSB2YWx1ZS5cbi8vLyAtIElmIHRoZSBjb25maWcgaXMgYSBzaW5nbGUgdmFsdWUsIHJldHVybiBpdCByZWdhcmRsZXNzIG9mIGAkdmFsdWVgLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgaGFzIHRoZSBrZXkgYCR2YWx1ZWAsIHRoZSBleGFjdCBicmVha3BvaW50IHZhbHVlIGlzIHJldHVybmVkLlxuLy8vIC0gSWYgdGhlIGNvbmZpZyBpcyBhIG1hcCBhbmQgZG9lcyAqbm90KiBoYXZlIHRoZSBicmVha3BvaW50LCB0aGUgdmFsdWUgbWF0Y2hpbmcgdGhlIG5leHQgbG93ZXN0IGJyZWFrcG9pbnQgaW4gdGhlIGNvbmZpZyBtYXAgaXMgcmV0dXJuZWQuXG4vLy8gQGFjY2VzcyBwcml2YXRlXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXAgLSBSZXNwb25zaXZlIGNvbmZpZyBtYXAgb3Igc2luZ2xlIHZhbHVlLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIC0gQnJlYWtwb2ludCBuYW1lIHRvIHVzZS5cbi8vL1xuLy8vIEByZXR1cm4ge01peGVkfSBUaGUgY29ycmVzcG9uZGluZyBicmVha3BvaW50IHZhbHVlLlxuQGZ1bmN0aW9uIC16Zi1nZXQtYnAtdmFsKCRtYXAsICR2YWx1ZSkge1xuICAvLyBJZiB0aGUgZ2l2ZW4gbWFwIGlzIGEgc2luZ2xlIHZhbHVlLCByZXR1cm4gaXRcbiAgQGlmIHR5cGUtb2YoJG1hcCkgPT0gJ251bWJlcicge1xuICAgIEByZXR1cm4gJG1hcDtcbiAgfVxuXG5cbiAgLy8gQ2hlY2sgaWYgdGhlIGJyZWFrcG9pbnQgbmFtZSBleGlzdHMgZ2xvYmFsbHlcbiAgQGlmIG5vdCBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsICR2YWx1ZSkge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gJ251bWJlcicge1xuICAgICAgJHZhbHVlOiAtemYtY2xvc2VzdC1uYW1lZC1icmVha3BvaW50KCR2YWx1ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG4gIC8vIENoZWNrIGlmIHRoZSBicmVha3BvaW50IG5hbWUgZXhpc3RzIGluIHRoZSBsb2NhbCBjb25maWcgbWFwXG4gIEBlbHNlIGlmIG1hcC1oYXMta2V5KCRtYXAsICR2YWx1ZSkge1xuICAgIC8vIElmIGl0IGRvZXMsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICAgIEByZXR1cm4gbWFwLWdldCgkbWFwLCAkdmFsdWUpO1xuICB9XG4gIC8vIE90aGVyd2lzZSwgZmluZCB0aGUgbmV4dCBsb3dlc3QgYnJlYWtwb2ludCBhbmQgcmV0dXJuIHRoYXQgdmFsdWVcbiAgQGVsc2Uge1xuICAgICRhbmNob3I6IG51bGw7XG4gICAgJGZvdW5kOiBmYWxzZTtcblxuICAgIEBlYWNoICRrZXksICR2YWwgaW4gJGJyZWFrcG9pbnRzIHtcbiAgICAgIEBpZiBub3QgJGZvdW5kIHtcbiAgICAgICAgQGlmIG1hcC1oYXMta2V5KCRtYXAsICRrZXkpIHtcbiAgICAgICAgICAkYW5jaG9yOiAka2V5O1xuICAgICAgICB9XG4gICAgICAgIEBpZiAka2V5ID09ICR2YWx1ZSB7XG4gICAgICAgICAgJGZvdW5kOiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgQHJldHVybiBtYXAtZ2V0KCRtYXAsICRhbmNob3IpO1xuICB9XG59XG5cbi8vLyBSZXR1cm4gdGhlIGJlc3QgYnJlYWtwb2ludCB0byB1c2UgYWNjb3JkaW5nIHRvIHRoZSBjYWxsaW5nIGNvbnRleHQuIEl0IHJldHVybnMgaW4gb3JkZXI6XG4vLy8gMS4gdGhlIGdpdmVuIGAkdmFsdWVgIGFyZ3VtZW50IGlmIGl0IGlzIG5vdCBudWxsLlxuLy8vIDIuIHRoZSBnbG9iYWwgYnJlYWtwb2ludCBjb250ZXh0IGAkLXpmLXNpemVgIGlmIGl0IGlzIG5vdCBudWxsIChsaWtlIGlmIGNhbGxlZCBpbnNpZGUgdGhlbiBgYnJlYWtwb2ludCgpYCBtaXhpbilcbi8vLyAzLiB0aGUgZ2l2ZW4gYCRkZWZhdWx0YCBhcmd1bWVudC5cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHZhbHVlIFtudWxsXSAtIEJyZWFrcG9pbnQgdG8gdXNlIGluIHByaW9yaXR5IGlmIG5vbi1udWxsLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRlZmF1bHQgW251bGxdIC0gQnJlYWtwb2ludCB0byB1c2UgYnkgZGVmYXVsdCBpZiBubyBvdGhlciB2YWx1ZSBjYW4gYmUgdXNlZC5cbi8vL1xuLy8vIEByZXR1cm4ge0tleXdvcmR9IFRoZSByZXNvbHZlZCBicmVha3BvaW50LlxuQGZ1bmN0aW9uIC16Zi1jdXJyZW50LWJyZWFrcG9pbnQoJHZhbHVlOiBudWxsLCAkZGVmYXVsdDogbnVsbCkge1xuICBAaWYgKCR2YWx1ZSAhPSBudWxsKSB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH1cbiAgQGVsc2UgaWYgKHZhcmlhYmxlLWV4aXN0cygtemYtc2l6ZSkgYW5kIHR5cGUtb2YoJC16Zi1zaXplKSAhPSAnbnVtYmVyJykgYW5kICQtemYtc2l6ZSAhPSBudWxsIHtcbiAgICBAcmV0dXJuICQtemYtc2l6ZTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkZGVmYXVsdDtcbiAgfVxufVxuXG4vLy8gUmV0dXJuIG1lZGlhIHF1ZXJ5IHN0cmluZyBmcm9tIHRoZSBnaXZlbiBtaW4gYW5kL29yIG1heCBsaW1pdHMuXG4vLy8gSWYgYSBsaW1pdCBpcyBlcXVhbCB0byBgbnVsbGAgb3IgYDBgLCBpdCBpcyBpZ25vcmVkLlxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRtaW4gWzBdIC0gTWluIG1lZGlhIHF1ZXJ5IGxpbWl0LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkbWF4IFswXSAtIE1heCBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1pbi1uYW1lIFsnbWluLXdpZHRoJ10gLSBOYW1lIG9mIHRoZSBtaW4gbWVkaWEgcXVlcnkgbGltaXQuXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRkZWxpbWl0ZXIgWydtYXgtd2lkdGgnXSAtIE5hbWUgb2YgdGhlIG1heCBtZWRpYSBxdWVyeSBsaW1pdC5cbi8vL1xuLy8vIEByZXR1cm5zIHtTdHJpbmd9IE1lZGlhIFF1ZXJ5IHN0cmluZy5cbkBmdW5jdGlvbiAtemYtYnAtam9pbihcbiAgJG1pbjogMCxcbiAgJG1heDogMCxcbiAgJG1pbi1uYW1lOiAnbWluLXdpZHRoJyxcbiAgJG1heC1uYW1lOiAnbWF4LXdpZHRoJ1xuKSB7XG4gIEByZXR1cm4gemYtc3RyLWpvaW4oXG4gICAgaWYoJG1pbiBhbmQgJG1pbiA+IDAsICcoI3skbWluLW5hbWV9OiAjeyRtaW59KScsIG51bGwpLFxuICAgIGlmKCRtYXggYW5kICRtYXggPiAwLCAnKCN7JG1heC1uYW1lfTogI3skbWF4fSknLCBudWxsKSxcbiAgICAnIGFuZCAnKTtcbn1cblxuJHNtYWxsLXVwOiAnJztcbiRzbWFsbC1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgc21hbGwpIHtcbiAgJHNtYWxsLXVwOiBzY3JlZW47XG4gICRzbWFsbC1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChzbWFsbCBvbmx5KX0nKTtcbn1cblxuJG1lZGl1bS11cDogJyc7XG4kbWVkaXVtLW9ubHk6ICcnO1xuXG5AaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCBtZWRpdW0pIHtcbiAgJG1lZGl1bS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobWVkaXVtKX0nKTtcbiAgJG1lZGl1bS1vbmx5OiB1bnF1b3RlKCdzY3JlZW4gYW5kICN7YnJlYWtwb2ludChtZWRpdW0gb25seSl9Jyk7XG59XG5cbiRsYXJnZS11cDogJyc7XG4kbGFyZ2Utb25seTogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIGxhcmdlKSB7XG4gICRsYXJnZS11cDogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2UpfScpO1xuICAkbGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQobGFyZ2Ugb25seSl9Jyk7XG59XG5cbiR4bGFyZ2UtdXA6ICcnO1xuJHhsYXJnZS1vbmx5OiAnJztcblxuQGlmIG1hcC1oYXMta2V5KCRicmVha3BvaW50cywgeGxhcmdlKSB7XG4gICR4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHhsYXJnZSl9Jyk7XG4gICR4bGFyZ2Utb25seTogdW5xdW90ZSgnc2NyZWVuIGFuZCAje2JyZWFrcG9pbnQoeGxhcmdlIG9ubHkpfScpO1xufVxuXG4keHhsYXJnZS11cDogJyc7XG5cbkBpZiBtYXAtaGFzLWtleSgkYnJlYWtwb2ludHMsIHh4bGFyZ2UpIHtcbiAgJHh4bGFyZ2UtdXA6IHVucXVvdGUoJ3NjcmVlbiBhbmQgI3ticmVha3BvaW50KHh4bGFyZ2UpfScpO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIHR5cG9ncmFwaHktaGVscGVyc1xuLy8vL1xuXG4vLy8gRGVmYXVsdCBmb250IHNpemUgZm9yIGxlYWQgcGFyYWdyYXBocy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRsZWFkLWZvbnQtc2l6ZTogJGdsb2JhbC1mb250LXNpemUgKiAxLjI1ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3IgbGVhZCBwYXJhZ3JhcGhzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGxlYWQtbGluZWhlaWdodDogMS42ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBsaW5lIGhlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbGluZWhlaWdodDogMS40ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IGNvbG9yIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIENvbG9yXG4kc3ViaGVhZGVyLWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBmb250IHdlaWdodCBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBTdHJpbmdcbiRzdWJoZWFkZXItZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIERlZmF1bHQgdG9wIG1hcmdpbiBmb3Igc3ViaGVhZGVycy5cbi8vLyBAdHlwZSBOdW1iZXJcbiRzdWJoZWFkZXItbWFyZ2luLXRvcDogMC4ycmVtICFkZWZhdWx0O1xuXG4vLy8gRGVmYXVsdCBib3R0b20gbWFyZ2luIGZvciBzdWJoZWFkZXJzLlxuLy8vIEB0eXBlIE51bWJlclxuJHN1YmhlYWRlci1tYXJnaW4tYm90dG9tOiAwLjVyZW0gIWRlZmF1bHQ7XG5cbi8vLyBEZWZhdWx0IGZvbnQgc2l6ZSBmb3Igc3RhdGlzdGljIG51bWJlcnMuXG4vLy8gQHR5cGUgTnVtYmVyXG4kc3RhdC1mb250LXNpemU6IDIuNXJlbSAhZGVmYXVsdDtcblxuLy8vIFRleHQgY29sb3IgZm9yIGAuY2l0ZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIENvbG9yXG4kY2l0ZS1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcblxuLy8vIEZvbnQgc2l6ZSBmb3IgYC5jaXRlLWJsb2NrYCBjb21wb25lbnQuXG4vLy8gQHR5cGUgTnVtYmVyXG4kY2l0ZS1mb250LXNpemU6IHJlbS1jYWxjKDEzKSAhZGVmYXVsdDtcblxuLy8vIFBzZXVkbyBjb250ZW50IGZvciBgLmNpdGUtYmxvY2tgIGNvbXBvbmVudC5cbi8vLyBAdHlwZSBTdHJpbmdcbiRjaXRlLXBzZXVkby1jb250ZW50OiAnXFwyMDE0IFxcMDAyMCcgIWRlZmF1bHQ7XG5cbi8vLyBUZXh0IGNvbG9yIG9mIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgQ29sb3JcbiRjb2RlLWNvbG9yOiAkYmxhY2sgIWRlZmF1bHQ7XG5cbi8vLyBGb250IGZhbWlseSBvZiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIFN0cmluZyB8IExpc3RcbiRjb2RlLWZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHktbW9ub3NwYWNlICFkZWZhdWx0O1xuXG4vLy8gRm9udCB3ZWlnaHQgb2YgdGV4dCBpbiBgLmNvZGUtaW5saW5lYCBhbmQgYC5jb2RlLWJsb2NrYCBjb21wb25lbnRzLlxuLy8vIEB0eXBlIFN0cmluZ1xuJGNvZGUtZm9udC13ZWlnaHQ6ICRnbG9iYWwtd2VpZ2h0LW5vcm1hbCAhZGVmYXVsdDtcblxuLy8vIEJhY2tncm91bmQgY29sb3Igb2YgYC5jb2RlLWlubGluZWAgYW5kIGAuY29kZS1ibG9ja2AgY29tcG9uZW50cy5cbi8vLyBAdHlwZSBDb2xvclxuJGNvZGUtYmFja2dyb3VuZDogJGxpZ2h0LWdyYXkgIWRlZmF1bHQ7XG5cbi8vLyBCb3JkZXIgYXJvdW5kIGAuY29kZS1pbmxpbmVgIGFuZCBgLmNvZGUtYmxvY2tgIGNvbXBvbmVudHMuXG4vLy8gQHR5cGUgTGlzdFxuJGNvZGUtYm9yZGVyOiAxcHggc29saWQgJG1lZGl1bS1ncmF5ICFkZWZhdWx0O1xuXG4vLy8gUGFkZGluZyBhcm91bmQgdGV4dCBvZiB0aGUgYC5jb2RlLWlubGluZWAgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLXBhZGRpbmc6IHJlbS1jYWxjKDIgNSAxKSAhZGVmYXVsdDtcblxuLy8vIFBhZGRpbmcgYXJvdW5kIHRleHQgb2YgdGhlIGAuY29kZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlciB8IExpc3RcbiRjb2RlLWJsb2NrLXBhZGRpbmc6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLyBNYXJnaW4gdW5kZXIgdGhlIGAuY29kZS1ibG9ja2AgY29tcG9uZW50LlxuLy8vIEB0eXBlIE51bWJlclxuJGNvZGUtYmxvY2stbWFyZ2luLWJvdHRvbTogMS41cmVtICFkZWZhdWx0O1xuXG5AbWl4aW4gY2l0ZS1ibG9jayB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogJGNpdGUtY29sb3I7XG4gIGZvbnQtc2l6ZTogJGNpdGUtZm9udC1zaXplO1xuXG4gICY6YmVmb3JlIHtcbiAgICBjb250ZW50OiAkY2l0ZS1wc2V1ZG8tY29udGVudDtcbiAgfVxufVxuXG4vLy8gQWRkIGJhc2ljIHN0eWxlcyBmb3IgYSBjb2RlIGhlbHBlci5cbi8vLyBTZWUgYGNvZGUtaW5saW5lYCBhbmQgYGNvZGUtYmxvY2tgIG1peGlucy5cbkBtaXhpbiBjb2RlLXN0eWxlIHtcbiAgYm9yZGVyOiAkY29kZS1ib3JkZXI7XG4gIGJhY2tncm91bmQtY29sb3I6ICRjb2RlLWJhY2tncm91bmQ7XG5cbiAgZm9udC1mYW1pbHk6ICRjb2RlLWZvbnQtZmFtaWx5O1xuICBmb250LXdlaWdodDogJGNvZGUtZm9udC13ZWlnaHQ7XG4gIGNvbG9yOiAkY29kZS1jb2xvcjtcbn1cblxuLy8vIE1ha2UgY29kZSBoZWxwZXIgZnJvbSB0aGUgYGNvZGUtc3R5bGVgIG1peGluIGlubGluZS5cbi8vLyBVc2VkIHRvIGdlbmVyYXRlIGAuY29kZS1pbmxpbmVgXG5AbWl4aW4gY29kZS1pbmxpbmUge1xuICBkaXNwbGF5OiBpbmxpbmU7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgd29yZC13cmFwOiBicmVhay13b3JkO1xuXG4gIHBhZGRpbmc6ICRjb2RlLXBhZGRpbmc7XG59XG5cbi8vLyBNYWtlIGNvZGUgaGVscGVyIGZyb20gdGhlIGBjb2RlLXN0eWxlYCBtaXhpbiBhIGJsb2NrLlxuLy8vIFVzZWQgdG8gZ2VuZXJhdGUgYC5jb2RlLWJsb2NrYFxuQG1peGluIGNvZGUtYmxvY2sge1xuICBkaXNwbGF5OiBibG9jaztcbiAgb3ZlcmZsb3c6IGF1dG87XG4gIHdoaXRlLXNwYWNlOiBwcmU7XG5cbiAgcGFkZGluZzogJGNvZGUtYmxvY2stcGFkZGluZztcbiAgbWFyZ2luLWJvdHRvbTogJGNvZGUtYmxvY2stbWFyZ2luLWJvdHRvbTtcbn1cblxuQG1peGluIGZvdW5kYXRpb24tdHlwb2dyYXBoeS1oZWxwZXJzIHtcbiAgLy8gVXNlIHRvIGNyZWF0ZSBhIHN1YmhlYWRpbmcgdW5kZXIgYSBtYWluIGhlYWRlclxuICAvLyBNYWtlIHN1cmUgeW91IHBhaXIgdGhlIHR3byBlbGVtZW50cyBpbiBhIDxoZWFkZXI+IGVsZW1lbnQsIGxpa2UgdGhpczpcbiAgLy8gPGhlYWRlcj5cbiAgLy8gICA8aDE+SGVhZGluZzwvaDE+XG4gIC8vICAgPGgyPlN1YmhlYWRpbmc8L2gyPlxuICAvLyA8L2hlYWRlcj5cbiAgLnN1YmhlYWRlciB7XG4gICAgbWFyZ2luLXRvcDogJHN1YmhlYWRlci1tYXJnaW4tdG9wO1xuICAgIG1hcmdpbi1ib3R0b206ICRzdWJoZWFkZXItbWFyZ2luLWJvdHRvbTtcblxuICAgIGZvbnQtd2VpZ2h0OiAkc3ViaGVhZGVyLWZvbnQtd2VpZ2h0O1xuICAgIGxpbmUtaGVpZ2h0OiAkc3ViaGVhZGVyLWxpbmVoZWlnaHQ7XG4gICAgY29sb3I6ICRzdWJoZWFkZXItY29sb3I7XG4gIH1cblxuICAvLyBVc2UgdG8gc3R5bGUgYW4gaW50cm9kdWN0b3J5IGxlYWQsIGRlY2ssIGJsdXJiLCBldGMuXG4gIC5sZWFkIHtcbiAgICBmb250LXNpemU6ICRsZWFkLWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogJGxlYWQtbGluZWhlaWdodDtcbiAgfVxuXG4gIC8vIFVzZSB0byBzdHlsZSBhIGxhcmdlIG51bWJlciB0byBkaXNwbGF5IGEgc3RhdGlzdGljXG4gIC5zdGF0IHtcbiAgICBmb250LXNpemU6ICRzdGF0LWZvbnQtc2l6ZTtcbiAgICBsaW5lLWhlaWdodDogMTtcblxuICAgIHAgKyAmIHtcbiAgICAgIG1hcmdpbi10b3A6IC0xcmVtO1xuICAgIH1cbiAgfVxuXG4gIHVsLCBvbCB7XG4gICAgLy8gVXNlIHRvIHJlbW92ZSBudW1iZXJzIGZyb20gb3JkZXJlZCBsaXN0ICYgYnVsbGV0cyBmcm9tIHVub3JkZXJlZCBsaXN0XG4gICAgJi5uby1idWxsZXQge1xuICAgICAgbWFyZ2luLSN7JGdsb2JhbC1sZWZ0fTogMDtcbiAgICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgfVxuICB9XG5cbiAgJWNpdGUtYmxvY2sge1xuICAgIEBpbmNsdWRlIGNpdGUtYmxvY2s7XG4gIH1cblxuICAuY2l0ZS1ibG9jayB7XG4gICAgQGV4dGVuZCAlY2l0ZS1ibG9jaztcbiAgfVxuXG4gICVjb2RlLWlubGluZSB7XG4gICAgQGluY2x1ZGUgY29kZS1zdHlsZTtcbiAgICBAaW5jbHVkZSBjb2RlLWlubGluZTtcbiAgfVxuXG4gIC5jb2RlLWlubGluZSB7XG4gICAgQGV4dGVuZCAlY29kZS1pbmxpbmU7XG4gIH1cblxuICAuY29kZS1ibG9jayB7XG4gICAgQGluY2x1ZGUgY29kZS1zdHlsZTtcbiAgICBAaW5jbHVkZSBjb2RlLWJsb2NrO1xuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXRleHQtYWxpZ25tZW50IHtcbiAgQGVhY2ggJHNpemUgaW4gJGJyZWFrcG9pbnQtY2xhc3NlcyB7XG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgQGVhY2ggJGFsaWduIGluIChsZWZ0LCByaWdodCwgY2VudGVyLCBqdXN0aWZ5KSB7XG4gICAgICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAgICAgLiN7JHNpemV9LXRleHQtI3skYWxpZ259IHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246ICRhbGlnbjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgQGVsc2Uge1xuICAgICAgICAgIC50ZXh0LSN7JGFsaWdufSB7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiAkYWxpZ247XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLyBJZiBgdHJ1ZWAsIGFsbCBlbGVtZW50cyB3aWxsIGhhdmUgdHJhbnNwYXJlbnQgYmFja2dyb3VuZHMgd2hlbiBwcmludGVkLCB0byBzYXZlIG9uIGluay5cbi8vLyBAdHlwZSBCb29sZWFuXG4vLy8gQGdyb3VwIGdsb2JhbFxuJHByaW50LXRyYW5zcGFyZW50LWJhY2tncm91bmRzOiB0cnVlICFkZWZhdWx0O1xuXG4vLy8gSWYgYHRydWVgLCBkaXNwbGF5cyBuZXh0IHRvIGFsbCBsaW5rcyB0aGVpciBcImhyZWZcIiB3aGVuIHByaW50ZWQuXG4vLy8gQHR5cGUgQm9vbGVhblxuLy8vIEBncm91cCBnbG9iYWxcbiRwcmludC1ocmVmczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gc2Fzcy1saW50OmRpc2FibGUtYWxsXG5cbkBtaXhpbiBmb3VuZGF0aW9uLXByaW50LXN0eWxlcyB7XG4gIC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gIEBtZWRpYSBwcmludCB7XG4gICAgKiB7XG4gICAgICAvLyBFbnN1cmUgYSBcImJsYWNrLW9uLXdoaXRlXCIgcHJpbnQgYnkgcmVtb3ZpbmcgYmFja2dyb3VuZHMsXG4gICAgICAvLyB1c2luZyBibGFjayB0ZXh0IGV2ZXJ5d2hlcmUgYW5kIGZvcmNpbmcgdGhlIGJyb3dzZXIgdG8gZWNvbm9taXplIGluay5cbiAgICAgIEBpZiAkcHJpbnQtdHJhbnNwYXJlbnQtYmFja2dyb3VuZHMge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogYmxhY2sgIWltcG9ydGFudDsgLy8gQmxhY2sgcHJpbnRzIGZhc3RlcjogaDVicC5jb20vc1xuICAgICAgICBwcmludC1jb2xvci1hZGp1c3Q6IGVjb25vbXk7XG4gICAgICB9XG4gICAgICAvLyBPdGhlcndpc2UsIHByZXZlbnQgYW55IGVjb25vbXkgYnkgdGhlIGJyb3dzZXIuXG4gICAgICBAZWxzZSB7XG4gICAgICAgIHByaW50LWNvbG9yLWFkanVzdDogZXhhY3Q7XG4gICAgICB9XG5cbiAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIHRleHQtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgfVxuICAgIC5oaWRlLWZvci1wcmludCB7IGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsgfVxuXG4gICAgdGFibGUuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB9XG4gICAgdGhlYWQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1oZWFkZXItZ3JvdXAgIWltcG9ydGFudDsgfVxuICAgIHRib2R5LnNob3ctZm9yLXByaW50IHsgZGlzcGxheTogdGFibGUtcm93LWdyb3VwICFpbXBvcnRhbnQ7IH1cbiAgICB0ci5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLXJvdyAhaW1wb3J0YW50OyB9XG4gICAgdGQuc2hvdy1mb3ItcHJpbnQgeyBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IH1cbiAgICB0aC5zaG93LWZvci1wcmludCB7IGRpc3BsYXk6IHRhYmxlLWNlbGwgIWltcG9ydGFudDsgfVxuXG4gICAgLy8gRGlzcGxheSB0aGUgVVJMIG9mIGEgbGluayBhZnRlciB0aGUgdGV4dFxuICAgIGEsXG4gICAgYTp2aXNpdGVkIHsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7fVxuICAgIEBpZiAkcHJpbnQtaHJlZnMge1xuICAgICAgYVtocmVmXTphZnRlciB7IGNvbnRlbnQ6ICcgKCcgYXR0cihocmVmKSAnKSc7IH1cbiAgICB9XG5cbiAgICAvLyBEb24ndCBkaXNwbGF5IHRoZSBVUkwgZm9yIGltYWdlcyBvciBKYXZhU2NyaXB0L2ludGVybmFsIGxpbmtzXG4gICAgLmlyIGE6YWZ0ZXIsXG4gICAgYVtocmVmXj0namF2YXNjcmlwdDonXTphZnRlcixcbiAgICBhW2hyZWZePScjJ106YWZ0ZXIgeyBjb250ZW50OiAnJzsgfVxuXG4gICAgLy8gRGlzcGxheSB3aGF0IGFuIGFiYnJldmlhdGlvbiBzdGFuZHMgZm9yIGFmdGVyIHRoZSB0ZXh0XG4gICAgYWJiclt0aXRsZV06YWZ0ZXIgeyBjb250ZW50OiAnICgnIGF0dHIodGl0bGUpICcpJzsgfVxuXG4gICAgLy8gUHJldmVudCBwYWdlIGJyZWFrcyBpbiB0aGUgbWlkZGxlIG9mIGEgYmxvY2txdW90ZSBvciBwcmVmb3JtYXR0ZWQgdGV4dCBibG9ja1xuICAgIHByZSxcbiAgICBibG9ja3F1b3RlIHtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRkYXJrLWdyYXk7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7XG4gICAgfVxuXG4gICAgLy8gaDVicC5jb20vdFxuICAgIHRoZWFkIHsgZGlzcGxheTogdGFibGUtaGVhZGVyLWdyb3VwOyB9XG5cbiAgICB0cixcbiAgICBpbWcgeyBwYWdlLWJyZWFrLWluc2lkZTogYXZvaWQ7IH1cblxuICAgIGltZyB7IG1heC13aWR0aDogMTAwJSAhaW1wb3J0YW50OyB9XG5cbiAgICBAcGFnZSB7IG1hcmdpbjogMC41Y207IH1cblxuICAgIHAsXG4gICAgaDIsXG4gICAgaDMge1xuICAgICAgb3JwaGFuczogMztcbiAgICAgIHdpZG93czogMztcbiAgICB9XG5cbiAgICAvLyBBdm9pZCBwYWdlIGJyZWFrcyBhZnRlciBhIGhlYWRpbmdcbiAgICBoMixcbiAgICBoMyB7IHBhZ2UtYnJlYWstYWZ0ZXI6IGF2b2lkOyB9XG5cbiAgICAvLyBIZWxwZXIgdG8gcmUtYWxsb3cgcGFnZSBicmVha3MgaW4gdGhlIG1pZGRsZSBvZiBjZXJ0YWluIGVsZW1lbnRzIChlLmcuIHByZSwgYmxvY2txdW90ZSwgdHIpXG4gICAgLnByaW50LWJyZWFrLWluc2lkZSB7XG4gICAgICBwYWdlLWJyZWFrLWluc2lkZTogYXV0bztcbiAgICB9XG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBmbGV4LWdyaWRcbi8vLy9cblxuLy8vIENyZWF0ZXMgYSBjb250YWluZXIgZm9yIGEgZmxleCBncmlkIHJvdy5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZHxMaXN0fSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRjb2x1bW5zIFtudWxsXSAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZSBmb3IgdGhpcyByb3cuIElmIHNldCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSwgdGhlIGdsb2JhbCBjb2x1bW4gY291bnQgd2lsbCBiZSB1c2VkLlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJGJhc2UgW3RydWVdIC0gU2V0IHRvIGBmYWxzZWAgdG8gcHJldmVudCBiYXNpYyBzdHlsZXMgZnJvbSBiZWluZyBvdXRwdXQuIFVzZWZ1bCBpZiB5b3UncmUgY2FsbGluZyB0aGlzIG1peGluIG9uIHRoZSBzYW1lIGVsZW1lbnQgdHdpY2UsIGFzIGl0IHByZXZlbnRzIGR1cGxpY2F0ZSBDU1Mgb3V0cHV0LlxuLy8vIEBwYXJhbSB7Qm9vbGVhbn0gJHdyYXAgW3RydWVdIC0gU2V0IHRvIGBmYWxzZWAgdG8gaGF2ZSByb3cgd3JhcHBpbmcgYmVoYXZpb3Igc2V0IHRvIG5vd3JhcFxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMsIGluIGNhc2UgdGhlIHJvdyBpcyBuZXN0ZWQuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZmxleC1ncmlkLXJvdyhcbiAgJGJlaGF2aW9yOiBudWxsLFxuICAkc2l6ZTogJGdyaWQtcm93LXdpZHRoLFxuICAkY29sdW1uczogbnVsbCxcbiAgJGJhc2U6IHRydWUsXG4gICR3cmFwOiB0cnVlLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gICRtYXJnaW46IGF1dG87XG4gICR3cmFwOiBpZigkd3JhcCwgd3JhcCwgbm93cmFwKTtcblxuICBAaWYgaW5kZXgoJGJlaGF2aW9yLCBuZXN0KSAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1uZXN0KCRndXR0ZXJzKTtcblxuICAgIEBpZiBpbmRleCgkYmVoYXZpb3IsIGNvbGxhcHNlKSAhPSBudWxsIHtcbiAgICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZSgkc2l6ZSk7XG4gICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICB9XG5cbiAgQGlmICRiYXNlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93ICR3cmFwO1xuICB9XG5cbiAgQGlmICRjb2x1bW5zICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtY29udGV4dCgkY29sdW1ucywgJGJhc2UpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgYGZsZXhgIHByb3BlcnR5IGZvciBhIGZsZXggZ3JpZCBjb2x1bW4uIEl0IGFjY2VwdHMgYWxsIG9mIHRoZSBzYW1lIHZhbHVlcyBhcyB0aGUgYmFzaWMgYGdyaWQtY29sdW1uKClgIGZ1bmN0aW9uLCBhbG9uZyB3aXRoIHR3byBleHRyYXM6XG4vLy8gICAtIGBleHBhbmRgICh0aGUgZGVmYXVsdCkgd2lsbCBtYWtlIHRoZSBjb2x1bW4gZXhwYW5kIHRvIGZpbGwgc3BhY2UuXG4vLy8gICAtIGBzaHJpbmtgIHdpbGwgbWFrZSB0aGUgY29sdW1uIGNvbnRyYWN0LCBzbyBpdCBvbmx5IHRha2VzIHVwIHRoZSBob3Jpem9udGFsIHNwYWNlIGl0IG5lZWRzLlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLlxuQGZ1bmN0aW9uIGZsZXgtZ3JpZC1jb2x1bW4oJGNvbHVtbnM6IGV4cGFuZCkge1xuICAkZmxleDogMSAxIDBweDsgLy8gc2Fzcy1saW50OmRpc2FibGUtbGluZSB6ZXJvLXVuaXRcblxuICBAaWYgJGNvbHVtbnMgPT0gc2hyaW5rIHtcbiAgICAkZmxleDogMCAwIGF1dG87XG4gIH1cbiAgQGVsc2UgaWYgJGNvbHVtbnMgIT0gZXhwYW5kIHtcbiAgICAkZmxleDogMCAwIGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxuXG4gIEByZXR1cm4gJGZsZXg7XG59XG5cbi8vLyBDcmVhdGVzIGEgY29sdW1uIGZvciBhIGZsZXggZ3JpZC4gQnkgZGVmYXVsdCwgdGhlIGNvbHVtbiB3aWxsIHN0cmV0Y2ggdG8gdGhlIGZ1bGwgd2lkdGggb2YgaXRzIGNvbnRhaW5lciwgYnV0IHRoaXMgY2FuIGJlIG92ZXJyaWRkZW4gd2l0aCBzaXppbmcgY2xhc3Nlcywgb3IgYnkgdXNpbmcgdGhlIGB1bnN0YWNrYCBjbGFzcyBvbiB0aGUgcGFyZW50IGZsZXggcm93LlxuLy8vXG4vLy8gQHBhcmFtIHtNaXhlZH0gJGNvbHVtbnMgW2V4cGFuZF0gLSBXaWR0aCBvZiB0aGUgY29sdW1uLiBSZWZlciB0byB0aGUgYGZsZXgtZ3JpZC1jb2x1bW4oKWAgZnVuY3Rpb24gdG8gc2VlIHBvc3NpYmxlIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRndXR0ZXJzIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgZm9yIGd1dHRlcnMgd2lkdGguIFNlZSB0aGUgYGdyaWQtY29sdW1uLWd1dHRlcmAgbWl4aW4uXG5AbWl4aW4gZmxleC1ncmlkLWNvbHVtbihcbiAgJGNvbHVtbnM6IGV4cGFuZCxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAvLyBCYXNlIHByb3BlcnRpZXNcbiAgQGluY2x1ZGUgZmxleC1ncmlkLXNpemUoJGNvbHVtbnMpO1xuXG4gIC8vIEd1dHRlcnNcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZ3V0dGVyKCRndXR0ZXJzOiAkZ3V0dGVycyk7XG5cbiAgLy8gZml4ZXMgcmVjZW50IENocm9tZSB2ZXJzaW9uIG5vdCBsaW1pdGluZyBjaGlsZCB3aWR0aFxuICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNDkzNDU4Ni93aGl0ZS1zcGFjZS1ub3dyYXAtYW5kLWZsZXhib3gtZGlkLW5vdC13b3JrLWluLWNocm9tZVxuICBAaWYgJGNvbHVtbnMgPT0gZXhwYW5kIHtcbiAgICBtaW4td2lkdGg6IDA7XG4gIH1cbn1cblxuLy8vIENyZWF0ZXMgYSBibG9jayBncmlkIGZvciBhIGZsZXggZ3JpZCByb3cuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJG4gLSBOdW1iZXIgb2YgY29sdW1ucyB0byBkaXNwbGF5IG9uIGVhY2ggcm93LlxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkc2VsZWN0b3IgLSBTZWxlY3RvciB0byB1c2UgdG8gdGFyZ2V0IGNvbHVtbnMgd2l0aGluIHRoZSByb3cuXG5AbWl4aW4gZmxleC1ncmlkLWxheW91dChcbiAgJG4sXG4gICRzZWxlY3RvcjogJy5jb2x1bW4nXG4pIHtcbiAgZmxleC13cmFwOiB3cmFwO1xuXG4gID4gI3skc2VsZWN0b3J9IHtcbiAgICAkcGN0OiBwZXJjZW50YWdlKGRpdmlkZSgxLCAkbikpO1xuXG4gICAgZmxleDogMCAwICRwY3Q7XG4gICAgbWF4LXdpZHRoOiAkcGN0O1xuICB9XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSB3aWR0aCBmbGV4IGdyaWQgY29sdW1uLlxuLy8vIEBwYXJhbSB7TWl4ZWR9ICRjb2x1bW5zIFtleHBhbmRdIC0gV2lkdGggb2YgdGhlIGNvbHVtbi4gUmVmZXIgdG8gdGhlIGBmbGV4LWdyaWQtY29sdW1uKClgIGZ1bmN0aW9uIHRvIHNlZSBwb3NzaWJsZSB2YWx1ZXMuXG5AbWl4aW4gZmxleC1ncmlkLXNpemUoJGNvbHVtbnM6IG51bGwpIHtcbiAgJGNvbHVtbnM6ICRjb2x1bW5zIG9yIGV4cGFuZDtcblxuICBmbGV4OiBmbGV4LWdyaWQtY29sdW1uKCRjb2x1bW5zKTtcblxuICAvLyBtYXgtd2lkdGggZml4ZXMgSUUgMTAvMTEgbm90IHJlc3BlY3RpbmcgdGhlIGZsZXgtYmFzaXMgcHJvcGVydHlcbiAgQGlmICRjb2x1bW5zICE9IGV4cGFuZCBhbmQgJGNvbHVtbnMgIT0gc2hyaW5rIHtcbiAgICBtYXgtd2lkdGg6IGdyaWQtY29sdW1uKCRjb2x1bW5zKTtcbiAgfVxufVxuXG5cbkBtaXhpbiBmb3VuZGF0aW9uLWZsZXgtZ3JpZCB7XG4gIC8vIFJvd1xuICAucm93IHtcbiAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93O1xuXG4gICAgLy8gTmVzdGluZyBiZWhhdmlvclxuICAgICYgLnJvdyB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtcm93KG5lc3QsICRiYXNlOiBmYWxzZSk7XG5cbiAgICAgICYuY29sbGFwc2Uge1xuICAgICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICAgIG1hcmdpbi1sZWZ0OiAwO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIEV4cGFuZGVkIHJvd1xuICAgICYuZXhwYW5kZWQge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuXG4gICAgICAucm93IHtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiBhdXRvO1xuICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgIH1cbiAgICB9XG5cbiAgICAmOm5vdCguZXhwYW5kZWQpIC5yb3cge1xuICAgICAgQGluY2x1ZGUgZ3JpZC1yb3ctc2l6ZShleHBhbmQpO1xuICAgIH1cblxuICAgICYuY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHtcbiAgICAgICAgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gVW5kbyBuZWdhdGl2ZSBtYXJnaW5zXG4gICAgLy8gRnJvbSBjb2xsYXBzZWQgY2hpbGRcbiAgICAmLmlzLWNvbGxhcHNlLWNoaWxkLFxuICAgICYuY29sbGFwc2UgPiAuY29sdW1uID4gLnJvdyB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICB9XG4gIH1cblxuICAvLyBDb2x1bW5cbiAgLmNvbHVtbiB7XG4gICAgQGluY2x1ZGUgZmxleC1ncmlkLWNvbHVtbjtcbiAgfVxuXG4gIC8vIENvbHVtbiByb3dcbiAgLy8gVGhlIGRvdWJsZSAucm93IGNsYXNzIGlzIG5lZWRlZCB0byBidW1wIHVwIHRoZSBzcGVjaWZpY2l0eVxuICAuY29sdW1uLnJvdy5yb3cge1xuICAgIGZsb2F0OiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgLy8gVG8gcHJvcGVybHkgbmVzdCBhIGNvbHVtbiByb3csIHBhZGRpbmcgYW5kIG1hcmdpbiBpcyByZW1vdmVkXG4gIC5yb3cgLmNvbHVtbi5yb3cucm93IHtcbiAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgcGFkZGluZy1yaWdodDogMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDA7XG4gIH1cblxuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRncmlkLWNvbHVtbi1jb3VudCB7XG4gICAgICAvLyBTaXppbmcgKHBlcmNlbnRhZ2UpXG4gICAgICAuI3skLXpmLXNpemV9LSN7JGl9IHtcbiAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigkaSk7XG4gICAgICAgIG1heC13aWR0aDogZ3JpZC1jb2x1bW4oJGkpO1xuICAgICAgfVxuXG4gICAgICAvLyBPZmZzZXRzXG4gICAgICAkbzogJGkgLSAxO1xuXG4gICAgICAuI3skLXpmLXNpemV9LW9mZnNldC0jeyRvfSB7XG4gICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLW9mZnNldCgkbyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQmxvY2sgZ3JpZFxuICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGJsb2NrLWdyaWQtbWF4IHtcbiAgICAgIC4jeyQtemYtc2l6ZX0tdXAtI3skaX0ge1xuICAgICAgICBAaW5jbHVkZSBmbGV4LWdyaWQtbGF5b3V0KCRpKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAaWYgJC16Zi1zaXplICE9ICQtemYtemVyby1icmVha3BvaW50IHtcbiAgICAgIC8vIFNpemluZyAoZXhwYW5kKVxuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXNpemUpIHtcbiAgICAgICAgLiN7JC16Zi1zaXplfS1leHBhbmQge1xuICAgICAgICAgIGZsZXg6IGZsZXgtZ3JpZC1jb2x1bW4oKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBBdXRvLXN0YWNraW5nL3Vuc3RhY2tpbmdcbiAgICAgIEBhdC1yb290ICh3aXRob3V0OiBtZWRpYSkge1xuICAgICAgICAucm93LiN7JC16Zi1zaXplfS11bnN0YWNrIHtcbiAgICAgICAgICA+IC5jb2x1bW4ge1xuICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigxMDAlKTtcblxuICAgICAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkLXpmLXNpemUpIHtcbiAgICAgICAgICAgICAgZmxleDogZmxleC1ncmlkLWNvbHVtbigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJlc3BvbnNpdmUgY29sbGFwc2luZ1xuICAgIC4jeyQtemYtc2l6ZX0tY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtY29sbGFwc2U7IH1cbiAgICB9XG5cbiAgICAuI3skLXpmLXNpemV9LXVuY29sbGFwc2Uge1xuICAgICAgPiAuY29sdW1uIHsgQGluY2x1ZGUgZ3JpZC1jb2wtZ3V0dGVyKCQtemYtc2l6ZSk7IH1cbiAgICB9XG4gIH1cblxuICAvLyBTaXppbmcgKHNocmluaylcbiAgLnNocmluayB7XG4gICAgZmxleDogZmxleC1ncmlkLWNvbHVtbihzaHJpbmspO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgfVxuXG4gIC8vIEJsb2NrIGdyaWQgY29sdW1uc1xuICAuY29sdW1uLWJsb2NrIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbHVtbi1tYXJnaW47XG4gIH1cblxuICAuY29sdW1ucyB7XG4gICAgQGV4dGVuZCAuY29sdW1uOyAvLyBzYXNzLWxpbnQ6ZGlzYWJsZS1saW5lIHBsYWNlaG9sZGVyLWluLWV4dGVuZFxuXG4gIH1cbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vL1xuLy8vIEBncm91cCBncmlkXG4vLy8vXG5cbi8vLyBDaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIGNvbHVtbnMgZGVmaW5lZCBpbnNpZGUgdGhpcyBtaXhpbiB0byB1c2UgYSBkaWZmZXJlbnQgY29sdW1uIGNvdW50LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkcm9vdCBbZmFsc2VdXG4vLy8gICBJZiBgZmFsc2VgLCBzZWxlY3RvcnMgaW5zaWRlIHRoaXMgbWl4aW4gd2lsbCBuZXN0IGluc2lkZSB0aGUgcGFyZW50IHNlbGVjdG9yLlxuLy8vICAgSWYgYHRydWVgLCBzZWxlY3RvcnMgd2lsbCBub3QgbmVzdC5cbkBtaXhpbiBncmlkLWNvbnRleHQoXG4gICRjb2x1bW5zLFxuICAkcm9vdDogZmFsc2Vcbikge1xuICAvLyBTdG9yZSB0aGUgY3VycmVudCBjb2x1bW4gY291bnQgc28gaXQgY2FuIGJlIHJlLXNldCBsYXRlclxuICAkb2xkLWdyaWQtY29sdW1uLWNvdW50OiAkZ3JpZC1jb2x1bW4tY291bnQ7XG4gICRncmlkLWNvbHVtbi1jb3VudDogJGNvbHVtbnMgIWdsb2JhbDtcblxuICBAaWYgJHJvb3Qge1xuICAgIEBhdC1yb290IHsgQGNvbnRlbnQ7IH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cblxuICAvLyBSZXN0b3JlIHRoZSBvbGQgY29sdW1uIGNvdW50XG4gICRncmlkLWNvbHVtbi1jb3VudDogJG9sZC1ncmlkLWNvbHVtbi1jb3VudCAhZ2xvYmFsO1xufVxuXG4vLy8gQ3JlYXRlcyBhIGdyaWQgcm93LlxuLy8vIEBjb250ZW50XG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGNvbHVtbnMgW251bGxdIC0gQ29sdW1uIGNvdW50IGZvciB0aGlzIHJvdy4gYG51bGxgIHdpbGwgdXNlIHRoZSBkZWZhdWx0IGNvbHVtbiBjb3VudC5cbi8vLyBAcGFyYW0ge0tleXdvcmRzfSAkYmVoYXZpb3IgW251bGxdXG4vLy8gICBNb2RpZmljYXRpb25zIHRvIHRoZSBkZWZhdWx0IGdyaWQgc3R5bGVzLiBgbmVzdGAgaW5kaWNhdGVzIHRoZSByb3cgd2lsbCBiZSBwbGFjZWQgaW5zaWRlIGFub3RoZXIgcm93LiBgY29sbGFwc2VgIGluZGljYXRlcyB0aGF0IHRoZSBjb2x1bW5zIGluc2lkZSB0aGlzIHJvdyB3aWxsIG5vdCBoYXZlIHBhZGRpbmcuIGBuZXN0IGNvbGxhcHNlYCBjb21iaW5lcyBib3RoIGJlaGF2aW9ycy5cbi8vLyBAcGFyYW0ge0tleXdvcmR8TnVtYmVyfSAkc2l6ZSBbJGdyaWQtcm93LXdpZHRoXSBNYXhpbXVtIHNpemUgb2YgdGhlIHJvdy4gU2V0IHRvIGBleHBhbmRgIHRvIG1ha2UgdGhlIHJvdyB0YWtpbmcgdGhlIGZ1bGwgd2lkdGguXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkY2YgW3RydWVdIC0gV2hldGhlciBvciBub3QgdG8gaW5jbHVkZSBhIGNsZWFyZml4LlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1yb3coXG4gICRjb2x1bW5zOiBudWxsLFxuICAkYmVoYXZpb3I6IG51bGwsXG4gICRzaXplOiAkZ3JpZC1yb3ctd2lkdGgsXG4gICRjZjogdHJ1ZSxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICAkbWFyZ2luOiBhdXRvO1xuXG4gIEBpZiBpbmRleCgkYmVoYXZpb3IsIG5lc3QpICE9IG51bGwge1xuICAgIEBpbmNsdWRlIGdyaWQtcm93LW5lc3QoJGd1dHRlcnMpO1xuXG4gICAgQGlmIGluZGV4KCRiZWhhdmlvciwgY29sbGFwc2UpICE9IG51bGwge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAaW5jbHVkZSBncmlkLXJvdy1zaXplKCRzaXplKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gIH1cblxuICBAaWYgJGNmIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgfVxuXG4gIEBpZiAkY29sdW1ucyAhPSBudWxsIHtcbiAgICBAaW5jbHVkZSBncmlkLWNvbnRleHQoJGNvbHVtbnMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLy8gSW52ZXJ0cyB0aGUgbWFyZ2lucyBvZiBhIHJvdyB0byBuZXN0IGl0IGluc2lkZSBvZiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlIHdoZW4gaW52ZXJ0aW5nIG1hcmdpbnMuIFJlc3BvbnNpdmUgZ3V0dGVyIHNldHRpbmdzIGJ5IGRlZmF1bHQuXG5AbWl4aW4gZ3JpZC1yb3ctbmVzdCgkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlcikge1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICAkbWFyZ2luOiByZW0tY2FsYygtemYtZ2V0LWJwLXZhbCgkZ3V0dGVycywgJC16Zi1zaXplKSkgKiAwLjUgKiAtMTtcblxuICAgIG1hcmdpbi1yaWdodDogJG1hcmdpbjtcbiAgICBtYXJnaW4tbGVmdDogJG1hcmdpbjtcbiAgfVxufVxuXG4vLy8gU2V0IGEgZ3JpZCByb3cgc2l6ZVxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfE51bWJlcn0gJHNpemUgWyRncmlkLXJvdy13aWR0aF0gTWF4aW11bSBzaXplIG9mIHRoZSByb3cuIFNldCB0byBgZXhwYW5kYCB0byBtYWtlIHRoZSByb3cgdGFraW5nIHRoZSBmdWxsIHdpZHRoLlxuQG1peGluIGdyaWQtcm93LXNpemUoJHNpemU6ICRncmlkLXJvdy13aWR0aCkge1xuICBAaWYgJHNpemUgPT0gZXhwYW5kIHtcbiAgICAkc2l6ZTogbm9uZTtcbiAgfVxuXG4gIG1heC13aWR0aDogJHNpemU7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gU2V0IHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJGd1dHRlciBbYXV0b11cbi8vLyAgIFNwYWNpbmcgYmV0d2VlbiBjb2x1bW5zLCBhY2NlcHRzIG11bHRpcGxlIHZhbHVlczpcbi8vLyAgIC0gQSBzaW5nbGUgdmFsdWUgd2lsbCBtYWtlIHRoZSBndXR0ZXIgdGhhdCBleGFjdCBzaXplLlxuLy8vICAgLSBBIGJyZWFrcG9pbnQgbmFtZSB3aWxsIG1ha2UgdGhlIGd1dHRlciB0aGUgY29ycmVzcG9uZGluZyBzaXplIGluIHRoZSAkZ3V0dGVycyBtYXAuXG4vLy8gICAtIFwiYXV0b1wiIHdpbGwgbWFrZSB0aGUgZ3V0dGVyIHJlc3BvbnNpdmUsIHVzaW5nIHRoZSAkZ3V0dGVycyBtYXAgdmFsdWVzLlxuLy8vIEBwYXJhbSB7TnVtYmVyfE1hcH0gJGd1dHRlcnMgWyRncmlkLWNvbHVtbi1ndXR0ZXJdIC0gR3V0dGVyIG1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLWd1dHRlcihcbiAgJGd1dHRlcjogYXV0byxcbiAgJGd1dHRlcnM6ICRncmlkLWNvbHVtbi1ndXR0ZXJcbikge1xuICBAaW5jbHVkZSAtemYtYnJlYWtwb2ludC12YWx1ZSgkZ3V0dGVyLCAkZ3V0dGVycykge1xuICAgICRwYWRkaW5nOiByZW0tY2FsYygkLXpmLWJwLXZhbHVlKSAqIDAuNTtcblxuICAgIHBhZGRpbmctcmlnaHQ6ICRwYWRkaW5nO1xuICAgIHBhZGRpbmctbGVmdDogJHBhZGRpbmc7XG4gIH1cbn1cblxuLy8vIENvbGxhcHNlIHRoZSBndXR0ZXJzIG9uIGEgY29sdW1uIGJ5IHJlbW92aW5nIHRoZSBwYWRkaW5nLiAqKk5vdGU6Kiogb25seSB1c2UgdGhpcyBtaXhpbiB3aXRoaW4gYSBicmVha3BvaW50LiBUbyBjb2xsYXBzZSBhIGNvbHVtbidzIGd1dHRlcnMgb24gYWxsIHNjcmVlbiBzaXplcywgdXNlIHRoZSBgJGd1dHRlcmAgcGFyYW1ldGVyIG9mIHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4gaW5zdGVhZC5cbkBtaXhpbiBncmlkLWNvbHVtbi1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigwKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWd1dHRlcigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZ3V0dGVyXG5AbWl4aW4gZ3JpZC1jb2wtZ3V0dGVyKFxuICAkZ3V0dGVyOiBhdXRvLFxuICAkZ3V0dGVyczogJGdyaWQtY29sdW1uLWd1dHRlclxuKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWd1dHRlcigkZ3V0dGVyLCAkZ3V0dGVycyk7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1jb2xsYXBzZSgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tY29sbGFwc2VcbkBtaXhpbiBncmlkLWNvbC1jb2xsYXBzZSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLWNvbGxhcHNlO1xufVxuXG4vLy8gU2V0cyBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucyB0byBtYXRjaCBndXR0ZXJzXG4vLy8gQHBhcmFtIHtOdW1iZXJ8S2V5d29yZH0gJG1hcmdpbiBbYXV0b11cbi8vLyAgIFRoZSBib3R0b20gbWFyZ2luIG9uIGdyaWQgY29sdW1ucywgYWNjZXB0cyBtdWx0aXBsZSB2YWx1ZXM6XG4vLy8gICAtIEEgc2luZ2xlIHZhbHVlIHdpbGwgbWFrZSB0aGUgbWFyZ2luIHRoYXQgZXhhY3Qgc2l6ZS5cbi8vLyAgIC0gQSBicmVha3BvaW50IG5hbWUgd2lsbCBtYWtlIHRoZSBtYXJnaW4gdGhlIGNvcnJlc3BvbmRpbmcgc2l6ZSBpbiB0aGUgJG1hcmdpbnMgbWFwLlxuLy8vICAgLSBcImF1dG9cIiB3aWxsIG1ha2UgdGhlIG1hcmdpbiByZXNwb25zaXZlLCB1c2luZyB0aGUgJG1hcmdpbnMgbWFwIHZhbHVlcy5cbi8vLyBAcGFyYW0ge051bWJlcnxNYXB9ICRtYXJnaW5zIFskZ3JpZC1jb2x1bW4tZ3V0dGVyXSAtIE1hcCBvciBzaW5nbGUgdmFsdWUgdG8gdXNlLiBSZXNwb25zaXZlIGd1dHRlciBzZXR0aW5ncyBieSBkZWZhdWx0LlxuQG1peGluIGdyaWQtY29sdW1uLW1hcmdpbiAoXG4gICRtYXJnaW46IGF1dG8sXG4gICRtYXJnaW5zOiAkZ3JpZC1jb2x1bW4tZ3V0dGVyXG4pIHtcbiAgQGluY2x1ZGUgLXpmLWJyZWFrcG9pbnQtdmFsdWUoJG1hcmdpbiwgJG1hcmdpbnMpIHtcbiAgICAkbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoJC16Zi1icC12YWx1ZSk7XG4gICAgbWFyZ2luLWJvdHRvbTogJG1hcmdpbi1ib3R0b207XG5cbiAgICA+IDpsYXN0LWNoaWxkIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZnVuY3Rpb25zXG4vLy8vXG5cbi8vLyBGaW5kcyB0aGUgZ3JlYXRlc3QgY29tbW9uIGRpdmlzb3Igb2YgdHdvIGludGVnZXJzLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRhIC0gRmlyc3QgbnVtYmVyIHRvIGNvbXBhcmUuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRiIC0gU2Vjb25kIG51bWJlciB0byBjb21wYXJlLlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIGdyZWF0ZXN0IGNvbW1vbiBkaXZpc29yLlxuQGZ1bmN0aW9uIGdjZCgkYSwgJGIpIHtcbiAgLy8gRnJvbTogaHR0cDovL3Jvc2V0dGFjb2RlLm9yZy93aWtpL0dyZWF0ZXN0X2NvbW1vbl9kaXZpc29yI0phdmFTY3JpcHRcbiAgQGlmICgkYiAhPSAwKSB7XG4gICAgQHJldHVybiBnY2QoJGIsICRhICUgJGIpO1xuICB9XG4gIEBlbHNlIHtcbiAgICBAcmV0dXJuIGFicygkYSk7XG4gIH1cbn1cblxuLy8vIEhhbmRsZXMgZGVjaW1hbCBleHBvbmVudHMgYnkgdHJ5aW5nIHRvIGNvbnZlcnQgdGhlbSBpbnRvIGEgZnJhY3Rpb24gYW5kIHRoZW4gdXNlIGEgbnRoLXJvb3QtYWxnb3JpdGhtIGZvciBwYXJ0cyBvZiB0aGUgY2FsY3VsYXRpb25cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkYmFzZSAtIFRoZSBiYXNlIG51bWJlci5cbi8vLyBAcGFyYW0ge051bWJlcn0gJGV4cG9uZW50IC0gVGhlIGV4cG9uZW50LlxuLy8vXG4vLy8gQHJldHVybnMge051bWJlcn0gVGhlIHByb2R1Y3Qgb2YgdGhlIGV4cG9uZW50aWF0aW9uLlxuQGZ1bmN0aW9uIHBvdygkYmFzZSwgJGV4cG9uZW50LCAkcHJlYzogMTYpIHtcbiAgQGlmIChmbG9vcigkZXhwb25lbnQpICE9ICRleHBvbmVudCkge1xuICAgICRwcmVjMjogcG93KDEwLCAkcHJlYyk7XG4gICAgJGV4cG9uZW50OiByb3VuZCgkZXhwb25lbnQgKiAkcHJlYzIpO1xuICAgICRkZW5vbWluYXRvcjogZ2NkKCRleHBvbmVudCwgJHByZWMyKTtcbiAgICBAcmV0dXJuIG50aC1yb290KHBvdygkYmFzZSwgZGl2aWRlKCRleHBvbmVudCwgJGRlbm9taW5hdG9yKSksIGRpdmlkZSgkcHJlYzIsICRkZW5vbWluYXRvciksICRwcmVjKTtcbiAgfVxuXG4gICR2YWx1ZTogJGJhc2U7XG4gIEBpZiAkZXhwb25lbnQgPiAxIHtcbiAgICBAZm9yICRpIGZyb20gMiB0aHJvdWdoICRleHBvbmVudCB7XG4gICAgICAkdmFsdWU6ICR2YWx1ZSAqICRiYXNlO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZXhwb25lbnQgPCAxIHtcbiAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoIC0kZXhwb25lbnQge1xuICAgICAgJHZhbHVlOiBkaXZpZGUoJHZhbHVlLCAkYmFzZSk7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cbkBmdW5jdGlvbiBudGgtcm9vdCgkbnVtLCAkbjogMiwgJHByZWM6IDEyKSB7XG4gIC8vIEZyb206IGh0dHA6Ly9yb3NldHRhY29kZS5vcmcvd2lraS9OdGhfcm9vdCNKYXZhU2NyaXB0XG4gICR4OiAxO1xuXG4gIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggJHByZWMge1xuICAgICR4OiBkaXZpZGUoMSwgJG4pICogKCgkbiAtIDEpICogJHggKyBkaXZpZGUoJG51bSwgcG93KCR4LCAkbiAtIDEpKSk7XG4gIH1cblxuICBAcmV0dXJuICR4O1xufVxuXG4vLy8gQ2FsY3VsYXRlcyB0aGUgaGVpZ2h0IGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgd2lkdGggZm9yIGEgZ2l2ZW4gcmF0aW8uXG4vLy8gQHBhcmFtIHtMaXN0fSAkcmF0aW8gLSBSYXRpbyB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBoZWlnaHQsIGZvcm1hdHRlZCBhcyBgeCBieSB5YC5cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IEEgcGVyY2VudGFnZSB2YWx1ZSBmb3IgdGhlIGhlaWdodCByZWxhdGl2ZSB0byB0aGUgd2lkdGggb2YgYSByZXNwb25zaXZlIGNvbnRhaW5lci5cbkBmdW5jdGlvbiByYXRpby10by1wZXJjZW50YWdlKCRyYXRpbykge1xuICAkdzogbnRoKCRyYXRpbywgMSk7XG4gICRoOiBudGgoJHJhdGlvLCAzKTtcbiAgQHJldHVybiBkaXZpZGUoJGgsICR3KSAqIDEwMCU7XG59XG5cbi8vLyBQYXJzZSB0aGUgZ2l2ZW4gYCRmcmFjdGlvbmAgdG8gbnVtZXJhdG9ycyBhbmQgZGVudW1lcmF0b3JzLlxuLy8vXG4vLy8gQHBhcmFtIHsqfSAkZnJhY3Rpb24gLSBWYWx1ZSByZXByZXNlbnRpbmcgYSBmcmFjdGlvbiB0byBwYXJzZS4gSXQgY2FuIGJlIGZvcm1hdHRlZCBhcyBgNTAlYCwgYDEgb2YgMmAsIGAxLzJgIG9yIGA1MGAgKG5vIGRlbm9taW5hdG9yIHdvdWxkIGJlIHJldHVybmVkKS5cbi8vL1xuLy8vIEByZXR1cm4ge0xpc3R9IExpc3Qgb2YgcGFyc2VkIHZhbHVlcyB3aXRoIG51bWVyYXRvciBhdCBmaXJzdCBwb3NpdGlvbiBhbmQgZGVudW1lcmF0b3IgYXMgc2Vjb25kLiBUaGVzZSB2YWx1ZXMgbWF5IGJlIG51bGwuXG5AZnVuY3Rpb24gemYtcGFyc2UtZnJhY3Rpb24oJGZyYWN0aW9uKSB7XG5cbiAgQGlmIHR5cGUtb2YoJGZyYWN0aW9uKSA9PSAnbnVtYmVyJyB7XG4gICAgLy8gXCI1MCVcIlxuICAgIEBpZiB1bml0KCRmcmFjdGlvbikgPT0gJyUnIHtcbiAgICAgIEByZXR1cm4gKHN0cmlwLXVuaXQoJGZyYWN0aW9uKSwgMTAwKTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKHVuaXQoJGZyYWN0aW9uKSA9PSAnJykge1xuICAgICAgLy8gXCIwLjVcIlxuICAgICAgQGlmICRmcmFjdGlvbiA8IDEge1xuICAgICAgICBAcmV0dXJuICgkZnJhY3Rpb24gKiAxMDAsIDEwMCk7XG4gICAgICB9XG4gICAgICAvLyBcIjUwXCJcbiAgICAgIEBlbHNlIHtcbiAgICAgICAgQHJldHVybiAoJGZyYWN0aW9uLCBudWxsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAZWxzZSBpZiB0eXBlLW9mKCRmcmFjdGlvbikgPT0gJ2xpc3QnIHtcbiAgICAvLyBcIjUwIG9mIDEwMFwiLCBcIjUwLzEwMFwiLi4uXG4gICAgQGlmIGxlbmd0aCgkZnJhY3Rpb24pID09IDNcbiAgICBhbmQgdHlwZS1vZihudGgoJGZyYWN0aW9uLCAxKSA9PSAnbnVtYmVyJylcbiAgICBhbmQgdHlwZS1vZihudGgoJGZyYWN0aW9uLCAzKSA9PSAnbnVtYmVyJykge1xuICAgICAgQHJldHVybiAobnRoKCRmcmFjdGlvbiwgMSksIG50aCgkZnJhY3Rpb24sIDMpKTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIChudWxsLCBudWxsKTtcbn1cblxuLy8vIFJldHVybnMgd2hldGhlciB0aGUgZ2l2ZW4gYCR2YWx1ZWAgcmVwcmVzZW50cyBhIGZyYWN0aW9uLiBTdXBwb3J0cyBmb3JtYXRzIGxpa2UgYDUwJWAsIGAxIG9mIDJgLCBgMSBwZXIgMmAgb3IgYDEvMmAuXG4vLy9cbi8vLyBAcGFyYW0geyp9ICR2YWx1ZSAtIFZhbHVlIHRvIHRlc3QuXG4vLy8gQHBhcmFtIHtCb29sZWFufSAkYWxsb3ctbm8tZGVub21pbmF0b3IgW2ZhbHNlXSAtIElmIGB0cnVlYCwgc2ltcGxlIG51bWJlcnMgd2l0aG91dCBkZW5vbWluYXRvcnMgbGlrZSBgNTBgIGFyZSBzdXBwb3J0ZWQuXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sZWFufSBgdHJ1ZWAgaWYgYCR2YWx1ZWAgcmVwcmVzZW50cyBhIGZyYWN0aW9uLCBgZmFsc2VgIG90aGVyd2lzZS5cbkBmdW5jdGlvbiB6Zi1pcy1mcmFjdGlvbigkdmFsdWUsICRhbGxvdy1uby1kZW5vbWluYXRvcjogZmFsc2UpIHtcbiAgJHBhcnNlZDogemYtcGFyc2UtZnJhY3Rpb24oJHZhbHVlKTtcbiAgQHJldHVybiBub3QobnRoKCRwYXJzZWQsIDEpID09IG51bGxcbiAgICBvciAobnRoKCRwYXJzZWQsIDIpID09IG51bGwgYW5kICRhbGxvdy1uby1kZW5vbWluYXRvciA9PSBmYWxzZSkpO1xufVxuXG4vLy8gQ2FsY3VsYXRlIGEgcGVyY2VudGFnZSBmcm9tIGEgZ2l2ZW4gZnJhY3Rpb24uXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcnxMaXN0fSAkZnJhY3Rpb24gLSBWYWx1ZSByZXByZXNlbnRpbmcgYSBmcmFjdGlvbiB0byB1c2UgdG8gY2FsY3VsYXRlIHRoZSBwZXJjZW50YWdlLCBmb3JtYXR0ZWQgYXMgYDUwYCAocmVsYXRpdmUgdG8gYCRkZW5vbWluYXRvcmApLCBgNTAlYCwgYDEgb2YgMmAgb3IgYDEvMmAuXG4vLy8gQHBhcmFtIHtOdW1iZXJ8TGlzdH0gJGRlbm9taW5hdG9yIC0gRGVmYXVsdCB2YWx1ZSB0byB1c2UgYXMgZGVub21pbmF0b3Igd2hlbiBgJGZyYWN0aW9uYCByZXByZXNlbnRzIGFuIGFic29sdXRlIHZhbHVlLlxuQGZ1bmN0aW9uIGZyYWN0aW9uLXRvLXBlcmNlbnRhZ2UoXG4gICRmcmFjdGlvbixcbiAgJGRlbm9taW5hdG9yOiBudWxsXG4pIHtcbiAgJHBhcnNlZDogemYtcGFyc2UtZnJhY3Rpb24oJGZyYWN0aW9uKTtcbiAgJHBhcnNlZC1ub21pbmF0b3I6IG50aCgkcGFyc2VkLCAxKTtcbiAgJHBhcnNlZC1kZW5vbWluYXRvcjogbnRoKCRwYXJzZWQsIDIpO1xuXG4gIEBpZiAkcGFyc2VkLW5vbWluYXRvciA9PSBudWxsIHtcbiAgICBAZXJyb3IgJ1dyb25nIHN5bnRheCBmb3IgXCJmcmFjdGlvbi10by1wZXJjZW50YWdlKClcIi4gVXNlIGEgbnVtYmVyLCBkZWNpbWFsLCBwZXJjZW50YWdlLCBvciBcIm4gb2YgblwiIC8gXCJuL25cIi4nO1xuICB9XG4gIEBpZiAkcGFyc2VkLWRlbm9taW5hdG9yID09IG51bGwge1xuICAgIEBpZiB0eXBlLW9mKCRkZW5vbWluYXRvcikgPT0gJ251bWJlcicge1xuICAgICAgJHBhcnNlZC1kZW5vbWluYXRvcjogJGRlbm9taW5hdG9yO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAZXJyb3IgJ0Vycm9yIHdpdGggXCJmcmFjdGlvbi10by1wZXJjZW50YWdlKClcIi4gQSBkZWZhdWx0IFwiJGRlbm9taW5hdG9yXCIgaXMgcmVxdWlyZWQgdG8gc3VwcG9ydCBhYnNvbHV0ZSB2YWx1ZXMnO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gcGVyY2VudGFnZShkaXZpZGUoJHBhcnNlZC1ub21pbmF0b3IsICRwYXJzZWQtZGVub21pbmF0b3IpKTtcbn1cblxuLy8vIERpdmlkZSB0aGUgZ2l2ZW4gYCRkaXZpZGVudGAgYnkgdGhlIGdpdmVuIGAkZGl2aXNvcmAuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlcn0gJGRpdmlkZW50IC0gVGhlIGRpdmlkZW50LlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZGl2aXNvciAtIFRoZSBkaXZpc29yLlxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcHJlY2lzaW9uIC0gVGhlIHByZWNpc2lvbiBkZWNpbWFscyBmb3IgdGhlIGRpdmlzaW9uLlxuLy8vXG4vLy8gQHJldHVybiB7TnVtYmVyfSBUaGUgcHJvZHVjdCBvZiB0aGUgZGl2aXNpb24uXG5AZnVuY3Rpb24gZGl2aWRlKCRkaXZpZGVuZCwgJGRpdmlzb3IsICRwcmVjaXNpb246IDEyKSB7XG4gICRzaWduOiBpZigkZGl2aWRlbmQgPiAwIGFuZCAkZGl2aXNvciA+IDAgb3IgJGRpdmlkZW5kIDwgMCBhbmQgJGRpdmlzb3IgPCAwLCAxLCAtMSk7XG4gICRkaXZpZGVuZDogYWJzKCRkaXZpZGVuZCk7XG4gICRkaXZpc29yOiBhYnMoJGRpdmlzb3IpO1xuICBAaWYgJGRpdmlkZW5kID09IDAge1xuICAgIEByZXR1cm4gMDtcbiAgfVxuICBAaWYgJGRpdmlzb3IgPT0gMCB7XG4gICAgQGVycm9yICdDYW5ub3QgZGl2aWRlIGJ5IDAnO1xuICB9XG4gICRyZW1haW5kZXI6ICRkaXZpZGVuZDtcbiAgJHJlc3VsdDogMDtcbiAgJGZhY3RvcjogMTA7XG4gIEB3aGlsZSAoJHJlbWFpbmRlciA+IDAgYW5kICRwcmVjaXNpb24gPj0gMCkge1xuICAgICRxdW90aWVudDogMDtcbiAgICBAd2hpbGUgKCRyZW1haW5kZXIgPj0gJGRpdmlzb3IpIHtcbiAgICAgICRyZW1haW5kZXI6ICRyZW1haW5kZXIgLSAkZGl2aXNvcjtcbiAgICAgICRxdW90aWVudDogJHF1b3RpZW50ICsgMTtcbiAgICB9XG4gICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgJHF1b3RpZW50O1xuICAgICRmYWN0b3I6ICRmYWN0b3IgKiAwLjE7XG4gICAgJHJlbWFpbmRlcjogJHJlbWFpbmRlciAqIDEwO1xuICAgICRwcmVjaXNpb246ICRwcmVjaXNpb24gLSAxO1xuICAgIEBpZiAoJHByZWNpc2lvbiA8IDAgYW5kICRyZW1haW5kZXIgPj0gJGRpdmlzb3IgKiA1KSB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgMTtcbiAgICB9XG4gIH1cbiAgJHJlc3VsdDogJHJlc3VsdCAqICRmYWN0b3IgKiAkc2lnbjtcbiAgJGRpdmlkZW5kLXVuaXQ6IHVuaXQoJGRpdmlkZW5kKTtcbiAgJGRpdmlzb3ItdW5pdDogdW5pdCgkZGl2aXNvcik7XG4gICR1bml0LW1hcDogKFxuICAgICdweCc6IDFweCxcbiAgICAncmVtJzogMXJlbSxcbiAgICAnZW0nOiAxZW0sXG4gICAgJyUnOiAxJVxuICApO1xuICBAaWYgKCRkaXZpZGVuZC11bml0ICE9ICRkaXZpc29yLXVuaXQgYW5kIG1hcC1oYXMta2V5KCR1bml0LW1hcCwgJGRpdmlkZW5kLXVuaXQpKSB7XG4gICAgJHJlc3VsdDogJHJlc3VsdCAqIG1hcC1nZXQoJHVuaXQtbWFwLCAkZGl2aWRlbmQtdW5pdCk7XG4gIH1cblxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG4iLCIvLyBGb3VuZGF0aW9uIGZvciBTaXRlc1xuLy8gaHR0cHM6Ly9nZXQuZm91bmRhdGlvblxuLy8gTGljZW5zZWQgdW5kZXIgTUlUIE9wZW4gU291cmNlXG5cbi8vLy9cbi8vLyBAZ3JvdXAgZ3JpZFxuLy8vL1xuXG4vLy8gUmVwb3NpdGlvbiBhIGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfEtleXdvcmR9ICRwb3NpdGlvbiAtIEl0IGNhbiBiZTpcbi8vLyAgICogQSBudW1iZXI6IFRoZSBjb2x1bW4gd2lsbCBtb3ZlIGVxdWFsIHRvIHRoZSB3aWR0aCBvZiB0aGUgY29sdW1uIGNvdW50XG4vLy8gICAgIHNwZWNpZmllZC4gQSBwb3NpdGl2ZSBudW1iZXIgd2lsbCBwdXNoIHRoZSBjb2x1bW4gdG8gdGhlIHJpZ2h0LCB3aGlsZVxuLy8vICAgICBhIG5lZ2F0aXZlIG51bWJlciB3aWxsIHB1bGwgaXQgdG8gdGhlIGxlZnQuXG4vLy8gICAqIGBjZW50ZXJgOiBDb2x1bW4gd2lsbCBiZSBjZW50ZXJlZFxuLy8vICAgKiBgYXV0b2A6IENvbHVtbiB3aWxsIGJlIHB1c2hlZCB0byB0aGUgbGVmdCAob3IgdG8gdGhlIHJpZ2h0IGZvciB0aGUgbGFzdCBjb2x1bW4pLlxuQG1peGluIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbikge1xuICAvLyBBdXRvIHBvc2l0aW9uaW5nXG4gIEBpZiAkcG9zaXRpb24gPT0gYXV0byB7XG4gICAgJiwgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiAkZ2xvYmFsLWxlZnQ7XG4gICAgICBjbGVhcjogbm9uZTtcbiAgICB9XG5cbiAgICAvLyBMYXN0IGNvbHVtbiBhbGlnbm1lbnRcbiAgICBAaWYgJGdyaWQtY29sdW1uLWFsaWduLWVkZ2Uge1xuICAgICAgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgICAgZmxvYXQ6ICRnbG9iYWwtcmlnaHQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUHVzaC9wdWxsXG4gIEBlbHNlIGlmIHR5cGUtb2YoJHBvc2l0aW9uKSA9PSAnbnVtYmVyJyB7XG4gICAgJG9mZnNldDogcGVyY2VudGFnZShkaXZpZGUoJHBvc2l0aW9uLCAkZ3JpZC1jb2x1bW4tY291bnQpKTtcblxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAjeyRnbG9iYWwtbGVmdH06ICRvZmZzZXQ7XG4gIH1cblxuICAvLyBDZW50ZXIgcG9zaXRpb25pbmdcbiAgQGVsc2UgaWYgJHBvc2l0aW9uID09IGNlbnRlciB7XG4gICAgJiwgJjpsYXN0LWNoaWxkOm5vdCg6Zmlyc3QtY2hpbGQpIHtcbiAgICAgIGZsb2F0OiBub25lO1xuICAgICAgY2xlYXI6IGJvdGg7XG4gICAgfVxuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICBAd2FybiAnV3Jvbmcgc3ludGF4IGZvciBncmlkLWNvbHVtbi1wb3NpdGlvbigpLiBFbnRlciBhIHBvc2l0aXZlIG9yIG5lZ2F0aXZlIG51bWJlciwgXCJjZW50ZXJcIiBvciBcImF1dG9cIi4nO1xuICB9XG59XG5cbi8vLyBSZXNldCBhIHBvc2l0aW9uIGRlZmluaXRpb24uXG5AbWl4aW4gZ3JpZC1jb2x1bW4tdW5wb3NpdGlvbiB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXBvc2l0aW9uKGF1dG8pO1xuICBwb3NpdGlvbjogc3RhdGljO1xuICBtYXJnaW4tcmlnaHQ6IDA7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4vLy8gT2Zmc2V0cyBhIGNvbHVtbiB0byB0aGUgcmlnaHQgYnkgYCRuYCBjb2x1bW5zLlxuLy8vIEBwYXJhbSB7TnVtYmVyfExpc3R9ICRuIC0gV2lkdGggdG8gb2Zmc2V0IGJ5LiBZb3UgY2FuIHBhc3MgaW4gYW55IHZhbHVlIGFjY2VwdGVkIGJ5IHRoZSBgZ3JpZC1jb2x1bW4oKWAgbWl4aW4sIHN1Y2ggYXMgYDZgLCBgNTAlYCwgb3IgYDEgb2YgMmAuXG5AbWl4aW4gZ3JpZC1jb2x1bW4tb2Zmc2V0KCRuKSB7XG4gIG1hcmdpbi0jeyRnbG9iYWwtbGVmdH06IGdyaWQtY29sdW1uKCRuKTtcbn1cblxuLy8vIERpc2FibGUgdGhlIGRlZmF1bHQgYmVoYXZpb3Igb2YgdGhlIGxhc3QgY29sdW1uIGluIGEgcm93IGFsaWduaW5nIHRvIHRoZSBvcHBvc2l0ZSBlZGdlLlxuQG1peGluIGdyaWQtY29sdW1uLWVuZCB7XG4gIC8vIFRoaXMgZXh0cmEgc3BlY2lmaWNpdHkgaXMgcmVxdWlyZWQgZm9yIHRoZSBwcm9wZXJ0eSB0byBiZSBhcHBsaWVkXG4gICY6bGFzdC1jaGlsZDpsYXN0LWNoaWxkIHtcbiAgICBmbG9hdDogJGdsb2JhbC1sZWZ0O1xuICB9XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi1wb3NpdGlvbigpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tcG9zaXRpb25cbkBtaXhpbiBncmlkLWNvbC1wb3MoJHBvc2l0aW9uKSB7XG4gIEBpbmNsdWRlIGdyaWQtY29sdW1uLXBvc2l0aW9uKCRwb3NpdGlvbik7XG59XG5cbi8vLyBTaG9ydGhhbmQgZm9yIGBncmlkLWNvbHVtbi11bnBvc2l0aW9uKClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi11bnBvc2l0aW9uXG5AbWl4aW4gZ3JpZC1jb2wtdW5wb3Mge1xuICBAaW5jbHVkZSBncmlkLWNvbHVtbi11bnBvc2l0aW9uO1xufVxuXG4vLy8gU2hvcnRoYW5kIGZvciBgZ3JpZC1jb2x1bW4tb2Zmc2V0KClgLlxuLy8vIEBhbGlhcyBncmlkLWNvbHVtbi1vZmZzZXRcbkBtaXhpbiBncmlkLWNvbC1vZmYoJG4pIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tb2Zmc2V0KCRuKTtcbn1cblxuLy8vIFNob3J0aGFuZCBmb3IgYGdyaWQtY29sdW1uLWVuZCgpYC5cbi8vLyBAYWxpYXMgZ3JpZC1jb2x1bW4tZW5kXG5AbWl4aW4gZ3JpZC1jb2wtZW5kIHtcbiAgQGluY2x1ZGUgZ3JpZC1jb2x1bW4tZW5kO1xufVxuIiwiLy8gRm91bmRhdGlvbiBmb3IgU2l0ZXNcbi8vIGh0dHBzOi8vZ2V0LmZvdW5kYXRpb25cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCBPcGVuIFNvdXJjZVxuXG4vLy8vXG4vLy8gQGdyb3VwIEZsZXhib3ggVXRpbGl0aWVzXG4vLy8vXG4vL1xuLy8vIERlZmF1bHQgdmFsdWUgZm9yIHRoZSBjb3VudCBvZiBzb3VyY2Ugb3JkZXJpbmdgXG4vLy8gQHR5cGUgTnVtYmVyXG4kZmxleC1zb3VyY2Utb3JkZXJpbmctY291bnQ6IDYgIWRlZmF1bHQ7XG5cbi8vLyBRdWlja2x5IGRpc2FibGUvZW5hYmxlIFJlc3BvbnNpdmUgYnJlYWtwb2ludHMgZm9yIFZhbmlsbGEgRmxleCBIZWxwZXJzLlxuLy8vIEB0eXBlIEJvb2xlYW5cbiRmbGV4Ym94LXJlc3BvbnNpdmUtYnJlYWtwb2ludHM6IHRydWUgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmbGV4LWhlbHBlcnMge1xuICAuZmxleC1jb250YWluZXIge1xuICAgIEBpbmNsdWRlIGZsZXg7XG4gIH1cblxuICAuZmxleC1jaGlsZC1hdXRvIHtcbiAgICBmbGV4OiAxIDEgYXV0bztcbiAgfVxuXG4gIC5mbGV4LWNoaWxkLWdyb3cge1xuICAgIGZsZXg6IDEgMCBhdXRvO1xuICB9XG5cbiAgLmZsZXgtY2hpbGQtc2hyaW5rIHtcbiAgICBmbGV4OiAwIDEgYXV0bztcbiAgfVxuXG4gIEBlYWNoICRkaXIsICRwcm9wIGluICQtemYtZmxleC1kaXJlY3Rpb24ge1xuICAgIC5mbGV4LWRpci0jeyRkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKCRwcm9wKTtcbiAgICB9XG4gIH1cblxuICBAaWYgKCRmbGV4Ym94LXJlc3BvbnNpdmUtYnJlYWtwb2ludHMpIHtcbiAgICAvLyBMb29wIHRocm91Z2ggUmVzcG9uc2l2ZSBCcmVha3BvaW50c1xuICAgIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSkge1xuICAgICAgICBAaWYgJHNpemUgIT0gJC16Zi16ZXJvLWJyZWFrcG9pbnQge1xuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNvbnRhaW5lciB7XG4gICAgICAgICAgICBAaW5jbHVkZSBmbGV4O1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC4jeyRzaXplfS1mbGV4LWNoaWxkLWF1dG8ge1xuICAgICAgICAgICAgZmxleDogMSAxIGF1dG87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLiN7JHNpemV9LWZsZXgtY2hpbGQtZ3JvdyB7XG4gICAgICAgICAgICBmbGV4OiAxIDAgYXV0bztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAuI3skc2l6ZX0tZmxleC1jaGlsZC1zaHJpbmsge1xuICAgICAgICAgICAgZmxleDogMCAxIGF1dG87XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgQGVhY2ggJGRpciwgJHByb3AgaW4gJC16Zi1mbGV4LWRpcmVjdGlvbiB7XG4gICAgICAgICAgICAuI3skc2l6ZX0tZmxleC1kaXItI3skZGlyfSB7XG4gICAgICAgICAgICAgIEBpbmNsdWRlIGZsZXgtZGlyZWN0aW9uKCRwcm9wKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tZmxleC1jbGFzc2VzIHtcbiAgLy8gSG9yaXpvbnRhbCBhbGlnbm1lbnQgdXNpbmcganVzdGlmeS1jb250ZW50XG4gIEBlYWNoICRoZGlyLCAkcHJvcCBpbiAkLXpmLWZsZXgtanVzdGlmeSB7XG4gICAgLmFsaWduLSN7JGhkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHg6ICRoZGlyKTtcbiAgICB9XG4gIH1cbiAgXG4gIC8vIEhvcml6b250YWwgYWxpZ25tZW50IFNwZWNpZmljYWxseSBmb3IgVmVydGljYWwgTWVudVxuICBAZWFjaCAkaGRpciwgJHByb3AgaW4gbWFwLXJlbW92ZSgkLXpmLWZsZXgtanVzdGlmeSwgJ2p1c3RpZnknLCAnc3BhY2VkJykge1xuICAgIC5hbGlnbi0jeyRoZGlyfSB7XG4gICAgICAmLnZlcnRpY2FsIHtcbiAgICAgICAgJi5tZW51ID4gbGkgPiBhIHtcbiAgICAgICAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiAkaGRpcik7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBWZXJ0aWNhbCBhbGlnbm1lbnQgdXNpbmcgYWxpZ24taXRlbXMgYW5kIGFsaWduLXNlbGZcbiAgQGVhY2ggJHZkaXIsICRwcm9wIGluICQtemYtZmxleC1hbGlnbiB7XG4gICAgLmFsaWduLSN7JHZkaXJ9IHtcbiAgICAgIEBpbmNsdWRlIGZsZXgtYWxpZ24oJHk6ICR2ZGlyKTtcbiAgICB9XG5cbiAgICAuYWxpZ24tc2VsZi0jeyR2ZGlyfSB7XG4gICAgICBAaW5jbHVkZSBmbGV4LWFsaWduLXNlbGYoJHk6ICR2ZGlyKTtcbiAgICB9XG4gIH1cblxuICAvLyBDZW50cmFsIGFsaWdubWVudCBvZiBjb250ZW50XG4gIC5hbGlnbi1jZW50ZXItbWlkZGxlIHtcbiAgICBAaW5jbHVkZSBmbGV4LWFsaWduKCR4OiBjZW50ZXIsICR5OiBtaWRkbGUpO1xuICAgIGFsaWduLWNvbnRlbnQ6IGNlbnRlcjtcbiAgfVxuXG4gIC8vIFNvdXJjZSBvcmRlcmluZ1xuICBAaW5jbHVkZSAtemYtZWFjaC1icmVha3BvaW50IHtcbiAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICRmbGV4LXNvdXJjZS1vcmRlcmluZy1jb3VudCB7XG4gICAgICAuI3skLXpmLXNpemV9LW9yZGVyLSN7JGl9IHtcbiAgICAgICAgQGluY2x1ZGUgZmxleC1vcmRlcigkaSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVmFuaWxsYSBGbGV4Ym94IEhlbHBlcnNcbiAgQGluY2x1ZGUgZmxleC1oZWxwZXJzO1xufVxuIiwiQGZ1bmN0aW9uIC16Zi1mbGV4LWp1c3RpZnkoJHRleHQtZGlyZWN0aW9uKSB7XG4gICQtemYtZmxleC1qdXN0aWZ5OiAoXG4gICAgJ2xlZnQnOiBpZigkdGV4dC1kaXJlY3Rpb24gPT0gcnRsLCBmbGV4LWVuZCwgZmxleC1zdGFydCksXG4gICAgJ3JpZ2h0JzogaWYoJHRleHQtZGlyZWN0aW9uID09IHJ0bCwgZmxleC1zdGFydCwgZmxleC1lbmQpLFxuICAgICdjZW50ZXInOiBjZW50ZXIsXG4gICAgJ2p1c3RpZnknOiBzcGFjZS1iZXR3ZWVuLFxuICAgICdzcGFjZWQnOiBzcGFjZS1hcm91bmQsXG4gICk7XG5cbiAgQHJldHVybiAkLXpmLWZsZXgtanVzdGlmeTtcbn1cblxuXG4kLXpmLWZsZXgtYWxpZ246IChcbiAgJ3RvcCc6IGZsZXgtc3RhcnQsXG4gICdib3R0b20nOiBmbGV4LWVuZCxcbiAgJ21pZGRsZSc6IGNlbnRlcixcbiAgJ3N0cmV0Y2gnOiBzdHJldGNoLFxuKTtcblxuJC16Zi1mbGV4LWRpcmVjdGlvbjogKFxuICAncm93Jzogcm93LFxuICAncm93LXJldmVyc2UnOiByb3ctcmV2ZXJzZSxcbiAgJ2NvbHVtbic6IGNvbHVtbixcbiAgJ2NvbHVtbi1yZXZlcnNlJzogY29sdW1uLXJldmVyc2UsXG4pO1xuXG4vLy8gRW5hYmxlcyBmbGV4Ym94IGJ5IGFkZGluZyBgZGlzcGxheTogZmxleGAgdG8gdGhlIGVsZW1lbnQuXG5AbWl4aW4gZmxleCB7XG4gIGRpc3BsYXk6IGZsZXg7XG59XG5cbi8vLyBIb3Jpem9udGFsbHkgb3IgdmVydGljYWxseSBhbGlnbnMgdGhlIGl0ZW1zIHdpdGhpbiBhIGZsZXggY29udGFpbmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeCBbbnVsbF0gLSBIb3Jpem9udGFsIGFsaWdubWVudCB0byB1c2UuIENhbiBiZSBgbGVmdGAsIGByaWdodGAsIGBjZW50ZXJgLCBganVzdGlmeWAsIG9yIGBzcGFjZWRgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgaG9yaXpvbnRhbCBhbGlnbm1lbnQuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkeSBbbnVsbF0gLSBWZXJ0aWNhbCBhbGlnbm1lbnQgdG8gdXNlLiBDYW4gYmUgYHRvcGAsIGBib3R0b21gLCBgbWlkZGxlYCwgb3IgYHN0cmV0Y2hgLiBPciwgc2V0IGl0IHRvIGBudWxsYCAodGhlIGRlZmF1bHQpIHRvIG5vdCBzZXQgdmVydGljYWwgYWxpZ25tZW50LlxuQG1peGluIGZsZXgtYWxpZ24oJHg6IG51bGwsICR5OiBudWxsKSB7XG4gIEBpZiAkeCB7XG4gICAgQGlmIG1hcC1oYXMta2V5KCQtemYtZmxleC1qdXN0aWZ5LCAkeCkge1xuICAgICAgJHg6IG1hcC1nZXQoJC16Zi1mbGV4LWp1c3RpZnksICR4KTtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQHdhcm4gJ2ZsZXgtZ3JpZC1yb3ctYWxpZ24oKTogI3skeH0gaXMgbm90IGEgdmFsaWQgdmFsdWUgZm9yIGhvcml6b250YWwgYWxpZ25tZW50LiBVc2UgbGVmdCwgcmlnaHQsIGNlbnRlciwganVzdGlmeSwgb3Igc3BhY2VkLic7XG4gICAgfVxuICB9XG5cbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtcm93LWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciB2ZXJ0aWNhbCBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAganVzdGlmeS1jb250ZW50OiAkeDtcbiAgYWxpZ24taXRlbXM6ICR5O1xufVxuXG4vLy8gVmVydGljYWxseSBhbGlnbiBhIHNpbmdsZSBjb2x1bW4gd2l0aGluIGEgZmxleCByb3cuIEFwcGx5IHRoaXMgbWl4aW4gdG8gYSBmbGV4IGNvbHVtbi5cbi8vL1xuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHkgW251bGxdIC0gVmVydGljYWwgYWxpZ25tZW50IHRvIHVzZS4gQ2FuIGJlIGB0b3BgLCBgYm90dG9tYCwgYG1pZGRsZWAsIG9yIGBzdHJldGNoYC4gT3IsIHNldCBpdCB0byBgbnVsbGAgKHRoZSBkZWZhdWx0KSB0byBub3Qgc2V0IHZlcnRpY2FsIGFsaWdubWVudC5cbkBtaXhpbiBmbGV4LWFsaWduLXNlbGYoJHk6IG51bGwpIHtcbiAgQGlmICR5IHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJC16Zi1mbGV4LWFsaWduLCAkeSkge1xuICAgICAgJHk6IG1hcC1nZXQoJC16Zi1mbGV4LWFsaWduLCAkeSk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEB3YXJuICdmbGV4LWdyaWQtY29sdW1uLWFsaWduKCk6ICN7JHl9IGlzIG5vdCBhIHZhbGlkIHZhbHVlIGZvciBhbGlnbm1lbnQuIFVzZSB0b3AsIGJvdHRvbSwgbWlkZGxlLCBvciBzdHJldGNoLic7XG4gICAgfVxuICB9XG5cbiAgYWxpZ24tc2VsZjogJHk7XG59XG5cbi8vLyBDaGFuZ2VzIHRoZSBzb3VyY2Ugb3JkZXIgb2YgYSBmbGV4IGNoaWxkLiBDaGlsZHJlbiB3aXRoIGxvd2VyIG51bWJlcnMgYXBwZWFyIGZpcnN0IGluIHRoZSBsYXlvdXQuXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRvcmRlciBbMF0gLSBPcmRlciBudW1iZXIgdG8gYXBwbHkuXG5AbWl4aW4gZmxleC1vcmRlcigkb3JkZXI6IDApIHtcbiAgb3JkZXI6ICRvcmRlcjtcbn1cblxuLy8vIENoYW5nZSBmbGV4LWRpcmVjdGlvblxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJGRpcmVjdGlvbiBbcm93XSAtIEZsZXggZGlyZWN0aW9uIHRvIHVzZS4gQ2FuIGJlXG4vLy8gICAtIHJvdyAoZGVmYXVsdCk6IHNhbWUgYXMgdGV4dCBkaXJlY3Rpb25cbi8vLyAgIC0gcm93LXJldmVyc2U6IG9wcG9zaXRlIHRvIHRleHQgZGlyZWN0aW9uXG4vLy8gICAtIGNvbHVtbjogc2FtZSBhcyByb3cgYnV0IHRvcCB0byBib3R0b21cbi8vLyAgIC0gY29sdW1uLXJldmVyc2U6IHNhbWUgYXMgcm93LXJldmVyc2UgdG9wIHRvIGJvdHRvbVxuQG1peGluIGZsZXgtZGlyZWN0aW9uKCRkaXJlY3Rpb246IHJvdykge1xuICBmbGV4LWRpcmVjdGlvbjogJGRpcmVjdGlvbjtcbn1cbiIsIi8vIEZvdW5kYXRpb24gZm9yIFNpdGVzXG4vLyBodHRwczovL2dldC5mb3VuZGF0aW9uXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgT3BlbiBTb3VyY2VcblxuLy8vIEhpZGUgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBvbmx5IGRpc3BsYXlpbmcgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gc2hvdy1mb3IoJHNpemUpIHtcbiAgJHNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gIC8vIE1heCB2YWx1ZSBpcyAwLjJweCB1bmRlciB0aGUgbmV4dCBicmVha3BvaW50ICgwLjAyIC8gMTYgPSAwLjAwMTI1KS5cbiAgLy8gVXNlIGEgcHJlY2lzaW9uIHVuZGVyIDFweCB0byBzdXBwb3J0IGJyb3dzZXIgem9vbSwgYnV0IG5vdCB0byBsb3cgdG8gYXZvaWQgcm91bmRpbmcuXG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZm91bmRhdGlvbi9mb3VuZGF0aW9uLXNpdGVzL2lzc3Vlcy8xMTMxM1xuICAkc2l6ZTogLXpmLWJwLXRvLWVtKCRzaXplKSAtIDAuMDAxMjU7XG5cbiAgQGluY2x1ZGUgYnJlYWtwb2ludCgkc2l6ZSBkb3duKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBIaWRlIGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgb25seSBkaXNwbGF5aW5nIGl0IHdpdGhpbiBhIGNlcnRhaW4gYnJlYWtwb2ludC5cbi8vLyBAcGFyYW0ge0tleXdvcmR9ICRzaXplIC0gQnJlYWtwb2ludCB0byB1c2UuICoqTXVzdCBiZSBhIGJyZWFrcG9pbnQgZGVmaW5lZCBpbiBgJGJyZWFrcG9pbnRzYC4qKlxuQG1peGluIHNob3ctZm9yLW9ubHkoJHNpemUpIHtcbiAgJGxvd2VyLWJvdW5kLXNpemU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG4gICR1cHBlci1ib3VuZC1zaXplOiAtemYtbWFwLW5leHQoJGJyZWFrcG9pbnRzLCAkc2l6ZSk7XG5cbiAgLy8gbW9yZSBvZnRlbiB0aGFuIG5vdCB0aGlzIHdpbGwgYmUgY29ycmVjdCwganVzdCBvbmUgdGltZSByb3VuZCB0aGUgbG9vcCBpdCB3b24ndCBzbyBzZXQgaW4gc2NvcGUgaGVyZVxuICAkbG93ZXItYm91bmQ6IC16Zi1icC10by1lbSgkbG93ZXItYm91bmQtc2l6ZSkgLSAwLjAwMTI1O1xuICAvLyB0ZXN0IGFjdHVhbCBsb3dlci1ib3VuZC1zaXplLCBpZiAwIHNldCBpdCB0byAwZW1cbiAgQGlmIHN0cmlwLXVuaXQoJGxvd2VyLWJvdW5kLXNpemUpID09IDAge1xuICAgICRsb3dlci1ib3VuZDogLXpmLWJwLXRvLWVtKCRsb3dlci1ib3VuZC1zaXplKTtcbiAgfVxuXG4gIEBpZiAkdXBwZXItYm91bmQtc2l6ZSA9PSBudWxsIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAkbG93ZXItYm91bmQpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgICR1cHBlci1ib3VuZDogLXpmLWJwLXRvLWVtKCR1cHBlci1ib3VuZC1zaXplKTtcblxuICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6ICRsb3dlci1ib3VuZCksIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogJHVwcGVyLWJvdW5kKSB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG59XG5cblxuLy8vIFNob3cgYW4gZWxlbWVudCBieSBkZWZhdWx0LCBhbmQgaGlkZSBpdCBhYm92ZSBhIGNlcnRhaW4gc2NyZWVuIHNpemUuXG4vLy8gQHBhcmFtIHtLZXl3b3JkfSAkc2l6ZSAtIEJyZWFrcG9pbnQgdG8gdXNlLiAqKk11c3QgYmUgYSBicmVha3BvaW50IGRlZmluZWQgaW4gYCRicmVha3BvaW50c2AuKipcbkBtaXhpbiBoaWRlLWZvcigkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplKSB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICB9XG59XG5cbi8vLyBTaG93IGFuIGVsZW1lbnQgYnkgZGVmYXVsdCwgYW5kIGhpZGUgaXQgYWJvdmUgYSBjZXJ0YWluIHNjcmVlbiBzaXplLlxuLy8vIEBwYXJhbSB7S2V5d29yZH0gJHNpemUgLSBCcmVha3BvaW50IHRvIHVzZS4gKipNdXN0IGJlIGEgYnJlYWtwb2ludCBkZWZpbmVkIGluIGAkYnJlYWtwb2ludHNgLioqXG5AbWl4aW4gaGlkZS1mb3Itb25seSgkc2l6ZSkge1xuICBAaW5jbHVkZSBicmVha3BvaW50KCRzaXplIG9ubHkpIHtcbiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvdW5kYXRpb24tdmlzaWJpbGl0eS1jbGFzc2VzIHtcbiAgLy8gQmFzaWMgaGlkaW5nIGNsYXNzZXNcbiAgLmhpZGUge1xuICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgfVxuXG4gIC5pbnZpc2libGUge1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgfVxuICAudmlzaWJsZSB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgfVxuXG4gIC8vIFJlc3BvbnNpdmUgdmlzaWJpbGl0eSBjbGFzc2VzXG4gIEBlYWNoICRzaXplIGluICRicmVha3BvaW50LWNsYXNzZXMge1xuICAgIEBpZiAkc2l6ZSAhPSAkLXpmLXplcm8tYnJlYWtwb2ludCB7XG4gICAgICAuaGlkZS1mb3ItI3skc2l6ZX0ge1xuICAgICAgICBAaW5jbHVkZSBoaWRlLWZvcigkc2l6ZSk7XG4gICAgICB9XG5cbiAgICAgIC5zaG93LWZvci0jeyRzaXplfSB7XG4gICAgICAgIEBpbmNsdWRlIHNob3ctZm9yKCRzaXplKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuaGlkZS1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBoaWRlLWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG5cbiAgICAuc2hvdy1mb3ItI3skc2l6ZX0tb25seSB7XG4gICAgICBAaW5jbHVkZSBzaG93LWZvci1vbmx5KCRzaXplKTtcbiAgICB9XG4gIH1cblxuICAvLyBTY3JlZW4gcmVhZGVyIHZpc2liaWxpdHkgY2xhc3Nlc1xuICAvLyBOZWVkIGEgXCJoaWRlLWZvci1zclwiIGNsYXNzPyBBZGQgYXJpYS1oaWRkZW49J3RydWUnIHRvIHRoZSBlbGVtZW50XG4gIC5zaG93LWZvci1zcixcbiAgLnNob3ctb24tZm9jdXMge1xuICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlO1xuICB9XG5cbiAgLy8gT25seSBkaXNwbGF5IHRoZSBlbGVtZW50IHdoZW4gaXQncyBmb2N1c2VkXG4gIC5zaG93LW9uLWZvY3VzIHtcbiAgICAmOmFjdGl2ZSxcbiAgICAmOmZvY3VzIHtcbiAgICAgIEBpbmNsdWRlIGVsZW1lbnQtaW52aXNpYmxlLW9mZjtcbiAgICB9XG4gIH1cblxuICAvLyBMYW5kc2NhcGUgYW5kIHBvcnRyYWl0IHZpc2liaWxpdHlcbiAgLnNob3ctZm9yLWxhbmRzY2FwZSxcbiAgLmhpZGUtZm9yLXBvcnRyYWl0IHtcbiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChwb3J0cmFpdCkge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC5oaWRlLWZvci1sYW5kc2NhcGUsXG4gIC5zaG93LWZvci1wb3J0cmFpdCB7XG4gICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuXG4gICAgQGluY2x1ZGUgYnJlYWtwb2ludChsYW5kc2NhcGUpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBicmVha3BvaW50KHBvcnRyYWl0KSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIERhcmsgTW9kZSBWaXNpYmlsaXR5XG4gIC5zaG93LWZvci1kYXJrLW1vZGUge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmhpZGUtZm9yLWRhcmstbW9kZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gIH1cbiAgQG1lZGlhIHNjcmVlbiBhbmQgKHByZWZlcnMtY29sb3Itc2NoZW1lOiBkYXJrKSB7XG4gICAgLnNob3ctZm9yLWRhcmstbW9kZSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuaGlkZS1mb3ItZGFyay1tb2RlIHtcbiAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAvLyBJRTEwKyBWaXNpYmlsaXR5XG4gIC5zaG93LWZvci1pZSB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICBAbWVkaWEgYWxsIGFuZCAoLW1zLWhpZ2gtY29udHJhc3Q6IG5vbmUpLCAoLW1zLWhpZ2gtY29udHJhc3Q6IGFjdGl2ZSkge1xuICAgIC5zaG93LWZvci1pZSB7XG4gICAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50O1xuICAgIH1cbiAgICAuaGlkZS1mb3ItaWUge1xuICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0aWNreSBWaXNpYmlsaXR5XG4gIC5zaG93LWZvci1zdGlja3kge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgLmlzLXN0dWNrIC5zaG93LWZvci1zdGlja3kge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG4gIC5pcy1zdHVjayAuaGlkZS1mb3Itc3RpY2t5IHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG59XG4iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIGxheW91dC5zY3NzXG4gKlxuICogWW91ciBkZXNjcmlwdGlvblxuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHA6Ly93d3cuc2hvcnQtY3V0cy5kZVxuICpcbiAqIERhdGU6IDIwMTYtMTItMzFcbiAqIEF1dGhvcjogS2FpIFNlbGlnZXIgKGhlbGxvQHllc2pvYXIuY29tKVxuICogTUlUIExpY2Vuc2UgKE1JVClcbiAqL1xuXG5ib2R5IHtcblx0b3ZlcmZsb3cteDogaGlkZGVuO1xufVxuXG4uYmcge1xuXHQmLS1waW5rIHtcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiBjb2xvcigncGluaycpO1xuXHR9XG5cdCYtLXllbGxvdyB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogY29sb3IoJ3llbGxvdycpO1xuXHR9XG5cdCYtLXB1cnBsZSB7XG5cdFx0YmFja2dyb3VuZC1jb2xvcjogY29sb3IoJ3B1cnBsZScpO1xuXHR9XG5cdCYtLWJsdWUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6IGNvbG9yKCdibHVlJyk7XG5cdH1cbn1cblxuLmZnIHtcblx0Ji0td2hpdGUge1xuXHRcdC5wYWdlX190aXRsZSB7XG5cdFx0XHRjb2xvcjogI2ZmZjtcblx0XHR9XG5cblx0XHQuaGVhZGVyX18yMDI1IHBhdGgsXG5cdFx0LmhlYWRlcl9fbG9nbyBwYXRoIHtcblx0XHRcdGZpbGw6ICNmZmY7XG5cdFx0fVxuXHR9XG59XG5cblxuLnRleHQtcmlnaHQge1xuXHR0ZXh0LWFsaWduOiByaWdodDtcbn1cbi50ZXh0LWNlbnRlciB7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLndyYXBwZXIge1xuXHQ+IGRpdiB7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdHotaW5kZXg6IDE7XG5cdH1cbn1cblxuLnNsaXBwZXJhbmltYWwge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHotaW5kZXg6IC0xO1xuXHR0b3A6IDIwcHg7XG5cdGxlZnQ6IDUwJTtcblx0aGVpZ2h0OiBhdXRvO1xuXHRcblx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuXG5cdCYtLWJsdWUge1xuXHRcdHN2Zy5zbGlwcGVyYW5pbWFsIHBhdGgge1xuXHRcdFx0ZmlsbDogY29sb3IoJ2JsdWUnKTtcblx0XHR9XG5cdH1cblxuXHQmLS1wZWFjaCB7XG5cdFx0c3ZnLnNsaXBwZXJhbmltYWwgcGF0aCB7XG5cdFx0XHRmaWxsOiBjb2xvcigncGVhY2gnKTtcblx0XHR9XG5cdH1cblxuXHQmLS15ZWxsb3cge1xuXHRcdHN2Zy5zbGlwcGVyYW5pbWFsIHBhdGgge1xuXHRcdFx0ZmlsbDogY29sb3IoJ3llbGxvdycpO1xuXHRcdH1cblx0fVxuXG5cdCYtLWJsdWUtZGFyayB7XG5cdFx0c3ZnLnNsaXBwZXJhbmltYWwgcGF0aCB7XG5cdFx0XHRmaWxsOiBjb2xvcignYmx1ZS1kYXJrJyk7XG5cdFx0fVxuXHR9XG5cblx0Ji0tbWlycm9yZWQgc3ZnLnNsaXBwZXJhbmltYWwge1xuXHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSBzY2FsZVgoLTEpO1xuXHR9XG5cblx0Jl9fcHNldWRvIHtcblx0XHR3aWR0aDogMTAwJTtcblx0XHRoZWlnaHQ6IGNhbGMoMTAwJSk7XG5cdFx0YXNwZWN0LXJhdGlvOiAxO1xuXHRcdG1heC13aWR0aDogOTE2cHg7XG5cdFx0bWFyZ2luOiAwIGF1dG8gMDtcblx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cblx0XHRtYXJnaW46IDIwcHggYXV0byAwO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcblx0XHRcdG1hcmdpbjogLTUwcHggYXV0byAwO1xuXHRcdH1cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRhc3BlY3QtcmF0aW86IDI7XG5cdFx0XHRtYXJnaW4tdG9wOiAzMHB4O1xuXHRcdH1cblx0fVxuXG5cdCZfX3BzZXVkby10ZXh0IHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0ei1pbmRleDogMTtcblx0XHRsZWZ0OiA1MCU7XG5cdFx0dG9wOiA1MCU7XG5cblx0XHRtYXgtd2lkdGg6IDkxNnB4O1xuXHRcdHdpZHRoOiA5MHZ3O1xuXG5cdFx0dHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XG5cdH1cblxufVxuXG4ubWFpbiB7XG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ei1pbmRleDogMTtcblx0cGFkZGluZzogcmVtLWNhbGMoIDAgMCAxODAgMCk7XG59XG5cbi5wYWdlX190aXRsZSB7XG5cdFxufVxuXG4ucm93IHtcblx0Ji0tY29sb3JlZCB7XG5cdFx0cGFkZGluZy10b3A6IDQwcHg7XG5cdFx0cGFkZGluZy1ib3R0b206IDQwcHg7XG5cdH1cblxuXHQmLS13aGl0ZSB7XG5cdFx0YmFja2dyb3VuZDogI2ZmZjtcblx0fVxufVxuXG5cbm9sIHtcblx0bGkge1xuXHRcdG1hcmdpbi1sZWZ0OiAxNXB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDI1cHg7XG5cdH1cbn0iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIHR5cG8uc2Nzc1xuICpcbiAqIFlvdXIgZGVzY3JpcHRpb25cbiAqXG4gKiBDb3B5cmlnaHQgU0hPUlQgQ1VUUyBHbWJIXG4gKiBodHRwOi8vd3d3LnNob3J0LWN1dHMuZGVcbiAqXG4gKiBEYXRlOiAyMDE2LTEyLTMxXG4gKiBBdXRob3I6IEthaSBTZWxpZ2VyIChoZWxsb0B5ZXNqb2FyLmNvbSlcbiAqIE1JVCBMaWNlbnNlIChNSVQpXG4gKi9cblxuXG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdFdlYmZvbnRzXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbkBmb250LWZhY2Uge1xuXHRmb250LWRpc3BsYXk6IHN3YXA7XG5cdGZvbnQtZmFtaWx5OiBcIml2eW1vZGVcIiwgc2Fucy1zZXJpZjtcblx0Zm9udC13ZWlnaHQ6IDcwMDtcblx0Zm9udC1zdHlsZTogbm9ybWFsO1xufVxuXG5AZm9udC1mYWNlIHtcblx0Zm9udC1kaXNwbGF5OiBzd2FwO1xuXHRmb250LWZhbWlseTogXCJhZGVscGhpLXBlLXZhcmlhYmxlXCIsIHNhbnMtc2VyaWY7XG5cdGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzOiBcIm9wc3pcIiA2LCBcInNsbnRcIiAwLCBcIndnaHRcIiA0MDA7XG59XG5cbkBmb250LWZhY2Uge1xuXHRmb250LWRpc3BsYXk6IHN3YXA7XG5cdGZvbnQtZmFtaWx5OiBcImFkZWxwaGktcGUtdmFyaWFibGVcIiwgc2Fucy1zZXJpZjtcblx0Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6IFwib3BzelwiIDYsIFwic2xudFwiIDAsIFwid2dodFwiIDUwMDtcbn1cblxuXG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblx0R2xvYmFsIFR5cG8gU3R5bGVzXG5cdD09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbmJvZHkge1xuXHRmb250LXZhcmlhdGlvbi1zZXR0aW5nczogXCJvcHN6XCIgNiwgXCJzbG50XCIgMCwgXCJ3Z2h0XCIgNDAwO1xuXHRoeXBoZW5zOiBhdXRvO1xuXHRoeXBoZW5hdGUtbGltaXQtY2hhcnM6IDggNDtcbn1cblxucCwgbWFpbiBsaSB7XG5cdGZvbnQtc2l6ZTogMjRweDtcblx0bGluZS1oZWlnaHQ6IDEuMjU7XG5cdEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG5cdFx0Zm9udC1zaXplOiAzMnB4O1xuXHR9XG59XG5cbm1haW4ge1xuXHRhe1xuXHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuXHRcdGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXHR9XG59XG5cbmgxLFxuLmgxIHtcbn1cblxuaDIsXG4uaDIge1xuXG59XG5cbmgzLFxuLmgzIHtcblxufVxuXG5oNCxcbi5oNCB7XG5cbn1cblxuaDUsXG4uaDUge1xuXG59XG5cblxuLnRleHQge1xuXHQmLS13aGl0ZSB7XG5cdFx0Y29sb3I6ICNmZmY7XG5cdH1cbn1cbiIsIkBjaGFyc2V0IFwidXRmLThcIjtcbi8qKlxuICogaWNvbi1mb250LnNjc3NcbiAqXG4gKiBZb3VyIGRlc2NyaXB0aW9uXG4gKlxuICogQ29weXJpZ2h0IFNIT1JUIENVVFMgR21iSFxuICogaHR0cDovL3d3dy5zaG9ydC1jdXRzLmRlXG4gKlxuICogRGF0ZTogMjAxNi0xMi0zMVxuICogQXV0aG9yOiBLYWkgU2VsaWdlciAoaGVsbG9AeWVzam9hci5jb20pXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG5cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEljb24gRm9udCBzZXR0aW5nc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cblxuQGZvbnQtZmFjZSB7XG5cdGZvbnQtZmFtaWx5OiBcImZvbnRlbGxvXCI7XG5cdHNyYzogdXJsKFwiLi4vZm9udHMvaWNvbmZvbnQvZm9udGVsbG8uZW90XCIpO1xuXHRzcmM6IHVybChcIi4uL2ZvbnRzL2ljb25mb250L2ZvbnRlbGxvLmVvdD8jaWVmaXhcIikgZm9ybWF0KFwiZW1iZWRkZWQtb3BlbnR5cGVcIiksXG5cdFx0IHVybChcIi4uL2ZvbnRzL2ljb25mb250L2ZvbnRlbGxvLndvZmZcIikgZm9ybWF0KFwid29mZlwiKSxcblx0XHQgdXJsKFwiLi4vZm9udHMvaWNvbmZvbnQvZm9udGVsbG8udHRmXCIpIGZvcm1hdChcInRydWV0eXBlXCIpLFxuXHRcdCB1cmwoXCIuLi9mb250cy9pY29uZm9udC9mb250ZWxsby5zdmcjZm9udGVsbG9cIikgZm9ybWF0KFwic3ZnXCIpO1xuXHRmb250LXdlaWdodDogbm9ybWFsO1xuXHRmb250LXN0eWxlOiBub3JtYWw7XG59XG5cbiV1dGlsLWljb24ge1xuXHRmb250LWZhbWlseTogXCJmb250ZWxsb1wiICFpbXBvcnRhbnQ7XG5cdGZvbnQtc3R5bGU6IG5vcm1hbCAhaW1wb3J0YW50O1xuXHRmb250LXdlaWdodDogbm9ybWFsICFpbXBvcnRhbnQ7XG5cdGZvbnQtdmFyaWFudDogbm9ybWFsICFpbXBvcnRhbnQ7XG5cdHRleHQtdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG5cdHNwZWFrOiBub25lO1xuXHRsaW5lLWhlaWdodDogMTtcblx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbi51dGlsLWljb24tLWJlZm9yZTpiZWZvcmUsXG4udXRpbC1pY29uLS1hZnRlcjphZnRlciB7XG5cdEBleHRlbmQgJXV0aWwtaWNvbjtcbn1cblxuQGVhY2ggJG5hbWUsICRjaGFyIGluICRpY29ucyB7XG5cdC51dGlsLWljb24tLWJlZm9yZS51dGlsLWljb24tLSN7JG5hbWV9OmJlZm9yZSxcblx0LnV0aWwtaWNvbi0tYWZ0ZXIudXRpbC1pY29uLS0jeyRuYW1lfTphZnRlciB7XG5cdFx0Y29udGVudDogJGNoYXI7XG5cdH1cbn0iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIGhlYWRlci5zY3NzXG4gKlxuICogWW91ciBkZXNjcmlwdGlvblxuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHA6Ly93d3cuc2hvcnQtY3V0cy5kZVxuICpcbiAqIERhdGU6IDIwMTYtMTItMzFcbiAqIEF1dGhvcjogS2FpIFNlbGlnZXIgKHNlbGlnZXJAc2hvcnQtY3V0cy5kZSlcbiAqIE1JVCBMaWNlbnNlIChNSVQpXG4gKi9cblxuQGltcG9ydCAnLi4vLi4vc2Fzcy9wYXJ0aWFscy9mdW5jdGlvbnMnO1xuQGltcG9ydCAnLi4vLi4vc2Fzcy9wYXJ0aWFscy92YXJpYWJsZXMnO1xuQGltcG9ydCAnLi4vLi4vc2Fzcy9wYXJ0aWFscy9taXhpbnMnO1xuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSGVhZGVyXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4kY29tcG9uZW50OiAnLmhlYWRlcic7XG5cbi8vIGJsb2NrXG4jeyRjb21wb25lbnR9IHtcbiAgIG1hcmdpbi10b3A6IDQwcHg7XG5cbiAgID4gLnJvdyB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICB6LWluZGV4OiAxO1xuICAgfVxuXG4gICAmX18yMDI1IHtcbiAgICAgIHdpZHRoOjQ5cHggLyA3OHB4ICogNTBweDsgXG4gICAgICBoZWlnaHQ6IDUwcHg7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgIHdpZHRoOiA0OXB4O1xuICAgICAgICAgaGVpZ2h0OiA3OHB4O1xuICAgICAgfVxuICAgfSBcbiAgIFxuICAgJl9fbG9nbyB7XG4gICAgICB3aWR0aDogMjUwcHg7XG4gICAgICBoZWlnaHQ6IDY1cHg7XG5cbiAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobGFyZ2UpIHtcbiAgICAgICAgIHdpZHRoOiAzMjVweDtcbiAgICAgICAgIGhlaWdodDogODguNjI5cHg7XG4gICAgICB9XG4gICB9XG59XG5cblxuLy8gZWxlbWVudFxuXG5cbi8vIG1vZGlmaWVyXG5cbiIsIkBjaGFyc2V0IFwidXRmLThcIjtcbi8qKlxuICogZm9vdGVyLnNjc3NcbiAqXG4gKiBZb3VyIGRlc2NyaXB0aW9uXG4gKlxuICogQ29weXJpZ2h0IFNIT1JUIENVVFMgR21iSFxuICogaHR0cDovL3d3dy5zaG9ydC1jdXRzLmRlXG4gKlxuICogRGF0ZTogMjAxNi0xMi0zMVxuICogQXV0aG9yOiBLYWkgU2VsaWdlciAoc2VsaWdlckBzaG9ydC1jdXRzLmRlKVxuICogTUlUIExpY2Vuc2UgKE1JVClcbiAqL1xuXG5AaW1wb3J0ICcuLi8uLi9zYXNzL3BhcnRpYWxzL2Z1bmN0aW9ucyc7XG5AaW1wb3J0ICcuLi8uLi9zYXNzL3BhcnRpYWxzL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi8uLi9zYXNzL3BhcnRpYWxzL21peGlucyc7XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBGb290ZXJcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG5cbiRjb21wb25lbnQ6ICcuZm9vdGVyJztcblxuLy8gYmxvY2tcbiN7JGNvbXBvbmVudH0ge1xuICAgYmFja2dyb3VuZDogIzAwMDtcbiAgIHBhZGRpbmc6IDQwcHg7XG5cbiAgID4gLnJvdyB7XG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSl7XG4gICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgfVxuICAgfVxuXG4gICAmX19jb2x1bW4ge1xuICAgICAgJi0tbG9nbyB7XG4gICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgfVxuICAgfVxuXG4gICAmX19sb2dvIHtcbiAgICAgIHdpZHRoOjI1OXB4O1xuICAgICAgaGVpZ2h0OiAyMnB4O1xuXG4gICAgICBAaW5jbHVkZSBicmVha3BvaW50KHhsYXJnZSl7XG4gICAgICAgICB3aWR0aDogMjQwcHg7XG4gICAgICAgICBoZWlnaHQ6IDIwcHg7XG4gICAgICB9XG4gICB9XG59XG4iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIG5hdi1tYWluLnNjc3NcbiAqXG4gKiBZb3VyIGRlc2NyaXB0aW9uXG4gKlxuICogQ29weXJpZ2h0IFNIT1JUIENVVFMgR21iSFxuICogaHR0cDovL3d3dy5zaG9ydC1jdXRzLmRlXG4gKlxuICogRGF0ZTogMjAxNi0xMi0zMVxuICogQXV0aG9yOiBLYWkgU2VsaWdlciAoc2VsaWdlckBzaG9ydC1jdXRzLmRlKVxuICogTUlUIExpY2Vuc2UgKE1JVClcbiAqL1xuXG5AaW1wb3J0ICcuLi8uLi9zYXNzL3BhcnRpYWxzL2Z1bmN0aW9ucyc7XG5AaW1wb3J0ICcuLi8uLi9zYXNzL3BhcnRpYWxzL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICcuLi8uLi9zYXNzL3BhcnRpYWxzL21peGlucyc7XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cdE1haW4gTmF2aWdhdGlvblxuXHQ9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuXG4kY29tcG9uZW50OiAnLm5hdi1tYWluJztcblxuLy8gYmxvY2tcbiN7JGNvbXBvbmVudH0ge1xuXG5cdCZfX3NtYWxsLXdyYXBwZXIge1xuXHRcdGJvcmRlci1yYWRpdXM6IDEwcHg7XG5cdFx0YmFja2dyb3VuZDogI0ZGRjtcblx0XHRib3gtc2hhZG93OiAwcHggMnB4IDZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcblx0XHR3aWR0aDogNDBweDtcblx0XHRoZWlnaHQ6IDM4cHg7XG5cdFx0cGFkZGluZzogMTBweCA1cHg7XG5cdFx0bWFyZ2luLXRvcDogMjVweDtcblx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRcdG1hcmdpbjogMCBhdXRvO1xuXHRcdG92ZXJmbG93OiBoaWRkZW47XG5cdFx0dHJhbnNpdGlvbjogd2lkdGggLjZzIGVhc2UtaW4tb3V0LCBoZWlnaHQgLjZzIGVhc2UtaW4tb3V0O1xuXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cblx0XHQmLS1vcGVuZWQge1xuXHRcdFx0d2lkdGg6IDgwdnc7XG5cdFx0XHRoZWlnaHQ6IDQwMHB4O1xuXHRcdH1cblx0fVxuXG5cdCZfX3RyaWdnZXIge1xuXHRcdHdpZHRoOiByZW0tY2FsYygxNy41KTtcblx0XHRoZWlnaHQ6IHJlbS1jYWxjKDE0LjQpO1xuXHRcdGN1cnNvcjogcG9pbnRlcjtcblx0XHR6LWluZGV4OiAyMDtcblxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6ICgzOHB4IC0gMTQuNHB4KS8yO1xuXHRcdGxlZnQ6IDUwJTtcblx0XHR0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSk7XG5cdH1cblxuXHQkdHJpZ2dlci1taWRkbGU6IHJlbS1jYWxjKDE0LjQvMi0xKTtcblxuXHQmX190cmlnZ2VyLWxpbmUge1xuXHRcdGJhY2tncm91bmQtY29sb3I6ICRib2R5LWZvbnQtY29sb3I7XG5cdFx0d2lkdGg6IDEwMCU7XG5cdFx0aGVpZ2h0OiByZW0tY2FsYygyKTtcblx0XHRib3JkZXItcmFkaXVzOiAkZ2xvYmFsLXJhZGl1cztcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0bGVmdDogMDtcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOiBjZW50ZXI7XG5cblx0XHQmLS0xIHtcblx0XHRcdHRvcDogMDtcblx0XHRcdHRyYW5zaXRpb246IHRvcCAuMTVzIC4xNXMgZWFzZS1pbi1vdXQsIHRyYW5zZm9ybSAuMTVzIGVhc2UtaW4tb3V0O1xuXG5cdFx0XHQubmF2LW1haW5fX3RyaWdnZXItLWNyb3NzZWQgJiB7XG5cdFx0XHRcdHRvcDogJHRyaWdnZXItbWlkZGxlO1xuXHRcdFx0XHR0cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZyk7XG5cdFx0XHRcdHRyYW5zaXRpb246IHRvcCAuMTVzIGVhc2UtaW4tb3V0LCB0cmFuc2Zvcm0gLjE1cyAuMTVzIGVhc2UtaW4tb3V0O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYtLTIge1xuXHRcdFx0dG9wOiAkdHJpZ2dlci1taWRkbGU7XG5cdFx0XHRvcGFjaXR5OiAxO1xuXHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAuMTVzIC4xNXMgZWFzZS1pbi1vdXQ7XG5cblx0XHRcdC5uYXYtbWFpbl9fdHJpZ2dlci0tY3Jvc3NlZCAmIHtcblx0XHRcdFx0b3BhY2l0eTogMDtcblx0XHRcdFx0dHJhbnNpdGlvbjogb3BhY2l0eSAuMTVzIDBzIGVhc2UtaW4tb3V0O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdCYtLTMge1xuXHRcdFx0Ym90dG9tOiAwO1xuXHRcdFx0dHJhbnNpdGlvbjogYm90dG9tIC4xNXMgLjE1cyBlYXNlLWluLW91dCwgdHJhbnNmb3JtIC4xNXMgZWFzZS1pbi1vdXQ7XG5cblx0XHRcdC5uYXYtbWFpbl9fdHJpZ2dlci0tY3Jvc3NlZCAmIHtcblx0XHRcdFx0Ym90dG9tOiAkdHJpZ2dlci1taWRkbGU7XG5cdFx0XHRcdHRyYW5zZm9ybTogcm90YXRlKC00NWRlZyk7XG5cdFx0XHRcdHRyYW5zaXRpb246IGJvdHRvbSAuMTVzIGVhc2UtaW4tb3V0LCB0cmFuc2Zvcm0gLjE1cyAuMTVzIGVhc2UtaW4tb3V0O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdCZfX2xpc3Qge1xuXHRcdHBhZGRpbmc6IDA7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdFx0ZGlzcGxheTogZmxleDtcblx0XHRmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuXHRcdGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5cdFx0bWFyZ2luLXRvcDogcmVtLWNhbGMoNDAgKyAyMCk7XG5cdFx0Z2FwOiByZW0tY2FsYyg0MCk7XG5cblx0XHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKSB7XG5cdFx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG5cdFx0XHRhbGlnbi1pdGVtczogY2VudGVyO1xuXHRcdFx0bWFyZ2luLXRvcDogMjVweDtcblx0XHR9XG5cdH1cblxuXHQmX19pdGVtIHtcblx0fVxuXG5cdCZfX2xpbmsge1xuXHRcdHdpZHRoOiAxNTBweDtcblx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRmb250LXZhcmlhdGlvbi1zZXR0aW5nczogXCJvcHN6XCIgNiwgXCJzbG50XCIgMCwgXCJ3Z2h0XCIgNTAwO1xuXG5cdFx0Ji0tYWN0aXZlIHtcblx0XHRcdHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHRcdCY6aG92ZXIge1xuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG5cdFx0fVxuXHR9XG59XG4iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIG5hdi1mb290ZXIuc2Nzc1xuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHBzOi8vd3d3LnNob3J0LWN1dHMuZGUvXG4gKlxuICogRGF0ZTogMjAyNS0wMS0xMVxuICogQXV0aG9yOiByaWNvICgqQHNob3J0LWN1dHMuZGUpXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG5cbkBpbXBvcnQgJy4uLy4uL3Nhc3MvcGFydGlhbHMvZnVuY3Rpb25zJztcbkBpbXBvcnQgJy4uLy4uL3Nhc3MvcGFydGlhbHMvdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uLy4uL3Nhc3MvcGFydGlhbHMvbWl4aW5zJztcblxuJGNvbXBvbmVudDogJy5uYXYtZm9vdGVyJztcblxuLy8gYmxvY2tcbiN7JGNvbXBvbmVudH0ge1xuXHRtYXJnaW46IDMycHggMCAwIDA7XG5cdHBhZGRpbmc6IDA7XG5cdGxpc3Qtc3R5bGU6IG5vbmU7XG5cdGRpc3BsYXk6IGZsZXg7XG5cdGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cdGdhcDogNDBweDtcblx0YWxpZ24taXRlbXM6IGNlbnRlcjtcblxuXHRAaW5jbHVkZSBicmVha3BvaW50KGxhcmdlKXtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0XG5cdH1cblxuXHRAaW5jbHVkZSBicmVha3BvaW50KHh4bGFyZ2Upe1xuXHRcdG1hcmdpbjogMDtcblx0fVxuXG5cdCYtLXJpZ2h0IHtcblx0XHRmbGV4LWRpcmVjdGlvbjogcm93O1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG5cdFx0QGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2Upe1xuXHRcdFx0anVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcblx0XHR9XG5cdH1cblxuXHQmLS1jZW50ZXIge1xuXHRcdGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKXtcblx0XHRcdGZsZXgtZGlyZWN0aW9uOiByb3c7XG5cdFx0fVxuXHR9XG5cblx0Jl9fbGluayB7XG5cdFx0Zm9udC1zaXplOiAxOHB4O1xuXHRcdGZvbnQtc3R5bGU6IG5vcm1hbDtcblx0XHR3aWR0aDogMTUwcHg7XG5cdFx0Zm9udC12YXJpYXRpb24tc2V0dGluZ3M6IFwib3BzelwiIDYsIFwic2xudFwiIDAsIFwid2dodFwiIDQwMDtcblxuXHRcdGJvcmRlcjogMXB4IHNvbGlkICNmZmY7XG5cblx0fVxufVxuIiwiQGNoYXJzZXQgXCJ1dGYtOFwiO1xuLyoqXG4gKiBidXR0b24uc2Nzc1xuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHBzOi8vd3d3LnNob3J0LWN1dHMuZGUvXG4gKlxuICogRGF0ZTogMjAyNS0wMS0xMlxuICogQXV0aG9yOiByaWNvICgqQHNob3J0LWN1dHMuZGUpXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG5cbkBpbXBvcnQgJy4uLy4uL3Nhc3MvcGFydGlhbHMvZnVuY3Rpb25zJztcbkBpbXBvcnQgJy4uLy4uL3Nhc3MvcGFydGlhbHMvdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uLy4uL3Nhc3MvcGFydGlhbHMvbWl4aW5zJztcblxuJGNvbXBvbmVudDogJy5idXR0b24nO1xuXG4vLyBibG9ja1xuI3skY29tcG9uZW50fSB7XG5cdGRpc3BsYXk6IGlubGluZS1ibG9jaztcblx0Y29sb3I6ICMwMDA7XG5cdHRleHQtZGVjb3JhdGlvbjogbm9uZTtcblxuXHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cblx0Ym9yZGVyLXJhZGl1czogNTBweDtcblx0Ym94LXNoYWRvdzogMHB4IDJweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG5cblx0bGluZS1oZWlnaHQ6IDEuMjtcblx0cGFkZGluZzogNXB4O1xuXG5cdHRyYW5zaXRpb246IGJhY2tncm91bmQgLjNzIGVhc2UtaW4tb3V0LCBjb2xvciAuM3MgZWFzZS1pbi1vdXQ7XG5cblxuXHQmLS1wcmltYXJ5IHtcblx0XHRjb2xvcjogIzAwMDtcblx0XHRiYWNrZ3JvdW5kOiAjRkZGO1xuXG5cdFx0Jjpob3ZlciB7XG5cdFx0XHRiYWNrZ3JvdW5kOiAjMDAwO1xuXHRcdFx0Y29sb3I6ICNGRkY7XG5cdFx0fVxuXHR9XG5cblx0Ji0tbGFyZ2Uge1xuXHRcdHdpZHRoOiAzNDBweDsgXG5cdFx0Zm9udC1zaXplOiAyNHB4O1xuXHR9XG5cblx0Ji0taW52ZXJ0ZWQge1xuXHRcdGJhY2tncm91bmQ6ICMwMDA7XG5cdFx0Y29sb3I6ICNGRkY7XG5cblx0XHQmOmhvdmVyIHtcblx0XHRcdGNvbG9yOiAjMDAwO1xuXHRcdFx0YmFja2dyb3VuZDogI0ZGRjtcblx0XHR9XG5cdH1cblxufVxuIiwiQGNoYXJzZXQgXCJ1dGYtOFwiO1xuLyoqXG4gKiBhY2NvcmRpb24uc2Nzc1xuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHBzOi8vd3d3LnNob3J0LWN1dHMuZGUvXG4gKlxuICogRGF0ZTogMjAyNS0wMS0xMlxuICogQXV0aG9yOiByaWNvICgqQHNob3J0LWN1dHMuZGUpXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG5cbkBpbXBvcnQgJy4uLy4uL3Nhc3MvcGFydGlhbHMvZnVuY3Rpb25zJztcbkBpbXBvcnQgJy4uLy4uL3Nhc3MvcGFydGlhbHMvdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uLy4uL3Nhc3MvcGFydGlhbHMvbWl4aW5zJztcblxuJGNvbXBvbmVudDogJy5hY2NvcmRpb24nO1xuXG4vLyBibG9ja1xuI3skY29tcG9uZW50fSB7XG5cdCZfX2l0ZW0ge1xuXHRcdGJhY2tncm91bmQ6ICNGRkY7XG5cdFx0XG5cdFx0cGFkZGluZzogMTVweCA0MHB4IDIwcHggNDBweDtcblx0XHRib3JkZXItcmFkaXVzOiAyNXB4O1xuXG5cdFx0Y3Vyc29yOiBwb2ludGVyO1xuXHRcdHBvc2l0aW9uOiByZWxhdGl2ZTtcblxuXHRcdCYgKyAmIHtcblx0XHRcdG1hcmdpbi10b3A6IDgwcHg7XG5cdFx0fVxuXHR9XG5cblx0Jl9fdGl0bGUge1xuXHRcdGNvbG9yOiAkYm9keS1mb250LWNvbG9yO1xuXHRcdGZvbnQtZmFtaWx5OiAkaGVhZGVyLWZvbnQtZmFtaWx5O1xuXG5cdFx0Zm9udC1zaXplOiAzMnB4O1xuXHRcdEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG5cdFx0XHRmb250LXNpemU6IDQ1cHg7XG5cdFx0fVxuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdH1cblxuXHQmX19pY29ue1xuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHRyaWdodDogNDRweDtcblx0XHR0b3A6IDQ1cHg7XG5cdFx0XG5cdFx0d2lkdGg6IDE0cHg7XG5cdFx0aGVpZ2h0OiA5cHg7XG5cdFx0XG5cdFx0YmFja2dyb3VuZC1pbWFnZTogdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScxNCcgaGVpZ2h0PSc5JyBmaWxsPSdub25lJyUzRSUzQ3BhdGggc3Ryb2tlPSclMjMwMDAnIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCcgc3Ryb2tlLXdpZHRoPScyJyBkPSdtMTMgMS41LTYgNi02LTYnLyUzRSUzQy9zdmclM0VcIik7XG5cblx0XHR0cmFuc2l0aW9uOiBhbGwgMC4zcyBlYXNlLWluLW91dDtcblxuXHRcdC5hY2NvcmRpb24tLW9wZW4gJntcblx0XHRcdHRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7XG5cdFx0fVxuXHR9XG5cblx0Jl9fY29udGVudCB7XG5cdFx0bWFyZ2luLXRvcDogMjBweDtcblxuXHRcdGgxLGgyLGgzLGg0LGg1LGg2IHtcblx0XHRcdG1hcmdpbi10b3A6IDQwcHg7XG5cdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXHRcdH1cblx0fVxufVxuXG4iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIGp1cnkuc2Nzc1xuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHBzOi8vd3d3LnNob3J0LWN1dHMuZGUvXG4gKlxuICogRGF0ZTogMjAyNS0wMS0xMlxuICogQXV0aG9yOiByaWNvICgqQHNob3J0LWN1dHMuZGUpXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG5cbkBpbXBvcnQgJy4uLy4uL3Nhc3MvcGFydGlhbHMvZnVuY3Rpb25zJztcbkBpbXBvcnQgJy4uLy4uL3Nhc3MvcGFydGlhbHMvdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uLy4uL3Nhc3MvcGFydGlhbHMvbWl4aW5zJztcblxuJGNvbXBvbmVudDogJy5qdXJ5JztcblxuLy8gYmxvY2tcbiN7JGNvbXBvbmVudH0ge1xuICAgICZfX2l0ZW0ge1xuICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuXG4gICAgICAgICYgKyAmIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IHJlbS1jYWxjKDQwKTtcbiAgICAgICAgfVxuICAgICAgICBcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICAgICAgICAmLS1pbWFnZS1yaWdodCB7XG4gICAgICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdy1yZXZlcnNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi0tcGVhY2gge1xuICAgICAgICAgICAgLmp1cnlfX2ltYWdlLWlubmVyIHsgYmFja2dyb3VuZDogY29sb3IoJ3BlYWNoJykgfVxuICAgICAgICAgICAgc3ZnIHBhdGggeyBmaWxsOiBjb2xvcigncGVhY2gnKSB9XG4gICAgICAgIH0gXG4gICAgICAgICYtLXB1cnBsZSB7XG4gICAgICAgICAgICAuanVyeV9faW1hZ2UtaW5uZXIgeyBiYWNrZ3JvdW5kOiBjb2xvcigncHVycGxlJykgfVxuICAgICAgICAgICAgc3ZnIHBhdGggIHsgZmlsbDogY29sb3IoJ3B1cnBsZScpIH1cbiAgICAgICAgfSBcbiAgICAgICAgJi0teWVsbG93IHtcbiAgICAgICAgICAgIC5qdXJ5X19pbWFnZS1pbm5lciB7IGJhY2tncm91bmQ6IGNvbG9yKCd5ZWxsb3cnKSB9XG4gICAgICAgICAgICBzdmcgcGF0aCB7IGZpbGw6IGNvbG9yKCd5ZWxsb3cnKSB9XG4gICAgICAgIH0gXG5cbiAgICB9XG5cbiAgICAmX19pbWFnZSB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgXG4gICAgICAgIHBhZGRpbmc6IDAgMTBweDtcbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludChtZWRpdW0pIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMCBwZXJjZW50YWdlKDEvMik7XG4gICAgICAgIH1cbiAgICAgICAgQGluY2x1ZGUgYnJlYWtwb2ludCh4bGFyZ2UpIHtcbiAgICAgICAgICAgIGZsZXg6IDEgMCBwZXJjZW50YWdlKDEvMyk7XG4gICAgICAgIH1cblxuICAgICAgICAmLWlubmVyIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICZfX3NsaXBwZXJhbmltYWwge1xuICAgICAgICB6LWluZGV4OiAxO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIHRvcDogNTAlO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG5cbiAgICB9XG4gICAgJl9faW1nIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgICAgICBsZWZ0OiAwO1xuICAgICAgICAgICAgei1pbmRleDogMDtcbiAgICAgICAgICAgIGFzcGVjdC1yYXRpbzogNDQ2IC8gNTIwO1xuICAgICAgICAgICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgICAgICAgICBvYmplY3QtcG9zaXRpb246IGNlbnRlcjtcbiAgICAgICAgICAgIC8vIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMCUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJl9fcm9sZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogcmVtLWNhbGMoMzIpO1xuICAgICAgICBsaW5lLWhlaWdodDogMS4yNTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoMTApO1xuICAgIH1cblxuICAgICZfX25hbWUge1xuICAgICAgICBsaW5lLWhlaWdodDogMS4xMTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogcmVtLWNhbGMoNSk7XG4gICAgfVxuXG4gICAgaHIge1xuICAgICAgICBtYXJnaW46IDEwcHggMDtcbiAgICB9XG5cbiAgICAmX190ZXh0IHtcbiAgICAgICAgcGFkZGluZzogMCAxMHB4O1xuICAgICAgICAmLWlubmVyIHtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHdoaXRlO1xuICAgICAgICAgICAgcGFkZGluZzogcmVtLWNhbGMoNDApO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQobWVkaXVtKSB7XG4gICAgICAgICAgICBmbGV4OiAxIDAgcGVyY2VudGFnZSgxLzIpO1xuICAgICAgICB9XG4gICAgICAgIEBpbmNsdWRlIGJyZWFrcG9pbnQoeGxhcmdlKSB7XG4gICAgICAgICAgICBmbGV4OiAxIDAgcGVyY2VudGFnZSgyLzMpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9udC1zaXplOiByZW0tY2FsYygxOCk7XG5cbiAgICAgICAgcCB7XG4gICAgICAgICAgICBoeXBoZW5zOiBhdXRvO1xuICAgICAgICAgICAgZm9udC1zaXplOiBpbmhlcml0O1xuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIGVsZW1lbnRcblxuXG4vLyBtb2RpZmllclxuXG4iLCJAY2hhcnNldCBcInV0Zi04XCI7XG4vKipcbiAqIHBvc3Quc2Nzc1xuICpcbiAqIENvcHlyaWdodCBTSE9SVCBDVVRTIEdtYkhcbiAqIGh0dHBzOi8vd3d3LnNob3J0LWN1dHMuZGUvXG4gKlxuICogRGF0ZTogMjAyNS0wMS0xNVxuICogQXV0aG9yOiByaWNvICgqQHNob3J0LWN1dHMuZGUpXG4gKiBNSVQgTGljZW5zZSAoTUlUKVxuICovXG5cbkBpbXBvcnQgJy4uLy4uL3Nhc3MvcGFydGlhbHMvZnVuY3Rpb25zJztcbkBpbXBvcnQgJy4uLy4uL3Nhc3MvcGFydGlhbHMvdmFyaWFibGVzJztcbkBpbXBvcnQgJy4uLy4uL3Nhc3MvcGFydGlhbHMvbWl4aW5zJztcblxuJGNvbXBvbmVudDogJy5wb3N0JztcblxuLy8gYmxvY2tcbiN7JGNvbXBvbmVudH0ge1xuXHQmX19kYXRlIHtcblx0XHRmb250LXNpemU6IHJlbS1jYWxjKDE4KTtcblx0XHRjb2xvcjogIzdEN0Q3RDtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHR9XG5cblx0Jl9fdGl0bGUge1xuXHRcdGNvbG9yOiAjMDAwO1xuXG5cdFx0LXdlYmtpdC10ZXh0LXN0cm9rZS13aWR0aDogMC42OTk5OTk5ODgwNzkwNzE7XG5cdFx0LXdlYmtpdC10ZXh0LXN0cm9rZS1jb2xvcjogIzAwMDtcblx0XHRmb250LWZhbWlseTogJGhlYWRlci1mb250LWZhbWlseTtcblx0XHRmb250LXNpemU6IDMycHg7XG5cdFx0Zm9udC1zdHlsZTogbm9ybWFsO1xuXHRcdGZvbnQtd2VpZ2h0OiA3MDA7XG5cdFx0bGluZS1oZWlnaHQ6IDEuMjU7IC8qIDEyNSUgKi9cblx0XHRsZXR0ZXItc3BhY2luZzogMC45NnB4O1xuXHRcdG1hcmdpbi1ib3R0b206IDE1cHg7XG5cblx0XHRib3JkZXItYm90dG9tOiAxcHggc29saWQgIzAwMDtcblx0XHRwYWRkaW5nLWJvdHRvbTogMTVweDtcblx0XHRtYXJnaW4tYm90dG9tOiAxMHB4O1xuXHR9XG5cblx0Jl9fZGVzY3JpcHRpb24ge1xuXHRcdGZvbnQtc2l6ZTogMThweDtcblx0XHRsaW5lLWhlaWdodDogMS4zMztcblx0fVxuXG5cdCZfX2NvbnRlbnQge1xuXHRcdHBhZGRpbmc6IDIwcHg7XG5cdH1cbn1cbiJdfQ== */
