/*!**********************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[4].oneOf[1].use[3]!./assets/sass/pages/listing.scss ***!
  \**********************************************************************************************************************************************************************************************************************************************************************************/

.breadcrumb-item + .breadcrumb-item:before {
  display: inline-block;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }


.breadcrumb-item + .breadcrumb-item:before {
  font-family: "Font Awesome 6 Pro";
  font-weight: 300; }


.breadcrumb-item + .breadcrumb-item:before {
  display: inline-block;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }


.breadcrumb-item + .breadcrumb-item:before {
  font-family: "Font Awesome 6 Pro";
  font-weight: 300; }


.breadcrumb-item + .breadcrumb-item:before {
  display: inline-block;
  font-style: normal;
  font-weight: 400;
  font-variant: normal;
  line-height: 1;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale; }


.breadcrumb-item + .breadcrumb-item:before {
  font-family: "Font Awesome 6 Pro";
  font-weight: 300; }

.card {
  --bs-card-spacer-y: 16px;
  --bs-card-spacer-y: 1rem;
  --bs-card-spacer-x: 16px;
  --bs-card-spacer-x: 1rem;
  --bs-card-title-spacer-y: 8px;
  --bs-card-title-spacer-y: 0.5rem;
  --bs-card-title-color: ;
  --bs-card-subtitle-color: ;
  --bs-card-border-width: var(--bs-border-width);
  --bs-card-border-color: var(--bs-border-color-translucent);
  --bs-card-border-radius: var(--bs-border-radius);
  --bs-card-box-shadow: ;
  --bs-card-inner-border-radius: calc(var(--bs-border-radius) - var(--bs-border-width));
  --bs-card-cap-padding-y: 8px;
  --bs-card-cap-padding-y: 0.5rem;
  --bs-card-cap-padding-x: 16px;
  --bs-card-cap-padding-x: 1rem;
  --bs-card-cap-bg: rgba(var(--bs-body-color-rgb), 0.03);
  --bs-card-cap-color: ;
  --bs-card-height: ;
  --bs-card-color: ;
  --bs-card-bg: var(--bs-body-bg);
  --bs-card-img-overlay-padding: 16px;
  --bs-card-img-overlay-padding: 1rem;
  --bs-card-group-margin: 12px;
  --bs-card-group-margin: 0.75rem;
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  height: var(--bs-card-height);
  color: var(--bs-body-color);
  word-wrap: break-word;
  background-color: var(--bs-card-bg);
  background-clip: border-box;
  border: var(--bs-card-border-width) solid var(--bs-card-border-color);
  border-radius: var(--bs-card-border-radius); }
  .card > hr {
    margin-right: 0;
    margin-left: 0; }
  .card > .list-group {
    border-top: inherit;
    border-bottom: inherit; }
    .card > .list-group:first-child {
      border-top-width: 0;
      border-top-left-radius: var(--bs-card-inner-border-radius);
      border-top-right-radius: var(--bs-card-inner-border-radius); }
    .card > .list-group:last-child {
      border-bottom-width: 0;
      border-bottom-right-radius: var(--bs-card-inner-border-radius);
      border-bottom-left-radius: var(--bs-card-inner-border-radius); }
  .card > .card-header + .list-group,
  .card > .list-group + .card-footer {
    border-top: 0; }

.card-body {
  flex: 1 1 auto;
  padding: var(--bs-card-spacer-y) var(--bs-card-spacer-x);
  color: var(--bs-card-color); }

.card-title {
  margin-bottom: var(--bs-card-title-spacer-y);
  color: var(--bs-card-title-color); }

.card-subtitle {
  margin-top: calc(-0.5 * var(--bs-card-title-spacer-y));
  margin-bottom: 0;
  color: var(--bs-card-subtitle-color); }

.card-text:last-child {
  margin-bottom: 0; }

.card-link + .card-link {
  margin-left: var(--bs-card-spacer-x); }

.card-header {
  padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
  margin-bottom: 0;
  color: var(--bs-card-cap-color);
  background-color: var(--bs-card-cap-bg);
  border-bottom: var(--bs-card-border-width) solid var(--bs-card-border-color); }
  .card-header:first-child {
    border-radius: var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius) 0 0; }

.card-footer {
  padding: var(--bs-card-cap-padding-y) var(--bs-card-cap-padding-x);
  color: var(--bs-card-cap-color);
  background-color: var(--bs-card-cap-bg);
  border-top: var(--bs-card-border-width) solid var(--bs-card-border-color); }
  .card-footer:last-child {
    border-radius: 0 0 var(--bs-card-inner-border-radius) var(--bs-card-inner-border-radius); }

.card-header-tabs {
  margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));
  margin-bottom: calc(-1 * var(--bs-card-cap-padding-y));
  margin-left: calc(-0.5 * var(--bs-card-cap-padding-x));
  border-bottom: 0; }
  .card-header-tabs .nav-link.active {
    background-color: var(--bs-card-bg);
    border-bottom-color: var(--bs-card-bg); }

.card-header-pills {
  margin-right: calc(-0.5 * var(--bs-card-cap-padding-x));
  margin-left: calc(-0.5 * var(--bs-card-cap-padding-x)); }

.card-img-overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  padding: var(--bs-card-img-overlay-padding);
  border-radius: var(--bs-card-inner-border-radius); }

.card-img,
.card-img-top,
.card-img-bottom {
  width: 100%; }

.card-img,
.card-img-top {
  border-top-left-radius: var(--bs-card-inner-border-radius);
  border-top-right-radius: var(--bs-card-inner-border-radius); }

.card-img,
.card-img-bottom {
  border-bottom-right-radius: var(--bs-card-inner-border-radius);
  border-bottom-left-radius: var(--bs-card-inner-border-radius); }

.card-group > .card {
  margin-bottom: var(--bs-card-group-margin); }

.tease-grid picture {
  z-index: 1; }

.tease-grid .badge-wrapper {
  z-index: 2;
  pointer-events: none; }

.tease-grid .badge a,
.tease-grid .card-title a {
  text-decoration: none;
  pointer-events: all; }
  .tease-grid .badge a:hover, .tease-grid .badge a:focus,
  .tease-grid .card-title a:hover,
  .tease-grid .card-title a:focus {
    text-decoration: underline; }

.tease-simple a {
  z-index: 1; }

.tease-simple-realisations:hover .card-overlay {
  transform: rotateX(0); }

.tease-simple-realisations .card-overlay {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  text-decoration: none;
  text-shadow: 0 0 4px #000;
  text-shadow: 0 0 0.25rem #000;
  background: rgba(36, 36, 36, 0.5);
  transition: transform ease .3s;
  transform: rotateX(90deg);
  transform-origin: bottom; }

.tease {
  width: 100%; }

.breadcrumb {
  --bs-breadcrumb-padding-x: 0;
  --bs-breadcrumb-padding-y: 0;
  --bs-breadcrumb-margin-bottom: 16px;
  --bs-breadcrumb-margin-bottom: 1rem;
  --bs-breadcrumb-font-size: 12px;
  --bs-breadcrumb-font-size: 0.75rem;
  --bs-breadcrumb-bg: ;
  --bs-breadcrumb-border-radius: ;
  --bs-breadcrumb-divider-color: var(--bs-secondary-color);
  --bs-breadcrumb-item-padding-x: 8px;
  --bs-breadcrumb-item-padding-x: 0.5rem;
  --bs-breadcrumb-item-active-color: #242424;
  display: flex;
  flex-wrap: wrap;
  padding: var(--bs-breadcrumb-padding-y) var(--bs-breadcrumb-padding-x);
  margin-bottom: var(--bs-breadcrumb-margin-bottom);
  font-size: var(--bs-breadcrumb-font-size);
  list-style: none;
  background-color: var(--bs-breadcrumb-bg);
  border-radius: var(--bs-breadcrumb-border-radius); }

.breadcrumb-item + .breadcrumb-item {
  padding-left: var(--bs-breadcrumb-item-padding-x); }
  .breadcrumb-item + .breadcrumb-item:before {
    float: left;
    padding-right: var(--bs-breadcrumb-item-padding-x);
    color: var(--bs-breadcrumb-divider-color);
    content: var(--bs-breadcrumb-divider, "/") /* rtl: var(--bs-breadcrumb-divider, "/") */; }

.breadcrumb-item.active {
  color: var(--bs-breadcrumb-item-active-color); }

.breadcrumbs {
  position: relative;
  max-width: 100vw;
  margin-right: -12px;
  margin-right: -0.75rem;
  margin-left: -12px;
  margin-left: -0.75rem; }
  .breadcrumbs .breadcrumb {
    flex-wrap: nowrap;
    padding: 12px;
    padding: 0.75rem;
    margin: unset;
    overflow-x: auto; }
    .breadcrumbs .breadcrumb:before, .breadcrumbs .breadcrumb:after {
      position: absolute;
      top: 0;
      display: block;
      height: 100%;
      pointer-events: none;
      content: ""; }
    .breadcrumbs .breadcrumb:before {
      left: 0;
      width: 16px;
      width: 1rem;
      background-image: linear-gradient(90deg, var(--alpha-breadcrumbs-mobile-shadow-color) 0, var(--alpha-breadcrumbs-mobile-shadow-color-end)); }
    .breadcrumbs .breadcrumb:after {
      right: 0;
      width: 32px;
      width: 2rem;
      background-image: linear-gradient(90deg, var(--alpha-breadcrumbs-mobile-shadow-color-end) 0, var(--alpha-breadcrumbs-mobile-shadow-color)); }
  .breadcrumbs.on-featured {
    --alpha-breadcrumbs-mobile-shadow-color: #000;
    --alpha-breadcrumbs-mobile-shadow-color-end: rgba(0, 0, 0, 0);
    top: var(--featured-image-height);
    z-index: 10;
    transform: translateY(-100%); }
    .breadcrumbs.on-featured .breadcrumb {
      --bs-breadcrumb-divider-color: currentcolor;
      --bs-breadcrumb-item-active-color: currentcolor; }
      .breadcrumbs.on-featured .breadcrumb:before, .breadcrumbs.on-featured .breadcrumb:after {
        -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";
        opacity: .75; }

.breadcrumbs-on-featured:not(.has-transparent-header) .breadcrumbs {
  top: calc(var(--header-height) + var(--featured-image-height));
  transition: top .3s ease; }

.breadcrumbs-on-featured.search .content-wrapper {
  padding-top: 32px;
  padding-top: 2rem; }

.breadcrumb-item {
  white-space: nowrap; }
  .breadcrumb-item + .breadcrumb-item:before {
    content: "\f105";
    margin-right: 0; }
  .breadcrumb-item + .breadcrumb-item:before {
    float: unset;
    padding-right: 4px;
    padding-right: .25rem; }
  .breadcrumb-item.active span {
    font-weight: 700; }

.pagination-information {
  font-size: 12.8px;
  font-size: .8rem; }

.pagination .page-item {
  display: flex; }

.pagination .page-link {
  display: flex;
  align-items: center; }

@media (min-width: 576px) {
  .card-group {
    display: flex;
    flex-flow: row wrap; }
    .card-group > .card {
      flex: 1 0;
      margin-bottom: 0; }
      .card-group > .card + .card {
        margin-left: 0;
        border-left: 0; }
      .card-group > .card:not(:last-child) {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0; }
        .card-group > .card:not(:last-child) .card-img-top,
        .card-group > .card:not(:last-child) .card-header {
          border-top-right-radius: 0; }
        .card-group > .card:not(:last-child) .card-img-bottom,
        .card-group > .card:not(:last-child) .card-footer {
          border-bottom-right-radius: 0; }
      .card-group > .card:not(:first-child) {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0; }
        .card-group > .card:not(:first-child) .card-img-top,
        .card-group > .card:not(:first-child) .card-header {
          border-top-left-radius: 0; }
        .card-group > .card:not(:first-child) .card-img-bottom,
        .card-group > .card:not(:first-child) .card-footer {
          border-bottom-left-radius: 0; } }

@media (min-width: 768px) {
    .breadcrumbs .breadcrumb:before, .breadcrumbs .breadcrumb:after {
      display: none; } }

@media (max-width: 575.98px) {
    .pagination .page-link.dots {
      padding: .375rem; } }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdGluZy5jc3MiLCJtYXBwaW5ncyI6Ijs7OztBQVlBO0VBT0UscUJBQXFCO0VBQ3JCLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsb0JBQW9CO0VBQ3BCLGNBQWM7RUFDZCxtQ0FBbUM7RUFDbkMsa0NBQWtDOzs7QUFrQnBDO0VBQ0UsaUNBQWlDO0VBQ2pDLGdCQUFnQjs7O0FBakNsQjtFQU9FLHFCQUFxQjtFQUNyQixrQkFBa0I7RUFDbEIsZ0JBQWdCO0VBQ2hCLG9CQUFvQjtFQUNwQixjQUFjO0VBQ2QsbUNBQW1DO0VBQ25DLGtDQUFrQzs7O0FBa0JwQztFQUNFLGlDQUFpQztFQUNqQyxnQkFBZ0I7OztBQWpDbEI7RUFPRSxxQkFBcUI7RUFDckIsa0JBQWtCO0VBQ2xCLGdCQUFnQjtFQUNoQixvQkFBb0I7RUFDcEIsY0FBYztFQUNkLG1DQUFtQztFQUNuQyxrQ0FBa0M7OztBQWtCcEM7RUFDRSxpQ0FBaUM7RUFDakMsZ0JBQWdCOztBQ3pDbEI7RUFFRSx3QkFBeUM7RUFBekMsd0JBQXlDO0VBQ3pDLHdCQUF5QztFQUF6Qyx3QkFBeUM7RUFDekMsNkJBQXFEO0VBQXJELGdDQUFxRDtFQUNyRCx1QkFBK0M7RUFDL0MsMEJBQXFEO0VBQ3JELDhDQUFpRDtFQUNqRCwwREFBaUQ7RUFDakQsZ0RBQW1EO0VBQ25ELHNCQUE2QztFQUM3QyxxRkFBK0Q7RUFDL0QsNEJBQW1EO0VBQW5ELCtCQUFtRDtFQUNuRCw2QkFBbUQ7RUFBbkQsNkJBQW1EO0VBQ25ELHNEQUFxQztFQUNyQyxxQkFBMkM7RUFDM0Msa0JBQXFDO0VBQ3JDLGlCQUFtQztFQUNuQywrQkFBNkI7RUFDN0IsbUNBQStEO0VBQS9ELG1DQUErRDtFQUMvRCw0QkFBaUQ7RUFBakQsK0JBQWlEO0VBR2pELGtCQUFrQjtFQUNsQixhQUFhO0VBQ2Isc0JBQXNCO0VBQ3RCLFlBQVk7RUFDWiw2QkFBaUQ7RUFDakQsMkJBQThDO0VBQzlDLHFCQUFxQjtFQUNyQixtQ0FBbUQ7RUFDbkQsMkJBQTJCO0VBQzNCLHFFQUF5SDtFQ2pCdkgsMkNEa0I0RTtFQWpDaEY7SUFxQ0ksZUFBZTtJQUNmLGNBQWM7RUF0Q2xCO0lBMENJLG1CQUFtQjtJQUNuQixzQkFBc0I7SUEzQzFCO01BOENNLG1CQUFtQjtNQ3RCckIsMEREdUJnRztNQ3RCaEcsMkREc0JnRztJQS9DcEc7TUFtRE0sc0JBQXNCO01DYnhCLDhERGNtRztNQ2JuRyw2RERhbUc7RUFwRHZHOztJQTRESSxhQUFhOztBQUlqQjtFQUdFLGNBQWM7RUFDZCx3REFBb0c7RUFDcEcsMkJBQThDOztBQUdoRDtFQUNFLDRDQUF3RTtFQUN4RSxpQ0FBMEQ7O0FBRzVEO0VBQ0Usc0RBQWlGO0VBQ2pGLGdCQUFnQjtFQUNoQixvQ0FBZ0U7O0FBR2xFO0VBQ0UsZ0JBQWdCOztBQUdsQjtFQU1JLG9DQUEwRDs7QUFROUQ7RUFDRSxrRUFBd0g7RUFDeEgsZ0JBQWdCO0VBQ2hCLCtCQUFzRDtFQUN0RCx1Q0FBMkQ7RUFDM0QsNEVBQWdJO0VBTGxJO0lDdEZJLHdGRDhGa0s7O0FBSXRLO0VBQ0Usa0VBQXdIO0VBQ3hILCtCQUFzRDtFQUN0RCx1Q0FBMkQ7RUFDM0QseUVBQTZIO0VBSi9IO0lDbEdJLHdGRHlHa0s7O0FBU3RLO0VBQ0UsdURBQWlGO0VBQ2pGLHNEQUFpRjtFQUNqRixzREFBZ0Y7RUFDaEYsZ0JBQWdCO0VBSmxCO0lBT0ksbUNBQW1EO0lBQ25ELHNDQUFzRDs7QUFJMUQ7RUFDRSx1REFBaUY7RUFDakYsc0RBQWdGOztBQUlsRjtFQUNFLGtCQUFrQjtFQUNsQixNQUFNO0VBQ04sUUFBUTtFQUNSLFNBQVM7RUFDVCxPQUFPO0VBQ1AsMkNBQTRFO0VDMUkxRSxpREQySXdGOztBQUc1Rjs7O0VBR0UsV0FBVzs7QUFHYjs7RUMzSUksMERENkk0RjtFQzVJNUYsMkRENEk0Rjs7QUFHaEc7O0VDbElJLDhERG9JK0Y7RUNuSS9GLDZERG1JK0Y7O0FBUW5HO0VBSUksMENBQW9FOztBRWxMdEU7RUNORSxVQUFVOztBRE1aO0VDRkUsVUFBVTtFQUNWLG9CQUFvQjs7QURDdEI7O0VDS0kscUJBQXFCO0VBQ3JCLG1CQUFtQjtFRE52Qjs7O0lDVU0sMEJBQTBCOztBRFZoQztFRU5FLFVBQVU7O0FGTVo7RUdMSSxxQkFBcUI7O0FIS3pCO0VHREUsa0JBQWtCO0VBQ2xCLE1BQU07RUFDTixRQUFRO0VBQ1IsU0FBUztFQUNULE9BQU87RUFDUCxVQUFVO0VBQ1YsYUFBYTtFQUNiLG1CQUFtQjtFQUNuQix1QkFBdUI7RUFDdkIsV0NWUTtFRFdSLHFCQUFxQjtFQUNyQix5QkUrVnVDO0VGL1Z2Qyw2QkUrVnVDO0VGOVZ2QyxpQ0duQnVEO0VIb0J2RCw4QkFBOEI7RUFDOUIseUJBQXlCO0VBQ3pCLHdCQUF3Qjs7QUhUNUI7RUFDRSxXQUFXOztBT2RiO0VBRUUsNEJBQXVEO0VBQ3ZELDRCQUF1RDtFQUN2RCxtQ0FBK0Q7RUFBL0QsbUNBQStEO0VDMlIzRCwrQkFuRStCO0VBbUUvQixrQ0FuRStCO0VEdE5uQyxvQkFBeUM7RUFDekMsK0JBQStEO0VBQy9ELHdEQUErRDtFQUMvRCxtQ0FBaUU7RUFBakUsc0NBQWlFO0VBQ2pFLDBDQUF1RTtFQUd2RSxhQUFhO0VBQ2IsZUFBZTtFQUNmLHNFQUFnSTtFQUNoSSxpREFBa0Y7RUMrUTlFLHlDQW5FK0I7RUQxTW5DLGdCQUFnQjtFQUNoQix5Q0FBK0Q7RVJBN0QsaURRQ3dGOztBQUc1RjtFQUdJLGlEQUFtRjtFQUh2RjtJQU1NLFdBQVc7SUFDWCxrREFBb0Y7SUFDcEYseUNBQTBFO0lBQzFFLHVGQUF1Tjs7QUFUN047RUFjSSw2Q0FBa0Y7O0FFbkN0RjtFQUNFLGtCQUFrQjtFQUNsQixnQkFBZ0I7RUFDaEIsbUJBQWdEO0VBQWhELHNCQUFnRDtFQUNoRCxrQkFBK0M7RUFBL0MscUJBQStDO0VBSmpEO0lBT0ksaUJBQWlCO0lBQ2pCLGFKb0d3QztJSXBHeEMsZ0JKb0d3QztJSW5HeEMsYUFBYTtJQUNiLGdCQUFnQjtJQVZwQjtNQWNNLGtCQUFrQjtNQUNsQixNQUFNO01BQ04sY0FBYztNQUNkLFlBQVk7TUFDWixvQkFBb0I7TUFDcEIsV0FBVztJQW5CakI7TUF1Qk0sT0FBTztNQUNQLFdBQVc7TUFBWCxXQUFXO01BQ1gsMElBQTBJO0lBekJoSjtNQTZCTSxRQUFRO01BQ1IsV0FBVztNQUFYLFdBQVc7TUFDWCwwSUFBMEk7RUEvQmhKO0lBNkNJLDZDQUF3QztJQUN4Qyw2REFBNEM7SUFDNUMsaUNBQWlDO0lBQ2pDLFdBQVc7SUFDWCw0QkFBNEI7SUFqRGhDO01Bb0RNLDJDQUE4QjtNQUM5QiwrQ0FBa0M7TUFyRHhDO1FBeURRLGlFQUFZO1FBQVosWUFBWTs7QUFNcEI7RUFHTSw4REFBOEQ7RUFDOUQsd0JBQXdCOztBQUo5QjtFQVVNLGlCSktVO0VJTFYsaUJKS1U7O0FJQWhCO0VBQ0UsbUJBQW1CO0VGMURyQjtJVnVFRSxnQmF6Rm1DO0liMkhqQyxlWTVDbUU7RUY3RHZFO0lFZ0VNLFlBQVk7SUFDWixrQkFBcUI7SUFBckIscUJBQXFCO0VBUjNCO0lBY00sZ0JBQWdCOztBRTlGdEI7RUFDRSxpQkFBZ0I7RUFBaEIsZ0JBQWdCOztBQUdsQjtFQUVJLGFBQWE7O0FBRmpCO0VBTUksYUFBYTtFQUNiLG1CQUFtQjs7QUNvRG5CO0VkdUhKO0lBUUksYUFBYTtJQUNiLG1CQUFtQjtJQVR2QjtNQWNNLFNBQVk7TUFDWixnQkFBZ0I7TUFmdEI7UUFrQlEsY0FBYztRQUNkLGNBQWM7TUFuQnRCO1FDbkpJLDBCRDRLa0M7UUMzS2xDLDZCRDJLa0M7UUF6QnRDOztVQThCWSwwQkFBMEI7UUE5QnRDOztVQW1DWSw2QkFBNkI7TUFuQ3pDO1FDcklJLHlCRDZLb0M7UUM1S3BDLDRCRDRLb0M7UUF4Q3hDOztVQTZDWSx5QkFBeUI7UUE3Q3JDOztVQWtEWSw0QkFBNEIsSUFDN0I7O0FjMUtQO0lIN0RKO01BdUNRLGFBQWEsSUFDZDs7QUdrQ0g7SUR4RUo7TUFXUSxnQkFBZ0IsSUFDakIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9qYXJvZGNhcGVsbG8tdGhlbWUvLi9ub2RlX21vZHVsZXMvQG5lbWF0aXMvd3AtYWxwaGEvYXNzZXRzL3Nhc3MvdmVuZG9ycy9mb250YXdlc29tZS9hYnN0cmFjdHMvX21peGlucy5zY3NzIiwid2VicGFjazovL2phcm9kY2FwZWxsby10aGVtZS8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9fY2FyZC5zY3NzIiwid2VicGFjazovL2phcm9kY2FwZWxsby10aGVtZS8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsIndlYnBhY2s6Ly9qYXJvZGNhcGVsbG8tdGhlbWUvLi9ub2RlX21vZHVsZXMvQG5lbWF0aXMvd3AtYWxwaGEvYXNzZXRzL3Nhc3MvdGVhc2VzL190ZWFzZS5zY3NzIiwid2VicGFjazovL2phcm9kY2FwZWxsby10aGVtZS8uL25vZGVfbW9kdWxlcy9AbmVtYXRpcy93cC1hbHBoYS9hc3NldHMvc2Fzcy90ZWFzZXMvbW9kZXMvX2dyaWQuc2NzcyIsIndlYnBhY2s6Ly9qYXJvZGNhcGVsbG8tdGhlbWUvLi9ub2RlX21vZHVsZXMvQG5lbWF0aXMvd3AtYWxwaGEvYXNzZXRzL3Nhc3MvdGVhc2VzL21vZGVzL19zaW1wbGUuc2NzcyIsIndlYnBhY2s6Ly9qYXJvZGNhcGVsbG8tdGhlbWUvLi9ub2RlX21vZHVsZXMvQG5lbWF0aXMvd3AtYWxwaGEvYXNzZXRzL3Nhc3MvdGVhc2VzL21vZGVzL19yZWFsaXNhdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly9qYXJvZGNhcGVsbG8tdGhlbWUvLi9hc3NldHMvc2Fzcy9hYnN0cmFjdHMvdmFyaWFibGVzLnNjc3MiLCJ3ZWJwYWNrOi8vamFyb2RjYXBlbGxvLXRoZW1lLy4vbm9kZV9tb2R1bGVzL0BuZW1hdGlzL3dwLWFscGhhL2Fzc2V0cy9zYXNzL2Fic3RyYWN0cy9fdmFyaWFibGVzLnNjc3MiLCJ3ZWJwYWNrOi8vamFyb2RjYXBlbGxvLXRoZW1lLy4vY29uZmlnL3RoZW1lLnlhbWwiLCJ3ZWJwYWNrOi8vamFyb2RjYXBlbGxvLXRoZW1lLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19icmVhZGNydW1iLnNjc3MiLCJ3ZWJwYWNrOi8vamFyb2RjYXBlbGxvLXRoZW1lLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL3ZlbmRvci9fcmZzLnNjc3MiLCJ3ZWJwYWNrOi8vamFyb2RjYXBlbGxvLXRoZW1lLy4vbm9kZV9tb2R1bGVzL0BuZW1hdGlzL3dwLWFscGhhL2Fzc2V0cy9zYXNzL2NvbXBvbmVudHMvX2JyZWFkY3J1bWIuc2NzcyIsIndlYnBhY2s6Ly9qYXJvZGNhcGVsbG8tdGhlbWUvLi9ub2RlX21vZHVsZXMvQGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXByby9zY3NzL19mdW5jdGlvbnMuc2NzcyIsIndlYnBhY2s6Ly9qYXJvZGNhcGVsbG8tdGhlbWUvLi9ub2RlX21vZHVsZXMvQG5lbWF0aXMvd3AtYWxwaGEvYXNzZXRzL3Nhc3MvY29tcG9uZW50cy9fcGFnaW5hdGlvbi5zY3NzIiwid2VicGFjazovL2phcm9kY2FwZWxsby10aGVtZS8uL25vZGVfbW9kdWxlcy9ib290c3RyYXAvc2Nzcy9taXhpbnMvX2JyZWFrcG9pbnRzLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiJHVzZS1mYS1wcm86IHRydWUgIWRlZmF1bHQ7XG5cbkBtaXhpbiBmYS1pY29uLXN0YW5kYWxvbmUge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc3R5bGU6IG5vcm1hbDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgZm9udC12YXJpYW50OiBub3JtYWw7XG4gIGxpbmUtaGVpZ2h0OiAxO1xuICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDtcbiAgLW1vei1vc3gtZm9udC1zbW9vdGhpbmc6IGdyYXlzY2FsZTtcbn1cblxuJWZhLFxuJWZhcyxcbiVmYXIsXG4lZmFsLFxuJWZhZCxcbiVmYXQsXG4lZmFiIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbiVmYS1pY29uLXN0YW5kYWxvbmUge1xuICBAaW5jbHVkZSBmYS1pY29uLXN0YW5kYWxvbmUgKCk7XG59XG5cbiVmYSxcbiVmYXMge1xuICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNiBQcm9cIjtcbiAgZm9udC13ZWlnaHQ6IDkwMDtcbn1cblxuJWZhciB7XG4gIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA2IFByb1wiO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG4lZmFsIHtcbiAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDYgUHJvXCI7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG59XG5cbiVmYXQge1xuICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNiBQcm9cIjtcbiAgZm9udC13ZWlnaHQ6IDEwMDtcbn1cblxuJWZhYiB7XG4gIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA2IEJyYW5kc1wiO1xuICBmb250LXdlaWdodDogNDAwO1xufVxuXG5AbWl4aW4gZm9udC1hd2Vzb21lKCRjb2RlKSB7XG4gIEBleHRlbmQgJWZhLWljb24tc3RhbmRhbG9uZTtcblxuICBAaWYgJHVzZS1mYS1wcm8ge1xuICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8oJGNvZGUpO1xuICB9IEBlbHNlIHtcbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZm9udC1mYW1pbHktbm8tbWlzc2luZy1nZW5lcmljLWZhbWlseS1rZXl3b3JkXG4gICAgQGV4dGVuZCAlZmE7XG5cbiAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVjbGFyYXRpb24tbm8taW1wb3J0YW50XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgY29udGVudDogJGNvZGU7XG4gIH1cblxuICBAY29udGVudDtcbn1cblxuQG1peGluIGZvbnQtYXdlc29tZS1wcm8oJGNvZGUpIHtcbiAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLXByby1zb2xpZCgkY29kZSk7XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtcHJvLXNvbGlkKCRjb2RlKSB7XG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBmb250LWZhbWlseS1uby1taXNzaW5nLWdlbmVyaWMtZmFtaWx5LWtleXdvcmRcbiAgQGV4dGVuZCAlZmFzO1xuICBjb250ZW50OiBmYS1jb250ZW50KCRjb2RlKTtcbn1cblxuQG1peGluIGZvbnQtYXdlc29tZS1wcm8tcmVndWxhcigkY29kZSkge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZm9udC1mYW1pbHktbm8tbWlzc2luZy1nZW5lcmljLWZhbWlseS1rZXl3b3JkXG4gIEBleHRlbmQgJWZhcjtcbiAgY29udGVudDogZmEtY29udGVudCgkY29kZSk7XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtcHJvLWxpZ2h0KCRjb2RlKSB7XG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBmb250LWZhbWlseS1uby1taXNzaW5nLWdlbmVyaWMtZmFtaWx5LWtleXdvcmRcbiAgQGV4dGVuZCAlZmFsO1xuICBjb250ZW50OiBmYS1jb250ZW50KCRjb2RlKTtcbn1cblxuQG1peGluIGZvbnQtYXdlc29tZS1wcm8tdGhpbigkY29kZSkge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZm9udC1mYW1pbHktbm8tbWlzc2luZy1nZW5lcmljLWZhbWlseS1rZXl3b3JkXG4gIEBleHRlbmQgJWZhdDtcbiAgY29udGVudDogZmEtY29udGVudCgkY29kZSk7XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtcHJvLWJyYW5kKCRjb2RlKSB7XG4gIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBmb250LWZhbWlseS1uby1taXNzaW5nLWdlbmVyaWMtZmFtaWx5LWtleXdvcmRcbiAgQGV4dGVuZCAlZmFiO1xuICBjb250ZW50OiBmYS1jb250ZW50KCRjb2RlKTtcbn1cblxuQG1peGluIGZvbnQtYXdlc29tZS1iZWZvcmUoJGNvZGUsICRmbG9hdGluZzogZmFsc2UsICRmYS1zdHlsZTogXCJzb2xpZFwiLCAkbWFyZ2luOiAuMjVlbSkge1xuICAmOjpiZWZvcmUge1xuICAgIEBpZiAkZmEtc3R5bGUgPT0gXCJyZWd1bGFyXCIge1xuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLXByby1yZWd1bGFyKCRjb2RlKTtcbiAgICB9IEBlbHNlIGlmICRmYS1zdHlsZSA9PSBcImxpZ2h0XCIge1xuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLXByby1saWdodCgkY29kZSk7XG4gICAgfSBAZWxzZSBpZiAkZmEtc3R5bGUgPT0gXCJ0aGluXCIge1xuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLXByby10aGluKCRjb2RlKTtcbiAgICB9IEBlbHNlIGlmICRmYS1zdHlsZSA9PSBcImJyYW5kXCIge1xuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLXByby1icmFuZCgkY29kZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBmb250LWF3ZXNvbWUoJGNvZGUpO1xuICAgIH1cblxuICAgIEBpZiAkZmxvYXRpbmcge1xuICAgICAgZmxvYXQ6IGxlZnQ7XG4gICAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICB9XG5cbiAgICBtYXJnaW4tcmlnaHQ6ICRtYXJnaW47XG5cbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gZm9udC1hd2Vzb21lLWFmdGVyKCRjb2RlLCAkZmxvYXRpbmc6IGZhbHNlLCAkZmEtc3R5bGU6IFwic29saWRcIiwgJG1hcmdpbjogLjI1ZW0pIHtcbiAgJjo6YWZ0ZXIge1xuICAgIEBpZiAkZmEtc3R5bGUgPT0gXCJyZWd1bGFyXCIge1xuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLXByby1yZWd1bGFyKCRjb2RlKTtcbiAgICB9IEBlbHNlIGlmICRmYS1zdHlsZSA9PSBcImxpZ2h0XCIge1xuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLXByby1saWdodCgkY29kZSk7XG4gICAgfSBAZWxzZSBpZiAkZmEtc3R5bGUgPT0gXCJ0aGluXCIge1xuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLXByby10aGluKCRjb2RlKTtcbiAgICB9IEBlbHNlIGlmICRmYS1zdHlsZSA9PSBcImJyYW5kXCIge1xuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLXByby1icmFuZCgkY29kZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBmb250LWF3ZXNvbWUoJGNvZGUpO1xuICAgIH1cblxuICAgIEBpZiAkZmxvYXRpbmcge1xuICAgICAgZmxvYXQ6IHJpZ2h0O1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgbWFyZ2luLWxlZnQ6ICRtYXJnaW47XG5cbiAgICBAY29udGVudDtcbiAgfVxufVxuIiwiLy9cbi8vIEJhc2Ugc3R5bGVzXG4vL1xuXG4uY2FyZCB7XG4gIC8vIHNjc3MtZG9jcy1zdGFydCBjYXJkLWNzcy12YXJzXG4gIC0tI3skcHJlZml4fWNhcmQtc3BhY2VyLXk6ICN7JGNhcmQtc3BhY2VyLXl9O1xuICAtLSN7JHByZWZpeH1jYXJkLXNwYWNlci14OiAjeyRjYXJkLXNwYWNlci14fTtcbiAgLS0jeyRwcmVmaXh9Y2FyZC10aXRsZS1zcGFjZXIteTogI3skY2FyZC10aXRsZS1zcGFjZXIteX07XG4gIC0tI3skcHJlZml4fWNhcmQtdGl0bGUtY29sb3I6ICN7JGNhcmQtdGl0bGUtY29sb3J9O1xuICAtLSN7JHByZWZpeH1jYXJkLXN1YnRpdGxlLWNvbG9yOiAjeyRjYXJkLXN1YnRpdGxlLWNvbG9yfTtcbiAgLS0jeyRwcmVmaXh9Y2FyZC1ib3JkZXItd2lkdGg6ICN7JGNhcmQtYm9yZGVyLXdpZHRofTtcbiAgLS0jeyRwcmVmaXh9Y2FyZC1ib3JkZXItY29sb3I6ICN7JGNhcmQtYm9yZGVyLWNvbG9yfTtcbiAgLS0jeyRwcmVmaXh9Y2FyZC1ib3JkZXItcmFkaXVzOiAjeyRjYXJkLWJvcmRlci1yYWRpdXN9O1xuICAtLSN7JHByZWZpeH1jYXJkLWJveC1zaGFkb3c6ICN7JGNhcmQtYm94LXNoYWRvd307XG4gIC0tI3skcHJlZml4fWNhcmQtaW5uZXItYm9yZGVyLXJhZGl1czogI3skY2FyZC1pbm5lci1ib3JkZXItcmFkaXVzfTtcbiAgLS0jeyRwcmVmaXh9Y2FyZC1jYXAtcGFkZGluZy15OiAjeyRjYXJkLWNhcC1wYWRkaW5nLXl9O1xuICAtLSN7JHByZWZpeH1jYXJkLWNhcC1wYWRkaW5nLXg6ICN7JGNhcmQtY2FwLXBhZGRpbmcteH07XG4gIC0tI3skcHJlZml4fWNhcmQtY2FwLWJnOiAjeyRjYXJkLWNhcC1iZ307XG4gIC0tI3skcHJlZml4fWNhcmQtY2FwLWNvbG9yOiAjeyRjYXJkLWNhcC1jb2xvcn07XG4gIC0tI3skcHJlZml4fWNhcmQtaGVpZ2h0OiAjeyRjYXJkLWhlaWdodH07XG4gIC0tI3skcHJlZml4fWNhcmQtY29sb3I6ICN7JGNhcmQtY29sb3J9O1xuICAtLSN7JHByZWZpeH1jYXJkLWJnOiAjeyRjYXJkLWJnfTtcbiAgLS0jeyRwcmVmaXh9Y2FyZC1pbWctb3ZlcmxheS1wYWRkaW5nOiAjeyRjYXJkLWltZy1vdmVybGF5LXBhZGRpbmd9O1xuICAtLSN7JHByZWZpeH1jYXJkLWdyb3VwLW1hcmdpbjogI3skY2FyZC1ncm91cC1tYXJnaW59O1xuICAvLyBzY3NzLWRvY3MtZW5kIGNhcmQtY3NzLXZhcnNcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIG1pbi13aWR0aDogMDsgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL2Jvb3RzdHJhcC9wdWxsLzIyNzQwI2lzc3VlY29tbWVudC0zMDU4NjgxMDZcbiAgaGVpZ2h0OiB2YXIoLS0jeyRwcmVmaXh9Y2FyZC1oZWlnaHQpO1xuICBjb2xvcjogdmFyKC0tI3skcHJlZml4fWJvZHktY29sb3IpO1xuICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLSN7JHByZWZpeH1jYXJkLWJnKTtcbiAgYmFja2dyb3VuZC1jbGlwOiBib3JkZXItYm94O1xuICBib3JkZXI6IHZhcigtLSN7JHByZWZpeH1jYXJkLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tI3skcHJlZml4fWNhcmQtYm9yZGVyLWNvbG9yKTtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cyh2YXIoLS0jeyRwcmVmaXh9Y2FyZC1ib3JkZXItcmFkaXVzKSk7XG4gIEBpbmNsdWRlIGJveC1zaGFkb3codmFyKC0tI3skcHJlZml4fWNhcmQtYm94LXNoYWRvdykpO1xuXG4gID4gaHIge1xuICAgIG1hcmdpbi1yaWdodDogMDtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuXG4gID4gLmxpc3QtZ3JvdXAge1xuICAgIGJvcmRlci10b3A6IGluaGVyaXQ7XG4gICAgYm9yZGVyLWJvdHRvbTogaW5oZXJpdDtcblxuICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcC13aWR0aDogMDtcbiAgICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKHZhcigtLSN7JHByZWZpeH1jYXJkLWlubmVyLWJvcmRlci1yYWRpdXMpKTtcbiAgICB9XG5cbiAgICAmOmxhc3QtY2hpbGQgIHtcbiAgICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDA7XG4gICAgICBAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cyh2YXIoLS0jeyRwcmVmaXh9Y2FyZC1pbm5lci1ib3JkZXItcmFkaXVzKSk7XG4gICAgfVxuICB9XG5cbiAgLy8gRHVlIHRvIHNwZWNpZmljaXR5IG9mIHRoZSBhYm92ZSBzZWxlY3RvciAoYC5jYXJkID4gLmxpc3QtZ3JvdXBgKSwgd2UgbXVzdFxuICAvLyB1c2UgYSBjaGlsZCBzZWxlY3RvciBoZXJlIHRvIHByZXZlbnQgZG91YmxlIGJvcmRlcnMuXG4gID4gLmNhcmQtaGVhZGVyICsgLmxpc3QtZ3JvdXAsXG4gID4gLmxpc3QtZ3JvdXAgKyAuY2FyZC1mb290ZXIge1xuICAgIGJvcmRlci10b3A6IDA7XG4gIH1cbn1cblxuLmNhcmQtYm9keSB7XG4gIC8vIEVuYWJsZSBgZmxleC1ncm93OiAxYCBmb3IgZGVja3MgYW5kIGdyb3VwcyBzbyB0aGF0IGNhcmQgYmxvY2tzIHRha2UgdXBcbiAgLy8gYXMgbXVjaCBzcGFjZSBhcyBwb3NzaWJsZSwgZW5zdXJpbmcgZm9vdGVycyBhcmUgYWxpZ25lZCB0byB0aGUgYm90dG9tLlxuICBmbGV4OiAxIDEgYXV0bztcbiAgcGFkZGluZzogdmFyKC0tI3skcHJlZml4fWNhcmQtc3BhY2VyLXkpIHZhcigtLSN7JHByZWZpeH1jYXJkLXNwYWNlci14KTtcbiAgY29sb3I6IHZhcigtLSN7JHByZWZpeH1jYXJkLWNvbG9yKTtcbn1cblxuLmNhcmQtdGl0bGUge1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS0jeyRwcmVmaXh9Y2FyZC10aXRsZS1zcGFjZXIteSk7XG4gIGNvbG9yOiB2YXIoLS0jeyRwcmVmaXh9Y2FyZC10aXRsZS1jb2xvcik7XG59XG5cbi5jYXJkLXN1YnRpdGxlIHtcbiAgbWFyZ2luLXRvcDogY2FsYygtLjUgKiB2YXIoLS0jeyRwcmVmaXh9Y2FyZC10aXRsZS1zcGFjZXIteSkpOyAvLyBzdHlsZWxpbnQtZGlzYWJsZS1saW5lIGZ1bmN0aW9uLWRpc2FsbG93ZWQtbGlzdFxuICBtYXJnaW4tYm90dG9tOiAwO1xuICBjb2xvcjogdmFyKC0tI3skcHJlZml4fWNhcmQtc3VidGl0bGUtY29sb3IpO1xufVxuXG4uY2FyZC10ZXh0Omxhc3QtY2hpbGQge1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uY2FyZC1saW5rIHtcbiAgJjpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBpZigkbGluay1ob3Zlci1kZWNvcmF0aW9uID09IHVuZGVybGluZSwgbm9uZSwgbnVsbCk7XG4gIH1cblxuICArIC5jYXJkLWxpbmsge1xuICAgIG1hcmdpbi1sZWZ0OiB2YXIoLS0jeyRwcmVmaXh9Y2FyZC1zcGFjZXIteCk7XG4gIH1cbn1cblxuLy9cbi8vIE9wdGlvbmFsIHRleHR1YWwgY2Fwc1xuLy9cblxuLmNhcmQtaGVhZGVyIHtcbiAgcGFkZGluZzogdmFyKC0tI3skcHJlZml4fWNhcmQtY2FwLXBhZGRpbmcteSkgdmFyKC0tI3skcHJlZml4fWNhcmQtY2FwLXBhZGRpbmcteCk7XG4gIG1hcmdpbi1ib3R0b206IDA7IC8vIFJlbW92ZXMgdGhlIGRlZmF1bHQgbWFyZ2luLWJvdHRvbSBvZiA8aE4+XG4gIGNvbG9yOiB2YXIoLS0jeyRwcmVmaXh9Y2FyZC1jYXAtY29sb3IpO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS0jeyRwcmVmaXh9Y2FyZC1jYXAtYmcpO1xuICBib3JkZXItYm90dG9tOiB2YXIoLS0jeyRwcmVmaXh9Y2FyZC1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLSN7JHByZWZpeH1jYXJkLWJvcmRlci1jb2xvcik7XG5cbiAgJjpmaXJzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cyh2YXIoLS0jeyRwcmVmaXh9Y2FyZC1pbm5lci1ib3JkZXItcmFkaXVzKSB2YXIoLS0jeyRwcmVmaXh9Y2FyZC1pbm5lci1ib3JkZXItcmFkaXVzKSAwIDApO1xuICB9XG59XG5cbi5jYXJkLWZvb3RlciB7XG4gIHBhZGRpbmc6IHZhcigtLSN7JHByZWZpeH1jYXJkLWNhcC1wYWRkaW5nLXkpIHZhcigtLSN7JHByZWZpeH1jYXJkLWNhcC1wYWRkaW5nLXgpO1xuICBjb2xvcjogdmFyKC0tI3skcHJlZml4fWNhcmQtY2FwLWNvbG9yKTtcbiAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tI3skcHJlZml4fWNhcmQtY2FwLWJnKTtcbiAgYm9yZGVyLXRvcDogdmFyKC0tI3skcHJlZml4fWNhcmQtYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS0jeyRwcmVmaXh9Y2FyZC1ib3JkZXItY29sb3IpO1xuXG4gICY6bGFzdC1jaGlsZCB7XG4gICAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygwIDAgdmFyKC0tI3skcHJlZml4fWNhcmQtaW5uZXItYm9yZGVyLXJhZGl1cykgdmFyKC0tI3skcHJlZml4fWNhcmQtaW5uZXItYm9yZGVyLXJhZGl1cykpO1xuICB9XG59XG5cblxuLy9cbi8vIEhlYWRlciBuYXZzXG4vL1xuXG4uY2FyZC1oZWFkZXItdGFicyB7XG4gIG1hcmdpbi1yaWdodDogY2FsYygtLjUgKiB2YXIoLS0jeyRwcmVmaXh9Y2FyZC1jYXAtcGFkZGluZy14KSk7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZnVuY3Rpb24tZGlzYWxsb3dlZC1saXN0XG4gIG1hcmdpbi1ib3R0b206IGNhbGMoLTEgKiB2YXIoLS0jeyRwcmVmaXh9Y2FyZC1jYXAtcGFkZGluZy15KSk7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZnVuY3Rpb24tZGlzYWxsb3dlZC1saXN0XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKC0uNSAqIHZhcigtLSN7JHByZWZpeH1jYXJkLWNhcC1wYWRkaW5nLXgpKTsgLy8gc3R5bGVsaW50LWRpc2FibGUtbGluZSBmdW5jdGlvbi1kaXNhbGxvd2VkLWxpc3RcbiAgYm9yZGVyLWJvdHRvbTogMDtcblxuICAubmF2LWxpbmsuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS0jeyRwcmVmaXh9Y2FyZC1iZyk7XG4gICAgYm9yZGVyLWJvdHRvbS1jb2xvcjogdmFyKC0tI3skcHJlZml4fWNhcmQtYmcpO1xuICB9XG59XG5cbi5jYXJkLWhlYWRlci1waWxscyB7XG4gIG1hcmdpbi1yaWdodDogY2FsYygtLjUgKiB2YXIoLS0jeyRwcmVmaXh9Y2FyZC1jYXAtcGFkZGluZy14KSk7IC8vIHN0eWxlbGludC1kaXNhYmxlLWxpbmUgZnVuY3Rpb24tZGlzYWxsb3dlZC1saXN0XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKC0uNSAqIHZhcigtLSN7JHByZWZpeH1jYXJkLWNhcC1wYWRkaW5nLXgpKTsgLy8gc3R5bGVsaW50LWRpc2FibGUtbGluZSBmdW5jdGlvbi1kaXNhbGxvd2VkLWxpc3Rcbn1cblxuLy8gQ2FyZCBpbWFnZVxuLmNhcmQtaW1nLW92ZXJsYXkge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHRvcDogMDtcbiAgcmlnaHQ6IDA7XG4gIGJvdHRvbTogMDtcbiAgbGVmdDogMDtcbiAgcGFkZGluZzogdmFyKC0tI3skcHJlZml4fWNhcmQtaW1nLW92ZXJsYXktcGFkZGluZyk7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXModmFyKC0tI3skcHJlZml4fWNhcmQtaW5uZXItYm9yZGVyLXJhZGl1cykpO1xufVxuXG4uY2FyZC1pbWcsXG4uY2FyZC1pbWctdG9wLFxuLmNhcmQtaW1nLWJvdHRvbSB7XG4gIHdpZHRoOiAxMDAlOyAvLyBSZXF1aXJlZCBiZWNhdXNlIHdlIHVzZSBmbGV4Ym94IGFuZCB0aGlzIGluaGVyZW50bHkgYXBwbGllcyBhbGlnbi1zZWxmOiBzdHJldGNoXG59XG5cbi5jYXJkLWltZyxcbi5jYXJkLWltZy10b3Age1xuICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cyh2YXIoLS0jeyRwcmVmaXh9Y2FyZC1pbm5lci1ib3JkZXItcmFkaXVzKSk7XG59XG5cbi5jYXJkLWltZyxcbi5jYXJkLWltZy1ib3R0b20ge1xuICBAaW5jbHVkZSBib3JkZXItYm90dG9tLXJhZGl1cyh2YXIoLS0jeyRwcmVmaXh9Y2FyZC1pbm5lci1ib3JkZXItcmFkaXVzKSk7XG59XG5cblxuLy9cbi8vIENhcmQgZ3JvdXBzXG4vL1xuXG4uY2FyZC1ncm91cCB7XG4gIC8vIFRoZSBjaGlsZCBzZWxlY3RvciBhbGxvd3MgbmVzdGVkIGAuY2FyZGAgd2l0aGluIGAuY2FyZC1ncm91cGBcbiAgLy8gdG8gZGlzcGxheSBwcm9wZXJseS5cbiAgPiAuY2FyZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogdmFyKC0tI3skcHJlZml4fWNhcmQtZ3JvdXAtbWFyZ2luKTtcbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoc20pIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gICAgLy8gVGhlIGNoaWxkIHNlbGVjdG9yIGFsbG93cyBuZXN0ZWQgYC5jYXJkYCB3aXRoaW4gYC5jYXJkLWdyb3VwYFxuICAgIC8vIHRvIGRpc3BsYXkgcHJvcGVybHkuXG4gICAgPiAuY2FyZCB7XG4gICAgICAvLyBGbGV4YnVncyAjNDogaHR0cHM6Ly9naXRodWIuY29tL3BoaWxpcHdhbHRvbi9mbGV4YnVncyNmbGV4YnVnLTRcbiAgICAgIGZsZXg6IDEgMCAwJTtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG5cbiAgICAgICsgLmNhcmQge1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgYm9yZGVyLWxlZnQ6IDA7XG4gICAgICB9XG5cbiAgICAgIC8vIEhhbmRsZSByb3VuZGVkIGNvcm5lcnNcbiAgICAgIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgICAgICAmOm5vdCg6bGFzdC1jaGlsZCkge1xuICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1lbmQtcmFkaXVzKDApO1xuXG4gICAgICAgICAgLmNhcmQtaW1nLXRvcCxcbiAgICAgICAgICAuY2FyZC1oZWFkZXIge1xuICAgICAgICAgICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb3BlcnR5LWRpc2FsbG93ZWQtbGlzdFxuICAgICAgICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDA7XG4gICAgICAgICAgfVxuICAgICAgICAgIC5jYXJkLWltZy1ib3R0b20sXG4gICAgICAgICAgLmNhcmQtZm9vdGVyIHtcbiAgICAgICAgICAgIC8vIHN0eWxlbGludC1kaXNhYmxlLW5leHQtbGluZSBwcm9wZXJ0eS1kaXNhbGxvd2VkLWxpc3RcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgICY6bm90KDpmaXJzdC1jaGlsZCkge1xuICAgICAgICAgIEBpbmNsdWRlIGJvcmRlci1zdGFydC1yYWRpdXMoMCk7XG5cbiAgICAgICAgICAuY2FyZC1pbWctdG9wLFxuICAgICAgICAgIC5jYXJkLWhlYWRlciB7XG4gICAgICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJvcGVydHktZGlzYWxsb3dlZC1saXN0XG4gICAgICAgICAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuY2FyZC1pbWctYm90dG9tLFxuICAgICAgICAgIC5jYXJkLWZvb3RlciB7XG4gICAgICAgICAgICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcHJvcGVydHktZGlzYWxsb3dlZC1saXN0XG4gICAgICAgICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gc3R5bGVsaW50LWRpc2FibGUgcHJvcGVydHktZGlzYWxsb3dlZC1saXN0XG4vLyBTaW5nbGUgc2lkZSBib3JkZXItcmFkaXVzXG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byByZXBsYWNlIG5lZ2F0aXZlIHZhbHVlcyB3aXRoIDBcbkBmdW5jdGlvbiB2YWxpZC1yYWRpdXMoJHJhZGl1cykge1xuICAkcmV0dXJuOiAoKTtcbiAgQGVhY2ggJHZhbHVlIGluICRyYWRpdXMge1xuICAgIEBpZiB0eXBlLW9mKCR2YWx1ZSkgPT0gbnVtYmVyIHtcbiAgICAgICRyZXR1cm46IGFwcGVuZCgkcmV0dXJuLCBtYXgoJHZhbHVlLCAwKSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgJHZhbHVlKTtcbiAgICB9XG4gIH1cbiAgQHJldHVybiAkcmV0dXJuO1xufVxuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgYm9yZGVyLXJhZGl1cy1taXhpbnNcbkBtaXhpbiBib3JkZXItcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzLCAkZmFsbGJhY2stYm9yZGVyLXJhZGl1czogZmFsc2UpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG4gIEBlbHNlIGlmICRmYWxsYmFjay1ib3JkZXItcmFkaXVzICE9IGZhbHNlIHtcbiAgICBib3JkZXItcmFkaXVzOiAkZmFsbGJhY2stYm9yZGVyLXJhZGl1cztcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1lbmQtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1zdGFydC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1zdGFydC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItdG9wLWVuZC1yYWRpdXMoJHJhZGl1czogJGJvcmRlci1yYWRpdXMpIHtcbiAgQGlmICRlbmFibGUtcm91bmRlZCB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1lbmQtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tc3RhcnQtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuLy8gc2Nzcy1kb2NzLWVuZCBib3JkZXItcmFkaXVzLW1peGluc1xuIiwiQGltcG9ydCBcIn5ib290c3RyYXAvc2Nzcy9jYXJkXCI7XG5cbkBpbXBvcnQgXCJtb2Rlcy9ncmlkXCI7XG5AaW1wb3J0IFwibW9kZXMvbGlzdFwiO1xuQGltcG9ydCBcIm1vZGVzL3NpbXBsZVwiO1xuQGltcG9ydCBcIm1vZGVzL3JlYWxpc2F0aW9uc1wiO1xuXG5AZWFjaCAkdGVhc2UgaW4gJHRlYXNlcyB7XG4gIC50ZWFzZS0jeyR0ZWFzZX0ge1xuICAgIEBleHRlbmQgJXRlYXNlLSN7JHRlYXNlfSAhb3B0aW9uYWw7XG4gIH1cbn1cblxuLnRlYXNlIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4iLCJAbWl4aW4gbWFrZS10ZWFzZS1ncmlkIHtcbiAgcGljdHVyZSB7XG4gICAgei1pbmRleDogMTtcbiAgfVxuXG4gIC5iYWRnZS13cmFwcGVyIHtcbiAgICB6LWluZGV4OiAyO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB9XG5cbiAgLmJhZGdlLFxuICAuY2FyZC10aXRsZSB7XG4gICAgYSB7XG4gICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4ldGVhc2UtZ3JpZCB7XG4gIEBpbmNsdWRlIG1ha2UtdGVhc2UtZ3JpZCgpO1xufVxuIiwiQG1peGluIG1ha2UtdGVhc2Utc2ltcGxlIHtcbiAgYSB7XG4gICAgei1pbmRleDogMTtcbiAgfVxufVxuXG4ldGVhc2Utc2ltcGxlIHtcbiAgQGluY2x1ZGUgbWFrZS10ZWFzZS1zaW1wbGUoKTtcbn1cbiIsIkBtaXhpbiBtYWtlLXRlYXNlLXNpbXBsZS1yZWFsaXNhdGlvbnMge1xuICAmOmhvdmVye1xuICAgIC5jYXJkLW92ZXJsYXkge1xuICAgICAgdHJhbnNmb3JtOiByb3RhdGVYKDApO1xuICAgIH1cbiAgfVxuICAuY2FyZC1vdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHotaW5kZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGNvbG9yOiAkdGVhc2Utb3ZlcmxheS10ZXh0LWNvbG9yO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0ZXh0LXNoYWRvdzogJHRlYXNlLW92ZXJsYXktdGV4dC1zaGFkb3c7XG4gICAgYmFja2dyb3VuZDogcmdiYSgkdGVhc2Utb3ZlcmxheS1iZy1jb2xvciwgJHRlYXNlLW92ZXJsYXktYmctb3BhY2l0eSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIGVhc2UgLjNzO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWCg5MGRlZyk7XG4gICAgdHJhbnNmb3JtLW9yaWdpbjogYm90dG9tO1xuICB9XG59XG5cbiV0ZWFzZS1zaW1wbGUtcmVhbGlzYXRpb25zIHtcbiAgQGluY2x1ZGUgbWFrZS10ZWFzZS1zaW1wbGUtcmVhbGlzYXRpb25zKCk7XG59XG4iLCJAaW1wb3J0IFwifkBmb3J0YXdlc29tZS9mb250YXdlc29tZS1wcm8vc2Nzcy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJ+QGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXByby9zY3NzL3ZhcmlhYmxlc1wiO1xuXG4vLy0tLS0tLSBCb290c3RyYXBcbi8vLS0tLS0gQ29sb3Igc3lzdGVtXG4vLyBzY3NzLWRvY3Mtc3RhcnQgY29sb3ItdmFyaWFibGVzXG4kd2hpdGU6ICNmZmY7XG5cbi8vLS0tLSBCdXR0b25zIFN0eWxlXG4kaW5wdXQtYnRuLXBhZGRpbmcteDogMS4yNXJlbTtcbiRpbnB1dC1idG4tcGFkZGluZy15OiAuNzVyZW07XG4kaW5wdXQtYnRuLWZvbnQtZmFtaWx5OiBvc3dhbGQ7XG5cbi8vLS0tLS0gQnV0dG9ucyArIEZvcm1zXG4kYnRuLWNvbG9yczogKFxuICBcInNlY29uZGFyeVwiOiAjYTZjMTQ3XG4pO1xuXG4vLy0tLS0tIE5hdnNcbi8vICRuYXYtbGluay1mb250LXNpemU6IG51bGw7XG4vLyAkbmF2LWxpbmstY29sb3I6ICRib2R5LWNvbG9yO1xuLy8gJG5hdi1saW5rLWhvdmVyLWNvbG9yOiAkcHJpbWFyeTtcblxuLy8tLS0tLS0gV3AgQWxwaGFcbi8vLS0tLS0gVG9vbHNcbi8vICR0ZWFzZXM6IChcImdyaWRcIiwgXCJsaXN0XCIpO1xuXG4vLy0tLS0tIENvbnRyYXN0XG4kbWluLWNvbnRyYXN0LXJhdGlvOiAzO1xuXG4vLy0tLS0tIEhlYWRlclxuJGhlYWRlci1iZzogJHdoaXRlO1xuXG4vLy0tLS0tIEZvb3RlclxuJGZvb3Rlci1iZzogdHJhbnNwYXJlbnQ7XG5cbi8vLS0tLS0gVG9wIGJhclxuJHRvcC1iYXItdHJhbnNwYXJlbnQtaGVhZGVyLWJnLWNvbG9yOiAkcHJpbWFyeTtcblxuLy8tLS0tLSBMb2dvXG4kdHJhbnNwYXJlbnQtaGVhZGVyLWxvZ28tY29sb3I6IGZhbHNlO1xuJHRyYW5zcGFyZW50LWhlYWRlci1sb2dvLXNoYWRvdy1jb2xvcjogZmFsc2U7XG5cbi8vLS0tLSBQYXJhbGF4XG4kYXNwLW92ZXJsYXktYmctY29sb3I6ICRzZWNvbmRhcnk7XG4kYXNwLW92ZXJsYXktYmctb3BhY2l0eTogLjYzO1xuXG4vLy0tLS0tIENGN1xuJGZvcm0tZmllbGQtaW5wdXQtYmFja2dyb3VuZDogJHdoaXRlO1xuXG4vLy0tLS0tLSBGb250cyBvcHRpbWl6YXRpb25cbi8vLS0tLS0gRm9udEF3ZXNvbWUgSWNvbnNcbi8vIGhlcmUgeW91IGNhbiBhZGQgYWxsIHRoZSBpY29ucyB5b3UgbmVlZCB0byB1c2UgaW5zaWRlIHlvdXIgdGhlbWVcblxuJGN1c3RvbS11c2VkLWZhLWljb25zOlxuICAoXG4gICAgaGVsbWV0LXNhZmV0eTogJGZhLXZhci1oZWxtZXQtc2FmZXR5LFxuICAgIGZvcnQtYXdlc29tZTogJGZhLXZhci1mb3J0LWF3ZXNvbWUsXG4gICAgYmxvY2stYnJpY2s6ICRmYS12YXItYmxvY2stYnJpY2ssXG4gICAgdXNlci1oZWFkc2V0OiAkZmEtdmFyLXVzZXItaGVhZHNldCxcbiAgICBoYW5kLWhvbGRpbmctaGVhcnQ6ICRmYS12YXItaGFuZC1ob2xkaW5nLWhlYXJ0LFxuICAgIGJhbGxvdC1jaGVjazogJGZhLXZhci1iYWxsb3QtY2hlY2ssXG4gICAgYm9sdC1saWdodG5pbmc6ICRmYS12YXItYm9sdC1saWdodG5pbmcsXG4gICAgbGlzdC1jaGVjazogJGZhLXZhci1saXN0LWNoZWNrLFxuICAgIGNlcnRpZmljYXRlOiAkZmEtdmFyLWNlcnRpZmljYXRlLFxuICApO1xuIiwiQGltcG9ydCBcIn5ib290c3RyYXAvc2Nzcy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJ+QGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXByby9zY3NzL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIn5AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtcHJvL3Njc3MvdmFyaWFibGVzXCI7XG5cbiR0aGVtZS1hc3NldC1wYXRoOiBcIi4uL2ltYWdlc1wiICFkZWZhdWx0O1xuJGZvbnRzLXBhdGg6IFwiZm9udHNcIiAhZGVmYXVsdDtcblxuLy8tLS0tLS0gQ29sb3Igc3lzdGVtXG4kd2hpdGU6ICNmZmYgIWRlZmF1bHQ7XG4kZ3JheS0xMDA6ICNmN2Y3ZjcgIWRlZmF1bHQ7XG4kZ3JheS0yMDA6ICNlOWVjZWYgIWRlZmF1bHQ7XG4kZ3JheS01MDA6ICM5ZDlkOWQgIWRlZmF1bHQ7XG4kZ3JheS02MDA6ICM2Yzc1N2QgIWRlZmF1bHQ7XG4kZ3JheS03MDA6ICM0OTUwNTcgIWRlZmF1bHQ7XG4kZ3JheS05MDA6ICMwYTBhMGEgIWRlZmF1bHQ7XG4kYmxhY2s6ICMwMDAgIWRlZmF1bHQ7XG4kbmVtYXRpcy12aW9sZXQ6ICM3MTE5NmYgIWRlZmF1bHQ7XG5cbi8vIHNjc3MtZG9jcy1zdGFydCBjb2xvci12YXJpYWJsZXNcbiRibHVlOiAjMDA1ZGFhICFkZWZhdWx0O1xuJHB1cnBsZTogIzcwMWU2ZSAhZGVmYXVsdDtcbiRncmVlbjogIzAxYWUzYyAhZGVmYXVsdDtcbiRyZWQ6ICNkYzM1NDUgIWRlZmF1bHQ7XG4keWVsbG93OiAjZmZjMTA3ICFkZWZhdWx0O1xuJGN5YW46ICMwZGNhZjAgIWRlZmF1bHQ7XG5cbi8vIHNjc3MtZG9jcy1zdGFydCBjb2xvcnMtbWFwXG4kY29sb3JzOiAoXG4gIFwiYmx1ZVwiOiAkYmx1ZSxcbiAgXCJwdXJwbGVcIjogJHB1cnBsZSxcbiAgXCJncmVlblwiOiAkZ3JlZW4sXG4gIFwid2hpdGVcIjogJHdoaXRlLFxuICBcImdyYXktMTAwXCI6ICRncmF5LTEwMCxcbiAgXCJncmF5LTUwMFwiOiAkZ3JheS01MDAsXG4gIFwiZ3JheS05MDBcIjogJGdyYXktOTAwXG4pICFkZWZhdWx0O1xuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgdGhlbWUtY29sb3ItdmFyaWFibGVzXG4kc3VjY2VzczogJGdyZWVuICFkZWZhdWx0O1xuJGluZm86ICRjeWFuICFkZWZhdWx0O1xuJHdhcm5pbmc6ICR5ZWxsb3cgIWRlZmF1bHQ7XG4kZGFuZ2VyOiAkcmVkICFkZWZhdWx0O1xuJGxpZ2h0OiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG4kZGFyazogJGdyYXktOTAwICFkZWZhdWx0O1xuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgdGhlbWUtY29sb3JzLW1hcFxuJGRlZmF1bHQtdGhlbWUtY29sb3JzOiAoXG4gIFwicHJpbWFyeVwiOiAkcHJpbWFyeSxcbiAgXCJzZWNvbmRhcnlcIjogJHNlY29uZGFyeSxcbiAgXCJzdWNjZXNzXCI6ICRzdWNjZXNzLFxuICBcImluZm9cIjogJGluZm8sXG4gIFwid2FybmluZ1wiOiAkd2FybmluZyxcbiAgXCJkYW5nZXJcIjogJGRhbmdlcixcbiAgXCJsaWdodFwiOiAkbGlnaHQsXG4gIFwiZGFya1wiOiAkZGFya1xuKSAhZGVmYXVsdDtcbiR0aGVtZS1jb2xvcnM6ICgpICFkZWZhdWx0O1xuJHRoZW1lLWNvbG9yczogbWFwLW1lcmdlKCRkZWZhdWx0LXRoZW1lLWNvbG9ycywgJHRoZW1lLWNvbG9ycyk7XG5cbi8vIFRoZSBjb250cmFzdCByYXRpbyB0byByZWFjaCBhZ2FpbnN0IHdoaXRlLCB0byBkZXRlcm1pbmUgaWYgY29sb3IgY2hhbmdlcyBmcm9tIFwibGlnaHRcIiB0byBcImRhcmtcIi4gQWNjZXB0YWJsZSB2YWx1ZXMgZm9yIFdDQUcgMi4wIGFyZSAzLCA0LjUgYW5kIDcuXG4kbWluLWNvbnRyYXN0LXJhdGlvOiA0LjUgIWRlZmF1bHQ7XG5cbi8vIEN1c3RvbWl6ZSB0aGUgbGlnaHQgYW5kIGRhcmsgdGV4dCBjb2xvcnMgZm9yIHVzZSBpbiBvdXIgY29sb3IgY29udHJhc3QgZnVuY3Rpb24uXG4kY29sb3ItY29udHJhc3QtZGFyazogJGdyYXktOTAwICFkZWZhdWx0O1xuJGNvbG9yLWNvbnRyYXN0LWxpZ2h0OiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIE9wdGlvbnNcbiRlbmFibGUtbmVnYXRpdmUtbWFyZ2luczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gU3BhY2luZ1xuJHNwYWNlcjogMXJlbSAhZGVmYXVsdDtcbiRzcGFjZXJzOiAoXG4gIDA6IDAsXG4gIDE6ICRzcGFjZXIgKiAuMjUsIC8vIDRweFxuICAyOiAkc3BhY2VyICogLjUsIC8vIDhweFxuICAzOiAkc3BhY2VyICogLjc1LCAvLyAxMnB4XG4gIDQ6ICRzcGFjZXIsIC8vIDE2cHhcbiAgNTogJHNwYWNlciAqIDEuMjUsIC8vIDIwcHhcbiAgNjogJHNwYWNlciAqIDEuNSwgLy8gMjRweFxuICA3OiAkc3BhY2VyICogMS43NSwgLy8gMjhweFxuICA4OiAkc3BhY2VyICogMiwgLy8gMzJweFxuICA5OiAkc3BhY2VyICogMywgLy8gNDhweFxuICAxMDogJHNwYWNlciAqIDQsIC8vIDY0cHhcbiAgMTE6ICRzcGFjZXIgKiA1IC8vIDgwcHhcbikgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIERhcmsgU3R5bGVcbiRkYXJrLWJnLWNvbG9yOiAkYm9keS1jb2xvciAhZGVmYXVsdDtcbiRkYXJrLXR4dC1jb2xvcjogJGJvZHktYmcgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIExpZ2h0IFN0eWxlXG4kbGlnaHQtYmctY29sb3I6ICRkYXJrLXR4dC1jb2xvciAhZGVmYXVsdDtcbiRsaWdodC10eHQtY29sb3I6ICRkYXJrLWJnLWNvbG9yICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBIZWFkZXJcbiRoZWFkZXItYmc6ICRib2R5LWJnICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBGb290ZXJcbiRmb290ZXItYmc6IHJnYmEoJHByaW1hcnksIC4xKSAhZGVmYXVsdDtcbiRjb3B5cmlnaHQtYmc6ICRmb290ZXItYmcgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIExpbmtzXG4kbGluay1jb2xvcjogJHByaW1hcnkgIWRlZmF1bHQ7XG4kbGluay1zaGFkZS1wZXJjZW50YWdlOiAyMCUgIWRlZmF1bHQ7XG4kbGluay1ob3Zlci1jb2xvcjogc2hpZnQtY29sb3IoJGxpbmstY29sb3IsICRsaW5rLXNoYWRlLXBlcmNlbnRhZ2UpICFkZWZhdWx0O1xuXG4vLyBHcmlkIGNvbHVtbnNcbiRncmlkLWd1dHRlci13aWR0aDogMS41cmVtICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBDb250YWluZXIgcGFkZGluZ1xuJGNvbnRhaW5lci1wYWRkaW5nLXg6ICRncmlkLWd1dHRlci13aWR0aCAvIDIgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIENvbXBvbmVudHNcbi8vIHNjc3MtZG9jcy1zdGFydCBib3JkZXItdmFyaWFibGVzXG4kYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kYm9yZGVyLWNvbG9yOiByZ2JhKCRncmF5LTkwMCwgLjE1KSAhZGVmYXVsdDtcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGFzcGVjdC1yYXRpb3NcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGhlYWRpbmdzLXZhcmlhYmxlc1xuJGhlYWRpbmdzLW1hcmdpbi1ib3R0b206ICRzcGFjZXIgKiAyICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBCdXR0b25zICsgRm9ybXNcbiRidG4tY29sb3JzOiAoXG4gIFwicHJpbWFyeVwiOiBudWxsLFxuICBcInNlY29uZGFyeVwiIDogbnVsbFxuKSAhZGVmYXVsdDtcblxuJGlucHV0LWZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1mb2N1cy13aWR0aDogLjEyNXJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gTmF2c1xuLy8tLS0tLSBTaGFyZWQgdmFyaWFibGVzXG4kbmF2LWNvbG9yLWFjY2VudDogJHByaW1hcnkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gQm9vdHN0cmFwIHZhcmlhYmxlc1xuJG5hdi1saW5rLWZvbnQtc2l6ZTogbnVsbCAhZGVmYXVsdDtcbiRuYXYtbGluay1jb2xvcjogJGJvZHktY29sb3IgIWRlZmF1bHQ7XG4kbmF2LWxpbmstaG92ZXItY29sb3I6IHRpbnQtY29sb3IoJHByaW1hcnksIDMwJSkgIWRlZmF1bHQ7XG4kbmF2LWxpbmstZGlzYWJsZWQtY29sb3I6ICRncmF5LTYwMCAhZGVmYXVsdDtcblxuLy8tLS0tLSBBbHBoYSB2YXJpYWJsZXNcbiRuYXYtY29sb3ItaG92ZXItZmlyc3QtbGV2ZWw6ICRuYXYtbGluay1ob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRuYXYtY29sb3ItY3VycmVudDogJG5hdi1jb2xvci1hY2NlbnQgIWRlZmF1bHQ7XG4kbmF2LWNvbG9yLWN1cnJlbnQtZmlyc3QtbGV2ZWw6ICRuYXYtY29sb3ItY3VycmVudCAhZGVmYXVsdDtcbiRuYXYtY29sb3ItYW5jZXN0b3I6IHNoYWRlLWNvbG9yKCRuYXYtY29sb3ItYWNjZW50LCAyMCUpICFkZWZhdWx0O1xuJG5hdi1jb2xvci1hbmNlc3Rvci1maXJzdC1sZXZlbDogJG5hdi1jb2xvci1hbmNlc3RvciAhZGVmYXVsdDtcblxuLy8tLS0tLS0gTmF2YmFyXG4kc3VibWVudS1iZy1jb2xvcjogd2hpdGUgIWRlZmF1bHQ7XG4kbmF2YmFyLXBhZGRpbmcteTogMyAqICRzcGFjZXIgLyA0ICFkZWZhdWx0O1xuJG5hdmJhci1pdGVtLW1hcmdpbi14OiBudWxsICFkZWZhdWx0O1xuJG5hdmJhci1pdGVtLW1hcmdpbi15OiBudWxsICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC1jb2xvcjogJG5hdi1saW5rLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC1ob3Zlci1jb2xvcjogJG5hdi1saW5rLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC1hY3RpdmUtY29sb3I6ICRuYXYtbGluay1ob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItbGlnaHQtZGlzYWJsZWQtY29sb3I6ICRuYXYtbGluay1kaXNhYmxlZC1jb2xvciAhZGVmYXVsdDtcblxuLy8tLS0tLS0gRHJvcGRvd25zXG5cbi8vLS0tLS0tIFBhZ2luYXRpb25cbiRwYWdpbmF0aW9uLWhvdmVyLWJnOiByZ2JhKCRwcmltYXJ5LCAuMSkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIE1vZGFsc1xuJG1vZGFsLWJhY2tkcm9wLWJnOiBibGFjayAhZGVmYXVsdDtcbiRtb2RhbC1iYWNrZHJvcC1vcGFjaXR5OiAuNSAhZGVmYXVsdDtcbiRtb2RhbC1jb250ZW50LWJvcmRlci13aWR0aDogMCAhZGVmYXVsdDtcblxuLy8gTW9kYWwgVmlkZW9cbiRtb2RhbC12aWRlby1idG4tY2xvc2UtYmctY29sb3I6ICRwcmltYXJ5ICFkZWZhdWx0O1xuJG1vZGFsLXZpZGVvLWJ0bi1jbG9zZS1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcblxuLy8tLS0tLS0gSW1hZ2UgdGh1bWJuYWlscyAmIFBpY3R1cmVcblxuLy8tLS0tLS0gQnJlYWRjcnVtYnNcbiRicmVhZGNydW1iLWZvbnQtc2l6ZTogLjc1cmVtICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItYWN0aXZlLWNvbG9yOiAkYm9keS1jb2xvciAhZGVmYXVsdDtcblxuLy8tLS0tLS0gT2ZmY2FudmFzXG4kb2ZmY2FudmFzLWJvZHktYmFja2Ryb3AtY29sb3I6IHJnYmEoJG1vZGFsLWJhY2tkcm9wLWJnLCAkbW9kYWwtYmFja2Ryb3Atb3BhY2l0eSkgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLXdpZGUtc2NyZWVuLWJyZWFrcG9pbnQ6IHh4bCAhZGVmYXVsdDtcblxuLy8tLS0tLS0gT2ZmY2FudmFzIGRlc2t0b3BcbiRvZmZjYW52YXMtZGFyay1tb2RlLWxvZ28tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZGVza3RvcC13aWR0aDogNDAwcHggIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWxvZ28td2lkdGg6IDY2LjY2JSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtaGVhZGVyLWFsaWduZW1lbnQ6IGNlbnRlciAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1ib3JkZXItY29sb3IgOiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLWJvcmRlci1vcGFjaXR5IDogLjUgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtYm9yZGVyLWJnOiByZ2JhKCRvZmZjYW52YXMtZ3JpZC1ib3JkZXItY29sb3IsICRvZmZjYW52YXMtZ3JpZC1ib3JkZXItb3BhY2l0eSkgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci1zaXplIDogMXB4ICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItdHlwZSA6IHNvbGlkICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItb3BhY2l0eSA6IC4xICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci1jb2xvci1iZyA6IHJnYmEoJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItY29sb3IsICRvZmZjYW52YXMtZ3JpZC1maXJzdC1sdmwtYm9yZGVyLW9wYWNpdHkpO1xuJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItc3R5bGU6ICRvZmZjYW52YXMtZ3JpZC1maXJzdC1sdmwtYm9yZGVyLXNpemUgJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItdHlwZSAkb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci1jb2xvci1iZyAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1maXJzdC1sdmwtZm9udC1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtZmlyc3QtdGh1bWItd2lkdGg6IDc1JSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1zdWJtZW51LWZvbnQtc2l6ZTogMS4xMjVyZW0gIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtc3VibWVudS1pdGVtLXBhZGRpbmcteTogMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1zdWJtZW51LWl0ZW0tbGluZS1oZWlnaHQ6IDEuMjUgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtc3VibWVudS1pdGVtLWljb24tc2l6ZTogLjhyZW0gIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtc3VibWVudS1pdGVtLWltYWdlLWJveC1zaGFkb3c6IDAgMCAxLjVyZW0gLjc1cmVtIHJnYmEoJHNlY29uZGFyeSwgLjI1KSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1zdWJtZW51LWl0ZW0taG92ZXItaW1hZ2UtYm94LXNoYWRvdzogdmFyKC0tYnMtYm94LXNoYWRvdyk7XG4kb2ZmY2FudmFzLWZpcnN0LWx2bC1tZW51LWl0ZW0tYm9yZGVyLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWZpcnN0LWx2bC1tZW51LWl0ZW0tYm9yZGVyLW9wYWNpdHk6IC4xNSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZmlyc3QtbHZsLW1lbnUtaXRlbS1ib3JkZXItc3R5bGU6IDFweCBzb2xpZCByZ2JhKCRvZmZjYW52YXMtZmlyc3QtbHZsLW1lbnUtaXRlbS1ib3JkZXItY29sb3IsICRvZmZjYW52YXMtZmlyc3QtbHZsLW1lbnUtaXRlbS1ib3JkZXItb3BhY2l0eSk7XG5cbi8vLS0tLS0tLSBPZmZjYW52YXMgZGVza3RvcCBNZWdhIFN1Ym1lbnVcbiRvZmZjYW52YXMtc3VibWVudS1pdGVtLWZvbnQtc2l6ZTogMS41cmVtICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1zdWJtZW51LWl0ZW0tYm9yZGVyLWNvbG9yOiB2YXIoLS10aGVtZS1za2luLXRleHQtY29sb3IpICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1zdWJtZW51LWl0ZW0tYm9yZGVyLXN0eWxlOiAxcHggc29saWQgJG9mZmNhbnZhcy1zdWJtZW51LWl0ZW0tYm9yZGVyLWNvbG9yO1xuXG5cbi8vLS0tLS0tIE1lZ2EgTWVudVxuJG1lZ2FtZW51LWJnLWNvbG9yOiB2YXIoLS10aGVtZS1za2luLWJnLWNvbG9yKTtcbiRtZWdhbWVudS1wYWRkaW5nLXk6IDFyZW0gIWRlZmF1bHQ7XG4kbWVnYW1lbnUtcGFkZGluZy14OiAxcmVtICFkZWZhdWx0O1xuJG1lZ2FtZW51LXRpdGxlLXBhZGRpbmcteTogLjVyZW0gIWRlZmF1bHQ7XG4kbWVnYW1lbnUtdGl0bGUtcGFkZGluZy14OiAxcmVtICFkZWZhdWx0O1xuJG1lZ2FtZW51LXRpdGxlLWNvbG9yOiB2YXIoLS10aGVtZS1za2luLXRleHQtY29sb3IpICFkZWZhdWx0O1xuJG1lZ2FtZW51LXRpdGxlLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcbiRtZWdhbWVudS10aXRsZS1ob3Zlci1jb2xvcjogJG5hdi1saW5rLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJG1lZ2FtZW51LXRpdGxlLWhvdmVyLXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFkZWZhdWx0O1xuJG1lZ2FtZW51LXBpY3R1cmUtaGFzLW92ZXJsYXk6IHRydWUgIWRlZmF1bHQ7XG4kbWVnYW1lbnUtb3ZlcmxheS1iZy1jb2xvcjogJHByaW1hcnkgIWRlZmF1bHQ7XG4kbWVnYW1lbnUtb3ZlcmxheS1iZy1vcGFjaXR5OiAuNSAhZGVmYXVsdDtcbiRtZWdhbWVudS1vdmVybGF5LWJnLWNvbG9yLXJiZzogcmdiYSgkbWVnYW1lbnUtb3ZlcmxheS1iZy1jb2xvciwgJG1lZ2FtZW51LW92ZXJsYXktYmctb3BhY2l0eSkgIWRlZmF1bHQ7XG4kbWVnYW1lbnUtcGljdHVyZS1ib3JkZXItcmFkaXVzOiAuNXJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gQW5jaG9yIG9mZnNldFxuJGFuY2hvci1vZmZzZXQ6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIFdwIEFscGhhXG4vLyBsb2dvXG4kbG9nby1wYWRkaW5nLXk6ICRuYXZiYXItcGFkZGluZy15ICFkZWZhdWx0O1xuXG4vLy0tLS0tIEJvb3RzdHJhcCBjb2xvcnMgY2xlYW51cFxuJGJzLWdyYXlzLXRvLWtlZXA6ICgpICFkZWZhdWx0O1xuJGJzLWdyYXlzLXRvLXJlbW92ZTogKFwiMjAwXCIsIFwiMzAwXCIsIFwiNDAwXCIsIFwiNTAwXCIsIFwiNzAwXCIpICFkZWZhdWx0O1xuJGJzLWNvbG9ycy10by1rZWVwOiAoKSAhZGVmYXVsdDtcbiRicy1jb2xvcnMtdG8tcmVtb3ZlOiAoXCJpbmRpZ29cIiwgXCJwaW5rXCIsIFwicmVkXCIsIFwieWVsbG93XCIsIFwiZ3JlZW5cIiwgXCJ0ZWFsXCIsIFwiY3lhblwiLCBcImxpZ2h0XCIsIFwiZGFya1wiKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBCb290c3RyYXAgdXRpbGl0aWVzIGNsZWFudXBcbiRicy11dGlsaXRpZXMtdG8tcmVtb3ZlOiAoXCJiZy1vcGFjaXR5XCIpICFkZWZhdWx0O1xuXG4vLy0tLS0tIEhlbHBlcnNcbi8vLS0tLSBTZXBhcmF0ZSB0aXRsZVxuJHNlcGFyYXRlLXRpdGxlLXdpZHRoOiA4MHB4ICFkZWZhdWx0O1xuJHNlcGFyYXRlLXRpdGxlLWJnOiAkcHJpbWFyeSAhZGVmYXVsdDtcblxuLy8tLS0tIFRyYW5zcGFyZW50IGJhY2tncm91bmRzXG4kdHJhbnNwYXJlbnQtYmctb3BhY2l0aWVzLW92ZXJyaWRlczogKCkgIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtYmctb3BhY2l0aWVzOiAoXG4gIDEwOiAuMSxcbiAgMjU6IC4yNSxcbiAgbGlnaHQ6IC4yNSxcbiAgMzU6IC4zNSxcbiAgNTA6IC41LFxuICBtZWRpdW06IC41LFxuICA2NTogLjY1LFxuICA3NTogLjc1LFxuICBzdHJvbmc6IC43NSxcbiAgOTA6IC45XG4pICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWJnLW9wYWNpdGllczogbWFwLW1lcmdlKCR0cmFuc3BhcmVudC1iZy1vcGFjaXRpZXMsICR0cmFuc3BhcmVudC1iZy1vcGFjaXRpZXMtb3ZlcnJpZGVzKTtcbiR0cmFuc3BhcmVudC1iZy1jb2xvcnM6IChwcmltYXJ5OiAkdHJhbnNwYXJlbnQtYmctb3BhY2l0aWVzLCBzZWNvbmRhcnk6ICR0cmFuc3BhcmVudC1iZy1vcGFjaXRpZXMpICFkZWZhdWx0O1xuXG4vLy0tLS0tIFRvb2xzXG4vLyBDb25maWd1cmF0aW9uIChhY3RpdmF0ZSBvbmx5IHRob3NlIG5lZWRlZClcbiR0ZWFzZXM6IChcImdyaWRcIiwgXCJsaXN0XCIsIFwic2ltcGxlXCIsIFwic2ltcGxlLXJlYWxpc2F0aW9uc1wiKSAhZGVmYXVsdDtcbiRmb3JtczogKCkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gVG9wIEJhclxuJHRvcC1iYXItaGlkZS1vbi1tb2JpbGU6IHRydWUgIWRlZmF1bHQ7XG4kdG9wLWJhci1oaWRlLW9uLXNjcm9sbC1tb2JpbGU6IHRydWUgIWRlZmF1bHQ7XG4kdG9wLWJhci1oaWRlLW9uLXNjcm9sbC1kZXNrdG9wOiAkdG9wLWJhci1oaWRlLW9uLXNjcm9sbC1tb2JpbGUgIWRlZmF1bHQ7XG4kdG9wLWJhci1wYWRkaW5nLXg6ICRjb250YWluZXItcGFkZGluZy14ICFkZWZhdWx0O1xuJHRvcC1iYXItcGFkZGluZy15OiAuNXJlbSAhZGVmYXVsdDtcbiR0b3AtYmFyLWhlaWdodDogaWYobnVsbCAhPSBpbmRleCgkbWVudXMsIFwic2Vjb25kYXJ5XCIpLCAyLjVyZW0sIDEuNXJlbSkgIWRlZmF1bHQ7XG4kdG9wLWJhci1vcGFjaXR5OiAxICFkZWZhdWx0O1xuJHRvcC1iYXItc29jaWFsLWxpbmtzLW1hcmdpbjogbWFwLWdldCgkc3BhY2VycywgNCkgIWRlZmF1bHQ7XG4kdG9wLWJhci1kZWZhdWx0LWJnLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdG9wLWJhci10cmFuc3BhcmVudC1oZWFkZXItYmctY29sb3I6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4vLy0tLS0tIEhlYWRlclxuJGhlYWRlci1idG4taWNvbjogJGZhLXZhci1waG9uZS1hbHQgIWRlZmF1bHQ7XG4kaGVhZGVyLWJ0bi1mYS1zdHlsZTogXCJzb2xpZFwiICFkZWZhdWx0O1xuJGhlYWRlci1idG4tc2hvdy10ZXh0LWJyZWFrcG9pbnQ6ICRkZXNrdG9wLWJyZWFrcG9pbnQgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gRmVhdHVyZWQgaW1hZ2VcbiRmZWF0dXJlZC1pbWFnZS1oZWlnaHQ6IDUwdmggIWRlZmF1bHQ7XG4kaG9tZS1mZWF0dXJlZC1pbWFnZS1oZWlnaHQ6IDUwdmggIWRlZmF1bHQ7XG4kZmVhdHVyZWQtaW1hZ2Utb3ZlcmxheS1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG4kZmVhdHVyZWQtaW1hZ2Utb3ZlcmxheS1vcGFjaXR5OiAuMyAhZGVmYXVsdDtcblxuLy8tLS0tLSBDb250ZW50IEFib3ZlXG4kY29udGVudC1hYm92ZS10ZXh0LWNvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcblxuLy8tLS0tLSBTaGFwZXNcbi8vIHBvc3NpYmxlIHNoYXBlcyBhcmU6IChzcXVhcmUsIGNpcmNsZSwgdHJpYW5nbGUsIGxvemVuZ2UpXG4vLyBwb3NzaWJsZSB1bml0cyBhcmU6IChyZW06IDFyZW0sIGVtOiAxZW0sIHZ3OiAyLjV2dylcbiRzaGFwZXM6ICgpICFkZWZhdWx0O1xuJHNoYXBlcy11bml0czogKHJlbTogMXJlbSkgIWRlZmF1bHQ7XG4kc2hhcGVzLWRlZmF1bHQtdW5pdDogbnRoKG50aCgkc2hhcGVzLXVuaXRzLCAxKSwgMikgIWRlZmF1bHQ7XG4kc2hhcGVzLW1heC1tdWx0aXBsaWVyOiAxMCAhZGVmYXVsdDtcblxuLy8tLS0tLSBUZXh0IGNvbnRyYXN0XG4kYWxwaGEtZW5hYmxlLWJ0bi1jbG9zZS10ZXh0LWNvbnRyYXN0LWNvbG9yczogZmFsc2UgIWRlZmF1bHQ7XG4kYWxwaGEtYnRuLWNsb3NlLXRleHQtY29udHJhc3QtY29sb3JzOiAkdGhlbWUtY29sb3JzICFkZWZhdWx0O1xuXG4vLy0tLS0tIFRleHQgc2hhZG93XG4kYWxwaGEtdGV4dC1zaGFkb3ctY29sb3I6IGNvbG9yLWNvbnRyYXN0KHdoaXRlKSAhZGVmYXVsdDtcbiRhbHBoYS10ZXh0LXNoYWRvdy1yYWRpdXM6IC41cmVtICFkZWZhdWx0O1xuJGFscGhhLXRleHQtc2hhZG93LXJhZGl1cy1zbTogLjI1cmVtICFkZWZhdWx0O1xuJGFscGhhLXRleHQtc2hhZG93LXJhZGl1cy1sZzogMXJlbSAhZGVmYXVsdDtcbiRhbHBoYS10ZXh0LXNoYWRvdy1jb2xvcnM6ICgpICFkZWZhdWx0O1xuXG4vLy0tLS0tIE92ZXJsYXlcbiRhbHBoYS1vdmVybGF5LWNvbG9yOiAkbW9kYWwtYmFja2Ryb3AtYmcgIWRlZmF1bHQ7XG4kYWxwaGEtb3ZlcmxheS1vcGFjaXR5OiAkbW9kYWwtYmFja2Ryb3Atb3BhY2l0eSAhZGVmYXVsdDtcbiRhbHBoYS1vdmVybGF5LWNvbG9yczogKCkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gWiBpbmRleFxuJGFscGhhLXotaW5kZXhlczogKDEpICFkZWZhdWx0O1xuXG4vLy0tLS0tIFNpZGViYXJcbiRzaWRlYmFyOiBmYWxzZSAhZGVmYXVsdDtcbiRzaWRlYmFyLWJnLWNvbG9yOiByZ2JhKCRwcmltYXJ5LCAuMSkgIWRlZmF1bHQ7XG4kc2lkZWJhci1wYWRkaW5nOiBtYXAtZ2V0KCRzcGFjZXJzLCAzKSAhZGVmYXVsdDtcbiRzaWRlYmFyLWJvcmRlci1yYWRpdXM6IC4zNzVyZW0gIWRlZmF1bHQ7XG4kc2lkZWJhci13aWRnZXRzLXNwYWNlcjogbWFwLWdldCgkc3BhY2VycywgNikgIWRlZmF1bHQ7XG4kc2lkZWJhci13aWRnZXQtY29udGVudC1zcGFjZXI6IG1hcC1nZXQoJHNwYWNlcnMsIDIpICFkZWZhdWx0O1xuJHNpZGViYXItd2lkZ2V0LXRpdGxlLXNwYWNlcjogbWFwLWdldCgkc3BhY2VycywgMykgIWRlZmF1bHQ7XG4kc2lkZWJhci13aWRnZXQtdGl0bGUtZm9udC1zaXplOiAkaDMtZm9udC1zaXplICFkZWZhdWx0O1xuJHNpZGViYXItd2lkZ2V0LWxpc3QtZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuXG4vLy0tLS0tIFN1cnRpdGxlXG4kYWxwaGEtc3VydGl0bGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmICFkZWZhdWx0O1xuJGFscGhhLXN1cnRpdGxlLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuJGFscGhhLXN1cnRpdGxlLWZvbnQtc2l6ZS1kZXNrdG9wOiAkYWxwaGEtc3VydGl0bGUtZm9udC1zaXplICFkZWZhdWx0O1xuJGFscGhhLXN1cnRpdGxlLWZvbnQtd2VpZ2h0OiBub3JtYWwgIWRlZmF1bHQ7XG4kYWxwaGEtc3VydGl0bGUtY29sb3I6ICRwcmltYXJ5ICFkZWZhdWx0O1xuJGFscGhhLXN1cnRpdGxlLW1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNwYWNlcnMsIDQpICFkZWZhdWx0O1xuJGFscGhhLXN1cnRpdGxlLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gQ29weXJpZ2h0XG4kYWxwaGEtY29weXJpZ2h0LWZvbnQtc2l6ZTogLjgyNXJlbSAhZGVmYXVsdDtcbiRhbHBoYS1jb3B5cmlnaHQtbGluay1ob3Zlci1jb2xvcjogdmFyKC0tdGhlbWUtc2tpbi10ZXh0LWNvbG9yKSAhZGVmYXVsdDtcbiRhbHBoYS1jb3B5cmlnaHQtbGluay10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gTmF2aWdhdGlvbnNcbi8vLS0tLSBDb21tb25cbiRuYXYtbGluay1hZnRlci1oZWlnaHQ6IDJweCAhZGVmYXVsdDtcblxuLy8tLS0tIENlbnRlclxuJG5hdi1jZW50ZXItbG9nby1wYWRkaW5nLXg6IDFyZW0gIWRlZmF1bHQ7XG4kbmF2LWNlbnRlci1sb2dvLXBhZGRpbmcteTogMCAhZGVmYXVsdDtcblxuLy8tLS0tLSBCcmVhZGNydW1ic1xuJGJyZWFkY3J1bWItbW9iaWxlLXNoYWRvdy1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1tb2JpbGUtc2hhZG93LWNvbG9yOiAkYm9keS1iZyAhZGVmYXVsdDtcbiRicmVhZGNydW1iLW9uLWZlYXR1cmVkLW1vYmlsZS1zaGFkb3ctY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8tLS0tLSBUZWFzZVxuJHRlYXNlLWJhZGdlLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdGVhc2UtYmFkZ2UtYmc6ICRwcmltYXJ5ICFkZWZhdWx0O1xuXG4kdGVhc2Utb3ZlcmxheS10ZXh0LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdGVhc2Utb3ZlcmxheS10ZXh0LXNoYWRvdzogMCAwIC4yNXJlbSAjMDAwO1xuJHRlYXNlLW92ZXJsYXktYmctY29sb3I6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kdGVhc2Utb3ZlcmxheS1iZy1vcGFjaXR5OiAuNSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gV29vQ29tbWVyY2Vcbi8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG9sZCAkd29vY29tbWVyY2UgJiAkd29vY29tbWVyY2VTaWRlYmFyIHZhcmlhYmxlc1xuQGlmIHR5cGUtb2YoJHdvb2NvbW1lcmNlKSA9PSBcImJvb2xcIiB7XG4gIEB3YXJuIFwiVXNhZ2Ugb2YgJHdvb2NvbW1lcmNlIHZhcmlhYmxlIGFzIGJvb2wgaXMgZGVwcmVjYXRlZCwgdXNlIHdvb2NvbW1lcmNlLmVuYWJsZWQgaW4gd29vY29tbWVyY2UueWFtbCBpbnN0ZWFkLlwiO1xuICAkd29vY29tbWVyY2U6IG1hcC1leHRlbmQobWFwLWdldCgkY29uZmlnLWRlZmF1bHRzLCBcIndvb2NvbW1lcmNlXCIpLCAoZW5hYmxlZDogJHdvb2NvbW1lcmNlKSk7XG4gICR3b29jb21tZXJjZS1lbmFibGVkOiBtYXAtZ2V0LWRlZXAoJHdvb2NvbW1lcmNlLCBcImVuYWJsZWRcIik7XG59XG5cbkBpZiB2YXJpYWJsZS1leGlzdHMod29vY29tbWVyY2VTaWRlYmFyKSB7XG4gIEB3YXJuIFwiVXNhZ2Ugb2YgJHdvb2NvbW1lcmNlU2lkZWJhciB2YXJpYWJsZSBkZXByZWNhdGVkLCB1c2UgJHdvb2NvbW1lcmNlLXNpZGViYXIgaW5zdGVhZC5cIjtcbiAgJHdvb2NvbW1lcmNlLXNpZGViYXI6ICR3b29jb21tZXJjZVNpZGViYXI7XG59XG5cbi8vIEF0dHJpYnV0ZXNcbiR3Yy1wcm9kdWN0LWF0dHJpYnV0ZS1mb250LXNpemU6IC45cmVtICFkZWZhdWx0O1xuJHdjLXByb2R1Y3QtYXR0cmlidXRlLWV2ZW4tYmc6IHJnYmEoJHByaW1hcnksIC4xKSAhZGVmYXVsdDtcbiR3Yy1wcm9kdWN0LWF0dHJpYnV0ZS1sYWJlbC1jb2xvcjogJGdyYXktNzAwICFkZWZhdWx0O1xuXG4vLyBBdmFpbGFiaWxpdHlcbiR3Yy1zdG9jay1pY29uLXdpZHRoOiAkZmEtZnctd2lkdGggIWRlZmF1bHQ7XG4kd2Mtc3RvY2staWNvbi1mb250LXNpemU6ICRmYS1zaXplLXNjYWxlLWJhc2UgIWRlZmF1bHQ7XG4kd2Mtc3RvY2staW5mbzogKFxuICBhdmFpbGFibGUtb24tYmFja29yZGVyOiAoY29sb3I6IG9yYW5nZSwgaWNvbjogJGZhLXZhci1jbG9jay1yb3RhdGUtbGVmdCksXG4gIG91dC1vZi1zdG9jazogKGNvbG9yOiByZWQsIGljb246ICRmYS12YXItY2lyY2xlLXhtYXJrKVxuKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBBZGQgdG8gQ2FydCBidXR0b25cbiRidG4tYWRkdG9jYXJ0LWJnOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidG4tYWRkdG9jYXJ0LWNvbG9yOiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xuJGJ0bi1hZGR0b2NhcnQtaG92ZXItYmc6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ0bi1hZGR0b2NhcnQtaG92ZXItY29sb3I6ICRwcmltYXJ5ICFkZWZhdWx0O1xuJGJ0bi1hZGR0b2NhcnQtaWNvbnM6IChcbiAgc2ltcGxlOiAkZmEtdmFyLXNob3BwaW5nLWJhc2tldCxcbiAgZ3JvdXBlZDogJGZhLXZhci1leWUsXG4gIHZhcmlhYmxlOiAkZmEtdmFyLWNvZ3MsXG4gIGJvb2tpbmc6ICRmYS12YXItY2FsZW5kYXItZGF5cyxcbikgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gQm9va2luZ1xuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci11aS1iZzogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiR3Yy1ib29raW5nLWRhdGVwaWNrZXItdWktY29sb3I6IGNvbG9yLWNvbnRyYXN0KCR3Yy1ib29raW5nLWRhdGVwaWNrZXItdWktYmcpICFkZWZhdWx0O1xuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1vZGQtYmc6ICRncmF5LTEwMCAhZGVmYXVsdDtcbiR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stb2RkLWhvdmVyLWJnOiBzaGFkZS1jb2xvcigkd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLW9kZC1iZywgMjAlKSAhZGVmYXVsdDtcbiR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stb2RkLWNvbG9yOiBjb2xvci1jb250cmFzdCgkd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLW9kZC1iZykgIWRlZmF1bHQ7XG4kd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLWV2ZW4tYmc6ICRncmF5LTIwMCAhZGVmYXVsdDtcbiR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stZXZlbi1ob3Zlci1iZzogc2hhZGUtY29sb3IoJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1ldmVuLWJnLCAyMCUpICFkZWZhdWx0O1xuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1ldmVuLWNvbG9yOiBjb2xvci1jb250cmFzdCgkd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLWV2ZW4tYmcpICFkZWZhdWx0O1xuJHdjLWJvb2tpbmctY29zdC1iZzogJGdyYXktMTAwICFkZWZhdWx0O1xuJHdjLWJvb2tpbmctY29zdC1jb2xvcjogY29sb3ItY29udHJhc3QoJHdjLWJvb2tpbmctY29zdC1iZykgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gUHJpY2UgQ29sb3JcbiR3Yy1wcmljZS1jb2xvcjogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiR3Yy1kZWwtcHJpY2UtY29sb3I6IHJnYmEoJGdyYXktNTAwLCAuNikgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gRGlzY291bnQgYmFkZ2VcbiRiYWRnZS1vbnNhbGUtYmc6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kYmFkZ2Utb25zYWxlLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gTWluaSBDYXJ0XG4kbWluaWNhcnQtY291bnRlci1iZzogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiRtaW5pY2FydC1jb3VudGVyLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kbWluaWNhcnQtdG90YWwtYmc6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kbWluaWNhcnQtdG90YWwtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRtaW5pY2FydC1pdGVtLWNvbG9yOiAkcHJpbWFyeSAhZGVmYXVsdDtcbiRtaW5pY2FydC1xdHktY29sb3I6ICRib2R5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy0tLS0tIENhcnRcbiRjYXJ0LWJ0bi1hY3Rpb25zLWJnOiAkcHJpbWFyeSAhZGVmYXVsdDtcbiRjYXJ0LWJ0bi1jaGVja291dC1iZzogJHNlY29uZGFyeSAhZGVmYXVsdDtcblxuLy8tLS0tLSBNZXNzYWdlXG4kd2MtbWVzc2FnZS1iZy1jb2xvcjogJGdyYXktMTAwICFkZWZhdWx0O1xuJHdjLW1lc3NhZ2UtY29sb3I6ICRib2R5LWNvbG9yICFkZWZhdWx0O1xuJHdjLW1lc3NhZ2UtaWNvbi1jb2xvcjogJGdyZWVuICFkZWZhdWx0O1xuXG4kd2MtaW5mby1iZy1jb2xvcjogJGdyYXktMTAwICFkZWZhdWx0O1xuJHdjLWluZm8tY29sb3I6ICRib2R5LWNvbG9yICFkZWZhdWx0O1xuJHdjLWluZm8taWNvbi1jb2xvcjogJGJsdWUgIWRlZmF1bHQ7XG5cbiR3Yy1lcnJvci1iZy1jb2xvcjogJGdyYXktMTAwICFkZWZhdWx0O1xuJHdjLWVycm9yLWNvbG9yOiAkYm9keS1jb2xvciAhZGVmYXVsdDtcbiR3Yy1lcnJvci1pY29uLWNvbG9yOiByZWQgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gU2lkZWJhclxuJHdjLXNpZGViYXItbW9iaWxlLWNvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcbiR3Yy1zaWRlYmFyLW1vYmlsZS1iYWNrLXRvcC1vZmZzZXQteTogM3JlbSAhZGVmYXVsdDtcbiR3Yy1zaWRlYmFyLWNvbG9yOiByZ2JhKCRwcmltYXJ5LCAuMSkgIWRlZmF1bHQ7XG4kd2MtZmlsdGVyLXRvZ2dsZXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR3Yy1maWx0ZXItdG9nZ2xlci1iZzogJHByaW1hcnkgIWRlZmF1bHQ7XG4kd2MtY2F0LWxpbmstYmc6ICRncmF5LTEwMCAhZGVmYXVsdDtcbiR3Yy1jYXQtbGluay1ob3Zlci1iZzogJHByaW1hcnkgIWRlZmF1bHQ7XG4kd2MtY2F0LWxpbmstaG92ZXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR3Yy1zaWRlYmFyLWN1cnJlbnQtdGVybS1saW5rLWNvbG9yOiAkbmF2LWNvbG9yLWN1cnJlbnQgIWRlZmF1bHQ7XG4kd2Mtc2lkZWJhci1jdXJyZW50LXRlcm0tbGluay1ob3Zlci1jb2xvcjogdGludC1jb2xvcigkd2Mtc2lkZWJhci1jdXJyZW50LXRlcm0tbGluay1jb2xvciwgMTAlKSAhZGVmYXVsdDtcbiR3Yy1zaWRlYmFyLWN1cnJlbnQtdGVybS1wYXJlbnQtbGluay1jb2xvcjogJG5hdi1jb2xvci1hbmNlc3RvciAhZGVmYXVsdDtcbiR3Yy1zaWRlYmFyLWN1cnJlbnQtdGVybS1wYXJlbnQtbGluay1ob3Zlci1jb2xvcjogdGludC1jb2xvcigkd2Mtc2lkZWJhci1jdXJyZW50LXRlcm0tcGFyZW50LWxpbmstY29sb3IsIDEwJSkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gVG9wIGJhciBpY29uc1xuLy8tLS0tLSBUb3AgYmFyIGljb25zXG4kdG9wLWJhci1pY29uczogKGNvbnRhY3Q6ICRmYS12YXItZW52ZWxvcGUsIHBob25lOiAkZmEtdmFyLXBob25lLWFsdCkgIWRlZmF1bHQ7XG4kdG9wLWJhci1pY29ucy1tYXJnaW46IC4yNXJlbSAhZGVmYXVsdDtcbiR0b3AtYmFyLWljb25zLWZhLXZhcmlhbnQ6IFwic29saWRcIiAhZGVmYXVsdDtcbiR3Yy10b3AtYmFyLWljb25zOiAkdG9wLWJhci1pY29ucyAhZGVmYXVsdDtcbiR3Yy10b3AtYmFyLWljb25zLW1hcmdpbjogJHRvcC1iYXItaWNvbnMtbWFyZ2luICFkZWZhdWx0O1xuJHdjLXRvcC1iYXItaWNvbnMtZmEtdmFyaWFudDogJHRvcC1iYXItaWNvbnMtZmEtdmFyaWFudCAhZGVmYXVsdDtcblxuLy8tLS0tLSBUZWFzZVxuJHdjLXRlYXNlLXByb2R1Y3QtYmctY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR3Yy10ZWFzZS1wcm9kdWN0LWJvcmRlci1yYWRpdXM6IG1hcC1nZXQoJHNwYWNlcnMsIDIpICFkZWZhdWx0O1xuJHdjLXRlYXNlLXByb2R1Y3QtbGluay1wYWRkaW5nOiBtYXAtZ2V0KCRzcGFjZXJzLCAyKSAhZGVmYXVsdDtcbiR3Yy10ZWFzZS1wcm9kdWN0LWxpbmstaW1hZ2UtcGFkZGluZzogJHdjLXRlYXNlLXByb2R1Y3QtbGluay1wYWRkaW5nICogLTEgIWRlZmF1bHQ7XG4kd2MtdGVhc2UtcHJvZHVjdC1ob3Zlci1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIFNvY2lhbCBzaGFyZSBpY29uc1xuJHNvY2lhbC1zaGFyZS1ob3Zlci1ib3JkZXItY29sb3I6IHJnYmEoJHByaW1hcnksIC41KSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gV1BNTFxuJHdwbWwtZGV2OiBmYWxzZSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gQWxwaGEgYmxvY2tzXG4vLy0tLS0tIEZhY2Vib29rIHZpZGVvXG4kYWxwaGEtZmItdmlkZW8tbG9hZGVyLWJnLWNvbG9yOiAkcHJpbWFyeSAhZGVmYXVsdDtcbiRhbHBoYS1mYi12aWRlby1sb2FkZXItY29sb3I6IGNvbG9yLWNvbnRyYXN0KCRhbHBoYS1mYi12aWRlby1sb2FkZXItYmctY29sb3IpICFkZWZhdWx0O1xuXG4vLy0tLS0tIE1hcFxuJGFscGhhLW1hcC1kZWZhdWx0LWhlaWdodDogMjUwcHggIWRlZmF1bHQ7XG4kYWxwaGEtbWFwLWRlZmF1bHQtaGVpZ2h0LWxnOiAkYWxwaGEtbWFwLWRlZmF1bHQtaGVpZ2h0ICogMiAhZGVmYXVsdDtcblxuLy8tLS0tLSBSYXRpbmdcbiRhbHBoYS1yYXRpbmctc3Rhci1vbi1jb2xvcjogJHllbGxvdyAhZGVmYXVsdDtcbiRhbHBoYS1yYXRpbmctc3Rhci1vZmYtY29sb3I6ICRncmF5LTEwMCAhZGVmYXVsdDtcblxuLy8tLS0tLSBJY29uXG4kaWNvbi1ibG9jay1pY29uLWNvbG9yOiAkcHJpbWFyeSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gQWxwaGEgbW9kdWxlc1xuLy8tLS0tLSBDb21tb25cbiRsb2FkaW5nLW1vZHVsZXMtYmctY29sb3I6IHJnYmEoJHdoaXRlLCAuNzUpICFkZWZhdWx0O1xuJGxvYWRpbmctbW9kdWxlcy1sb2FkZXItY29sb3I6ICRwcmltYXJ5ICFkZWZhdWx0O1xuJGxvYWRpbmctbW9kdWxlcy1sb2FkZXItZm9udC1zaXplOiAycmVtICFkZWZhdWx0O1xuJGxvYWRpbmctbW9kdWxlcy16LWluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8tLS0tLSBEZWZhdWx0XG4vLy0tLS0gUGFnZSBzY3JvbGxcbiRob21lLXBhZ2Utc2Nyb2xsLWxpc3RlbmVyLWhlaWdodDogMTV2aCAhZGVmYXVsdDtcbiRwYWdlLXNjcm9sbC1saXN0ZW5lci1oZWlnaHQ6ICRob21lLXBhZ2Utc2Nyb2xsLWxpc3RlbmVyLWhlaWdodCAvIDIgIWRlZmF1bHQ7XG4kcGFnZS1zY3JvbGwtbGlzdGVuZXItaGVpZ2h0LWRlc2t0b3A6ICRob21lLXBhZ2Utc2Nyb2xsLWxpc3RlbmVyLWhlaWdodCAvIDMgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gT3B0aW9uYWxcbi8vLS0tLSBCYWNrIHRvIHRvcFxuJGJhY2stdG8tdG9wLW9mZnNldC14OiAxcmVtICFkZWZhdWx0O1xuJGJhY2stdG8tdG9wLW9mZnNldC15OiAxcmVtICFkZWZhdWx0O1xuJGJhY2stdG8tdG9wLWRlZmF1bHQtYnV0dG9uLXRyYW5zbGF0ZS15OiAkYmFjay10by10b3Atb2Zmc2V0LXkgKiAtMiAhZGVmYXVsdDtcblxuLy8tLS0tIEhlYWRlciBzdGF0ZXNcbi8vLS0tIFNocnVuayBsb2dvXG4kc2hydW5rLWxvZ28taGVpZ2h0LXJhdGlvOiAuOCAhZGVmYXVsdDtcblxuLy8tLS0tIFJhbmdlIHNsaWRlclxuJHJhbmdlLXNsaWRlci13cmFwcGVyLWhlaWdodDogM3JlbSAhZGVmYXVsdDtcblxuLy8tLS0tIFJvdXNxdWlsbGVcbiRyb3VzcXVpbGxlLWJhbm5lci1sb2dvLW1hcmdpbjogMCBhdXRvICFkZWZhdWx0O1xuJHJvdXNxdWlsbGUtYmFubmVyLWxvZ28tbWFyZ2luLXRhYmxldDogMCBhdXRvIG1hcC1nZXQoJHNwYWNlcnMsIDgpICFkZWZhdWx0O1xuJHJvdXNxdWlsbGUtYmFubmVyLWxvZ28tbWFyZ2luLW1vYmlsZTogMCBhdXRvIG1hcC1nZXQoJHNwYWNlcnMsIDQpICFkZWZhdWx0O1xuJHJvdXNxdWlsbGUtYmFubmVyLWxvZ28taGVpZ2h0OiAkbG9nby1oZWlnaHQgIWRlZmF1bHQ7XG4kcm91c3F1aWxsZS1iYW5uZXItbG9nby1tYXgtaGVpZ2h0OiA1cmVtICFkZWZhdWx0O1xuXG4vLy0tLSBUcmFuc3BhcmVudCBIZWFkZXJcbiR0cmFuc3BhcmVudC1oZWFkZXItYmctY29sb3I6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICRncmF5LTcwMCwgdHJhbnNwYXJlbnQpICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWhlYWRlci10ZXh0LWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWhlYWRlci1zaGFkb3ctY29sb3I6ICMwMDAgIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtaGVhZGVyLXNoYWRvdy1yYWRpdXM6IC4xMjVyZW0gIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtaGVhZGVyLWxvZ28tY29sb3I6ICR0cmFuc3BhcmVudC1oZWFkZXItdGV4dC1jb2xvciAhZGVmYXVsdDtcbiR0cmFuc3BhcmVudC1oZWFkZXItbG9nby1zaGFkb3ctY29sb3I6ICR0cmFuc3BhcmVudC1oZWFkZXItc2hhZG93LWNvbG9yICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWhlYWRlci1sb2dvLXNoYWRvdy1yYWRpdXM6ICR0cmFuc3BhcmVudC1oZWFkZXItc2hhZG93LXJhZGl1cyAhZGVmYXVsdDtcblxuLy8tLS0tIEltYWdlIEdhbGxlcnlcbi8vIFwib3ZlcmxheVwiLCBcImRlZmF1bHQtb3BhY2l0eVwiLCBcImhvdmVyLW9wYWNpdHlcIiwgXCJjdXN0b21cIlxuJGltYWdlLWdhbGxlcnktYW5pbWF0aW9uLXR5cGU6IFwib3ZlcmxheVwiICFkZWZhdWx0O1xuXG4vLy0tLSBPcGFjaXR5XG4kaW1hZ2UtZ2FsbGVyeS1pbWFnZS1vcGFjaXR5OiAuNyAhZGVmYXVsdDtcblxuLy8tLS0gT3ZlcmxheVxuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktb3BhY2l0eTogLjE1ICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1iYWNrZHJvcC1maWx0ZXI6IHNhdHVyYXRlKDEyNSUpIGNvbnRyYXN0KDEyNSUpICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgc2NhbGUoLjUpICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pY29uOiAkZmEtdmFyLXNlYXJjaC1wbHVzICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pY29uLXN0eWxlOiBcInJlZ3VsYXJcIiAhZGVmYXVsdDtcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaWNvbi1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaWNvbi1vcGFjaXR5OiAuODUgIWRlZmF1bHQ7XG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWljb24tZm9udC1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWljb24tdGV4dC1zaGFkb3c6IDAgMCAuMTI1cmVtIHJnYmEoYmxhY2ssIC43NSkgIWRlZmF1bHQ7XG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWljb24tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xLjVyZW0pICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pbWFnZS1vZmZzZXQ6IC4xICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pbWFnZS1zY2FsZTogMSArICRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaW1hZ2Utb2Zmc2V0ICFkZWZhdWx0O1xuXG4vLy0tLS0gTGVhZmxldCBNYXBcbiRtYXAtbWFya2VyLWNvbG9yLWRlZmF1bHQ6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kbWFwLW1hcmtlci1jb2xvci1sb2FkaW5nOiBncmF5ICFkZWZhdWx0O1xuJG1hcC1tYXJrZXItY29sb3ItYWN0aXZlOiAkcHJpbWFyeSAhZGVmYXVsdDtcblxuLy8tLS0tIFdvb0NvbW1lcmNlIFNlYXJjaCBPdmVybGF5XG4kc2VhcmNoLW92ZXJsYXktYmctY29sb3I6IGJsYWNrICFkZWZhdWx0O1xuJHNlYXJjaC1vdmVybGF5LWJnLW9wYWNpdHk6IC4yNSAhZGVmYXVsdDtcbiRzZWFyY2gtb3ZlcmxheS1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoLjEyNXJlbSkgIWRlZmF1bHQ7XG4kc2VhcmNoLW92ZXJsYXktZm9ybS1mb250LXNpemU6IC45cmVtICFkZWZhdWx0O1xuJHNlYXJjaC1vdmVybGF5LWZvcm0tYm9yZGVyLXJhZGl1czogLjI1cmVtICFkZWZhdWx0O1xuXG4vLy0tLS0gV29vQ29tbWVyY2UgUmV2aWV3IGZvcm1cbiR3b29jb21tZXJjZS1yZXZpZXctZm9ybS1zdGFycy1mb250c2l6ZTogMnJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gR3V0ZW5iZXJnIGJsb2Nrc1xuLy8tLS0tLSBSYW5rIE1hdGhcbi8vLS0tLSBGQVFcbiRyYW5rLW1hdGgtZmFxLWJnLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1ib3gtc2hhZG93OiAwIC41cmVtIC41cmVtIC0uMjVyZW0gcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLWJvcmRlci1yYWRpdXM6IG1hcC1nZXQoJHNwYWNlcnMsIDEpICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtYm9yZGVyLWNvbG9yOiAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1ib3JkZXI6IDFweCBzb2xpZCAkcmFuay1tYXRoLWZhcS1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1pdGVtLXBhZGRpbmc6IG1hcC1nZXQoJHNwYWNlcnMsIDMpICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24tZm9udC1zaXplOiAxLjI1cmVtICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24tZ2FwOiBtYXAtZ2V0KCRzcGFjZXJzLCAyKSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLXBhZGRpbmctYm90dG9tOiAkcmFuay1tYXRoLWZhcS1xdWVzdGlvbi1nYXAgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1xdWVzdGlvbi1ib3JkZXItY29sb3I6ICRyYW5rLW1hdGgtZmFxLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWJvcmRlci1ib3R0b206ICRyYW5rLW1hdGgtZmFxLWJvcmRlciAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWljb246ICRmYS12YXItcXVlc3Rpb24tY2lyY2xlICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24taWNvbi1jb2xvcjogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWljb24tZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24taWNvbi1vZmZzZXQtdG9wOiAuMnJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gRm9udHMgb3B0aW1pemF0aW9uXG4vLy0tLS0tIEZvbnRBd2Vzb21lIGljb25zXG4kZm9udC1mYS1wcm86IFwiRm9udCBBd2Vzb21lIDYgUHJvXCI7XG4kZm9udC1mYS1icmFuZHM6IFwiRm9udCBBd2Vzb21lIDYgQnJhbmRzXCI7XG4vLyBzZWUgLi4vdmVuZG9ycy9fZm9udGF3ZXNvbWUuc2NzcyBmb3IgaWNvbnMgcHJvY2Vzc2luZ1xuLy8gc2VlIC4uL3ZlbmRvcnMvX2ZvbnRhd2Vzb21lLWljb25zLnNjc3MgZm9yIGF2YWlsYWJsZSBpY29ucyAmIGljb25zIGdyb3Vwc1xuLy8gJGN1c3RvbS11c2VkLWZhLWljb25zOiAoZm9udC1hd2Vzb21lLWZsYWc6ICRmYS12YXItZm9udC1hd2Vzb21lLWZsYWcsIHBsdXM6ICRmYS12YXItcGx1cyk7XG4kY3VzdG9tLXVzZWQtZmEtaWNvbnM6ICgpICFkZWZhdWx0O1xuLy8gJHVzZWQtZmEtaWNvbnMtZ3JvdXBzOiAoYWNjb21tb2RhdGlvbnMsIHdvb2NvbW1lcmNlKTtcbiR1c2VkLWZhLWljb25zLWdyb3VwczogKCkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIFNsaWNrXG4kc2xpY2stZm9udC1wYXRoOiBcIn5zbGljay1jYXJvdXNlbC9zbGljay9mb250cy9cIjtcbiRzbGljay1mb250LWZhbWlseTogJGZvbnQtZmEtcHJvO1xuXG4vLy0tLS0tLSBDRjcgRWZmZWN0XG4kY29sb3ItZm9ybS1maWxsZWQ6ICRwcmltYXJ5ICFkZWZhdWx0O1xuJGZvcm0tZ3V0dGVyOiAuNXJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gQm9vdHN0cmFwIFJlc3BvbnNpdmUgSW1hZ2UgUmF0aW9cbi8vIG11c3QgYmUgYSBsaXN0IG9mIHJhdGlvcyBmb3JtYXR0ZWQgbGlrZSB0aGlzOiAoMSAxKSwgKDQgMyksICgzIDIpLCAoMTYgOSksICgyMSA5KVxuJG1lZGlhLXJhdGlvczogKCkgIWRlZmF1bHQ7XG4iLCIkdGhlbWU6ICgnY29sb3JzJzogKCdwcmltYXJ5JzogI0JEMTkyMiwnc2Vjb25kYXJ5JzogIzI0MjQyNCwnYm9keSc6ICMyNDI0MjQsJ2JvZHlfYmcnOiAjZmZmZmZmLCksJ2xvZ28nOiAoJ2hlaWdodCc6IFwiMy43NXJlbVwiLCksJ2Zhdmljb24nOiAoJ2F1dG9fZ2VuZXJhdGVkJzogdHJ1ZSwpLCd0eXBvZ3JhcGh5JzogKCdmb250JzogKCdmYW1pbHlfc2Fuc19zZXJpZic6IE1vbnRzZXJyYXQsJ3NpemUnOiBcIjFyZW1cIiwnd2VpZ2h0JzogMzAwLCksJ2hlYWRpbmdzJzogKCdjb2xvcic6ICNCRDE5MjIsJ2ZvbnQnOiAoJ2ZhbWlseSc6IE9zd2FsZCwnd2VpZ2h0JzogNjAwLCksJ3NpemVzJzogKCdoMSc6IFwiMy40M3JlbVwiLCdoMic6IFwiMi4xOHJlbVwiLCdoMyc6IFwiMS43NXJlbVwiLCdoNCc6IFwiMS41NnJlbVwiLCdoNSc6IFwiMS4yNXJlbVwiLCdoNic6IFwiMXJlbVwiLCksJ2hvbWVfc2l6ZXMnOiAoKSwpLCksKTsiLCIuYnJlYWRjcnVtYiB7XG4gIC8vIHNjc3MtZG9jcy1zdGFydCBicmVhZGNydW1iLWNzcy12YXJzXG4gIC0tI3skcHJlZml4fWJyZWFkY3J1bWItcGFkZGluZy14OiAjeyRicmVhZGNydW1iLXBhZGRpbmcteH07XG4gIC0tI3skcHJlZml4fWJyZWFkY3J1bWItcGFkZGluZy15OiAjeyRicmVhZGNydW1iLXBhZGRpbmcteX07XG4gIC0tI3skcHJlZml4fWJyZWFkY3J1bWItbWFyZ2luLWJvdHRvbTogI3skYnJlYWRjcnVtYi1tYXJnaW4tYm90dG9tfTtcbiAgQGluY2x1ZGUgcmZzKCRicmVhZGNydW1iLWZvbnQtc2l6ZSwgLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1mb250LXNpemUpO1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLWJnOiAjeyRicmVhZGNydW1iLWJnfTtcbiAgLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1ib3JkZXItcmFkaXVzOiAjeyRicmVhZGNydW1iLWJvcmRlci1yYWRpdXN9O1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLWRpdmlkZXItY29sb3I6ICN7JGJyZWFkY3J1bWItZGl2aWRlci1jb2xvcn07XG4gIC0tI3skcHJlZml4fWJyZWFkY3J1bWItaXRlbS1wYWRkaW5nLXg6ICN7JGJyZWFkY3J1bWItaXRlbS1wYWRkaW5nLXh9O1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLWl0ZW0tYWN0aXZlLWNvbG9yOiAjeyRicmVhZGNydW1iLWFjdGl2ZS1jb2xvcn07XG4gIC8vIHNjc3MtZG9jcy1lbmQgYnJlYWRjcnVtYi1jc3MtdmFyc1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDtcbiAgcGFkZGluZzogdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItcGFkZGluZy15KSB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1wYWRkaW5nLXgpO1xuICBtYXJnaW4tYm90dG9tOiB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1tYXJnaW4tYm90dG9tKTtcbiAgQGluY2x1ZGUgZm9udC1zaXplKHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWZvbnQtc2l6ZSkpO1xuICBsaXN0LXN0eWxlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1iZyk7XG4gIEBpbmNsdWRlIGJvcmRlci1yYWRpdXModmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItYm9yZGVyLXJhZGl1cykpO1xufVxuXG4uYnJlYWRjcnVtYi1pdGVtIHtcbiAgLy8gVGhlIHNlcGFyYXRvciBiZXR3ZWVuIGJyZWFkY3J1bWJzIChieSBkZWZhdWx0LCBhIGZvcndhcmQtc2xhc2g6IFwiL1wiKVxuICArIC5icmVhZGNydW1iLWl0ZW0ge1xuICAgIHBhZGRpbmctbGVmdDogdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItaXRlbS1wYWRkaW5nLXgpO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGZsb2F0OiBsZWZ0OyAvLyBTdXBwcmVzcyBpbmxpbmUgc3BhY2luZ3MgYW5kIHVuZGVybGluaW5nIG9mIHRoZSBzZXBhcmF0b3JcbiAgICAgIHBhZGRpbmctcmlnaHQ6IHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWl0ZW0tcGFkZGluZy14KTtcbiAgICAgIGNvbG9yOiB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yKTtcbiAgICAgIGNvbnRlbnQ6IHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWRpdmlkZXIsIGVzY2FwZS1zdmcoJGJyZWFkY3J1bWItZGl2aWRlcikpICN7XCIvKiBydGw6XCJ9IHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWRpdmlkZXIsIGVzY2FwZS1zdmcoJGJyZWFkY3J1bWItZGl2aWRlci1mbGlwcGVkKSkgI3tcIiovXCJ9O1xuICAgIH1cbiAgfVxuXG4gICYuYWN0aXZlIHtcbiAgICBjb2xvcjogdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItaXRlbS1hY3RpdmUtY29sb3IpO1xuICB9XG59XG4iLCIvLyBzdHlsZWxpbnQtZGlzYWJsZSBzY3NzL2RpbWVuc2lvbi1uby1ub24tbnVtZXJpYy12YWx1ZXNcblxuLy8gU0NTUyBSRlMgbWl4aW5cbi8vXG4vLyBBdXRvbWF0ZWQgcmVzcG9uc2l2ZSB2YWx1ZXMgZm9yIGZvbnQgc2l6ZXMsIHBhZGRpbmdzLCBtYXJnaW5zIGFuZCBtdWNoIG1vcmVcbi8vXG4vLyBMaWNlbnNlZCB1bmRlciBNSVQgKGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL3Jmcy9ibG9iL21haW4vTElDRU5TRSlcblxuLy8gQ29uZmlndXJhdGlvblxuXG4vLyBCYXNlIHZhbHVlXG4kcmZzLWJhc2UtdmFsdWU6IDEuMjVyZW0gIWRlZmF1bHQ7XG4kcmZzLXVuaXQ6IHJlbSAhZGVmYXVsdDtcblxuQGlmICRyZnMtdW5pdCAhPSByZW0gYW5kICRyZnMtdW5pdCAhPSBweCB7XG4gIEBlcnJvciBcImAjeyRyZnMtdW5pdH1gIGlzIG5vdCBhIHZhbGlkIHVuaXQgZm9yICRyZnMtdW5pdC4gVXNlIGBweGAgb3IgYHJlbWAuXCI7XG59XG5cbi8vIEJyZWFrcG9pbnQgYXQgd2hlcmUgdmFsdWVzIHN0YXJ0IGRlY3JlYXNpbmcgaWYgc2NyZWVuIHdpZHRoIGlzIHNtYWxsZXJcbiRyZnMtYnJlYWtwb2ludDogMTIwMHB4ICFkZWZhdWx0O1xuJHJmcy1icmVha3BvaW50LXVuaXQ6IHB4ICFkZWZhdWx0O1xuXG5AaWYgJHJmcy1icmVha3BvaW50LXVuaXQgIT0gcHggYW5kICRyZnMtYnJlYWtwb2ludC11bml0ICE9IGVtIGFuZCAkcmZzLWJyZWFrcG9pbnQtdW5pdCAhPSByZW0ge1xuICBAZXJyb3IgXCJgI3skcmZzLWJyZWFrcG9pbnQtdW5pdH1gIGlzIG5vdCBhIHZhbGlkIHVuaXQgZm9yICRyZnMtYnJlYWtwb2ludC11bml0LiBVc2UgYHB4YCwgYGVtYCBvciBgcmVtYC5cIjtcbn1cblxuLy8gUmVzaXplIHZhbHVlcyBiYXNlZCBvbiBzY3JlZW4gaGVpZ2h0IGFuZCB3aWR0aFxuJHJmcy10d28tZGltZW5zaW9uYWw6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBGYWN0b3Igb2YgZGVjcmVhc2VcbiRyZnMtZmFjdG9yOiAxMCAhZGVmYXVsdDtcblxuQGlmIHR5cGUtb2YoJHJmcy1mYWN0b3IpICE9IG51bWJlciBvciAkcmZzLWZhY3RvciA8PSAxIHtcbiAgQGVycm9yIFwiYCN7JHJmcy1mYWN0b3J9YCBpcyBub3QgYSB2YWxpZCAgJHJmcy1mYWN0b3IsIGl0IG11c3QgYmUgZ3JlYXRlciB0aGFuIDEuXCI7XG59XG5cbi8vIE1vZGUuIFBvc3NpYmlsaXRpZXM6IFwibWluLW1lZGlhLXF1ZXJ5XCIsIFwibWF4LW1lZGlhLXF1ZXJ5XCJcbiRyZnMtbW9kZTogbWluLW1lZGlhLXF1ZXJ5ICFkZWZhdWx0O1xuXG4vLyBHZW5lcmF0ZSBlbmFibGUgb3IgZGlzYWJsZSBjbGFzc2VzLiBQb3NzaWJpbGl0aWVzOiBmYWxzZSwgXCJlbmFibGVcIiBvciBcImRpc2FibGVcIlxuJHJmcy1jbGFzczogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIDEgcmVtID0gJHJmcy1yZW0tdmFsdWUgcHhcbiRyZnMtcmVtLXZhbHVlOiAxNiAhZGVmYXVsdDtcblxuLy8gU2FmYXJpIGlmcmFtZSByZXNpemUgYnVnOiBodHRwczovL2dpdGh1Yi5jb20vdHdicy9yZnMvaXNzdWVzLzE0XG4kcmZzLXNhZmFyaS1pZnJhbWUtcmVzaXplLWJ1Zy1maXg6IGZhbHNlICFkZWZhdWx0O1xuXG4vLyBEaXNhYmxlIFJGUyBieSBzZXR0aW5nICRlbmFibGUtcmZzIHRvIGZhbHNlXG4kZW5hYmxlLXJmczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8gQ2FjaGUgJHJmcy1iYXNlLXZhbHVlIHVuaXRcbiRyZnMtYmFzZS12YWx1ZS11bml0OiB1bml0KCRyZnMtYmFzZS12YWx1ZSk7XG5cbkBmdW5jdGlvbiBkaXZpZGUoJGRpdmlkZW5kLCAkZGl2aXNvciwgJHByZWNpc2lvbjogMTApIHtcbiAgJHNpZ246IGlmKCRkaXZpZGVuZCA+IDAgYW5kICRkaXZpc29yID4gMCBvciAkZGl2aWRlbmQgPCAwIGFuZCAkZGl2aXNvciA8IDAsIDEsIC0xKTtcbiAgJGRpdmlkZW5kOiBhYnMoJGRpdmlkZW5kKTtcbiAgJGRpdmlzb3I6IGFicygkZGl2aXNvcik7XG4gIEBpZiAkZGl2aWRlbmQgPT0gMCB7XG4gICAgQHJldHVybiAwO1xuICB9XG4gIEBpZiAkZGl2aXNvciA9PSAwIHtcbiAgICBAZXJyb3IgXCJDYW5ub3QgZGl2aWRlIGJ5IDBcIjtcbiAgfVxuICAkcmVtYWluZGVyOiAkZGl2aWRlbmQ7XG4gICRyZXN1bHQ6IDA7XG4gICRmYWN0b3I6IDEwO1xuICBAd2hpbGUgKCRyZW1haW5kZXIgPiAwIGFuZCAkcHJlY2lzaW9uID49IDApIHtcbiAgICAkcXVvdGllbnQ6IDA7XG4gICAgQHdoaWxlICgkcmVtYWluZGVyID49ICRkaXZpc29yKSB7XG4gICAgICAkcmVtYWluZGVyOiAkcmVtYWluZGVyIC0gJGRpdmlzb3I7XG4gICAgICAkcXVvdGllbnQ6ICRxdW90aWVudCArIDE7XG4gICAgfVxuICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMCArICRxdW90aWVudDtcbiAgICAkZmFjdG9yOiAkZmFjdG9yICogLjE7XG4gICAgJHJlbWFpbmRlcjogJHJlbWFpbmRlciAqIDEwO1xuICAgICRwcmVjaXNpb246ICRwcmVjaXNpb24gLSAxO1xuICAgIEBpZiAoJHByZWNpc2lvbiA8IDAgYW5kICRyZW1haW5kZXIgPj0gJGRpdmlzb3IgKiA1KSB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgMTtcbiAgICB9XG4gIH1cbiAgJHJlc3VsdDogJHJlc3VsdCAqICRmYWN0b3IgKiAkc2lnbjtcbiAgJGRpdmlkZW5kLXVuaXQ6IHVuaXQoJGRpdmlkZW5kKTtcbiAgJGRpdmlzb3ItdW5pdDogdW5pdCgkZGl2aXNvcik7XG4gICR1bml0LW1hcDogKFxuICAgIFwicHhcIjogMXB4LFxuICAgIFwicmVtXCI6IDFyZW0sXG4gICAgXCJlbVwiOiAxZW0sXG4gICAgXCIlXCI6IDElXG4gICk7XG4gIEBpZiAoJGRpdmlkZW5kLXVuaXQgIT0gJGRpdmlzb3ItdW5pdCBhbmQgbWFwLWhhcy1rZXkoJHVuaXQtbWFwLCAkZGl2aWRlbmQtdW5pdCkpIHtcbiAgICAkcmVzdWx0OiAkcmVzdWx0ICogbWFwLWdldCgkdW5pdC1tYXAsICRkaXZpZGVuZC11bml0KTtcbiAgfVxuICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8vIFJlbW92ZSBweC11bml0IGZyb20gJHJmcy1iYXNlLXZhbHVlIGZvciBjYWxjdWxhdGlvbnNcbkBpZiAkcmZzLWJhc2UtdmFsdWUtdW5pdCA9PSBweCB7XG4gICRyZnMtYmFzZS12YWx1ZTogZGl2aWRlKCRyZnMtYmFzZS12YWx1ZSwgJHJmcy1iYXNlLXZhbHVlICogMCArIDEpO1xufVxuQGVsc2UgaWYgJHJmcy1iYXNlLXZhbHVlLXVuaXQgPT0gcmVtIHtcbiAgJHJmcy1iYXNlLXZhbHVlOiBkaXZpZGUoJHJmcy1iYXNlLXZhbHVlLCBkaXZpZGUoJHJmcy1iYXNlLXZhbHVlICogMCArIDEsICRyZnMtcmVtLXZhbHVlKSk7XG59XG5cbi8vIENhY2hlICRyZnMtYnJlYWtwb2ludCB1bml0IHRvIHByZXZlbnQgbXVsdGlwbGUgY2FsbHNcbiRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlOiB1bml0KCRyZnMtYnJlYWtwb2ludCk7XG5cbi8vIFJlbW92ZSB1bml0IGZyb20gJHJmcy1icmVha3BvaW50IGZvciBjYWxjdWxhdGlvbnNcbkBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSBweCB7XG4gICRyZnMtYnJlYWtwb2ludDogZGl2aWRlKCRyZnMtYnJlYWtwb2ludCwgJHJmcy1icmVha3BvaW50ICogMCArIDEpO1xufVxuQGVsc2UgaWYgJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGUgPT0gcmVtIG9yICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IFwiZW1cIiB7XG4gICRyZnMtYnJlYWtwb2ludDogZGl2aWRlKCRyZnMtYnJlYWtwb2ludCwgZGl2aWRlKCRyZnMtYnJlYWtwb2ludCAqIDAgKyAxLCAkcmZzLXJlbS12YWx1ZSkpO1xufVxuXG4vLyBDYWxjdWxhdGUgdGhlIG1lZGlhIHF1ZXJ5IHZhbHVlXG4kcmZzLW1xLXZhbHVlOiBpZigkcmZzLWJyZWFrcG9pbnQtdW5pdCA9PSBweCwgI3skcmZzLWJyZWFrcG9pbnR9cHgsICN7ZGl2aWRlKCRyZnMtYnJlYWtwb2ludCwgJHJmcy1yZW0tdmFsdWUpfSN7JHJmcy1icmVha3BvaW50LXVuaXR9KTtcbiRyZnMtbXEtcHJvcGVydHktd2lkdGg6IGlmKCRyZnMtbW9kZSA9PSBtYXgtbWVkaWEtcXVlcnksIG1heC13aWR0aCwgbWluLXdpZHRoKTtcbiRyZnMtbXEtcHJvcGVydHktaGVpZ2h0OiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCBtYXgtaGVpZ2h0LCBtaW4taGVpZ2h0KTtcblxuLy8gSW50ZXJuYWwgbWl4aW4gdXNlZCB0byBkZXRlcm1pbmUgd2hpY2ggbWVkaWEgcXVlcnkgbmVlZHMgdG8gYmUgdXNlZFxuQG1peGluIF9yZnMtbWVkaWEtcXVlcnkge1xuICBAaWYgJHJmcy10d28tZGltZW5zaW9uYWwge1xuICAgIEBpZiAkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5IHtcbiAgICAgIEBtZWRpYSAoI3skcmZzLW1xLXByb3BlcnR5LXdpZHRofTogI3skcmZzLW1xLXZhbHVlfSksICgjeyRyZnMtbXEtcHJvcGVydHktaGVpZ2h0fTogI3skcmZzLW1xLXZhbHVlfSkge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgQG1lZGlhICgjeyRyZnMtbXEtcHJvcGVydHktd2lkdGh9OiAjeyRyZnMtbXEtdmFsdWV9KSBhbmQgKCN7JHJmcy1tcS1wcm9wZXJ0eS1oZWlnaHR9OiAjeyRyZnMtbXEtdmFsdWV9KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQG1lZGlhICgjeyRyZnMtbXEtcHJvcGVydHktd2lkdGh9OiAjeyRyZnMtbXEtdmFsdWV9KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gSW50ZXJuYWwgbWl4aW4gdGhhdCBhZGRzIGRpc2FibGUgY2xhc3NlcyB0byB0aGUgc2VsZWN0b3IgaWYgbmVlZGVkLlxuQG1peGluIF9yZnMtcnVsZSB7XG4gIEBpZiAkcmZzLWNsYXNzID09IGRpc2FibGUgYW5kICRyZnMtbW9kZSA9PSBtYXgtbWVkaWEtcXVlcnkge1xuICAgIC8vIEFkZGluZyBhbiBleHRyYSBjbGFzcyBpbmNyZWFzZXMgc3BlY2lmaWNpdHksIHdoaWNoIHByZXZlbnRzIHRoZSBtZWRpYSBxdWVyeSB0byBvdmVycmlkZSB0aGUgcHJvcGVydHlcbiAgICAmLFxuICAgIC5kaXNhYmxlLXJmcyAmLFxuICAgICYuZGlzYWJsZS1yZnMge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG4gIEBlbHNlIGlmICRyZnMtY2xhc3MgPT0gZW5hYmxlIGFuZCAkcmZzLW1vZGUgPT0gbWluLW1lZGlhLXF1ZXJ5IHtcbiAgICAuZW5hYmxlLXJmcyAmLFxuICAgICYuZW5hYmxlLXJmcyB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2Uge1xuICAgIEBjb250ZW50O1xuICB9XG59XG5cbi8vIEludGVybmFsIG1peGluIHRoYXQgYWRkcyBlbmFibGUgY2xhc3NlcyB0byB0aGUgc2VsZWN0b3IgaWYgbmVlZGVkLlxuQG1peGluIF9yZnMtbWVkaWEtcXVlcnktcnVsZSB7XG5cbiAgQGlmICRyZnMtY2xhc3MgPT0gZW5hYmxlIHtcbiAgICBAaWYgJHJmcy1tb2RlID09IG1pbi1tZWRpYS1xdWVyeSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBfcmZzLW1lZGlhLXF1ZXJ5ICgpIHtcbiAgICAgIC5lbmFibGUtcmZzICYsXG4gICAgICAmLmVuYWJsZS1yZnMge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgQGVsc2Uge1xuICAgIEBpZiAkcmZzLWNsYXNzID09IGRpc2FibGUgYW5kICRyZnMtbW9kZSA9PSBtaW4tbWVkaWEtcXVlcnkge1xuICAgICAgLmRpc2FibGUtcmZzICYsXG4gICAgICAmLmRpc2FibGUtcmZzIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIF9yZnMtbWVkaWEtcXVlcnkgKCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG5cbi8vIEhlbHBlciBmdW5jdGlvbiB0byBnZXQgdGhlIGZvcm1hdHRlZCBub24tcmVzcG9uc2l2ZSB2YWx1ZVxuQGZ1bmN0aW9uIHJmcy12YWx1ZSgkdmFsdWVzKSB7XG4gIC8vIENvbnZlcnQgdG8gbGlzdFxuICAkdmFsdWVzOiBpZih0eXBlLW9mKCR2YWx1ZXMpICE9IGxpc3QsICgkdmFsdWVzLCksICR2YWx1ZXMpO1xuXG4gICR2YWw6IFwiXCI7XG5cbiAgLy8gTG9vcCBvdmVyIGVhY2ggdmFsdWUgYW5kIGNhbGN1bGF0ZSB2YWx1ZVxuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgQGlmICR2YWx1ZSA9PSAwIHtcbiAgICAgICR2YWw6ICR2YWwgKyBcIiAwXCI7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIC8vIENhY2hlICR2YWx1ZSB1bml0XG4gICAgICAkdW5pdDogaWYodHlwZS1vZigkdmFsdWUpID09IFwibnVtYmVyXCIsIHVuaXQoJHZhbHVlKSwgZmFsc2UpO1xuXG4gICAgICBAaWYgJHVuaXQgPT0gcHgge1xuICAgICAgICAvLyBDb252ZXJ0IHRvIHJlbSBpZiBuZWVkZWRcbiAgICAgICAgJHZhbDogJHZhbCArIFwiIFwiICsgaWYoJHJmcy11bml0ID09IHJlbSwgI3tkaXZpZGUoJHZhbHVlLCAkdmFsdWUgKiAwICsgJHJmcy1yZW0tdmFsdWUpfXJlbSwgJHZhbHVlKTtcbiAgICAgIH1cbiAgICAgIEBlbHNlIGlmICR1bml0ID09IHJlbSB7XG4gICAgICAgIC8vIENvbnZlcnQgdG8gcHggaWYgbmVlZGVkXG4gICAgICAgICR2YWw6ICR2YWwgKyBcIiBcIiArIGlmKCRyZnMtdW5pdCA9PSBweCwgI3tkaXZpZGUoJHZhbHVlLCAkdmFsdWUgKiAwICsgMSkgKiAkcmZzLXJlbS12YWx1ZX1weCwgJHZhbHVlKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBJZiAkdmFsdWUgaXNuJ3QgYSBudW1iZXIgKGxpa2UgaW5oZXJpdCkgb3IgJHZhbHVlIGhhcyBhIHVuaXQgKG5vdCBweCBvciByZW0sIGxpa2UgMS41ZW0pIG9yICQgaXMgMCwganVzdCBwcmludCB0aGUgdmFsdWVcbiAgICAgICAgJHZhbDogJHZhbCArIFwiIFwiICsgJHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlbW92ZSBmaXJzdCBzcGFjZVxuICBAcmV0dXJuIHVucXVvdGUoc3RyLXNsaWNlKCR2YWwsIDIpKTtcbn1cblxuLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgcmVzcG9uc2l2ZSB2YWx1ZSBjYWxjdWxhdGVkIGJ5IFJGU1xuQGZ1bmN0aW9uIHJmcy1mbHVpZC12YWx1ZSgkdmFsdWVzKSB7XG4gIC8vIENvbnZlcnQgdG8gbGlzdFxuICAkdmFsdWVzOiBpZih0eXBlLW9mKCR2YWx1ZXMpICE9IGxpc3QsICgkdmFsdWVzLCksICR2YWx1ZXMpO1xuXG4gICR2YWw6IFwiXCI7XG5cbiAgLy8gTG9vcCBvdmVyIGVhY2ggdmFsdWUgYW5kIGNhbGN1bGF0ZSB2YWx1ZVxuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgQGlmICR2YWx1ZSA9PSAwIHtcbiAgICAgICR2YWw6ICR2YWwgKyBcIiAwXCI7XG4gICAgfSBAZWxzZSB7XG4gICAgICAvLyBDYWNoZSAkdmFsdWUgdW5pdFxuICAgICAgJHVuaXQ6IGlmKHR5cGUtb2YoJHZhbHVlKSA9PSBcIm51bWJlclwiLCB1bml0KCR2YWx1ZSksIGZhbHNlKTtcblxuICAgICAgLy8gSWYgJHZhbHVlIGlzbid0IGEgbnVtYmVyIChsaWtlIGluaGVyaXQpIG9yICR2YWx1ZSBoYXMgYSB1bml0IChub3QgcHggb3IgcmVtLCBsaWtlIDEuNWVtKSBvciAkIGlzIDAsIGp1c3QgcHJpbnQgdGhlIHZhbHVlXG4gICAgICBAaWYgbm90ICR1bml0IG9yICR1bml0ICE9IHB4IGFuZCAkdW5pdCAhPSByZW0ge1xuICAgICAgICAkdmFsOiAkdmFsICsgXCIgXCIgKyAkdmFsdWU7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgLy8gUmVtb3ZlIHVuaXQgZnJvbSAkdmFsdWUgZm9yIGNhbGN1bGF0aW9uc1xuICAgICAgICAkdmFsdWU6IGRpdmlkZSgkdmFsdWUsICR2YWx1ZSAqIDAgKyBpZigkdW5pdCA9PSBweCwgMSwgZGl2aWRlKDEsICRyZnMtcmVtLXZhbHVlKSkpO1xuXG4gICAgICAgIC8vIE9ubHkgYWRkIHRoZSBtZWRpYSBxdWVyeSBpZiB0aGUgdmFsdWUgaXMgZ3JlYXRlciB0aGFuIHRoZSBtaW5pbXVtIHZhbHVlXG4gICAgICAgIEBpZiBhYnMoJHZhbHVlKSA8PSAkcmZzLWJhc2UtdmFsdWUgb3Igbm90ICRlbmFibGUtcmZzIHtcbiAgICAgICAgICAkdmFsOiAkdmFsICsgXCIgXCIgKyBpZigkcmZzLXVuaXQgPT0gcmVtLCAje2RpdmlkZSgkdmFsdWUsICRyZnMtcmVtLXZhbHVlKX1yZW0sICN7JHZhbHVlfXB4KTtcbiAgICAgICAgfVxuICAgICAgICBAZWxzZSB7XG4gICAgICAgICAgLy8gQ2FsY3VsYXRlIHRoZSBtaW5pbXVtIHZhbHVlXG4gICAgICAgICAgJHZhbHVlLW1pbjogJHJmcy1iYXNlLXZhbHVlICsgZGl2aWRlKGFicygkdmFsdWUpIC0gJHJmcy1iYXNlLXZhbHVlLCAkcmZzLWZhY3Rvcik7XG5cbiAgICAgICAgICAvLyBDYWxjdWxhdGUgZGlmZmVyZW5jZSBiZXR3ZWVuICR2YWx1ZSBhbmQgdGhlIG1pbmltdW0gdmFsdWVcbiAgICAgICAgICAkdmFsdWUtZGlmZjogYWJzKCR2YWx1ZSkgLSAkdmFsdWUtbWluO1xuXG4gICAgICAgICAgLy8gQmFzZSB2YWx1ZSBmb3JtYXR0aW5nXG4gICAgICAgICAgJG1pbi13aWR0aDogaWYoJHJmcy11bml0ID09IHJlbSwgI3tkaXZpZGUoJHZhbHVlLW1pbiwgJHJmcy1yZW0tdmFsdWUpfXJlbSwgI3skdmFsdWUtbWlufXB4KTtcblxuICAgICAgICAgIC8vIFVzZSBuZWdhdGl2ZSB2YWx1ZSBpZiBuZWVkZWRcbiAgICAgICAgICAkbWluLXdpZHRoOiBpZigkdmFsdWUgPCAwLCAtJG1pbi13aWR0aCwgJG1pbi13aWR0aCk7XG5cbiAgICAgICAgICAvLyBVc2UgYHZtaW5gIGlmIHR3by1kaW1lbnNpb25hbCBpcyBlbmFibGVkXG4gICAgICAgICAgJHZhcmlhYmxlLXVuaXQ6IGlmKCRyZnMtdHdvLWRpbWVuc2lvbmFsLCB2bWluLCB2dyk7XG5cbiAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIHZhcmlhYmxlIHdpZHRoIGJldHdlZW4gMCBhbmQgJHJmcy1icmVha3BvaW50XG4gICAgICAgICAgJHZhcmlhYmxlLXdpZHRoOiAje2RpdmlkZSgkdmFsdWUtZGlmZiAqIDEwMCwgJHJmcy1icmVha3BvaW50KX0jeyR2YXJpYWJsZS11bml0fTtcblxuICAgICAgICAgIC8vIFJldHVybiB0aGUgY2FsY3VsYXRlZCB2YWx1ZVxuICAgICAgICAgICR2YWw6ICR2YWwgKyBcIiBjYWxjKFwiICsgJG1pbi13aWR0aCArIGlmKCR2YWx1ZSA8IDAsIFwiIC0gXCIsIFwiICsgXCIpICsgJHZhcmlhYmxlLXdpZHRoICsgXCIpXCI7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBSZW1vdmUgZmlyc3Qgc3BhY2VcbiAgQHJldHVybiB1bnF1b3RlKHN0ci1zbGljZSgkdmFsLCAyKSk7XG59XG5cbi8vIFJGUyBtaXhpblxuQG1peGluIHJmcygkdmFsdWVzLCAkcHJvcGVydHk6IGZvbnQtc2l6ZSkge1xuICBAaWYgJHZhbHVlcyAhPSBudWxsIHtcbiAgICAkdmFsOiByZnMtdmFsdWUoJHZhbHVlcyk7XG4gICAgJGZsdWlkLXZhbDogcmZzLWZsdWlkLXZhbHVlKCR2YWx1ZXMpO1xuXG4gICAgLy8gRG8gbm90IHByaW50IHRoZSBtZWRpYSBxdWVyeSBpZiByZXNwb25zaXZlICYgbm9uLXJlc3BvbnNpdmUgdmFsdWVzIGFyZSB0aGUgc2FtZVxuICAgIEBpZiAkdmFsID09ICRmbHVpZC12YWwge1xuICAgICAgI3skcHJvcGVydHl9OiAkdmFsO1xuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAaW5jbHVkZSBfcmZzLXJ1bGUgKCkge1xuICAgICAgICAjeyRwcm9wZXJ0eX06IGlmKCRyZnMtbW9kZSA9PSBtYXgtbWVkaWEtcXVlcnksICR2YWwsICRmbHVpZC12YWwpO1xuXG4gICAgICAgIC8vIEluY2x1ZGUgc2FmYXJpIGlmcmFtZSByZXNpemUgZml4IGlmIG5lZWRlZFxuICAgICAgICBtaW4td2lkdGg6IGlmKCRyZnMtc2FmYXJpLWlmcmFtZS1yZXNpemUtYnVnLWZpeCwgKDAgKiAxdncpLCBudWxsKTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgX3Jmcy1tZWRpYS1xdWVyeS1ydWxlICgpIHtcbiAgICAgICAgI3skcHJvcGVydHl9OiBpZigkcmZzLW1vZGUgPT0gbWF4LW1lZGlhLXF1ZXJ5LCAkZmx1aWQtdmFsLCAkdmFsKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLy8gU2hvcnRoYW5kIGhlbHBlciBtaXhpbnNcbkBtaXhpbiBmb250LXNpemUoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUpO1xufVxuXG5AbWl4aW4gcGFkZGluZygkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgcGFkZGluZyk7XG59XG5cbkBtaXhpbiBwYWRkaW5nLXRvcCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgcGFkZGluZy10b3ApO1xufVxuXG5AbWl4aW4gcGFkZGluZy1yaWdodCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgcGFkZGluZy1yaWdodCk7XG59XG5cbkBtaXhpbiBwYWRkaW5nLWJvdHRvbSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgcGFkZGluZy1ib3R0b20pO1xufVxuXG5AbWl4aW4gcGFkZGluZy1sZWZ0KCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nLWxlZnQpO1xufVxuXG5AbWl4aW4gbWFyZ2luKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBtYXJnaW4pO1xufVxuXG5AbWl4aW4gbWFyZ2luLXRvcCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luLXRvcCk7XG59XG5cbkBtaXhpbiBtYXJnaW4tcmlnaHQoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbi1yaWdodCk7XG59XG5cbkBtaXhpbiBtYXJnaW4tYm90dG9tKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBtYXJnaW4tYm90dG9tKTtcbn1cblxuQG1peGluIG1hcmdpbi1sZWZ0KCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBtYXJnaW4tbGVmdCk7XG59XG4iLCJAaW1wb3J0IFwifmJvb3RzdHJhcC9zY3NzL2JyZWFkY3J1bWJcIjtcblxuLmJyZWFkY3J1bWJzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBtYXgtd2lkdGg6IDEwMHZ3O1xuICBtYXJnaW4tcmlnaHQ6IGNhbGMoI3skY29udGFpbmVyLXBhZGRpbmcteH0gKiAtMSk7XG4gIG1hcmdpbi1sZWZ0OiBjYWxjKCN7JGNvbnRhaW5lci1wYWRkaW5nLXh9ICogLTEpO1xuXG4gIC5icmVhZGNydW1iIHtcbiAgICBmbGV4LXdyYXA6IG5vd3JhcDtcbiAgICBwYWRkaW5nOiAkY29udGFpbmVyLXBhZGRpbmcteDtcbiAgICBtYXJnaW46IHVuc2V0O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG5cbiAgICAmOjpiZWZvcmUsXG4gICAgJjo6YWZ0ZXIge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgdG9wOiAwO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgfVxuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGxlZnQ6IDA7XG4gICAgICB3aWR0aDogMXJlbTtcbiAgICAgIGJhY2tncm91bmQtaW1hZ2U6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdmFyKC0tYWxwaGEtYnJlYWRjcnVtYnMtbW9iaWxlLXNoYWRvdy1jb2xvcikgMCwgdmFyKC0tYWxwaGEtYnJlYWRjcnVtYnMtbW9iaWxlLXNoYWRvdy1jb2xvci1lbmQpKTtcbiAgICB9XG5cbiAgICAmOjphZnRlciB7XG4gICAgICByaWdodDogMDtcbiAgICAgIHdpZHRoOiAycmVtO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1hbHBoYS1icmVhZGNydW1icy1tb2JpbGUtc2hhZG93LWNvbG9yLWVuZCkgMCwgdmFyKC0tYWxwaGEtYnJlYWRjcnVtYnMtbW9iaWxlLXNoYWRvdy1jb2xvcikpO1xuICAgIH1cbiAgfVxuXG4gIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAobWQpIHtcbiAgICAuYnJlYWRjcnVtYiB7XG4gICAgICAmOjpiZWZvcmUsXG4gICAgICAmOjphZnRlciB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgJi5vbi1mZWF0dXJlZCB7XG4gICAgLS1hbHBoYS1icmVhZGNydW1icy1tb2JpbGUtc2hhZG93LWNvbG9yOiAjeyRicmVhZGNydW1iLW9uLWZlYXR1cmVkLW1vYmlsZS1zaGFkb3ctY29sb3J9O1xuICAgIC0tYWxwaGEtYnJlYWRjcnVtYnMtbW9iaWxlLXNoYWRvdy1jb2xvci1lbmQ6ICN7cmdiYSgkYnJlYWRjcnVtYi1vbi1mZWF0dXJlZC1tb2JpbGUtc2hhZG93LWNvbG9yLCAwKX07XG4gICAgdG9wOiB2YXIoLS1mZWF0dXJlZC1pbWFnZS1oZWlnaHQpO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTAwJSk7XG5cbiAgICAuYnJlYWRjcnVtYiB7XG4gICAgICAtLWJzLWJyZWFkY3J1bWItZGl2aWRlci1jb2xvcjogY3VycmVudGNvbG9yO1xuICAgICAgLS1icy1icmVhZGNydW1iLWl0ZW0tYWN0aXZlLWNvbG9yOiBjdXJyZW50Y29sb3I7XG5cbiAgICAgICY6OmJlZm9yZSxcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgb3BhY2l0eTogLjc1O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4uYnJlYWRjcnVtYnMtb24tZmVhdHVyZWQge1xuICAmOm5vdCguaGFzLXRyYW5zcGFyZW50LWhlYWRlcikge1xuICAgIC5icmVhZGNydW1icyB7XG4gICAgICB0b3A6IGNhbGModmFyKC0taGVhZGVyLWhlaWdodCkgKyB2YXIoLS1mZWF0dXJlZC1pbWFnZS1oZWlnaHQpKTtcbiAgICAgIHRyYW5zaXRpb246IHRvcCAuM3MgZWFzZTtcbiAgICB9XG4gIH1cblxuICAmLnNlYXJjaCB7XG4gICAgLmNvbnRlbnQtd3JhcHBlciB7XG4gICAgICBwYWRkaW5nLXRvcDogbWFwLWdldCgkc3BhY2VycywgOCk7XG4gICAgfVxuICB9XG59XG5cbi5icmVhZGNydW1iLWl0ZW0ge1xuICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuXG4gICsgLmJyZWFkY3J1bWItaXRlbSB7XG4gICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lLWJlZm9yZSgkZmEtdmFyLWFuZ2xlLXJpZ2h0LCBmYWxzZSwgXCJsaWdodFwiLCAwKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBmbG9hdDogdW5zZXQ7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAuMjVyZW07XG4gICAgfVxuICB9XG5cbiAgJi5hY3RpdmUge1xuICAgIHNwYW4ge1xuICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vIGZ1bmN0aW9uc1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cblxuLy8gZmEtY29udGVudDogY29udmVuaWVuY2UgZnVuY3Rpb24gdXNlZCB0byBzZXQgY29udGVudCBwcm9wZXJ0eVxuQGZ1bmN0aW9uIGZhLWNvbnRlbnQoJGZhLXZhcikge1xuICBAcmV0dXJuIHVucXVvdGUoXCJcXFwiI3sgJGZhLXZhciB9XFxcIlwiKTtcbn1cblxuLy8gZmEtZGl2aWRlOiBPcmlnaW5hbGx5IG9idGFpbmVkIGZyb20gdGhlIEJvb3RzdHJhcCBodHRwczovL2dpdGh1Yi5jb20vdHdicy9ib290c3RyYXBcbi8vXG4vLyBMaWNlbnNlZCB1bmRlcjogVGhlIE1JVCBMaWNlbnNlIChNSVQpXG4vL1xuLy8gQ29weXJpZ2h0IChjKSAyMDExLTIwMjEgVHdpdHRlciwgSW5jLlxuLy8gQ29weXJpZ2h0IChjKSAyMDExLTIwMjEgVGhlIEJvb3RzdHJhcCBBdXRob3JzXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuQGZ1bmN0aW9uIGZhLWRpdmlkZSgkZGl2aWRlbmQsICRkaXZpc29yLCAkcHJlY2lzaW9uOiAxMCkge1xuICAkc2lnbjogaWYoJGRpdmlkZW5kID4gMCBhbmQgJGRpdmlzb3IgPiAwLCAxLCAtMSk7XG4gICRkaXZpZGVuZDogYWJzKCRkaXZpZGVuZCk7XG4gICRkaXZpc29yOiBhYnMoJGRpdmlzb3IpO1xuICAkcXVvdGllbnQ6IDA7XG4gICRyZW1haW5kZXI6ICRkaXZpZGVuZDtcbiAgQGlmICRkaXZpZGVuZCA9PSAwIHtcbiAgICBAcmV0dXJuIDA7XG4gIH1cbiAgQGlmICRkaXZpc29yID09IDAge1xuICAgIEBlcnJvciBcIkNhbm5vdCBkaXZpZGUgYnkgMFwiO1xuICB9XG4gIEBpZiAkZGl2aXNvciA9PSAxIHtcbiAgICBAcmV0dXJuICRkaXZpZGVuZDtcbiAgfVxuICBAd2hpbGUgJHJlbWFpbmRlciA+PSAkZGl2aXNvciB7XG4gICAgJHF1b3RpZW50OiAkcXVvdGllbnQgKyAxO1xuICAgICRyZW1haW5kZXI6ICRyZW1haW5kZXIgLSAkZGl2aXNvcjtcbiAgfVxuICBAaWYgJHJlbWFpbmRlciA+IDAgYW5kICRwcmVjaXNpb24gPiAwIHtcbiAgICAkcmVtYWluZGVyOiBmYS1kaXZpZGUoJHJlbWFpbmRlciAqIDEwLCAkZGl2aXNvciwgJHByZWNpc2lvbiAtIDEpICogLjE7XG4gIH1cbiAgQHJldHVybiAoJHF1b3RpZW50ICsgJHJlbWFpbmRlcikgKiAkc2lnbjtcbn1cbiIsIi5wYWdpbmF0aW9uLWluZm9ybWF0aW9uIHtcbiAgZm9udC1zaXplOiAuOHJlbTtcbn1cblxuLnBhZ2luYXRpb24ge1xuICAucGFnZS1pdGVtIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9XG5cbiAgLnBhZ2UtbGluayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHNtKSB7XG4gICAgICAmLmRvdHMge1xuICAgICAgICBwYWRkaW5nOiAuMzc1cmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cbi8vXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XG4vL1xuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweClcbi8vXG4vLyBUaGUgbWFwIGRlZmluZWQgaW4gdGhlIGAkZ3JpZC1icmVha3BvaW50c2AgZ2xvYmFsIHZhcmlhYmxlIGlzIHVzZWQgYXMgdGhlIGAkYnJlYWtwb2ludHNgIGFyZ3VtZW50IGJ5IGRlZmF1bHQuXG5cbi8vIE5hbWUgb2YgdGhlIG5leHQgYnJlYWtwb2ludCwgb3IgbnVsbCBmb3IgdGhlIGxhc3QgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20pXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICRicmVha3BvaW50LW5hbWVzOiAoeHMgc20gbWQgbGcgeGwgeHhsKSlcbi8vICAgIG1kXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzLCAkYnJlYWtwb2ludC1uYW1lczogbWFwLWtleXMoJGJyZWFrcG9pbnRzKSkge1xuICAkbjogaW5kZXgoJGJyZWFrcG9pbnQtbmFtZXMsICRuYW1lKTtcbiAgQGlmIG5vdCAkbiB7XG4gICAgQGVycm9yIFwiYnJlYWtwb2ludCBgI3skbmFtZX1gIG5vdCBmb3VuZCBpbiBgI3skYnJlYWtwb2ludHN9YFwiO1xuICB9XG4gIEByZXR1cm4gaWYoJG4gPCBsZW5ndGgoJGJyZWFrcG9pbnQtbmFtZXMpLCBudGgoJGJyZWFrcG9pbnQtbmFtZXMsICRuICsgMSksIG51bGwpO1xufVxuXG4vLyBNaW5pbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBzbWFsbGVzdCAoZmlyc3QpIGJyZWFrcG9pbnQuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1taW4oc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJG5hbWUpO1xuICBAcmV0dXJuIGlmKCRtaW4gIT0gMCwgJG1pbiwgbnVsbCk7XG59XG5cbi8vIE1heGltdW0gYnJlYWtwb2ludCB3aWR0aC5cbi8vIFRoZSBtYXhpbXVtIHZhbHVlIGlzIHJlZHVjZWQgYnkgMC4wMnB4IHRvIHdvcmsgYXJvdW5kIHRoZSBsaW1pdGF0aW9ucyBvZlxuLy8gYG1pbi1gIGFuZCBgbWF4LWAgcHJlZml4ZXMgYW5kIHZpZXdwb3J0cyB3aXRoIGZyYWN0aW9uYWwgd2lkdGhzLlxuLy8gU2VlIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9tZWRpYXF1ZXJpZXMtNC8jbXEtbWluLW1heFxuLy8gVXNlcyAwLjAycHggcmF0aGVyIHRoYW4gMC4wMXB4IHRvIHdvcmsgYXJvdW5kIGEgY3VycmVudCByb3VuZGluZyBidWcgaW4gU2FmYXJpLlxuLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzgyNjFcbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1heChtZCwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICA3NjcuOThweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1heCBhbmQgJG1heCA+IDAsICRtYXggLSAuMDIsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBcIlwiICAoUmV0dXJucyBhIGJsYW5rIHN0cmluZylcbi8vICAgID4+IGJyZWFrcG9pbnQtaW5maXgoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgXCItc21cIlxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtaW5maXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1pbiB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgb2YgYXQgbW9zdCB0aGUgbWF4aW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIGxhcmdlc3QgYnJlYWtwb2ludC5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCBhbmQgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICBAaWYgJG1heCB7XG4gICAgQG1lZGlhIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gTWVkaWEgdGhhdCBzcGFucyBtdWx0aXBsZSBicmVha3BvaW50IHdpZHRocy5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBiZXR3ZWVuIHRoZSBtaW4gYW5kIG1heCBicmVha3BvaW50c1xuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtYmV0d2VlbigkbG93ZXIsICR1cHBlciwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XG4gICRtYXg6IGJyZWFrcG9pbnQtbWF4KCR1cHBlciwgJGJyZWFrcG9pbnRzKTtcblxuICBAaWYgJG1pbiAhPSBudWxsIGFuZCAkbWF4ICE9IG51bGwge1xuICAgIEBtZWRpYSAobWluLXdpZHRoOiAkbWluKSBhbmQgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtYXggPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbG93ZXIsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCR1cHBlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gTWVkaWEgYmV0d2VlbiB0aGUgYnJlYWtwb2ludCdzIG1pbmltdW0gYW5kIG1heGltdW0gd2lkdGhzLlxuLy8gTm8gbWluaW11bSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQsIGFuZCBubyBtYXhpbXVtIGZvciB0aGUgbGFyZ2VzdCBvbmUuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgb25seSB0byB0aGUgZ2l2ZW4gYnJlYWtwb2ludCwgbm90IHZpZXdwb3J0cyBhbnkgd2lkZXIgb3IgbmFycm93ZXIuXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1vbmx5KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46ICBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG5leHQ6IGJyZWFrcG9pbnQtbmV4dCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogIGJyZWFrcG9pbnQtbWF4KCRuZXh0LCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWluID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkbmV4dCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/