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

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

.no-bullets {
  list-style-type: none;
  margin-left: 0; }

.text-primary {
  color: #FFA40B; }

.text-info {
  color: #8eb4cb; }

.text-success {
  color: #2ab27b; }

.text-warning {
  color: #cbb956; }

.text-danger {
  color: #bf5329; }

.tables {
  border: 1px solid #ddd;
  border-collapse: separate;
  border-left: 0;
  border-radius: 3px;
  border-spacing: 0;
  width: 100%; }
  .tables tbody {
    background-color: #fcfcfc; }
    .tables tbody tr:hover > td, .tables tbody tr:hover > th {
      background-color: #efefef; }
    .tables tbody tr:nth-child(even) {
      background-color: #f7f7f7; }
      .tables tbody tr:nth-child(even):hover > td {
        background-color: #eaeaea; }
  .tables thead:first-of-type tr:first-child > th:first-child {
    border-top-left-radius: 3px; }
  .tables thead:first-of-type tr:first-child > th:last-child {
    border-top-right-radius: 3px; }
  .tables tbody:last-child tr:last-child > td:first-child {
    border-bottom-left-radius: 3px; }
  .tables tbody:last-child tr:last-child > td:last-child {
    border-bottom-right-radius: 3px; }
  .tables thead th {
    background-color: white;
    border-bottom: 0;
    border-left: 1px solid #ddd;
    padding: 0.75em 1em;
    text-align: left; }
    .tables thead th:first-child {
      border-left: 0; }
  .tables tbody {
    background-color: #fcfcfc; }
    .tables tbody td {
      border-bottom: 0;
      border-left: 1px solid #ddd;
      border-top: 1px solid #ddd;
      padding: 0.75em 1em; }
      .tables tbody td:first-child {
        border-left: 0; }
      .tables tbody td button {
        display: inline-block;
        font-size: 0.7em;
        line-height: 1.6;
        margin-bottom: 0.3em;
        margin-right: 0.5em;
        outline: none;
        padding: 0.3em 1em;
        width: 100%; }
        @media screen and (max-width: 992px) {
          .tables tbody td button {
            margin-bottom: 0;
            width: auto; } }

button, input[type="button"], input[type="reset"], input[type="submit"], .button-primary, .button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  border-radius: 3px;
  cursor: pointer;
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  font-size: 1em;
  -webkit-font-smoothing: antialiased;
  font-weight: 600;
  line-height: 1;
  padding: 0.8em 1.6em;
  text-align: center;
  text-decoration: none;
  -webkit-transition: background-color 150ms ease;
  transition: background-color 150ms ease;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  vertical-align: middle;
  white-space: nowrap;
  color: #fff;
  background-color: #999; }
  button:hover, button:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="reset"]:hover, input[type="reset"]:focus, input[type="submit"]:hover, input[type="submit"]:focus, .button-primary:hover, .button-primary:focus, .button:hover, .button:focus {
    color: #fff; }
  button:disabled, input[type="button"]:disabled, input[type="reset"]:disabled, input[type="submit"]:disabled, .button-primary:disabled, .button:disabled {
    cursor: not-allowed;
    opacity: 0.5; }
  button:hover, button:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="reset"]:hover, input[type="reset"]:focus, input[type="submit"]:hover, input[type="submit"]:focus, .button-primary:hover, .button-primary:focus, .button:hover, .button:focus {
    background-color: #7a7a7a; }
  button:disabled:hover, input[type="button"]:disabled:hover, input[type="reset"]:disabled:hover, input[type="submit"]:disabled:hover, .button-primary:disabled:hover, .button:disabled:hover {
    background-color: #999; }
  button.inverse, input[type="button"].inverse, input[type="reset"].inverse, input[type="submit"].inverse, .button-primary.inverse, .button.inverse {
    color: #999;
    border: 0.2em solid #999;
    background-color: transparent; }
    button.inverse:hover, button.inverse:focus, input[type="button"].inverse:hover, input[type="button"].inverse:focus, input[type="reset"].inverse:hover, input[type="reset"].inverse:focus, input[type="submit"].inverse:hover, input[type="submit"].inverse:focus, .button-primary.inverse:hover, .button-primary.inverse:focus, .button.inverse:hover, .button.inverse:focus {
      background-color: #d9d9d9; }
    button.inverse:disabled:hover, input[type="button"].inverse:disabled:hover, input[type="reset"].inverse:disabled:hover, input[type="submit"].inverse:disabled:hover, .button-primary.inverse:disabled:hover, .button.inverse:disabled:hover {
      background-color: transparent; }

button[type=submit], .button-primary {
  color: #fff;
  background-color: #FFA40B; }
  button[type=submit]:hover, button[type=submit]:focus, .button-primary:hover, .button-primary:focus {
    background-color: #cc8309; }
  button[type=submit]:disabled:hover, .button-primary:disabled:hover {
    background-color: #FFA40B; }
  button[type=submit].button-inverse, .button-primary.button-inverse {
    color: #FFA40B;
    border: 0.2em solid #FFA40B;
    background-color: transparent; }
    button[type=submit].button-inverse:hover, button[type=submit].button-inverse:focus, .button-primary.button-inverse:hover, .button-primary.button-inverse:focus {
      background-color: #ffd48b; }
    button[type=submit].button-inverse:disabled:hover, .button-primary.button-inverse:disabled:hover {
      background-color: transparent; }

button[type=submit].button-info, .button-info {
  color: #fff;
  background-color: #8eb4cb; }
  button[type=submit].button-info:hover, button[type=submit].button-info:focus, .button-info:hover, .button-info:focus {
    background-color: #7290a2; }
  button[type=submit].button-info:disabled:hover, .button-info:disabled:hover {
    background-color: #8eb4cb; }
  button[type=submit].button-info.button-inverse, .button-info.button-inverse {
    color: #8eb4cb;
    border: 0.2em solid #8eb4cb;
    background-color: transparent; }
    button[type=submit].button-info.button-inverse:hover, button[type=submit].button-info.button-inverse:focus, .button-info.button-inverse:hover, .button-info.button-inverse:focus {
      background-color: #e5eef3; }
    button[type=submit].button-info.button-inverse:disabled:hover, .button-info.button-inverse:disabled:hover {
      background-color: transparent; }

button[type=submit].button-danger, .button-danger {
  color: #fff;
  background-color: #bf5329; }
  button[type=submit].button-danger:hover, button[type=submit].button-danger:focus, .button-danger:hover, .button-danger:focus {
    background-color: #994221; }
  button[type=submit].button-danger:disabled:hover, .button-danger:disabled:hover {
    background-color: #bf5329; }
  button[type=submit].button-danger.button-inverse, .button-danger.button-inverse {
    color: #bf5329;
    border: 0.2em solid #bf5329;
    background-color: transparent; }
    button[type=submit].button-danger.button-inverse:hover, button[type=submit].button-danger.button-inverse:focus, .button-danger.button-inverse:hover, .button-danger.button-inverse:focus {
      background-color: #e49e83; }
    button[type=submit].button-danger.button-inverse:disabled:hover, .button-danger.button-inverse:disabled:hover {
      background-color: transparent; }

.button-group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }
  @media screen and (max-width: 768px) {
    .button-group {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column; } }
  .button-group input {
    display: none; }
  .button-group label {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1; }
    .button-group label .button-group-item {
      background: #FFF;
      border-radius: 0;
      color: #a7a7a7;
      cursor: pointer;
      display: inline-block;
      font-size: 1em;
      font-weight: normal;
      line-height: 1;
      padding: 0.75em 1em;
      text-align: center;
      border-bottom: 1px solid silver;
      border-left: 0;
      border-right: 1px solid #eeeeee;
      border-top: 1px solid silver;
      width: 100%; }
      @media screen and (max-width: 768px) {
        .button-group label .button-group-item {
          border-left: 1px solid silver;
          border-right: 1px solid silver; } }
      .button-group label .button-group-item:focus, .button-group label .button-group-item:hover {
        background-color: #f7f7f7; }
    .button-group label:first-child .button-group-item {
      border-top-left-radius: 3px;
      border-top-right-radius: 3px;
      border-bottom-left-radius: 3px;
      border-left: 1px solid silver;
      border-top-left-radius: 3px;
      border-top-right-radius: 0; }
      @media screen and (max-width: 768px) {
        .button-group label:first-child .button-group-item {
          border-top: 1px solid silver; } }
    .button-group label:last-child .button-group-item {
      border-bottom-left-radius: 3px;
      border-bottom-right-radius: 3px;
      border-bottom-left-radius: 0;
      border-bottom-right-radius: 3px;
      border-right: 1px solid silver;
      border-top-right-radius: 3px; }
      @media screen and (max-width: 768px) {
        .button-group label:last-child .button-group-item {
          border-bottom: 1px solid silver; } }
    .button-group label input:checked + .button-group-item {
      background: #FFA40B;
      border: 1px solid #be7700;
      -webkit-box-shadow: inset 0 1px 2px #d78700;
              box-shadow: inset 0 1px 2px #d78700;
      color: white; }
      .button-group label input:checked + .button-group-item.button-info {
        background: #8eb4cb; }
      .button-group label input:checked + .button-group-item.button-danger {
        background: #bf5329; }

.dropdown {
  line-height: 1.6; }
  .dropdown .dropdown-container {
    display: inline-block;
    position: relative;
    text-align: center; }
  .dropdown .dropdown-description {
    background: #FFF;
    border-bottom: 1px solid silver;
    border-bottom-left-radius: 3px;
    border-left: 1px solid silver;
    border-top-left-radius: 3px;
    border-top: 1px solid silver;
    color: silver;
    float: left;
    font-size: 0.7em;
    line-height: 40px;
    margin: 0;
    padding: 0 0.5em 0 1em; }
    @media screen and (max-width: 1200px) {
      .dropdown .dropdown-description {
        font-size: 1em; } }
  .dropdown .dropdown-button {
    background: #FFF;
    border-bottom: 1px solid silver;
    border-bottom-right-radius: 3px;
    border-right: 1px solid silver;
    border-top: 1px solid silver;
    border-top-right-radius: 3px;
    cursor: pointer;
    float: right;
    font-size: 0.7em;
    line-height: 40px;
    margin: 0;
    padding: 0 2.5em 0 0.5em;
    position: relative; }
    @media screen and (max-width: 1200px) {
      .dropdown .dropdown-button {
        font-size: 1em;
        padding: 0 2.5em 0 0.5em; } }
  .dropdown .dropdown-button:hover {
    background-color: #f7f7f7; }
  .dropdown .dropdown-button::after {
    color: #5A5A5A;
    content: "\25BE";
    display: block;
    position: absolute;
    right: 1em;
    top: 0; }
  .dropdown .dropdown-menu {
    background: #FFF;
    border: 1px solid silver;
    border-radius: 3px;
    -webkit-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);
            box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);
    color: #5A5A5A;
    cursor: pointer;
    display: none;
    margin: 0;
    overflow: visible;
    padding: 0;
    position: absolute;
    right: 0;
    top: 50px;
    -webkit-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
    width: 228px;
    z-index: 99999; }
    .dropdown .dropdown-menu::before {
      position: absolute;
      top: 0;
      right: 1em;
      bottom: 0;
      left: 0;
      color: #FFF;
      content: "\25b2";
      font-size: 1.4em;
      pointer-events: none;
      text-shadow: 0 -2px 2px rgba(0, 0, 0, 0.3);
      top: -0.7em; }
  .dropdown .dropdown-menu li {
    border-bottom: 1px solid silver;
    color: #5A5A5A;
    list-style: none;
    padding: 0.5em; }
  .dropdown .dropdown-menu li:hover {
    background: #f7f7f7; }
  .dropdown .dropdown-menu li:first-child {
    border-top-left-radius: 3px;
    border-top-right-radius: 3px; }
  .dropdown .dropdown-menu li:last-child {
    border: 0;
    border-bottom-left-radius: 3px;
    border-bottom-right-radius: 3px; }
  .dropdown .show-menu {
    display: block; }

fieldset {
  background-color: transparent;
  border: 0;
  margin: 0;
  padding: 0; }

legend {
  font-weight: 600;
  margin-bottom: 0.4em;
  padding: 0; }

label {
  display: block;
  font-weight: 600;
  margin-bottom: 0.4em; }

input,
select,
textarea {
  display: block;
  font-family: "Montserrat", sans-serif;
  font-size: 1em; }

input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="email"], input[type="month"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="time"], input[type="url"], input[type="week"], input:not([type]), textarea {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #FFF;
  border: 1px solid #ddd;
  border-radius: 3px;
  -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06);
          box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin-bottom: 0.8em;
  padding: 0.53333em;
  -webkit-transition: border-color 150ms ease;
  transition: border-color 150ms ease;
  width: 100%; }
  input[type="color"]:hover, input[type="date"]:hover, input[type="datetime"]:hover, input[type="datetime-local"]:hover, input[type="email"]:hover, input[type="month"]:hover, input[type="number"]:hover, input[type="password"]:hover, input[type="search"]:hover, input[type="tel"]:hover, input[type="text"]:hover, input[type="time"]:hover, input[type="url"]:hover, input[type="week"]:hover, input:not([type]):hover, textarea:hover {
    border-color: #b1b1b1; }
  input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="email"]:focus, input[type="month"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="time"]:focus, input[type="url"]:focus, input[type="week"]:focus, input:not([type]):focus, textarea:focus {
    border-color: #FFA40B;
    -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 5px rgba(241, 151, 0, 0.7);
            box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 5px rgba(241, 151, 0, 0.7);
    outline: none; }
  input[type="color"]:disabled, input[type="date"]:disabled, input[type="datetime"]:disabled, input[type="datetime-local"]:disabled, input[type="email"]:disabled, input[type="month"]:disabled, input[type="number"]:disabled, input[type="password"]:disabled, input[type="search"]:disabled, input[type="tel"]:disabled, input[type="text"]:disabled, input[type="time"]:disabled, input[type="url"]:disabled, input[type="week"]:disabled, input:not([type]):disabled, textarea:disabled {
    background-color: #f2f2f2;
    cursor: not-allowed; }
    input[type="color"]:disabled:hover, input[type="date"]:disabled:hover, input[type="datetime"]:disabled:hover, input[type="datetime-local"]:disabled:hover, input[type="email"]:disabled:hover, input[type="month"]:disabled:hover, input[type="number"]:disabled:hover, input[type="password"]:disabled:hover, input[type="search"]:disabled:hover, input[type="tel"]:disabled:hover, input[type="text"]:disabled:hover, input[type="time"]:disabled:hover, input[type="url"]:disabled:hover, input[type="week"]:disabled:hover, input:not([type]):disabled:hover, textarea:disabled:hover {
      border: 1px solid #ddd; }
  input[type="color"]::-webkit-input-placeholder, input[type="date"]::-webkit-input-placeholder, input[type="datetime"]::-webkit-input-placeholder, input[type="datetime-local"]::-webkit-input-placeholder, input[type="email"]::-webkit-input-placeholder, input[type="month"]::-webkit-input-placeholder, input[type="number"]::-webkit-input-placeholder, input[type="password"]::-webkit-input-placeholder, input[type="search"]::-webkit-input-placeholder, input[type="tel"]::-webkit-input-placeholder, input[type="text"]::-webkit-input-placeholder, input[type="time"]::-webkit-input-placeholder, input[type="url"]::-webkit-input-placeholder, input[type="week"]::-webkit-input-placeholder, input:not([type])::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
    color: #9c9c9c; }
  input[type="color"]::-moz-placeholder, input[type="date"]::-moz-placeholder, input[type="datetime"]::-moz-placeholder, input[type="datetime-local"]::-moz-placeholder, input[type="email"]::-moz-placeholder, input[type="month"]::-moz-placeholder, input[type="number"]::-moz-placeholder, input[type="password"]::-moz-placeholder, input[type="search"]::-moz-placeholder, input[type="tel"]::-moz-placeholder, input[type="text"]::-moz-placeholder, input[type="time"]::-moz-placeholder, input[type="url"]::-moz-placeholder, input[type="week"]::-moz-placeholder, input:not([type])::-moz-placeholder, textarea::-moz-placeholder {
    color: #9c9c9c; }
  input[type="color"]::-ms-input-placeholder, input[type="date"]::-ms-input-placeholder, input[type="datetime"]::-ms-input-placeholder, input[type="datetime-local"]::-ms-input-placeholder, input[type="email"]::-ms-input-placeholder, input[type="month"]::-ms-input-placeholder, input[type="number"]::-ms-input-placeholder, input[type="password"]::-ms-input-placeholder, input[type="search"]::-ms-input-placeholder, input[type="tel"]::-ms-input-placeholder, input[type="text"]::-ms-input-placeholder, input[type="time"]::-ms-input-placeholder, input[type="url"]::-ms-input-placeholder, input[type="week"]::-ms-input-placeholder, input:not([type])::-ms-input-placeholder, textarea::-ms-input-placeholder {
    color: #9c9c9c; }
  input[type="color"]::placeholder, input[type="date"]::placeholder, input[type="datetime"]::placeholder, input[type="datetime-local"]::placeholder, input[type="email"]::placeholder, input[type="month"]::placeholder, input[type="number"]::placeholder, input[type="password"]::placeholder, input[type="search"]::placeholder, input[type="tel"]::placeholder, input[type="text"]::placeholder, input[type="time"]::placeholder, input[type="url"]::placeholder, input[type="week"]::placeholder, input:not([type])::placeholder, textarea::placeholder {
    color: #9c9c9c; }

textarea {
  resize: vertical; }

[type="checkbox"],
[type="radio"] {
  display: inline;
  margin-right: 0.4em; }

[type="file"] {
  margin-bottom: 0.8em;
  width: 100%; }

select {
  margin-bottom: 0.8em;
  width: 100%; }

.pagination {
  text-align: center;
  margin-top: 3em; }
  .pagination ul {
    display: inline;
    margin: 0;
    padding: 0;
    text-align: center; }
    .pagination ul li {
      display: inline;
      list-style: none; }
    .pagination ul ul li {
      display: none; }
      .pagination ul ul li:nth-child(1), .pagination ul ul li:nth-child(2), .pagination ul ul li:nth-child(3) {
        display: inline; }
      @media screen and (max-width: 1200px) {
        .pagination ul ul li {
          display: inline; } }
    .pagination ul li a {
      background: #f7f7f7;
      border-radius: 3px;
      border: 1px solid #ddd;
      color: #5A5A5A;
      outline: none;
      padding: 0.4em 0.809em;
      text-decoration: none;
      -webkit-transition: all 0.2s ease-in-out;
      transition: all 0.2s ease-in-out; }
      .pagination ul li a:hover, .pagination ul li a:focus {
        background: white;
        color: #FFA40B; }
      .pagination ul li a:active {
        background: #f7f7f7; }

.flash-alert {
  background-color: #fff6bf;
  color: #66624c;
  display: block;
  margin-bottom: 0.8em;
  padding: 0.8em;
  text-align: center; }
  .flash-alert a {
    color: #4d4a39;
    text-decoration: underline; }
    .flash-alert a:focus, .flash-alert a:hover {
      color: #1a1913; }

.flash-error {
  background-color: #fbe3e4;
  color: #645b5b;
  display: block;
  margin-bottom: 0.8em;
  padding: 0.8em;
  text-align: center; }
  .flash-error a {
    color: #4b4444;
    text-decoration: underline; }
    .flash-error a:focus, .flash-error a:hover {
      color: #191717; }

.flash-notice {
  background-color: #e5edf8;
  color: #5c5f63;
  display: block;
  margin-bottom: 0.8em;
  padding: 0.8em;
  text-align: center; }
  .flash-notice a {
    color: #45474a;
    text-decoration: underline; }
    .flash-notice a:focus, .flash-notice a:hover {
      color: #171819; }

.flash-success {
  background-color: #e6efc2;
  color: #5c604e;
  display: block;
  margin-bottom: 0.8em;
  padding: 0.8em;
  text-align: center; }
  .flash-success a {
    color: #45483a;
    text-decoration: underline; }
    .flash-success a:focus, .flash-success a:hover {
      color: #171813; }

.panel {
  background-color: #FFF;
  padding: 1em;
  border: 1px solid #ddd;
  margin-bottom: 1em; }
  .panel h2 {
    border-bottom: 1px solid #ddd;
    margin-bottom: 1em; }

.cards {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.card {
  background-color: #f7f7f7;
  border: 1px solid #ddd;
  border-radius: 3px;
  -webkit-box-shadow: 0 2px 4px #e6e6e6;
          box-shadow: 0 2px 4px #e6e6e6;
  -ms-flex-preferred-size: 13em;
      flex-basis: 13em;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin: 0 1em 1.6em 1em;
  position: relative;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out; }
  .card a {
    color: #5A5A5A;
    text-decoration: none; }
  .card .card-image {
    background-color: #F8F2B4;
    height: 150px;
    max-height: 150px;
    overflow: hidden; }
    .card .card-image img {
      border-top-left-radius: 3px;
      border-top-right-radius: 3px;
      opacity: 1;
      -webkit-transition: all 0.2s ease-in-out;
      transition: all 0.2s ease-in-out;
      width: 100%; }
  .card .card-header {
    background-color: #f7f7f7;
    border-radius: 3px 3px 0 0;
    font-weight: bold;
    line-height: 1.5em;
    padding: 0.53333em 0.8em;
    -webkit-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out; }
  .card .card-copy {
    font-size: 0.9em;
    line-height: 1.5em;
    padding: 0.8em 0.8em; }
    .card .card-copy p {
      margin: 0 0 0.8em; }
  .card:focus img, .card:hover img {
    opacity: 0.7; }
  .card:active {
    background-color: #f7f7f7; }
    .card:active .card-header {
      background-color: #f7f7f7; }

.expander .expander-trigger {
  color: #FFA40B;
  cursor: pointer;
  display: block;
  font-size: 1em;
  margin-bottom: 1em;
  padding-bottom: 0.25em;
  padding-left: 0.7em;
  text-decoration: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }
  .expander .expander-trigger::before {
    content: "\25BC";
    font-size: 0.7em;
    margin-right: 0.5em;
    position: static;
    display: inline; }

.expander .hidden::before {
  content: "\25BA";
  font-size: 0.7em;
  position: static;
  display: inline; }

.expander .hidden + .expander-content {
  display: none; }

form.search-bar {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  form.search-bar input[type=search] {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: white;
    border: 1px solid #ddd;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: block;
    font-size: 1em;
    font-style: italic;
    margin: 0;
    padding: 0.53333em 0.53333em;
    position: relative;
    -webkit-transition: border-color;
    transition: border-color;
    width: 100%; }
  form.search-bar select {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    margin: 0;
    position: relative;
    display: block; }
  form.search-bar button[type=submit] {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    outline: none;
    padding: 5px 10px; }
    form.search-bar button[type=submit] img {
      height: 12px;
      opacity: 0.7; }

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

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

.no-bullets {
  list-style-type: none;
  margin-left: 0; }

.text-primary {
  color: #FFA40B; }

.text-info {
  color: #8eb4cb; }

.text-success {
  color: #2ab27b; }

.text-warning {
  color: #cbb956; }

.text-danger {
  color: #bf5329; }

.tables {
  border: 1px solid #ddd;
  border-collapse: separate;
  border-left: 0;
  border-radius: 3px;
  border-spacing: 0;
  width: 100%; }
  .tables tbody {
    background-color: #fcfcfc; }
    .tables tbody tr:hover > td, .tables tbody tr:hover > th {
      background-color: #efefef; }
    .tables tbody tr:nth-child(even) {
      background-color: #f7f7f7; }
      .tables tbody tr:nth-child(even):hover > td {
        background-color: #eaeaea; }
  .tables thead:first-of-type tr:first-child > th:first-child {
    border-top-left-radius: 3px; }
  .tables thead:first-of-type tr:first-child > th:last-child {
    border-top-right-radius: 3px; }
  .tables tbody:last-child tr:last-child > td:first-child {
    border-bottom-left-radius: 3px; }
  .tables tbody:last-child tr:last-child > td:last-child {
    border-bottom-right-radius: 3px; }
  .tables thead th {
    background-color: white;
    border-bottom: 0;
    border-left: 1px solid #ddd;
    padding: 0.75em 1em;
    text-align: left; }
    .tables thead th:first-child {
      border-left: 0; }
  .tables tbody {
    background-color: #fcfcfc; }
    .tables tbody td {
      border-bottom: 0;
      border-left: 1px solid #ddd;
      border-top: 1px solid #ddd;
      padding: 0.75em 1em; }
      .tables tbody td:first-child {
        border-left: 0; }
      .tables tbody td button {
        display: inline-block;
        font-size: 0.7em;
        line-height: 1.6;
        margin-bottom: 0.3em;
        margin-right: 0.5em;
        outline: none;
        padding: 0.3em 1em;
        width: 100%; }
        @media screen and (max-width: 992px) {
          .tables tbody td button {
            margin-bottom: 0;
            width: auto; } }

button, input[type="button"], input[type="reset"], input[type="submit"], .button-primary, .button {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  border: 0;
  border-radius: 3px;
  cursor: pointer;
  display: inline-block;
  font-family: "Montserrat", sans-serif;
  font-size: 1em;
  -webkit-font-smoothing: antialiased;
  font-weight: 600;
  line-height: 1;
  padding: 0.8em 1.6em;
  text-align: center;
  text-decoration: none;
  -webkit-transition: background-color 150ms ease;
  transition: background-color 150ms ease;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none;
  vertical-align: middle;
  white-space: nowrap;
  color: #fff;
  background-color: #999; }
  button:hover, button:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="reset"]:hover, input[type="reset"]:focus, input[type="submit"]:hover, input[type="submit"]:focus, .button-primary:hover, .button-primary:focus, .button:hover, .button:focus {
    color: #fff; }
  button:disabled, input[type="button"]:disabled, input[type="reset"]:disabled, input[type="submit"]:disabled, .button-primary:disabled, .button:disabled {
    cursor: not-allowed;
    opacity: 0.5; }
  button:hover, button:focus, input[type="button"]:hover, input[type="button"]:focus, input[type="reset"]:hover, input[type="reset"]:focus, input[type="submit"]:hover, input[type="submit"]:focus, .button-primary:hover, .button-primary:focus, .button:hover, .button:focus {
    background-color: #7a7a7a; }
  button:disabled:hover, input[type="button"]:disabled:hover, input[type="reset"]:disabled:hover, input[type="submit"]:disabled:hover, .button-primary:disabled:hover, .button:disabled:hover {
    background-color: #999; }
  button.inverse, input[type="button"].inverse, input[type="reset"].inverse, input[type="submit"].inverse, .button-primary.inverse, .button.inverse {
    color: #999;
    border: 0.2em solid #999;
    background-color: transparent; }
    button.inverse:hover, button.inverse:focus, input[type="button"].inverse:hover, input[type="button"].inverse:focus, input[type="reset"].inverse:hover, input[type="reset"].inverse:focus, input[type="submit"].inverse:hover, input[type="submit"].inverse:focus, .button-primary.inverse:hover, .button-primary.inverse:focus, .button.inverse:hover, .button.inverse:focus {
      background-color: #d9d9d9; }
    button.inverse:disabled:hover, input[type="button"].inverse:disabled:hover, input[type="reset"].inverse:disabled:hover, input[type="submit"].inverse:disabled:hover, .button-primary.inverse:disabled:hover, .button.inverse:disabled:hover {
      background-color: transparent; }

button[type=submit], .button-primary {
  color: #fff;
  background-color: #FFA40B; }
  button[type=submit]:hover, button[type=submit]:focus, .button-primary:hover, .button-primary:focus {
    background-color: #cc8309; }
  button[type=submit]:disabled:hover, .button-primary:disabled:hover {
    background-color: #FFA40B; }
  button[type=submit].button-inverse, .button-primary.button-inverse {
    color: #FFA40B;
    border: 0.2em solid #FFA40B;
    background-color: transparent; }
    button[type=submit].button-inverse:hover, button[type=submit].button-inverse:focus, .button-primary.button-inverse:hover, .button-primary.button-inverse:focus {
      background-color: #ffd48b; }
    button[type=submit].button-inverse:disabled:hover, .button-primary.button-inverse:disabled:hover {
      background-color: transparent; }

button[type=submit].button-info, .button-info {
  color: #fff;
  background-color: #8eb4cb; }
  button[type=submit].button-info:hover, button[type=submit].button-info:focus, .button-info:hover, .button-info:focus {
    background-color: #7290a2; }
  button[type=submit].button-info:disabled:hover, .button-info:disabled:hover {
    background-color: #8eb4cb; }
  button[type=submit].button-info.button-inverse, .button-info.button-inverse {
    color: #8eb4cb;
    border: 0.2em solid #8eb4cb;
    background-color: transparent; }
    button[type=submit].button-info.button-inverse:hover, button[type=submit].button-info.button-inverse:focus, .button-info.button-inverse:hover, .button-info.button-inverse:focus {
      background-color: #e5eef3; }
    button[type=submit].button-info.button-inverse:disabled:hover, .button-info.button-inverse:disabled:hover {
      background-color: transparent; }

button[type=submit].button-danger, .button-danger {
  color: #fff;
  background-color: #bf5329; }
  button[type=submit].button-danger:hover, button[type=submit].button-danger:focus, .button-danger:hover, .button-danger:focus {
    background-color: #994221; }
  button[type=submit].button-danger:disabled:hover, .button-danger:disabled:hover {
    background-color: #bf5329; }
  button[type=submit].button-danger.button-inverse, .button-danger.button-inverse {
    color: #bf5329;
    border: 0.2em solid #bf5329;
    background-color: transparent; }
    button[type=submit].button-danger.button-inverse:hover, button[type=submit].button-danger.button-inverse:focus, .button-danger.button-inverse:hover, .button-danger.button-inverse:focus {
      background-color: #e49e83; }
    button[type=submit].button-danger.button-inverse:disabled:hover, .button-danger.button-inverse:disabled:hover {
      background-color: transparent; }

.button-group {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch; }
  @media screen and (max-width: 768px) {
    .button-group {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column; } }
  .button-group input {
    display: none; }
  .button-group label {
    -webkit-box-flex: 1;
        -ms-flex-positive: 1;
            flex-grow: 1; }
    .button-group label .button-group-item {
      background: #FFF;
      border-radius: 0;
      color: #a7a7a7;
      cursor: pointer;
      display: inline-block;
      font-size: 1em;
      font-weight: normal;
      line-height: 1;
      padding: 0.75em 1em;
      text-align: center;
      border-bottom: 1px solid silver;
      border-left: 0;
      border-right: 1px solid #eeeeee;
      border-top: 1px solid silver;
      width: 100%; }
      @media screen and (max-width: 768px) {
        .button-group label .button-group-item {
          border-left: 1px solid silver;
          border-right: 1px solid silver; } }
      .button-group label .button-group-item:focus, .button-group label .button-group-item:hover {
        background-color: #f7f7f7; }
    .button-group label:first-child .button-group-item {
      border-top-left-radius: 3px;
      border-top-right-radius: 3px;
      border-bottom-left-radius: 3px;
      border-left: 1px solid silver;
      border-top-left-radius: 3px;
      border-top-right-radius: 0; }
      @media screen and (max-width: 768px) {
        .button-group label:first-child .button-group-item {
          border-top: 1px solid silver; } }
    .button-group label:last-child .button-group-item {
      border-bottom-left-radius: 3px;
      border-bottom-right-radius: 3px;
      border-bottom-left-radius: 0;
      border-bottom-right-radius: 3px;
      border-right: 1px solid silver;
      border-top-right-radius: 3px; }
      @media screen and (max-width: 768px) {
        .button-group label:last-child .button-group-item {
          border-bottom: 1px solid silver; } }
    .button-group label input:checked + .button-group-item {
      background: #FFA40B;
      border: 1px solid #be7700;
      -webkit-box-shadow: inset 0 1px 2px #d78700;
              box-shadow: inset 0 1px 2px #d78700;
      color: white; }
      .button-group label input:checked + .button-group-item.button-info {
        background: #8eb4cb; }
      .button-group label input:checked + .button-group-item.button-danger {
        background: #bf5329; }

.dropdown {
  line-height: 1.6; }
  .dropdown .dropdown-container {
    display: inline-block;
    position: relative;
    text-align: center; }
  .dropdown .dropdown-description {
    background: #FFF;
    border-bottom: 1px solid silver;
    border-bottom-left-radius: 3px;
    border-left: 1px solid silver;
    border-top-left-radius: 3px;
    border-top: 1px solid silver;
    color: silver;
    float: left;
    font-size: 0.7em;
    line-height: 40px;
    margin: 0;
    padding: 0 0.5em 0 1em; }
    @media screen and (max-width: 1200px) {
      .dropdown .dropdown-description {
        font-size: 1em; } }
  .dropdown .dropdown-button {
    background: #FFF;
    border-bottom: 1px solid silver;
    border-bottom-right-radius: 3px;
    border-right: 1px solid silver;
    border-top: 1px solid silver;
    border-top-right-radius: 3px;
    cursor: pointer;
    float: right;
    font-size: 0.7em;
    line-height: 40px;
    margin: 0;
    padding: 0 2.5em 0 0.5em;
    position: relative; }
    @media screen and (max-width: 1200px) {
      .dropdown .dropdown-button {
        font-size: 1em;
        padding: 0 2.5em 0 0.5em; } }
  .dropdown .dropdown-button:hover {
    background-color: #f7f7f7; }
  .dropdown .dropdown-button::after {
    color: #5A5A5A;
    content: "\25BE";
    display: block;
    position: absolute;
    right: 1em;
    top: 0; }
  .dropdown .dropdown-menu {
    background: #FFF;
    border: 1px solid silver;
    border-radius: 3px;
    -webkit-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);
            box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);
    color: #5A5A5A;
    cursor: pointer;
    display: none;
    margin: 0;
    overflow: visible;
    padding: 0;
    position: absolute;
    right: 0;
    top: 50px;
    -webkit-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
    width: 228px;
    z-index: 99999; }
    .dropdown .dropdown-menu::before {
      position: absolute;
      top: 0;
      right: 1em;
      bottom: 0;
      left: 0;
      color: #FFF;
      content: "\25b2";
      font-size: 1.4em;
      pointer-events: none;
      text-shadow: 0 -2px 2px rgba(0, 0, 0, 0.3);
      top: -0.7em; }
  .dropdown .dropdown-menu li {
    border-bottom: 1px solid silver;
    color: #5A5A5A;
    list-style: none;
    padding: 0.5em; }
  .dropdown .dropdown-menu li:hover {
    background: #f7f7f7; }
  .dropdown .dropdown-menu li:first-child {
    border-top-left-radius: 3px;
    border-top-right-radius: 3px; }
  .dropdown .dropdown-menu li:last-child {
    border: 0;
    border-bottom-left-radius: 3px;
    border-bottom-right-radius: 3px; }
  .dropdown .show-menu {
    display: block; }

fieldset {
  background-color: transparent;
  border: 0;
  margin: 0;
  padding: 0; }

legend {
  font-weight: 600;
  margin-bottom: 0.4em;
  padding: 0; }

label {
  display: block;
  font-weight: 600;
  margin-bottom: 0.4em; }

input,
select,
textarea {
  display: block;
  font-family: "Montserrat", sans-serif;
  font-size: 1em; }

input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="email"], input[type="month"], input[type="number"], input[type="password"], input[type="search"], input[type="tel"], input[type="text"], input[type="time"], input[type="url"], input[type="week"], input:not([type]), textarea {
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #FFF;
  border: 1px solid #ddd;
  border-radius: 3px;
  -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06);
          box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06);
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  margin-bottom: 0.8em;
  padding: 0.53333em;
  -webkit-transition: border-color 150ms ease;
  transition: border-color 150ms ease;
  width: 100%; }
  input[type="color"]:hover, input[type="date"]:hover, input[type="datetime"]:hover, input[type="datetime-local"]:hover, input[type="email"]:hover, input[type="month"]:hover, input[type="number"]:hover, input[type="password"]:hover, input[type="search"]:hover, input[type="tel"]:hover, input[type="text"]:hover, input[type="time"]:hover, input[type="url"]:hover, input[type="week"]:hover, input:not([type]):hover, textarea:hover {
    border-color: #b1b1b1; }
  input[type="color"]:focus, input[type="date"]:focus, input[type="datetime"]:focus, input[type="datetime-local"]:focus, input[type="email"]:focus, input[type="month"]:focus, input[type="number"]:focus, input[type="password"]:focus, input[type="search"]:focus, input[type="tel"]:focus, input[type="text"]:focus, input[type="time"]:focus, input[type="url"]:focus, input[type="week"]:focus, input:not([type]):focus, textarea:focus {
    border-color: #FFA40B;
    -webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 5px rgba(241, 151, 0, 0.7);
            box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.06), 0 0 5px rgba(241, 151, 0, 0.7);
    outline: none; }
  input[type="color"]:disabled, input[type="date"]:disabled, input[type="datetime"]:disabled, input[type="datetime-local"]:disabled, input[type="email"]:disabled, input[type="month"]:disabled, input[type="number"]:disabled, input[type="password"]:disabled, input[type="search"]:disabled, input[type="tel"]:disabled, input[type="text"]:disabled, input[type="time"]:disabled, input[type="url"]:disabled, input[type="week"]:disabled, input:not([type]):disabled, textarea:disabled {
    background-color: #f2f2f2;
    cursor: not-allowed; }
    input[type="color"]:disabled:hover, input[type="date"]:disabled:hover, input[type="datetime"]:disabled:hover, input[type="datetime-local"]:disabled:hover, input[type="email"]:disabled:hover, input[type="month"]:disabled:hover, input[type="number"]:disabled:hover, input[type="password"]:disabled:hover, input[type="search"]:disabled:hover, input[type="tel"]:disabled:hover, input[type="text"]:disabled:hover, input[type="time"]:disabled:hover, input[type="url"]:disabled:hover, input[type="week"]:disabled:hover, input:not([type]):disabled:hover, textarea:disabled:hover {
      border: 1px solid #ddd; }
  input[type="color"]::-webkit-input-placeholder, input[type="date"]::-webkit-input-placeholder, input[type="datetime"]::-webkit-input-placeholder, input[type="datetime-local"]::-webkit-input-placeholder, input[type="email"]::-webkit-input-placeholder, input[type="month"]::-webkit-input-placeholder, input[type="number"]::-webkit-input-placeholder, input[type="password"]::-webkit-input-placeholder, input[type="search"]::-webkit-input-placeholder, input[type="tel"]::-webkit-input-placeholder, input[type="text"]::-webkit-input-placeholder, input[type="time"]::-webkit-input-placeholder, input[type="url"]::-webkit-input-placeholder, input[type="week"]::-webkit-input-placeholder, input:not([type])::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
    color: #9c9c9c; }
  input[type="color"]::-moz-placeholder, input[type="date"]::-moz-placeholder, input[type="datetime"]::-moz-placeholder, input[type="datetime-local"]::-moz-placeholder, input[type="email"]::-moz-placeholder, input[type="month"]::-moz-placeholder, input[type="number"]::-moz-placeholder, input[type="password"]::-moz-placeholder, input[type="search"]::-moz-placeholder, input[type="tel"]::-moz-placeholder, input[type="text"]::-moz-placeholder, input[type="time"]::-moz-placeholder, input[type="url"]::-moz-placeholder, input[type="week"]::-moz-placeholder, input:not([type])::-moz-placeholder, textarea::-moz-placeholder {
    color: #9c9c9c; }
  input[type="color"]::-ms-input-placeholder, input[type="date"]::-ms-input-placeholder, input[type="datetime"]::-ms-input-placeholder, input[type="datetime-local"]::-ms-input-placeholder, input[type="email"]::-ms-input-placeholder, input[type="month"]::-ms-input-placeholder, input[type="number"]::-ms-input-placeholder, input[type="password"]::-ms-input-placeholder, input[type="search"]::-ms-input-placeholder, input[type="tel"]::-ms-input-placeholder, input[type="text"]::-ms-input-placeholder, input[type="time"]::-ms-input-placeholder, input[type="url"]::-ms-input-placeholder, input[type="week"]::-ms-input-placeholder, input:not([type])::-ms-input-placeholder, textarea::-ms-input-placeholder {
    color: #9c9c9c; }
  input[type="color"]::placeholder, input[type="date"]::placeholder, input[type="datetime"]::placeholder, input[type="datetime-local"]::placeholder, input[type="email"]::placeholder, input[type="month"]::placeholder, input[type="number"]::placeholder, input[type="password"]::placeholder, input[type="search"]::placeholder, input[type="tel"]::placeholder, input[type="text"]::placeholder, input[type="time"]::placeholder, input[type="url"]::placeholder, input[type="week"]::placeholder, input:not([type])::placeholder, textarea::placeholder {
    color: #9c9c9c; }

textarea {
  resize: vertical; }

[type="checkbox"],
[type="radio"] {
  display: inline;
  margin-right: 0.4em; }

[type="file"] {
  margin-bottom: 0.8em;
  width: 100%; }

select {
  margin-bottom: 0.8em;
  width: 100%; }

.pagination {
  text-align: center;
  margin-top: 3em; }
  .pagination ul {
    display: inline;
    margin: 0;
    padding: 0;
    text-align: center; }
    .pagination ul li {
      display: inline;
      list-style: none; }
    .pagination ul ul li {
      display: none; }
      .pagination ul ul li:nth-child(1), .pagination ul ul li:nth-child(2), .pagination ul ul li:nth-child(3) {
        display: inline; }
      @media screen and (max-width: 1200px) {
        .pagination ul ul li {
          display: inline; } }
    .pagination ul li a {
      background: #f7f7f7;
      border-radius: 3px;
      border: 1px solid #ddd;
      color: #5A5A5A;
      outline: none;
      padding: 0.4em 0.809em;
      text-decoration: none;
      -webkit-transition: all 0.2s ease-in-out;
      transition: all 0.2s ease-in-out; }
      .pagination ul li a:hover, .pagination ul li a:focus {
        background: white;
        color: #FFA40B; }
      .pagination ul li a:active {
        background: #f7f7f7; }

.flash-alert {
  background-color: #fff6bf;
  color: #66624c;
  display: block;
  margin-bottom: 0.8em;
  padding: 0.8em;
  text-align: center; }
  .flash-alert a {
    color: #4d4a39;
    text-decoration: underline; }
    .flash-alert a:focus, .flash-alert a:hover {
      color: #1a1913; }

.flash-error {
  background-color: #fbe3e4;
  color: #645b5b;
  display: block;
  margin-bottom: 0.8em;
  padding: 0.8em;
  text-align: center; }
  .flash-error a {
    color: #4b4444;
    text-decoration: underline; }
    .flash-error a:focus, .flash-error a:hover {
      color: #191717; }

.flash-notice {
  background-color: #e5edf8;
  color: #5c5f63;
  display: block;
  margin-bottom: 0.8em;
  padding: 0.8em;
  text-align: center; }
  .flash-notice a {
    color: #45474a;
    text-decoration: underline; }
    .flash-notice a:focus, .flash-notice a:hover {
      color: #171819; }

.flash-success {
  background-color: #e6efc2;
  color: #5c604e;
  display: block;
  margin-bottom: 0.8em;
  padding: 0.8em;
  text-align: center; }
  .flash-success a {
    color: #45483a;
    text-decoration: underline; }
    .flash-success a:focus, .flash-success a:hover {
      color: #171813; }

.panel {
  background-color: #FFF;
  padding: 1em;
  border: 1px solid #ddd;
  margin-bottom: 1em; }
  .panel h2 {
    border-bottom: 1px solid #ddd;
    margin-bottom: 1em; }

.cards {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between; }

.card {
  background-color: #f7f7f7;
  border: 1px solid #ddd;
  border-radius: 3px;
  -webkit-box-shadow: 0 2px 4px #e6e6e6;
          box-shadow: 0 2px 4px #e6e6e6;
  -ms-flex-preferred-size: 13em;
      flex-basis: 13em;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  margin: 0 1em 1.6em 1em;
  position: relative;
  -webkit-transition: all 0.2s ease-in-out;
  transition: all 0.2s ease-in-out; }
  .card a {
    color: #5A5A5A;
    text-decoration: none; }
  .card .card-image {
    background-color: #F8F2B4;
    height: 150px;
    max-height: 150px;
    overflow: hidden; }
    .card .card-image img {
      border-top-left-radius: 3px;
      border-top-right-radius: 3px;
      opacity: 1;
      -webkit-transition: all 0.2s ease-in-out;
      transition: all 0.2s ease-in-out;
      width: 100%; }
  .card .card-header {
    background-color: #f7f7f7;
    border-radius: 3px 3px 0 0;
    font-weight: bold;
    line-height: 1.5em;
    padding: 0.53333em 0.8em;
    -webkit-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out; }
  .card .card-copy {
    font-size: 0.9em;
    line-height: 1.5em;
    padding: 0.8em 0.8em; }
    .card .card-copy p {
      margin: 0 0 0.8em; }
  .card:focus img, .card:hover img {
    opacity: 0.7; }
  .card:active {
    background-color: #f7f7f7; }
    .card:active .card-header {
      background-color: #f7f7f7; }

.expander .expander-trigger {
  color: #FFA40B;
  cursor: pointer;
  display: block;
  font-size: 1em;
  margin-bottom: 1em;
  padding-bottom: 0.25em;
  padding-left: 0.7em;
  text-decoration: none;
  -webkit-user-select: none;
     -moz-user-select: none;
      -ms-user-select: none;
          user-select: none; }
  .expander .expander-trigger::before {
    content: "\25BC";
    font-size: 0.7em;
    margin-right: 0.5em;
    position: static;
    display: inline; }

.expander .hidden::before {
  content: "\25BA";
  font-size: 0.7em;
  position: static;
  display: inline; }

.expander .hidden + .expander-content {
  display: none; }

form.search-bar {
  position: relative;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  form.search-bar input[type=search] {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: white;
    border: 1px solid #ddd;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: block;
    font-size: 1em;
    font-style: italic;
    margin: 0;
    padding: 0.53333em 0.53333em;
    position: relative;
    -webkit-transition: border-color;
    transition: border-color;
    width: 100%; }
  form.search-bar select {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    margin: 0;
    position: relative;
    display: block; }
  form.search-bar button[type=submit] {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    outline: none;
    padding: 5px 10px; }
    form.search-bar button[type=submit] img {
      height: 12px;
      opacity: 0.7; }

nav {
  line-height: 5em;
  text-align: center;
  text-transform: uppercase; }
  nav ul {
    list-style-type: none;
    margin-left: 0;
    margin: 0;
    padding: 0;
    display: inline; }
    nav ul:before {
      content: "/";
      margin-left: 1em;
      margin-right: 1em;
      font-size: 120%; }
    nav ul:first-child:before {
      content: ""; }
    @media screen and (max-width: 768px) {
      nav ul {
        display: block; }
        nav ul:before {
          content: ""; } }
    nav ul li {
      margin: 0;
      padding: 0;
      display: inline; }
      nav ul li:after {
        margin-left: 1em;
        margin-right: 1em;
        font-size: 120%;
        content: "/"; }
      nav ul li:last-child:after {
        margin: 0;
        content: ""; }
  nav a {
    color: inherit;
    text-decoration: none; }

ul.shows {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row;
          flex-flow: row;
  list-style-type: none;
  margin-left: 0;
  padding: 0;
  margin: 0;
  text-align: center;
  font-size: 1.3em;
  background-color: #fff6e6;
  color: #5A5A5A; }
  @media screen and (max-width: 768px) {
    ul.shows {
      font-size: 1em; } }
  ul.shows li {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1; }
    ul.shows li:first-child {
      padding: 1em; }
      @media screen and (max-width: 768px) {
        ul.shows li:first-child {
          padding: 0.5em; } }
    ul.shows li a {
      color: #5A5A5A;
      display: block;
      width: 100%;
      height: 100%;
      text-decoration: none;
      padding: 1em; }
      @media screen and (max-width: 768px) {
        ul.shows li a {
          padding: 0.5em; } }
      ul.shows li a:hover {
        background-color: #ffdda4;
        -webkit-transition: background-color 0.3s ease-in-out;
        transition: background-color 0.3s ease-in-out; }

footer {
  background: #FFA40B;
  display: inline-block;
  padding: 0.5em;
  width: 100%;
  margin-top: 5em;
  text-align: center;
  text-transform: uppercase; }
  footer h3 {
    color: #5A5A5A;
    font-size: 100%; }
  footer ul {
    line-height: 1.8em;
    margin-bottom: 0;
    padding-left: 0; }
    @media screen and (max-width: 768px) {
      footer ul {
        float: none;
        line-height: 1.5em;
        margin: 0 0 1em 0;
        padding: 0; } }
    footer ul li {
      display: inline;
      padding-right: 0.8em; }
      footer ul li:last-child {
        padding-right: 0; }
      @media screen and (max-width: 768px) {
        footer ul li {
          list-style: none;
          padding-right: 2em; } }
      footer ul li a {
        color: rgba(255, 255, 255, 0.4);
        text-decoration: none; }
        footer ul li a:focus, footer ul li a:hover {
          color: white; }
      footer ul li img {
        width: 30px; }

.hero {
  border-top: 10px solid #fff6e6;
  border-bottom: 10px solid #fff6e6;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  background-image: url("/images/hero-headshot-laughing.jpg");
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  background-position: left;
  background-size: cover;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
  height: 400px;
  padding: 2em; }
  @media screen and (max-width: 768px) {
    .hero {
      background-position: right;
      background-size: none;
      -webkit-box-pack: center;
          -ms-flex-pack: center;
              justify-content: center; } }
  .hero .hero-content {
    max-width: 30em;
    text-align: left; }
    @media screen and (max-width: 768px) {
      .hero .hero-content {
        text-align: center; } }
  .hero .hero-box {
    background-color: white;
    background-color: rgba(255, 255, 255, 0.5);
    color: #2D2D2D;
    text-align: center;
    padding: 0.7em;
    margin-bottom: 0.5em;
    text-transform: uppercase;
    font-size: 150%;
    font-weight: bold;
    line-height: 1.5em;
    letter-spacing: 0.18em; }
    @media screen and (max-width: 768px) {
      .hero .hero-box {
        font-size: 100%; } }
    .hero .hero-box small {
      display: block;
      font-size: 60%;
      font-weight: normal;
      line-height: 1em;
      letter-spacing: 0.1em; }
    .hero .hero-box a.subscribe {
      color: inherit;
      text-decoration: none;
      display: block;
      width: 100%;
      height: 2em;
      text-align: left;
      padding-left: 1em;
      line-height: 2em;
      margin-bottom: 0.5em; }
      .hero .hero-box a.subscribe img {
        height: 2em;
        width: 2em;
        vertical-align: middle; }
  .hero .hero-logo {
    margin: auto; }

.episode-list .episode {
  margin-bottom: 1.6em;
  padding-bottom: 1em;
  width: 100%; }
  .episode-list .episode:last-child {
    border-bottom: none; }
  @media screen and (max-width: 768px) {
    .episode-list .episode {
      border-bottom: 1px solid rgba(255, 164, 11, 0.9); } }
  .episode-list .episode .episode-details {
    display: table;
    margin: 0 auto; }
    .episode-list .episode .episode-details .episode-image, .episode-list .episode .episode-details .episode-header {
      display: table-cell;
      vertical-align: top; }
      @media screen and (max-width: 768px) {
        .episode-list .episode .episode-details .episode-image, .episode-list .episode .episode-details .episode-header {
          display: block;
          margin-bottom: 1em; } }
    .episode-list .episode .episode-details .episode-image {
      padding-right: 1.4em; }
      .episode-list .episode .episode-details .episode-image img {
        border-radius: 3px;
        display: block;
        height: auto;
        max-width: none;
        padding: 0.7em;
        width: 300px;
        margin: 0 auto; }
      .episode-reverse-order .episode-list .episode .episode-details .episode-image {
        padding-left: 10px;
        padding-right: 0; }
    .episode-list .episode .episode-details .episode-header {
      width: 100%;
      text-align: center;
      border-top: 1px solid rgba(255, 164, 11, 0.9);
      padding: 2em 0; }
      @media screen and (max-width: 768px) {
        .episode-list .episode .episode-details .episode-header {
          border-top: none;
          padding-top: 0.1em;
          padding-bottom: 0; } }
      .episode-list .episode .episode-details .episode-header h1 {
        font-size: 1.4em;
        margin: 0 0 0.2em 0; }
        .episode-list .episode .episode-details .episode-header h1 a {
          text-decoration: none; }
      .episode-list .episode .episode-details .episode-header .narrator, .episode-list .episode .episode-details .episode-header .subtitle {
        font-weight: bold;
        color: gray;
        font-size: 1em;
        margin: 0 0 0.2em 0; }
      .episode-list .episode .episode-details .episode-header .prefix {
        font-style: italic;
        color: #8d8d8d;
        text-align: center;
        margin-bottom: 0.4em; }
  .episode-list .episode .episode-content {
    width: 100%;
    border-left: 1px solid rgba(255, 164, 11, 0.9);
    padding-left: 1em;
    margin-top: 1em; }
    @media screen and (max-width: 768px) {
      .episode-list .episode .episode-content {
        margin-top: 0; } }
    .episode-list .episode .episode-content p {
      line-height: 1.5em;
      margin-bottom: 0.5em; }
    .episode-list .episode .episode-content p.episode-detail {
      color: rgba(255, 164, 11, 0.9);
      font-size: 0.9em;
      font-style: italic;
      line-height: 0.9em;
      text-align: right; }
  .episode-list .episode .more-link {
    display: block;
    text-align: right;
    text-decoration: none;
    font-weight: bold;
    margin: 2em 3em;
    vertical-align: middle; }
    .episode-list .episode .more-link:after {
      font: normal 16px fontawesome;
      margin-left: 0.3em;
      margin-top: 0.5em;
      content: '\f0da'; }
  .episode-list .episode .episode-audio {
    margin-top: 1em; }

.about {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  border-top: 1px solid #ddd;
  border-bottom: 1px solid #ddd;
  margin: 0.5em 0 3em;
  padding: 0.5em 0 3em; }
  .about div img {
    display: block;
    margin-left: 3em; }
    @media screen and (max-width: 768px) {
      .about div img {
        max-width: 100%;
        margin: 0 auto; } }

article.episode.audioshelf .episode-image img {
  background: #ffc158; }

article.episode.audioshelf .episode-show {
  color: #ffc158;
  font-weight: bold; }

article.episode.audioshelf .episode-details .episode-header {
  border-top-color: #ffc158; }

article.episode.audioshelf .episode-content {
  border-left-color: #ffc158; }

article.episode.afterdark .episode-image img {
  background: #C95F5F; }

article.episode.afterdark .episode-show {
  color: #C95F5F;
  font-weight: bold; }

article.episode.afterdark .episode-details .episode-header {
  border-top-color: #C95F5F; }

article.episode.afterdark .episode-content {
  border-left-color: #C95F5F; }

form.search-bar {
  margin-top: 1em; }

article.episode-single .episode-header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap;
  border-top: 10px solid #fff6e6;
  linear-gradient: 50deg, #ffa40b 0%, #ffd080 43%, #ffe1ae 43%, #fff6e6 100%; }
  article.episode-single .episode-header .episode-image {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    margin: 2em;
    text-align: center; }
  article.episode-single .episode-header .episode-title {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    margin: 2em 4em; }
    article.episode-single .episode-header .episode-title small {
      display: block;
      font-size: 1em;
      text-align: center;
      font-style: italic;
      text-transform: uppercase; }
    article.episode-single .episode-header .episode-title h1 {
      text-align: center;
      margin-bottom: 0; }
    article.episode-single .episode-header .episode-title h2 {
      font-size: 1.2em;
      margin-top: 0;
      text-align: center; }
    article.episode-single .episode-header .episode-title h3 {
      font-size: 1.2em;
      margin-top: 0;
      text-align: center;
      color: gray;
      text-transform: unset; }
    article.episode-single .episode-header .episode-title .episode-date {
      text-align: center;
      color: rgba(164, 103, 0, 0.9); }

article.episode-single .episode-audio {
  text-align: center; }

article.episode-single ul.episode-links {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row;
          flex-flow: row;
  list-style-type: none;
  margin-left: 0;
  padding: 0;
  margin-top: 0;
  margin-bottom: 2em;
  text-align: center;
  font-size: 1.3em;
  background-color: #fff6e6; }
  article.episode-single ul.episode-links li {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    border: 1px solid rgba(255, 164, 11, 0.9);
    border-top: none;
    border-radius: 1em / 0.5em;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    -webkit-transition: background-color 0.3s ease-in-out;
    transition: background-color 0.3s ease-in-out; }
    article.episode-single ul.episode-links li:hover {
      background-color: #ffc158;
      -webkit-transition: background-color 0.3s ease-in-out;
      transition: background-color 0.3s ease-in-out; }
    article.episode-single ul.episode-links li a {
      color: #5A5A5A;
      display: block;
      width: 100%;
      height: 100%;
      text-decoration: none;
      padding: 1em; }

article.episode-single .episode-content {
  max-width: 80%;
  margin: 0 auto; }
  article.episode-single .episode-content .episode-blurb {
    padding-left: 2em;
    padding-right: 2em;
    border-left: 0.3em solid #FFA40B;
    border-right: 0.3em solid #FFA40B; }

article.episode-single .badges {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1; }
  @media screen and (max-width: 768px) {
    article.episode-single .badges {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-flow: column;
              flex-flow: column; } }
  article.episode-single .badges h3 {
    margin: 0; }
  article.episode-single .badges div {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    margin-bottom: 1.2em;
    line-height: 1.2em; }
    article.episode-single .badges div a.button {
      background-position-x: center !important;
      width: 90%;
      margin-left: 5%; }
      article.episode-single .badges div a.button img {
        height: 2.4em;
        float: left; }

article.episode-single .affiliate.horizontal {
  text-align: center; }

article.episode-single .episode-related h3 {
  margin-bottom: 0; }

article.episode-single .episode-credits {
  margin-top: 4em;
  border-top: 1px solid #ddd;
  padding-top: 2em;
  font-size: 80%; }

.product-box {
  -webkit-box-flex: 1;
      -ms-flex-positive: 1;
          flex-grow: 1;
  position: relative;
  width: 20em;
  margin: 0 auto; }
  .product-box .product-image {
    display: block;
    margin: 0 auto; }
  .product-box .product-title {
    font-size: 1.5em;
    font-weight: bold;
    line-height: 1em;
    color: #5A5A5A;
    position: relative;
    text-align: center;
    display: block;
    overflow: hidden;
    height: 3em;
    margin-top: 0.4em; }
  .product-box .product-author {
    text-align: center;
    font-size: 1.2em;
    height: 2.4em; }
  .product-box .product-price {
    text-align: center;
    color: #bf5329;
    font-weight: bold; }
  .product-box input[type="submit"] {
    background-color: inherit; }
  .product-box .a-button {
    background: #f0c14b;
    display: block;
    padding: 0;
    margin: 1em auto 0;
    max-width: 10em;
    vertical-align: middle;
    height: 2.6em;
    border: 1px solid;
    border-color: #cba957 #bf942a #aa8326;
    text-align: center;
    overflow: hidden;
    text-decoration: none !important;
    cursor: pointer;
    border-radius: 3px;
    -webkit-box-sizing: border-box;
            box-sizing: border-box; }
    .product-box .a-button:active {
      border-color: #aa8326 #bf942a #bf942a; }
      .product-box .a-button:active .a-button-inner {
        -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2) inset;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2) inset;
        background-color: #f0c14b;
        background-image: none; }
    .product-box .a-button:hover {
      border-color: #c59f43 #aa8326 #957321; }
      .product-box .a-button:hover .a-button-inner {
        background-color: #f5d78e;
        background: -o-linear-gradient(top, #f5d78e, #eeb933);
        background: #f1c860; }
    .product-box .a-button:focus {
      outline: 0;
      border-color: #e47911;
      -webkit-box-shadow: 0 0 3px rgba(228, 121, 17, 0.5);
      box-shadow: 0 0 3px rgba(228, 121, 17, 0.5); }
    .product-box .a-button .a-button-inner {
      position: relative;
      height: 100%;
      overflow: hidden;
      border-radius: 3px;
      text-align: center;
      cursor: pointer;
      display: block;
      -webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4) inset;
      box-shadow: 0 1px 0 rgba(255, 255, 255, 0.4) inset;
      background-color: #f7dfa5;
      background: -o-linear-gradient(top, #f7dfa5, #f0c14b);
      background: #f3d078; }
      .product-box .a-button .a-button-inner .a-icon-shop-now {
        left: 2px;
        top: 2px;
        position: absolute;
        height: 2em;
        width: 2em;
        background: 0 0;
        display: inline-block;
        vertical-align: top; }
      .product-box .a-button .a-button-inner .a-button-input {
        position: absolute;
        z-index: 20;
        height: 100%;
        width: 100%;
        left: 0;
        top: 0;
        background-color: #fff;
        outline: 0;
        border: 0;
        overflow: visible;
        cursor: pointer;
        opacity: .01;
        filter: alpha(opacity=1); }
      .product-box .a-button .a-button-inner .a-button-text {
        position: relative;
        z-index: 10;
        color: #2D2D2D;
        font-size: 1em;
        text-align: center;
        line-height: 2em;
        display: block;
        white-space: nowrap;
        background-color: transparent;
        margin: 0;
        border: 0;
        outline: 0;
        padding: 0 2px 0 2em; }

.similar {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-flow: row wrap;
          flex-flow: row wrap;
  -ms-flex-wrap: wrap;
      flex-wrap: wrap; }
  .similar .product-box {
    width: 33%;
    overflow: hidden; }
    @media screen and (max-width: 1200px) {
      .similar .product-box {
        width: 33%; } }
    @media screen and (max-width: 768px) {
      .similar .product-box {
        width: 50%; } }
    .similar .product-box .product-panel {
      border: 1px solid #ddd;
      border-radius: 2em 0.5em;
      padding: 1em;
      margin: 1em; }
    .similar .product-box .product-image {
      display: block;
      max-width: 90%;
      height: auto;
      margin: 0 auto; }

.pcast-player .pcast-player-controls {
  -webkit-box-sizing: border-box;
          box-sizing: border-box;
  background: #333;
  color: #fff;
  font-size: 14px;
  height: 42px;
  overflow: hidden;
  padding: 5px; }

.pcast-player button, .pcast-player .button {
  background: #2a2a2a;
  color: #fff;
  border: 0;
  border-radius: 2px;
  padding: 5px;
  line-height: 22px;
  -webkit-appreance: none;
  min-width: 32px; }
  .pcast-player button span, .pcast-player .button span {
    margin: -1px;
    padding: 0;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip: rect(0, 0, 0, 0);
    position: absolute; }

.pcast-player progress {
  height: 13px;
  width: calc(100% - 318px);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none; }

.pcast-player progress[value]::-webkit-progress-bar {
  background-color: #555;
  border-radius: 0;
  -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset;
          box-shadow: 0 2px 5px rgba(0, 0, 0, 0.25) inset; }

.pcast-player progress[value]::-webkit-progress-value {
  background: #fff; }

.pcast-player .pcast-time {
  display: inline-block;
  font-size: 13px;
  padding: 0 5px;
  text-align: center;
  width: 4em; }

.pcast-player .pcast-speed {
  width: 2.5em; }

.pcast-player .pcast-download {
  font-size: 13px; }
  .pcast-player .pcast-download:hover, .pcast-player .pcast-download:focus {
    color: #666; }

form.search-bar {
  position: relative; }
  form.search-bar input[type=search] {
    -webkit-appearance: none;
       -moz-appearance: none;
            appearance: none;
    background-color: white;
    border: 1px solid #ddd;
    -webkit-box-sizing: border-box;
            box-sizing: border-box;
    display: block;
    font-size: 1em;
    font-style: italic;
    margin: 0;
    padding: 0.53333em 0.53333em;
    position: relative;
    -webkit-transition: border-color;
    transition: border-color;
    width: 100%; }
  form.search-bar button[type=submit] {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    outline: none;
    padding: 5px 10px; }
    form.search-bar button[type=submit] span {
      padding-left: 0.5em; }
      @media screen and (max-width: 768px) {
        form.search-bar button[type=submit] span {
          display: none; } }
    form.search-bar button[type=submit]:before {
      font: normal 1em fontawesome;
      content: '\f002 '; }

body {
  background-color: #F3F3F3; }

#wrapper {
  max-width: 60%;
  margin-left: auto;
  margin-right: auto;
  background-color: #FFF;
  border-top: 3px solid #FFA40B; }
  #wrapper::after {
    clear: both;
    content: "";
    display: block; }
  @media screen and (max-width: 1200px) {
    #wrapper {
      max-width: 80%;
      margin-left: auto;
      margin-right: auto; }
      #wrapper::after {
        clear: both;
        content: "";
        display: block; } }
  @media screen and (max-width: 992px) {
    #wrapper {
      max-width: 100%;
      margin-left: auto;
      margin-right: auto; }
      #wrapper::after {
        clear: both;
        content: "";
        display: block; } }
  @media screen and (max-width: 768px) {
    #wrapper {
      max-width: 100%;
      margin-left: auto;
      margin-right: auto; }
      #wrapper::after {
        clear: both;
        content: "";
        display: block; } }

.content {
  max-width: 80%;
  margin-left: auto;
  margin-right: auto; }
  .content::after {
    clear: both;
    content: "";
    display: block; }
  @media screen and (max-width: 1200px) {
    .content {
      max-width: 80%;
      margin-left: auto;
      margin-right: auto; }
      .content::after {
        clear: both;
        content: "";
        display: block; } }
  @media screen and (max-width: 992px) {
    .content {
      max-width: 90%;
      margin-left: auto;
      margin-right: auto; }
      .content::after {
        clear: both;
        content: "";
        display: block; } }
  @media screen and (max-width: 768px) {
    .content {
      max-width: 90%;
      margin-left: auto;
      margin-right: auto; }
      .content::after {
        clear: both;
        content: "";
        display: block; } }

h3 {
  color: #FFA40B;
  text-transform: uppercase;
  font-size: 180%;
  text-align: center; }

header {
  padding-top: 2em;
  text-align: center; }
  @media screen and (max-width: 768px) {
    header {
      padding-top: 0; } }
  header h1 {
    margin-top: 0; }
    @media screen and (max-width: 768px) {
      header h1 {
        margin-bottom: 0; } }
    header h1 img {
      width: 9em; }
      @media screen and (max-width: 768px) {
        header h1 img {
          width: 4em; } }
    header h1 small {
      display: block;
      text-transform: uppercase;
      font-size: 0.4em;
      margin-top: -2em; }

.hero + .content h3 {
  font-size: 200%;
  letter-spacing: 0.3em; }

.big-button {
  margin-bottom: 1.5em;
  text-align: center;
  font-size: 1.3em;
  display: block; }

.episode-content h1 a {
  color: inherit;
  text-decoration: none; }

.about-us {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  @media screen and (max-width: 768px) {
    .about-us {
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
          -ms-flex-direction: column;
              flex-direction: column; } }
  .about-us div {
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 65.88078%;
    text-align: justify; }
    .about-us div:last-child {
      margin-right: 0; }
    @media screen and (max-width: 768px) {
      .about-us div {
        float: left;
        display: block;
        margin-right: 4.82916%;
        width: 100%;
        margin-right: 0; }
        .about-us div:last-child {
          margin-right: 0; } }
  .about-us div + div {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1;
    float: left;
    display: block;
    margin-right: 2.35765%;
    width: 31.76157%;
    text-align: center; }
    .about-us div + div:last-child {
      margin-right: 0; }
    @media screen and (max-width: 768px) {
      .about-us div + div {
        float: left;
        display: block;
        margin-right: 4.82916%;
        width: 100%; }
        .about-us div + div:last-child {
          margin-right: 0; } }
    .about-us div + div img {
      margin-top: 1em;
      max-width: 100%; }

.contact-more {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .contact-more > div {
    -webkit-box-flex: 1;
        -ms-flex: 1;
            flex: 1; }
    .contact-more > div .fb-page {
      width: 100%; }

/*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi5jc3MiLCJzb3VyY2VzIjpbIm1haW4uc2NzcyIsImFwcC9fYmFzZS5zY3NzIiwiYXBwL192YXJpYWJsZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2JvdXJib24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX2RlcHJlY2F0aW9uLXdhcm5pbmdzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL3NldHRpbmdzL19wcmVmaXhlci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fcHgtdG8tZW0uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX2Fzc2V0LXBpcGVsaW5lLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19ib3VyYm9uLWRlcHJlY2F0ZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2Fzc2lnbi1pbnB1dHMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19jb250YWlucy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX2NvbnRhaW5zLWZhbHN5LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbGVuZ3RoLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9faXMtbGlnaHQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1udW1iZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19pcy1zaXplLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fcHgtdG8tZW0uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19weC10by1yZW0uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZnVuY3Rpb25zL19zaGFkZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3N0cmlwLXVuaXRzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2Z1bmN0aW9ucy9fdGludC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3RyYW5zaXRpb24tcHJvcGVydHktbmFtZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3VucGFjay5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX21vZHVsYXItc2NhbGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fY29udmVydC11bml0cy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19kaXJlY3Rpb25hbC12YWx1ZXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZm9udC1zb3VyY2UtZGVjbGFyYXRpb24uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19saW5lYXItYW5nbGUtcGFyc2VyLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX2xpbmVhci1ncmFkaWVudC1wYXJzZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtYXJnLXBhcnNlci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtcG9zaXRpb25zLXBhcnNlci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19yYWRpYWwtZ3JhZGllbnQtcGFyc2VyLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2hlbHBlcnMvX3JlbmRlci1ncmFkaWVudHMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvaGVscGVycy9fc2hhcGUtc2l6ZS1zdHJpcHBlci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9oZWxwZXJzL19zdHItdG8tbnVtLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2FuaW1hdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19hcHBlYXJhbmNlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JhY2tmYWNlLXZpc2liaWxpdHkuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fYmFja2dyb3VuZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19iYWNrZ3JvdW5kLWltYWdlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2JvcmRlci1pbWFnZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19jYWxjLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2NvbHVtbnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fZmlsdGVyLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZsZXgtYm94LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2ZvbnQtZmFjZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19mb250LWZlYXR1cmUtc2V0dGluZ3Muc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faGlkcGktbWVkaWEtcXVlcnkuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9faHlwaGVucy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19pbWFnZS1yZW5kZXJpbmcuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fa2V5ZnJhbWVzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX2xpbmVhci1ncmFkaWVudC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19wZXJzcGVjdGl2ZS5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19wbGFjZWhvbGRlci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL19yYWRpYWwtZ3JhZGllbnQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fc2VsZWN0aW9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2NzczMvX3RleHQtZGVjb3JhdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL190cmFuc2Zvcm0uc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvY3NzMy9fdHJhbnNpdGlvbi5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9jc3MzL191c2VyLXNlbGVjdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1jb2xvci5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2JvcmRlci1yYWRpdXMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItc3R5bGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19ib3JkZXItd2lkdGguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19idXR0b25zLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fY2xlYXJmaXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19lbGxpcHNpcy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX2ZvbnQtc3RhY2tzLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9faGlkZS10ZXh0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fbWFyZ2luLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcGFkZGluZy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24vYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9hZGRvbnMvX3Bvc2l0aW9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fcHJlZml4ZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19yZXRpbmEtaW1hZ2Uuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL19zaXplLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdGV4dC1pbnB1dHMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL190aW1pbmctZnVuY3Rpb25zLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2FkZG9ucy9fdHJpYW5nbGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvYWRkb25zL193b3JkLXdyYXAuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uL2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX2JvdXJib24tZGVwcmVjYXRlZC11cGNvbWluZy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL19uZWF0LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvX25lYXQtaGVscGVycy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL21peGlucy9fY2xlYXJmaXguc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX3ByaXZhdGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9mdW5jdGlvbnMvX25ldy1icmVha3BvaW50LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvc2V0dGluZ3MvX2dyaWQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fdmlzdWFsLWdyaWQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9zZXR0aW5ncy9fZGlzYWJsZS13YXJuaW5ncy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3ByaXZhdGUuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19ib3gtc2l6aW5nLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fb21lZ2Euc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19vdXRlci1jb250YWluZXIuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19zcGFuLWNvbHVtbnMuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19yb3cuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19zaGlmdC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX3BhZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JvdXJib24tbmVhdC9hcHAvYXNzZXRzL3N0eWxlc2hlZXRzL2dyaWQvX2ZpbGwtcGFyZW50LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fbWVkaWEuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19yZXNldC1kaXNwbGF5LnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fdG8tZGVwcmVjYXRlLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYm91cmJvbi1uZWF0L2FwcC9hc3NldHMvc3R5bGVzaGVldHMvZ3JpZC9fdmlzdWFsLWdyaWQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19kaXNwbGF5LWNvbnRleHQuc2NzcyIsIi4uLy4uLy4uL25vZGVfbW9kdWxlcy9ib3VyYm9uLW5lYXQvYXBwL2Fzc2V0cy9zdHlsZXNoZWV0cy9ncmlkL19kaXJlY3Rpb24tY29udGV4dC5zY3NzIiwiYXBwL19icmVha3BvaW50cy5zY3NzIiwiYXBwL19oZWxwZXJzLnNjc3MiLCJhcHAvX3RleHQuc2NzcyIsImFwcC9fdGFibGVzLnNjc3MiLCJhcHAvX2J1dHRvbnMuc2NzcyIsImFwcC9fYnV0dG9uZ3JvdXBzLnNjc3MiLCJhcHAvX2Ryb3Bkb3duLnNjc3MiLCJhcHAvX2Zvcm1zLnNjc3MiLCJhcHAvX3BhZ2luYXRpb24uc2NzcyIsImFwcC9fZmxhc2hlcy5zY3NzIiwiYXBwL19wYW5lbHMuc2NzcyIsImFwcC9fY2FyZHMuc2NzcyIsImFwcC9fZXhwYW5kZXIuc2NzcyIsImFwcC9fc2VhcmNoYmFyLnNjc3MiLCJtYWluL19iYXNlLnNjc3MiLCJtYWluL19uYXZpZ2F0aW9uLnNjc3MiLCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvY29tcGFzcy1taXhpbnMvbGliL2NvbXBhc3MvY3NzMy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3MtbWl4aW5zL2xpYi9jb21wYXNzL2NzczMvX3NoYXJlZC5zY3NzIiwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2NvbXBhc3MtbWl4aW5zL2xpYi9jb21wYXNzL19zdXBwb3J0LnNjc3MiLCJtYWluL19mb290ZXIuc2NzcyIsIm1haW4vX2hlcm8uc2NzcyIsIm1haW4vX2VwaXNvZGVzLnNjc3MiLCJtYWluL2VwaXNvZGVzL19saXN0LnNjc3MiLCJtYWluL2VwaXNvZGVzL19zaW5nbGUuc2NzcyIsIm1haW4vZXBpc29kZXMvX3Byb2R1Y3Quc2NzcyIsIm1haW4vZXBpc29kZXMvX3NpbWlsYXIuc2NzcyIsIm1haW4vZXBpc29kZXMvX3BsYXllci5zY3NzIiwibWFpbi9fc2VhcmNoLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiQGltcG9ydCBcImFwcC9iYXNlXCI7XG5cbkBpbXBvcnQgXCJtYWluL2Jhc2VcIjtcblxuYm9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yO1xufVxuXG4jd3JhcHBlciB7XG4gICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDYwJSk7XG4gICAgQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbikgIHsgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDgwJSkgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7IEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcigxMDAlKSB9XG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikgIHsgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDEwMCUpIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWJhY2tncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXRvcDogM3B4IHNvbGlkICRicmFuZC1wcmltYXJ5O1xufVxuXG4uY29udGVudCB7XG4gICAgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDgwJSk7XG4gICAgQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbikgIHsgQGluY2x1ZGUgb3V0ZXItY29udGFpbmVyKDgwJSkgfVxuICAgIEBpbmNsdWRlIG1lZGlhKCRtZWRpdW0tc2NyZWVuKSB7IEBpbmNsdWRlIG91dGVyLWNvbnRhaW5lcig5MCUpIH1cbiAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSAgeyBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoOTAlKSB9XG59XG5cbmgzIHtcbiAgICBjb2xvcjogJGJyYW5kLXByaW1hcnk7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXNpemU6IDE4MCU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG5oZWFkZXIge1xuICAgIHBhZGRpbmctdG9wOiAyZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgICBwYWRkaW5nLXRvcDogMDtcbiAgICB9XG5cbiAgICBoMSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGltZyB7IC8vIExvZ29cbiAgICAgICAgICAgIHdpZHRoOiA5ZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICAgICAgICAgICB3aWR0aDogNGVtO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgc21hbGwge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgICAgICAgZm9udC1zaXplOiAwLjRlbTtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IC0yZW07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5oZXJvICsgLmNvbnRlbnQgaDMge1xuICAgIGZvbnQtc2l6ZTogMjAwJTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4zZW07XG59XG5cbi5iaWctYnV0dG9uIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxLjVlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmVwaXNvZGUtY29udGVudCB7XG4gICAgaDEge1xuICAgICAgICBhIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHVuc3R5bGVkLWxpbms7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi5hYm91dC11cyB7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICBkaXYge1xuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoOCk7XG4gICAgICAgIHRleHQtYWxpZ246IGp1c3RpZnk7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGl2ICsgZGl2IHtcbiAgICAgICAgZmxleDogMTtcblxuICAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIG1hcmdpbi10b3A6IDFlbTtcbiAgICAgICAgICAgIG1heC13aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLmNvbnRhY3QtbW9yZSB7XG4gICAgZGlzcGxheTogZmxleDtcblxuICAgID4gZGl2IHtcbiAgICAgICAgZmxleDogMTtcblxuICAgICAgICAuZmItcGFnZSB7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIi8vIFZhcmlhYmxlc1xuQGltcG9ydCBcInZhcmlhYmxlc1wiO1xuXG4vLyBCb3J1Ym9uICsgTmVhdFxuQGltcG9ydCBcImJvdXJib25cIjtcbkBpbXBvcnQgXCJuZWF0XCI7XG5AaW1wb3J0IFwiYnJlYWtwb2ludHNcIjtcblxuLy8gQ29yZSBQYXJ0aWFsc1xuQGltcG9ydCBcImhlbHBlcnNcIjtcbkBpbXBvcnQgXCJ0ZXh0XCI7XG5AaW1wb3J0IFwidGFibGVzXCI7XG5AaW1wb3J0IFwiYnV0dG9uc1wiO1xuQGltcG9ydCBcImJ1dHRvbmdyb3Vwc1wiO1xuQGltcG9ydCBcImRyb3Bkb3duXCI7XG5AaW1wb3J0IFwiZm9ybXNcIjtcbkBpbXBvcnQgXCJwYWdpbmF0aW9uXCI7XG5AaW1wb3J0IFwiZmxhc2hlc1wiO1xuQGltcG9ydCBcInBhbmVsc1wiO1xuQGltcG9ydCBcImNhcmRzXCI7XG5AaW1wb3J0IFwiZXhwYW5kZXJcIjtcbkBpbXBvcnQgXCJzZWFyY2hiYXJcIjtcbiIsIi8vIEJyYW5kc1xuJGJyYW5kLXByaW1hcnk6ICNGRkE0MEI7XG4kYnJhbmQtaW5mbzogIzhlYjRjYjtcbiRicmFuZC1zdWNjZXNzOiAjMmFiMjdiO1xuJGJyYW5kLXdhcm5pbmc6ICNjYmI5NTY7XG4kYnJhbmQtZGFuZ2VyOiAgI2JmNTMyOTtcblxuJGFtYXpvbi1wcmltYXJ5OiAjZjBjMTRiO1xuXG4vLyBDb2xvcnNcbiRkYXJrLWdyYXk6ICMzMzM7XG4kbWVkaXVtLWdyYXk6ICM5OTk7XG4kbGlnaHQtZ3JheTogI2RkZDtcblxuLy8gVHlwb2dyYXBoeVxuJGJhc2UtZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiLCBzYW5zLXNlcmlmO1xuJGhlYWRpbmctZm9udC1mYW1pbHk6ICRiYXNlLWZvbnQtZmFtaWx5O1xuJGJhc2UtbGV0dGVyLXNwYWNpbmc6IDAuMWVtO1xuXG4vLyBGb250IFNpemVzXG4kYmFzZS1mb250LXNpemU6IDFlbTtcblxuLy8gTGluZSBoZWlnaHRcbiRiYXNlLWxpbmUtaGVpZ2h0OiAxLjY7XG4kaGVhZGluZy1saW5lLWhlaWdodDogMS4yO1xuXG4vLyBPdGhlciBTaXplc1xuJGJhc2UtYm9yZGVyLXJhZGl1czogM3B4O1xuJGJhc2Utc3BhY2luZzogJGJhc2UtbGluZS1oZWlnaHQgKiAxZW07XG4kc21hbGwtc3BhY2luZzogJGJhc2Utc3BhY2luZyAvIDI7XG4kYmFzZS16LWluZGV4OiAwO1xuXG4vLyBGb250IENvbG9yc1xuJGJhc2UtZm9udC1jb2xvcjogIzVBNUE1QTtcbiRzZWNvbmRhcnktZm9udC1jb2xvcjogIzJEMkQyRDtcbiRhY3Rpb24tY29sb3I6ICRicmFuZC1wcmltYXJ5O1xuXG4vLyBCb3JkZXJcbiRiYXNlLWJvcmRlci1jb2xvcjogJGxpZ2h0LWdyYXk7XG4kYmFzZS1ib3JkZXI6IDFweCBzb2xpZCAkYmFzZS1ib3JkZXItY29sb3I7XG5cbi8vIEJhY2tncm91bmQgQ29sb3JzXG4kYmFzZS1iYWNrZ3JvdW5kLWNvbG9yOiAjRkZGO1xuJHNlY29uZGFyeS1iYWNrZ3JvdW5kLWNvbG9yOiAjRjNGM0YzO1xuXG4vLyBGb3Jtc1xuJGZvcm0tYm94LXNoYWRvdzogaW5zZXQgMCAxcHggM3B4IHJnYmEoIzAwMCwgMC4wNik7XG4kZm9ybS1ib3gtc2hhZG93LWZvY3VzOiAkZm9ybS1ib3gtc2hhZG93LCAwIDAgNXB4IGFkanVzdC1jb2xvcigkYWN0aW9uLWNvbG9yLCAkbGlnaHRuZXNzOiAtNSUsICRhbHBoYTogLTAuMyk7XG5cbi8vIEFuaW1hdGlvbnNcbiRiYXNlLWR1cmF0aW9uOiAxNTBtcztcbiRiYXNlLXRpbWluZzogZWFzZTtcbiIsIi8vIEJvdXJib24gNC4zLjRcbi8vIGh0dHA6Ly9ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMS0yMDE3IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbkBpbXBvcnQgXCJzZXR0aW5ncy9kZXByZWNhdGlvbi13YXJuaW5nc1wiO1xuQGltcG9ydCBcInNldHRpbmdzL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvcHgtdG8tZW1cIjtcbkBpbXBvcnQgXCJzZXR0aW5ncy9hc3NldC1waXBlbGluZVwiO1xuXG5AaW1wb3J0IFwiYm91cmJvbi1kZXByZWNhdGVcIjtcblxuQGltcG9ydCBcImZ1bmN0aW9ucy9hc3NpZ24taW5wdXRzXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2NvbnRhaW5zLWZhbHN5XCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL2lzLWxlbmd0aFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1saWdodFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9pcy1udW1iZXJcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvaXMtc2l6ZVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1lbVwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy9weC10by1yZW1cIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc2hhZGVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvc3RyaXAtdW5pdHNcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdGludFwiO1xuQGltcG9ydCBcImZ1bmN0aW9ucy90cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVcIjtcbkBpbXBvcnQgXCJmdW5jdGlvbnMvdW5wYWNrXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL21vZHVsYXItc2NhbGVcIjtcblxuQGltcG9ydCBcImhlbHBlcnMvY29udmVydC11bml0c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvZGlyZWN0aW9uYWwtdmFsdWVzXCI7XG5AaW1wb3J0IFwiaGVscGVycy9mb250LXNvdXJjZS1kZWNsYXJhdGlvblwiO1xuQGltcG9ydCBcImhlbHBlcnMvZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWFuZ2xlLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvbGluZWFyLXBvc2l0aW9ucy1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXJcIjtcbkBpbXBvcnQgXCJoZWxwZXJzL3JhZGlhbC1hcmctcGFyc2VyXCI7XG5AaW1wb3J0IFwiaGVscGVycy9yYWRpYWwtcG9zaXRpb25zLXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmFkaWFsLWdyYWRpZW50LXBhcnNlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvcmVuZGVyLWdyYWRpZW50c1wiO1xuQGltcG9ydCBcImhlbHBlcnMvc2hhcGUtc2l6ZS1zdHJpcHBlclwiO1xuQGltcG9ydCBcImhlbHBlcnMvc3RyLXRvLW51bVwiO1xuXG5AaW1wb3J0IFwiY3NzMy9hbmltYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL2FwcGVhcmFuY2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tmYWNlLXZpc2liaWxpdHlcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmRcIjtcbkBpbXBvcnQgXCJjc3MzL2JhY2tncm91bmQtaW1hZ2VcIjtcbkBpbXBvcnQgXCJjc3MzL2JvcmRlci1pbWFnZVwiO1xuQGltcG9ydCBcImNzczMvY2FsY1wiO1xuQGltcG9ydCBcImNzczMvY29sdW1uc1wiO1xuQGltcG9ydCBcImNzczMvZmlsdGVyXCI7XG5AaW1wb3J0IFwiY3NzMy9mbGV4LWJveFwiO1xuQGltcG9ydCBcImNzczMvZm9udC1mYWNlXCI7XG5AaW1wb3J0IFwiY3NzMy9mb250LWZlYXR1cmUtc2V0dGluZ3NcIjtcbkBpbXBvcnQgXCJjc3MzL2hpZHBpLW1lZGlhLXF1ZXJ5XCI7XG5AaW1wb3J0IFwiY3NzMy9oeXBoZW5zXCI7XG5AaW1wb3J0IFwiY3NzMy9pbWFnZS1yZW5kZXJpbmdcIjtcbkBpbXBvcnQgXCJjc3MzL2tleWZyYW1lc1wiO1xuQGltcG9ydCBcImNzczMvbGluZWFyLWdyYWRpZW50XCI7XG5AaW1wb3J0IFwiY3NzMy9wZXJzcGVjdGl2ZVwiO1xuQGltcG9ydCBcImNzczMvcGxhY2Vob2xkZXJcIjtcbkBpbXBvcnQgXCJjc3MzL3JhZGlhbC1ncmFkaWVudFwiO1xuQGltcG9ydCBcImNzczMvc2VsZWN0aW9uXCI7XG5AaW1wb3J0IFwiY3NzMy90ZXh0LWRlY29yYXRpb25cIjtcbkBpbXBvcnQgXCJjc3MzL3RyYW5zZm9ybVwiO1xuQGltcG9ydCBcImNzczMvdHJhbnNpdGlvblwiO1xuQGltcG9ydCBcImNzczMvdXNlci1zZWxlY3RcIjtcblxuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItY29sb3JcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXJhZGl1c1wiO1xuQGltcG9ydCBcImFkZG9ucy9ib3JkZXItc3R5bGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvYm9yZGVyLXdpZHRoXCI7XG5AaW1wb3J0IFwiYWRkb25zL2J1dHRvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvY2xlYXJmaXhcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZWxsaXBzaXNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvZm9udC1zdGFja3NcIjtcbkBpbXBvcnQgXCJhZGRvbnMvaGlkZS10ZXh0XCI7XG5AaW1wb3J0IFwiYWRkb25zL21hcmdpblwiO1xuQGltcG9ydCBcImFkZG9ucy9wYWRkaW5nXCI7XG5AaW1wb3J0IFwiYWRkb25zL3Bvc2l0aW9uXCI7XG5AaW1wb3J0IFwiYWRkb25zL3ByZWZpeGVyXCI7XG5AaW1wb3J0IFwiYWRkb25zL3JldGluYS1pbWFnZVwiO1xuQGltcG9ydCBcImFkZG9ucy9zaXplXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RleHQtaW5wdXRzXCI7XG5AaW1wb3J0IFwiYWRkb25zL3RpbWluZy1mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJhZGRvbnMvdHJpYW5nbGVcIjtcbkBpbXBvcnQgXCJhZGRvbnMvd29yZC13cmFwXCI7XG5cbkBpbXBvcnQgXCJib3VyYm9uLWRlcHJlY2F0ZWQtdXBjb21pbmdcIjtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEVuYWJsZSBvciBkaXNhYmxlIG91dHB1dCBvZiBCb3VyYm9u4oCZcyBkZXByZWNhdGlvbi1yZWxhdGVkIFNhc3Mgd2FybmluZ3MuXG4vLy8gVGhpcyB2YXJpYWJsZSBtdXN0IGJlIGRlY2xhcmVkIF9iZWZvcmVfIGltcG9ydGluZyBCb3VyYm9uLlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IHRydWUgIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBHbG9iYWwgdmFyaWFibGVzIHRvIGVuYWJsZSBvciBkaXNhYmxlIHZlbmRvciBwcmVmaXhlc1xuXG4kcHJlZml4LWZvci13ZWJraXQ6ICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1tb3ppbGxhOiAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1taWNyb3NvZnQ6IHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1vcGVyYTogICAgIHRydWUgIWRlZmF1bHQ7XG4kcHJlZml4LWZvci1zcGVjOiAgICAgIHRydWUgIWRlZmF1bHQ7XG4iLCIkZW0tYmFzZTogMTZweCAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEEgZ2xvYmFsIHNldHRpbmcgdG8gZW5hYmxlIG9yIGRpc2FibGUgdGhlIGAkYXNzZXQtcGlwZWxpbmVgIHZhcmlhYmxlIGZvciBhbGwgZnVuY3Rpb25zIHRoYXQgYWNjZXB0IGl0LlxuLy8vXG4vLy8gQHR5cGUgQm9vbFxuXG4kYXNzZXQtcGlwZWxpbmU6IGZhbHNlICFkZWZhdWx0O1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gVGhyb3dzIFNhc3Mgd2FybmluZ3MgdG8gYW5ub3VuY2UgbGlicmFyeSBkZXByZWNhdGlvbnMuIFlvdSBjYW4gZGlzYWJsZSB0aGVtXG4vLy8gYnkgc2V0dGluZyB0aGUgYCRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nc2AgdmFyaWFibGUgdG8gYGZhbHNlYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuXG5AbWl4aW4gX2JvdXJib24tZGVwcmVjYXRlKCRmZWF0dXJlLCAkbWVzc2FnZTogbnVsbCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYCN7JGZlYXR1cmV9YCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICAgIFwicmVtb3ZlZCBpbiA1LjAuMC4gI3skbWVzc2FnZX1cIjtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG5AbWl4aW4gX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoJGZlYXR1cmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlKCRmZWF0dXJlLCBcIldlIHN1Z2dlc3QgdXNpbmcgYW4gYXV0b21hdGVkIFwiICtcbiAgICBcInByZWZpeGluZyB0b29sLCBsaWtlIEF1dG9wcmVmaXhlci5cIik7XG59XG4iLCJAZnVuY3Rpb24gYXNzaWduLWlucHV0cygkaW5wdXRzLCAkcHNldWRvOiBudWxsKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgYXNzaWduLWlucHV0c2AgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJGxpc3Q6ICgpO1xuXG4gIEBlYWNoICRpbnB1dCBpbiAkaW5wdXRzIHtcbiAgICAkaW5wdXQ6IHVucXVvdGUoJGlucHV0KTtcbiAgICAkaW5wdXQ6IGlmKCRwc2V1ZG8sICRpbnB1dCArIFwiOlwiICsgJHBzZXVkbywgJGlucHV0KTtcbiAgICAkbGlzdDogYXBwZW5kKCRsaXN0LCAkaW5wdXQsIGNvbW1hKTtcbiAgfVxuXG4gIEByZXR1cm4gJGxpc3Q7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgaWYgYSBsaXN0IGNvbnRhaW5zIGEgdmFsdWUocykuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3Rcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWx1ZXNcbi8vLyAgIEEgc2luZ2xlIHZhbHVlIG9yIGxpc3Qgb2YgdmFsdWVzIHRvIGNoZWNrIGZvci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgY29udGFpbnMoJGxpc3QsICR2YWx1ZSlcbi8vL1xuLy8vIEByZXR1cm4ge0Jvb2x9XG5cbkBmdW5jdGlvbiBjb250YWlucygkbGlzdCwgJHZhbHVlcy4uLikge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGNvbnRhaW5zYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAZWFjaCAkdmFsdWUgaW4gJHZhbHVlcyB7XG4gICAgQGlmIHR5cGUtb2YoaW5kZXgoJGxpc3QsICR2YWx1ZSkpICE9IFwibnVtYmVyXCIge1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuIHRydWU7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgaWYgYSBsaXN0IGRvZXMgbm90IGNvbnRhaW5zIGEgdmFsdWUuXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3Rcbi8vLyAgIFRoZSBsaXN0IHRvIGNoZWNrIGFnYWluc3QuXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sfVxuXG5AZnVuY3Rpb24gY29udGFpbnMtZmFsc3koJGxpc3QpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBjb250YWlucy1mYWxzeWAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQGVhY2ggJGl0ZW0gaW4gJGxpc3Qge1xuICAgIEBpZiBub3QgJGl0ZW0ge1xuICAgICAgQHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gZmFsc2U7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgQ1NTIGxlbmd0aC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkdmFsdWVcblxuQGZ1bmN0aW9uIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBpcy1sZW5ndGhgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIEByZXR1cm4gdHlwZS1vZigkdmFsdWUpICE9IFwibnVsbFwiIGFuZCAoc3RyLXNsaWNlKCR2YWx1ZSArIFwiXCIsIDEsIDQpID09IFwiY2FsY1wiXG4gICAgICAgb3IgaW5kZXgoYXV0byBpbmhlcml0IGluaXRpYWwgMCwgJHZhbHVlKVxuICAgICAgIG9yICh0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiBhbmQgbm90KHVuaXRsZXNzKCR2YWx1ZSkpKSk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm9ncmFtYXRpY2FsbHkgZGV0ZXJtaW5lcyB3aGV0aGVyIGEgY29sb3IgaXMgbGlnaHQgb3IgZGFyay5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9yb2JvdHMudGhvdWdodGJvdC5jb20vY2xvc2VyLWxvb2stY29sb3ItbGlnaHRuZXNzXG4vLy9cbi8vLyBAcGFyYW0ge0NvbG9yIChIZXgpfSAkY29sb3Jcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgaXMtbGlnaHQoJGNvbG9yKVxuLy8vXG4vLy8gQHJldHVybiB7Qm9vbH1cblxuQGZ1bmN0aW9uIGlzLWxpZ2h0KCRoZXgtY29sb3IpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBpcy1saWdodGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJC1sb2NhbC1yZWQ6IHJlZChyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1ncmVlbjogZ3JlZW4ocmdiYSgkaGV4LWNvbG9yLCAxKSk7XG4gICQtbG9jYWwtYmx1ZTogYmx1ZShyZ2JhKCRoZXgtY29sb3IsIDEpKTtcbiAgJC1sb2NhbC1saWdodG5lc3M6ICgkLWxvY2FsLXJlZCAqIDAuMjEyNiArICQtbG9jYWwtZ3JlZW4gKiAwLjcxNTIgKyAkLWxvY2FsLWJsdWUgKiAwLjA3MjIpIC8gMjU1O1xuXG4gIEByZXR1cm4gJC1sb2NhbC1saWdodG5lc3MgPiAwLjY7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBDaGVja3MgZm9yIGEgdmFsaWQgbnVtYmVyLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuXG5AZnVuY3Rpb24gaXMtbnVtYmVyKCR2YWx1ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGlzLW51bWJlcmAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQHJldHVybiBjb250YWlucyhcIjBcIiBcIjFcIiBcIjJcIiBcIjNcIiBcIjRcIiBcIjVcIiBcIjZcIiBcIjdcIiBcIjhcIiBcIjlcIiAwIDEgMiAzIDQgNSA2IDcgOCA5LCAkdmFsdWUpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hlY2tzIGZvciBhIHZhbGlkIENTUyBzaXplLlxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR2YWx1ZVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWluc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG5cbkBmdW5jdGlvbiBpcy1zaXplKCR2YWx1ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGlzLXNpemVgIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgXCIgK1xuICAgIFwicmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gaXMtbGVuZ3RoKCR2YWx1ZSlcbiAgICAgICAgICBvciBjb250YWlucyhcImZpbGxcIiBcImZpdC1jb250ZW50XCIgXCJtaW4tY29udGVudFwiIFwibWF4LWNvbnRlbnRcIiwgJHZhbHVlKTtcblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIGVtc1xuLy8gZWcuIGZvciBhIHJlbGF0aW9uYWwgdmFsdWUgb2YgMTJweCB3cml0ZSBlbSgxMikgd2hlbiB0aGUgcGFyZW50IGlzIDE2cHhcbi8vIGlmIHRoZSBwYXJlbnQgaXMgYW5vdGhlciB2YWx1ZSBzYXkgMjRweCB3cml0ZSBlbSgxMiwgMjQpXG5cbkBmdW5jdGlvbiBlbSgkcHh2YWwsICRiYXNlOiAkZW0tYmFzZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGVtYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICBAaWYgbm90IHVuaXRsZXNzKCRweHZhbCkge1xuICAgICRweHZhbDogc3RyaXAtdW5pdHMoJHB4dmFsKTtcbiAgfVxuICBAaWYgbm90IHVuaXRsZXNzKCRiYXNlKSB7XG4gICAgJGJhc2U6IHN0cmlwLXVuaXRzKCRiYXNlKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gKCRweHZhbCAvICRiYXNlKSAqIDFlbTtcbn1cbiIsIi8vIENvbnZlcnQgcGl4ZWxzIHRvIHJlbXNcbi8vIGVnLiBmb3IgYSByZWxhdGlvbmFsIHZhbHVlIG9mIDEycHggd3JpdGUgcmVtKDEyKVxuLy8gQXNzdW1lcyAkZW0tYmFzZSBpcyB0aGUgZm9udC1zaXplIG9mIDxodG1sPlxuXG5AZnVuY3Rpb24gcmVtKCRweHZhbCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYHJlbWAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgQGlmIG5vdCB1bml0bGVzcygkcHh2YWwpIHtcbiAgICAkcHh2YWw6IHN0cmlwLXVuaXRzKCRweHZhbCk7XG4gIH1cblxuICAkYmFzZTogJGVtLWJhc2U7XG4gIEBpZiBub3QgdW5pdGxlc3MoJGJhc2UpIHtcbiAgICAkYmFzZTogc3RyaXAtdW5pdHMoJGJhc2UpO1xuICB9XG5cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG5cbiAgQHJldHVybiAoJHB4dmFsIC8gJGJhc2UpICogMXJlbTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCBibGFjay5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiBibGFjayB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgjZmZiYjUyLCA2MCUpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNjY0YTIwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJldHVybiB7Q29sb3J9XG5cbkBmdW5jdGlvbiBzaGFkZSgkY29sb3IsICRwZXJjZW50KSB7XG4gIEByZXR1cm4gbWl4KCMwMDAsICRjb2xvciwgJHBlcmNlbnQpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU3RyaXBzIHRoZSB1bml0IGZyb20gYSBudW1iZXIuXG4vLy9cbi8vLyBAcGFyYW0ge051bWJlciAoV2l0aCBVbml0KX0gJHZhbHVlXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICRkaW1lbnNpb246IHN0cmlwLXVuaXRzKDEwZW0pO1xuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgJGRpbWVuc2lvbjogMTA7XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXIgKFVuaXRsZXNzKX1cblxuQGZ1bmN0aW9uIHN0cmlwLXVuaXRzKCR2YWx1ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYHN0cmlwLXVuaXRzYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAgYW5kIHJlcGxhY2VkIGJ5IHRoZSBgc3RyaXAtdW5pdGAgZnVuY3Rpb24uXCI7XG4gIH1cblxuICBAcmV0dXJuICgkdmFsdWUgLyAoJHZhbHVlICogMCArIDEpKTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIE1peGVzIGEgY29sb3Igd2l0aCB3aGl0ZS5cbi8vL1xuLy8vIEBwYXJhbSB7Q29sb3J9ICRjb2xvclxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKFBlcmNlbnRhZ2UpfSAkcGVyY2VudFxuLy8vICAgVGhlIGFtb3VudCBvZiB3aGl0ZSB0byBiZSBtaXhlZCBpbi5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0aW50KCM2ZWNhYTYsIDQwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNhOGRmYzk7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmV0dXJuIHtDb2xvcn1cblxuQGZ1bmN0aW9uIHRpbnQoJGNvbG9yLCAkcGVyY2VudCkge1xuICBAcmV0dXJuIG1peCgjZmZmLCAkY29sb3IsICRwZXJjZW50KTtcbn1cbiIsIi8vIFJldHVybiB2ZW5kb3ItcHJlZml4ZWQgcHJvcGVydHkgbmFtZXMgaWYgYXBwcm9wcmlhdGVcbi8vIEV4YW1wbGU6IHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoKHRyYW5zZm9ybSwgY29sb3IsIGJhY2tncm91bmQpLCBtb3opIC0+IC1tb3otdHJhbnNmb3JtLCBjb2xvciwgYmFja2dyb3VuZFxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXMoJHByb3BzLCAkdmVuZG9yOiBmYWxzZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYHRyYW5zaXRpb24tcHJvcGVydHktbmFtZXNgIGlzIGRlcHJlY2F0ZWQgXCIgK1xuICAgIFwiYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gICRuZXctcHJvcHM6ICgpO1xuXG4gIEBlYWNoICRwcm9wIGluICRwcm9wcyB7XG4gICAgJG5ldy1wcm9wczogYXBwZW5kKCRuZXctcHJvcHMsIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvciksIGNvbW1hKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJG5ldy1wcm9wcztcbn1cblxuQGZ1bmN0aW9uIHRyYW5zaXRpb24tcHJvcGVydHktbmFtZSgkcHJvcCwgJHZlbmRvcjogZmFsc2UpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVgIGlzIGRlcHJlY2F0ZWQgXCIgK1xuICAgIFwiYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gIC8vIHB1dCBvdGhlciBwcm9wZXJ0aWVzIHRoYXQgbmVlZCB0byBiZSBwcmVmaXhlZCBoZXJlIGFzd2VsbFxuICBAaWYgJHZlbmRvciBhbmQgJHByb3AgPT0gdHJhbnNmb3JtIHtcbiAgICBAcmV0dXJuIHVucXVvdGUoJy0nKyR2ZW5kb3IrJy0nKyRwcm9wKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQHJldHVybiAkcHJvcDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ29udmVydHMgc2hvcnRoYW5kIHRvIHRoZSA0LXZhbHVlIHN5bnRheC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNob3J0aGFuZFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbjogdW5wYWNrKDFlbSAyZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBtYXJnaW46IDFlbSAyZW0gMWVtIDJlbTtcbi8vLyAgIH1cblxuQGZ1bmN0aW9uIHVucGFjaygkc2hvcnRoYW5kKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgdW5wYWNrYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAaWYgbGVuZ3RoKCRzaG9ydGhhbmQpID09IDEge1xuICAgIEByZXR1cm4gbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDEpO1xuICB9IEBlbHNlIGlmIGxlbmd0aCgkc2hvcnRoYW5kKSA9PSAyIHtcbiAgICBAcmV0dXJuIG50aCgkc2hvcnRoYW5kLCAxKSBudGgoJHNob3J0aGFuZCwgMikgbnRoKCRzaG9ydGhhbmQsIDEpIG50aCgkc2hvcnRoYW5kLCAyKTtcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNob3J0aGFuZCkgPT0gMyB7XG4gICAgQHJldHVybiBudGgoJHNob3J0aGFuZCwgMSkgbnRoKCRzaG9ydGhhbmQsIDIpIG50aCgkc2hvcnRoYW5kLCAzKSBudGgoJHNob3J0aGFuZCwgMik7XG4gIH0gQGVsc2Uge1xuICAgIEByZXR1cm4gJHNob3J0aGFuZDtcbiAgfVxufVxuIiwiLy8gU2NhbGluZyBWYXJpYWJsZXNcbiRnb2xkZW46ICAgICAgICAgICAxLjYxODtcbiRtaW5vci1zZWNvbmQ6ICAgICAxLjA2NztcbiRtYWpvci1zZWNvbmQ6ICAgICAxLjEyNTtcbiRtaW5vci10aGlyZDogICAgICAxLjI7XG4kbWFqb3ItdGhpcmQ6ICAgICAgMS4yNTtcbiRwZXJmZWN0LWZvdXJ0aDogICAxLjMzMztcbiRhdWdtZW50ZWQtZm91cnRoOiAxLjQxNDtcbiRwZXJmZWN0LWZpZnRoOiAgICAxLjU7XG4kbWlub3Itc2l4dGg6ICAgICAgMS42O1xuJG1ham9yLXNpeHRoOiAgICAgIDEuNjY3O1xuJG1pbm9yLXNldmVudGg6ICAgIDEuNzc4O1xuJG1ham9yLXNldmVudGg6ICAgIDEuODc1O1xuJG9jdGF2ZTogICAgICAgICAgIDI7XG4kbWFqb3ItdGVudGg6ICAgICAgMi41O1xuJG1ham9yLWVsZXZlbnRoOiAgIDIuNjY3O1xuJG1ham9yLXR3ZWxmdGg6ICAgIDM7XG4kZG91YmxlLW9jdGF2ZTogICAgNDtcblxuJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2U7XG5cbiRtb2R1bGFyLXNjYWxlLXJhdGlvOiAkcGVyZmVjdC1mb3VydGggIWRlZmF1bHQ7XG4kbW9kdWxhci1zY2FsZS1iYXNlOiBlbSgkZW0tYmFzZSkgIWRlZmF1bHQ7XG5cbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc7XG5cbkBmdW5jdGlvbiBtb2R1bGFyLXNjYWxlKCRpbmNyZW1lbnQsICR2YWx1ZTogJG1vZHVsYXItc2NhbGUtYmFzZSwgJHJhdGlvOiAkbW9kdWxhci1zY2FsZS1yYXRpbykge1xuICAkdjE6IG50aCgkdmFsdWUsIDEpO1xuICAkdjI6IG50aCgkdmFsdWUsIGxlbmd0aCgkdmFsdWUpKTtcbiAgJHZhbHVlOiAkdjE7XG5cbiAgLy8gc2NhbGUgJHYyIHRvIGp1c3QgYWJvdmUgJHYxXG4gIEB3aGlsZSAkdjIgPiAkdjEge1xuICAgICR2MjogKCR2MiAvICRyYXRpbyk7IC8vIHdpbGwgYmUgb2ZmLWJ5LTFcbiAgfVxuICBAd2hpbGUgJHYyIDwgJHYxIHtcbiAgICAkdjI6ICgkdjIgKiAkcmF0aW8pOyAvLyB3aWxsIGZpeCBvZmYtYnktMVxuICB9XG5cbiAgLy8gY2hlY2sgQUZURVIgc2NhbGluZyAkdjIgdG8gcHJldmVudCBkb3VibGUtY291bnRpbmcgY29ybmVyLWNhc2VcbiAgJGRvdWJsZS1zdHJhbmRlZDogJHYyID4gJHYxO1xuXG4gIEBpZiAkaW5jcmVtZW50ID4gMCB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkaW5jcmVtZW50IHtcbiAgICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIGFuZCAoJHYxICogJHJhdGlvKSA+ICR2MiB7XG4gICAgICAgICR2YWx1ZTogJHYyO1xuICAgICAgICAkdjI6ICgkdjIgKiAkcmF0aW8pO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgICR2MTogKCR2MSAqICRyYXRpbyk7XG4gICAgICAgICR2YWx1ZTogJHYxO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBpZiAkaW5jcmVtZW50IDwgMCB7XG4gICAgLy8gYWRqdXN0ICR2MiB0byBqdXN0IGJlbG93ICR2MVxuICAgIEBpZiAkZG91YmxlLXN0cmFuZGVkIHtcbiAgICAgICR2MjogKCR2MiAvICRyYXRpbyk7XG4gICAgfVxuXG4gICAgQGZvciAkaSBmcm9tICRpbmNyZW1lbnQgdGhyb3VnaCAtMSB7XG4gICAgICBAaWYgJGRvdWJsZS1zdHJhbmRlZCBhbmQgKCR2MSAvICRyYXRpbykgPCAkdjIge1xuICAgICAgICAkdmFsdWU6ICR2MjtcbiAgICAgICAgJHYyOiAoJHYyIC8gJHJhdGlvKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkdjE6ICgkdjEgLyAkcmF0aW8pO1xuICAgICAgICAkdmFsdWU6ICR2MTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZTtcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEhlbHBlciBmdW5jdGlvbiBmb3Igc3RyLXRvLW51bSBmbi5cbi8vIFNvdXJjZTogaHR0cDovL3Nhc3NtZWlzdGVyLmNvbS9naXN0Lzk2NDc0MDhcbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbkBmdW5jdGlvbiBfY29udmVydC11bml0cygkbnVtYmVyLCAkdW5pdCkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9jb252ZXJ0LXVuaXRzYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIFwiICtcbiAgICBcImJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkc3RyaW5nczogXCJweFwiLCBcImNtXCIsIFwibW1cIiwgXCIlXCIsIFwiY2hcIiwgXCJwaWNhXCIsIFwiaW5cIiwgXCJlbVwiLCBcInJlbVwiLCBcInB0XCIsIFwicGNcIiwgXCJleFwiLCBcInZ3XCIsIFwidmhcIiwgXCJ2bWluXCIsIFwidm1heFwiLCBcImRlZ1wiLCBcInJhZFwiLCBcImdyYWRcIiwgXCJ0dXJuXCI7XG4gICR1bml0czogICAxcHgsIDFjbSwgMW1tLCAxJSwgMWNoLCAxcGljYSwgMWluLCAxZW0sIDFyZW0sIDFwdCwgMXBjLCAxZXgsIDF2dywgMXZoLCAxdm1pbiwgMXZtYXgsIDFkZWcsIDFyYWQsIDFncmFkLCAxdHVybjtcbiAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJHVuaXQpO1xuXG4gIEBpZiBub3QgJGluZGV4IHtcbiAgICBAd2FybiBcIlVua25vd24gdW5pdCBgI3skdW5pdH1gLlwiO1xuICAgIEByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkbnVtYmVyKSAhPSBcIm51bWJlclwiIHtcbiAgICBAd2FybiBcImAjeyRudW1iZXJ9IGlzIG5vdCBhIG51bWJlcmBcIjtcbiAgICBAcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgQHJldHVybiAkbnVtYmVyICogbnRoKCR1bml0cywgJGluZGV4KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpcmVjdGlvbmFsLXByb3BlcnR5IG1peGlucyBhcmUgc2hvcnRoYW5kcyBmb3Igd3JpdGluZyBwcm9wZXJ0aWVzIGxpa2UgdGhlIGZvbGxvd2luZ1xuLy8vXG4vLy8gQGlnbm9yZSBZb3UgY2FuIGFsc28gdXNlIGBmYWxzZWAgaW5zdGVhZCBvZiBgbnVsbGAuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGRpcmVjdGlvbmFsIHZhbHVlc1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1zdHlsZShkb3R0ZWQgbnVsbCk7XG4vLy8gICAgIEBpbmNsdWRlIG1hcmdpbihudWxsIDAgMTBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20tc3R5bGU6IGRvdHRlZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZG90dGVkO1xuLy8vICAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuLy8vICAgICBtYXJnaW4tbGVmdDogMDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSBjb250YWlucy1mYWxzeVxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH1cblxuQGZ1bmN0aW9uIGNvbGxhcHNlLWRpcmVjdGlvbmFscygkdmFscykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGNvbGxhcHNlLWRpcmVjdGlvbmFsc2AgaXMgZGVwcmVjYXRlZCBhbmQgXCIgK1xuICAgIFwid2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJG91dHB1dDogbnVsbDtcblxuICAkYTogbnRoKCR2YWxzLCAxKTtcbiAgJGI6IGlmKGxlbmd0aCgkdmFscykgPCAyLCAkYSwgbnRoKCR2YWxzLCAyKSk7XG4gICRjOiBpZihsZW5ndGgoJHZhbHMpIDwgMywgJGEsIG50aCgkdmFscywgMykpO1xuICAkZDogaWYobGVuZ3RoKCR2YWxzKSA8IDIsICRhLCBudGgoJHZhbHMsIGlmKGxlbmd0aCgkdmFscykgPCA0LCAyLCA0KSkpO1xuXG4gIEBpZiAkYSA9PSAwIHsgJGE6IDA7IH1cbiAgQGlmICRiID09IDAgeyAkYjogMDsgfVxuICBAaWYgJGMgPT0gMCB7ICRjOiAwOyB9XG4gIEBpZiAkZCA9PSAwIHsgJGQ6IDA7IH1cblxuICBAaWYgJGEgPT0gJGIgYW5kICRhID09ICRjIGFuZCAkYSA9PSAkZCB7ICRvdXRwdXQ6ICRhOyAgICAgICAgICB9XG4gIEBlbHNlIGlmICRhID09ICRjIGFuZCAkYiA9PSAkZCAgICAgICAgIHsgJG91dHB1dDogJGEgJGI7ICAgICAgIH1cbiAgQGVsc2UgaWYgJGIgPT0gJGQgICAgICAgICAgICAgICAgICAgICAgeyAkb3V0cHV0OiAkYSAkYiAkYzsgICAgfVxuICBAZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICRvdXRwdXQ6ICRhICRiICRjICRkOyB9XG5cbiAgQHJldHVybiAkb3V0cHV0O1xufVxuXG4vLy8gT3V0cHV0IGRpcmVjdGlvbmFsIHByb3BlcnRpZXMsIGZvciBpbnN0YW5jZSBgbWFyZ2luYC5cbi8vL1xuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRwcmVcbi8vLyAgIFByZWZpeCB0byB1c2Vcbi8vLyBAcGFyYW0ge1N0cmluZ30gJHN1ZlxuLy8vICAgU3VmZml4IHRvIHVzZVxuLy8vIEBwYXJhbSB7TGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgdmFsdWVzXG4vLy9cbi8vLyBAcmVxdWlyZSB7ZnVuY3Rpb259IGNvbGxhcHNlLWRpcmVjdGlvbmFsc1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gY29udGFpbnMtZmFsc3lcblxuQG1peGluIGRpcmVjdGlvbmFsLXByb3BlcnR5KCRwcmUsICRzdWYsICR2YWxzKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZShcImRpcmVjdGlvbmFsLXByb3BlcnR5XCIpO1xuXG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuXG4gIC8vIFByb3BlcnR5IE5hbWVzXG4gICR0b3A6ICAgICRwcmUgKyBcIi10b3BcIiAgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRib3R0b206ICRwcmUgKyBcIi1ib3R0b21cIiArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRsZWZ0OiAgICRwcmUgKyBcIi1sZWZ0XCIgICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRyaWdodDogICRwcmUgKyBcIi1yaWdodFwiICArIGlmKCRzdWYsIFwiLSN7JHN1Zn1cIiwgXCJcIik7XG4gICRhbGw6ICAgICRwcmUgKyAgICAgICAgICAgICBpZigkc3VmLCBcIi0jeyRzdWZ9XCIsIFwiXCIpO1xuXG4gICR2YWxzOiBjb2xsYXBzZS1kaXJlY3Rpb25hbHMoJHZhbHMpO1xuXG4gIEBpZiBjb250YWlucy1mYWxzeSgkdmFscykge1xuICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skdG9wfTogbnRoKCR2YWxzLCAxKTsgfVxuXG4gICAgQGlmIGxlbmd0aCgkdmFscykgPT0gMSB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAxKSB7ICN7JHJpZ2h0fTogbnRoKCR2YWxzLCAxKTsgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRyaWdodH06IG50aCgkdmFscywgMik7IH1cbiAgICB9XG5cbiAgICBAaWYgbGVuZ3RoKCR2YWxzKSA9PSAyIHtcbiAgICAgIEBpZiBudGgoJHZhbHMsIDEpIHsgI3skYm90dG9tfTogbnRoKCR2YWxzLCAxKTsgfVxuICAgICAgQGlmIG50aCgkdmFscywgMikgeyAjeyRsZWZ0fTogICBudGgoJHZhbHMsIDIpOyB9XG4gICAgfSBAZWxzZSBpZiBsZW5ndGgoJHZhbHMpID09IDMge1xuICAgICAgQGlmIG50aCgkdmFscywgMykgeyAjeyRib3R0b219OiBudGgoJHZhbHMsIDMpOyB9XG4gICAgICBAaWYgbnRoKCR2YWxzLCAyKSB7ICN7JGxlZnR9OiAgIG50aCgkdmFscywgMik7IH1cbiAgICB9IEBlbHNlIGlmIGxlbmd0aCgkdmFscykgPT0gNCB7XG4gICAgICBAaWYgbnRoKCR2YWxzLCAzKSB7ICN7JGJvdHRvbX06IG50aCgkdmFscywgMyk7IH1cbiAgICAgIEBpZiBudGgoJHZhbHMsIDQpIHsgI3skbGVmdH06ICAgbnRoKCR2YWxzLCA0KTsgfVxuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgI3skYWxsfTogJHZhbHM7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIi8vIFVzZWQgZm9yIGNyZWF0aW5nIHRoZSBzb3VyY2Ugc3RyaW5nIGZvciBmb250cyB1c2luZyBAZm9udC1mYWNlXG4vLyBSZWZlcmVuY2U6IGh0dHA6Ly9nb28uZ2wvUnUxYktQXG5cbkBmdW5jdGlvbiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBmb250LXVybC1wcmVmaXhlcmAgaXMgZGVwcmVjYXRlZCBhbmQgXCIgK1xuICAgIFwid2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQGlmICRhc3NldC1waXBlbGluZSA9PSB0cnVlIHtcbiAgICBAcmV0dXJuIGZvbnQtdXJsO1xuICB9IEBlbHNlIHtcbiAgICBAcmV0dXJuIHVybDtcbiAgfVxufVxuXG5AZnVuY3Rpb24gZm9udC1zb3VyY2UtZGVjbGFyYXRpb24oXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJGFzc2V0LXBpcGVsaW5lLFxuICAkZmlsZS1mb3JtYXRzLFxuICAkZm9udC11cmwpIHtcblxuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYGZvbnQtc291cmNlLWRlY2xhcmF0aW9uYCBpcyBkZXByZWNhdGVkIFwiICtcbiAgICBcImFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkc3JjOiAoKTtcblxuICAkZm9ybWF0cy1tYXA6IChcbiAgICBlb3Q6ICAgXCIjeyRmaWxlLXBhdGh9LmVvdD8jaWVmaXhcIiBmb3JtYXQoXCJlbWJlZGRlZC1vcGVudHlwZVwiKSxcbiAgICB3b2ZmMjogXCIjeyRmaWxlLXBhdGh9LndvZmYyXCIgZm9ybWF0KFwid29mZjJcIiksXG4gICAgd29mZjogIFwiI3skZmlsZS1wYXRofS53b2ZmXCIgZm9ybWF0KFwid29mZlwiKSxcbiAgICB0dGY6ICAgXCIjeyRmaWxlLXBhdGh9LnR0ZlwiIGZvcm1hdChcInRydWV0eXBlXCIpLFxuICAgIHN2ZzogICBcIiN7JGZpbGUtcGF0aH0uc3ZnIyN7JGZvbnQtZmFtaWx5fVwiIGZvcm1hdChcInN2Z1wiKVxuICApO1xuXG4gIEBlYWNoICRrZXksICR2YWx1ZXMgaW4gJGZvcm1hdHMtbWFwIHtcbiAgICBAaWYgY29udGFpbnMoJGZpbGUtZm9ybWF0cywgJGtleSkge1xuICAgICAgJGZpbGUtcGF0aDogbnRoKCR2YWx1ZXMsIDEpO1xuICAgICAgJGZvbnQtZm9ybWF0OiBudGgoJHZhbHVlcywgMik7XG5cbiAgICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUgPT0gdHJ1ZSB7XG4gICAgICAgICRzcmM6IGFwcGVuZCgkc3JjLCBmb250LXVybCgkZmlsZS1wYXRoKSAkZm9udC1mb3JtYXQsIGNvbW1hKTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAkc3JjOiBhcHBlbmQoJHNyYywgdXJsKCRmaWxlLXBhdGgpICRmb250LWZvcm1hdCwgY29tbWEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gJHNyYztcbn1cbiIsIkBmdW5jdGlvbiBfZ3JhZGllbnQtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtdHlwZSwgJGdyYWRpZW50LXBvc2l0aW9ucykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9ncmFkaWVudC1wb3NpdGlvbnMtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICBAaWYgJGdyYWRpZW50LXBvc2l0aW9uc1xuICBhbmQgKCRncmFkaWVudC10eXBlID09IGxpbmVhcilcbiAgYW5kICh0eXBlLW9mKCRncmFkaWVudC1wb3NpdGlvbnMpICE9IGNvbG9yKSB7XG4gICAgJGdyYWRpZW50LXBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRncmFkaWVudC1wb3NpdGlvbnMpO1xuICB9XG4gIEBlbHNlIGlmICRncmFkaWVudC1wb3NpdGlvbnNcbiAgYW5kICgkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwpXG4gIGFuZCAodHlwZS1vZigkZ3JhZGllbnQtcG9zaXRpb25zKSAhPSBjb2xvcikge1xuICAgICRncmFkaWVudC1wb3NpdGlvbnM6IF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcigkZ3JhZGllbnQtcG9zaXRpb25zKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJGdyYWRpZW50LXBvc2l0aW9ucztcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLWFuZ2xlLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfbGluZWFyLWFuZ2xlLXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJG9mZnNldDogbnVsbDtcbiAgJHVuaXQtc2hvcnQ6ICBzdHItc2xpY2UoJGZpcnN0LXZhbCwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSAtIDIsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAkdW5pdC1sb25nOiAgIHN0ci1zbGljZSgkZmlyc3QtdmFsLCBzdHItbGVuZ3RoKCRmaXJzdC12YWwpIC0gMywgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG5cbiAgQGlmICgkdW5pdC1sb25nID09IFwiZ3JhZFwiKSBvclxuICAgICAgKCR1bml0LWxvbmcgPT0gXCJ0dXJuXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1sb25nID09IFwiZ3JhZFwiLCAtMTAwZ3JhZCAqIDMsIC0wLjc1dHVybik7XG4gIH1cblxuICBAZWxzZSBpZiAoJHVuaXQtc2hvcnQgPT0gXCJkZWdcIikgb3JcbiAgICAgICAgICAgKCR1bml0LXNob3J0ID09IFwicmFkXCIpIHtcbiAgICAkb2Zmc2V0OiBpZigkdW5pdC1zaG9ydCA9PSBcImRlZ1wiLCAtOTAgKiAzLCAxLjZyYWQpO1xuICB9XG5cbiAgQGlmICRvZmZzZXQge1xuICAgICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgICAkbnVtOiBfc3RyLXRvLW51bSgkZmlyc3QtdmFsKTtcblxuICAgICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJHByZWZpeCArICgkb2Zmc2V0IC0gJG51bSkgKyAkc3VmZml4LFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxufVxuIiwiQGZ1bmN0aW9uIF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKCRpbWFnZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9saW5lYXItZ3JhZGllbnQtcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkaW1hZ2U6IHVucXVvdGUoJGltYWdlKTtcbiAgJGdyYWRpZW50czogKCk7XG4gICRzdGFydDogc3RyLWluZGV4KCRpbWFnZSwgXCIoXCIpO1xuICAkZW5kOiBzdHItaW5kZXgoJGltYWdlLCBcIixcIik7XG4gICRmaXJzdC12YWw6IHN0ci1zbGljZSgkaW1hZ2UsICRzdGFydCArIDEsICRlbmQgLSAxKTtcblxuICAkcHJlZml4OiBzdHItc2xpY2UoJGltYWdlLCAxLCAkc3RhcnQpO1xuICAkc3VmZml4OiBzdHItc2xpY2UoJGltYWdlLCAkZW5kLCBzdHItbGVuZ3RoKCRpbWFnZSkpO1xuXG4gICRoYXMtbXVsdGlwbGUtdmFsczogc3RyLWluZGV4KCRmaXJzdC12YWwsIFwiIFwiKTtcbiAgJGhhcy1zaW5nbGUtcG9zaXRpb246IHVucXVvdGUoX3Bvc2l0aW9uLWZsaXBwZXIoJGZpcnN0LXZhbCkgKyBcIlwiKTtcbiAgJGhhcy1hbmdsZTogaXMtbnVtYmVyKHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAxKSk7XG5cbiAgQGlmICRoYXMtbXVsdGlwbGUtdmFscyB7XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1zaWRlLWNvcm5lci1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4LCAkaGFzLW11bHRpcGxlLXZhbHMpO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1zaW5nbGUtcG9zaXRpb24gIT0gXCJcIiB7XG4gICAgJHBvczogdW5xdW90ZSgkaGFzLXNpbmdsZS1wb3NpdGlvbiArIFwiXCIpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRpbWFnZSxcbiAgICAgIHNwZWMtaW1hZ2U6ICRwcmVmaXggKyBcInRvIFwiICsgJHBvcyArICRzdWZmaXhcbiAgICApO1xuICB9XG5cbiAgQGVsc2UgaWYgJGhhcy1hbmdsZSB7XG4gICAgLy8gUm90YXRlIGRlZ3JlZSBmb3Igd2Via2l0XG4gICAgJGdyYWRpZW50czogX2xpbmVhci1hbmdsZS1wYXJzZXIoJGltYWdlLCAkZmlyc3QtdmFsLCAkcHJlZml4LCAkc3VmZml4KTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfbGluZWFyLXBvc2l0aW9ucy1wYXJzZXIoJHBvcykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9saW5lYXItcG9zaXRpb25zLXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgJHR5cGU6IHR5cGUtb2YobnRoKCRwb3MsIDEpKTtcbiAgJHNwZWM6IG51bGw7XG4gICRkZWdyZWU6IG51bGw7XG4gICRzaWRlOiBudWxsO1xuICAkY29ybmVyOiBudWxsO1xuICAkbGVuZ3RoOiBsZW5ndGgoJHBvcyk7XG4gIC8vIFBhcnNlIFNpZGUgYW5kIGNvcm5lciBwb3NpdGlvbnNcbiAgQGlmICgkbGVuZ3RoID4gMSkge1xuICAgIEBpZiBudGgoJHBvcywgMSkgPT0gXCJ0b1wiIHsgLy8gTmV3ZXIgc3ludGF4XG4gICAgICAkc2lkZTogbnRoKCRwb3MsIDIpO1xuXG4gICAgICBAaWYgJGxlbmd0aCA9PSAyIHsgLy8gZWcuIHRvIHRvcFxuICAgICAgICAvLyBTd2FwIGZvciBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eVxuICAgICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcihudGgoJHBvcywgMikpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAzIHsgLy8gZWcuIHRvIHRvcCBsZWZ0XG4gICAgICAgICRjb3JuZXI6IG50aCgkcG9zLCAzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgQGVsc2UgaWYgJGxlbmd0aCA9PSAyIHsgLy8gT2xkZXIgc3ludGF4IChcInRvcCBsZWZ0XCIpXG4gICAgICAkc2lkZTogX3Bvc2l0aW9uLWZsaXBwZXIobnRoKCRwb3MsIDEpKTtcbiAgICAgICRjb3JuZXI6IF9wb3NpdGlvbi1mbGlwcGVyKG50aCgkcG9zLCAyKSk7XG4gICAgfVxuXG4gICAgQGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcImxlZnQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCBsZWZ0XCIpIHtcbiAgICAgICRkZWdyZWU6IF9wb3NpdGlvbi1mbGlwcGVyKCN7JHNpZGV9KSBfcG9zaXRpb24tZmxpcHBlcigjeyRjb3JuZXJ9KTtcbiAgICB9XG4gICAgQGVsc2UgaWYgKFwiI3skc2lkZX0gI3skY29ybmVyfVwiID09IFwicmlnaHQgdG9wXCIpIG9yIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInRvcCByaWdodFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgIEBlbHNlIGlmIChcIiN7JHNpZGV9ICN7JGNvcm5lcn1cIiA9PSBcInJpZ2h0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gcmlnaHRcIikge1xuICAgICAgJGRlZ3JlZTogX3Bvc2l0aW9uLWZsaXBwZXIoI3skc2lkZX0pIF9wb3NpdGlvbi1mbGlwcGVyKCN7JGNvcm5lcn0pO1xuICAgIH1cbiAgICBAZWxzZSBpZiAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJsZWZ0IGJvdHRvbVwiKSBvciAoXCIjeyRzaWRlfSAjeyRjb3JuZXJ9XCIgPT0gXCJib3R0b20gbGVmdFwiKSB7XG4gICAgICAkZGVncmVlOiBfcG9zaXRpb24tZmxpcHBlcigjeyRzaWRlfSkgX3Bvc2l0aW9uLWZsaXBwZXIoI3skY29ybmVyfSk7XG4gICAgfVxuICAgICRzcGVjOiB0byAkc2lkZSAkY29ybmVyO1xuICB9XG4gIEBlbHNlIGlmICRsZW5ndGggPT0gMSB7XG4gICAgLy8gU3dhcCBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHlcbiAgICBAaWYgJHR5cGUgPT0gc3RyaW5nIHtcbiAgICAgICRkZWdyZWU6ICRwb3M7XG4gICAgICAkc3BlYzogdG8gX3Bvc2l0aW9uLWZsaXBwZXIoJHBvcyk7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICRkZWdyZWU6IC0yNzAgLSAkcG9zOyAvL3JvdGF0ZSB0aGUgZ3JhZGllbnQgb3Bwb3NpdGUgZnJvbSBzcGVjXG4gICAgICAkc3BlYzogJHBvcztcbiAgICB9XG4gIH1cbiAgJGRlZ3JlZTogdW5xdW90ZSgkZGVncmVlICsgXCIsXCIpO1xuICAkc3BlYzogICB1bnF1b3RlKCRzcGVjICsgXCIsXCIpO1xuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIEByZXR1cm4gJGRlZ3JlZSAkc3BlYztcbn1cblxuQGZ1bmN0aW9uIF9wb3NpdGlvbi1mbGlwcGVyKCRwb3MpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfcG9zaXRpb24tZmxpcHBlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgQHJldHVybiBpZigkcG9zID09IGxlZnQsIHJpZ2h0LCBudWxsKVxuICAgICAgICAgaWYoJHBvcyA9PSByaWdodCwgbGVmdCwgbnVsbClcbiAgICAgICAgIGlmKCRwb3MgPT0gdG9wLCBib3R0b20sIG51bGwpXG4gICAgICAgICBpZigkcG9zID09IGJvdHRvbSwgdG9wLCBudWxsKTtcbn1cbiIsIi8vIFByaXZhdGUgZnVuY3Rpb24gZm9yIGxpbmVhci1ncmFkaWVudC1wYXJzZXJcbkBmdW5jdGlvbiBfbGluZWFyLXNpZGUtY29ybmVyLXBhcnNlcigkaW1hZ2UsICRmaXJzdC12YWwsICRwcmVmaXgsICRzdWZmaXgsICRoYXMtbXVsdGlwbGUtdmFscykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9saW5lYXItc2lkZS1jb3JuZXItcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkdmFsLTE6IHN0ci1zbGljZSgkZmlyc3QtdmFsLCAxLCAkaGFzLW11bHRpcGxlLXZhbHMgLSAxKTtcbiAgJHZhbC0yOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgJGhhcy1tdWx0aXBsZS12YWxzICsgMSwgc3RyLWxlbmd0aCgkZmlyc3QtdmFsKSk7XG4gICR2YWwtMzogbnVsbDtcbiAgJGhhcy12YWwtMzogc3RyLWluZGV4KCR2YWwtMiwgXCIgXCIpO1xuXG4gIEBpZiAkaGFzLXZhbC0zIHtcbiAgICAkdmFsLTM6IHN0ci1zbGljZSgkdmFsLTIsICRoYXMtdmFsLTMgKyAxLCBzdHItbGVuZ3RoKCR2YWwtMikpO1xuICAgICR2YWwtMjogc3RyLXNsaWNlKCR2YWwtMiwgMSwgJGhhcy12YWwtMyAtIDEpO1xuICB9XG5cbiAgJHBvczogX3Bvc2l0aW9uLWZsaXBwZXIoJHZhbC0xKSBfcG9zaXRpb24tZmxpcHBlcigkdmFsLTIpIF9wb3NpdGlvbi1mbGlwcGVyKCR2YWwtMyk7XG4gICRwb3M6IHVucXVvdGUoJHBvcyArIFwiXCIpO1xuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xuXG4gIC8vIFVzZSBvbGQgc3BlYyBmb3Igd2Via2l0XG4gIEBpZiAkdmFsLTEgPT0gXCJ0b1wiIHtcbiAgICBAcmV0dXJuIChcbiAgICAgIHdlYmtpdC1pbWFnZTogLXdlYmtpdC0gKyAkcHJlZml4ICsgJHBvcyArICRzdWZmaXgsXG4gICAgICBzcGVjLWltYWdlOiAkaW1hZ2VcbiAgICApO1xuICB9XG5cbiAgLy8gQnJpbmcgdGhlIGNvZGUgdXAgdG8gc3BlY1xuICBAZWxzZSB7XG4gICAgQHJldHVybiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJHByZWZpeCArIFwidG8gXCIgKyAkcG9zICsgJHN1ZmZpeFxuICAgICk7XG4gIH1cbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWFyZy1wYXJzZXIoJGcxLCAkZzIsICRwb3MsICRzaGFwZS1zaXplKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3JhZGlhbC1hcmctcGFyc2VyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICBAZWFjaCAkdmFsdWUgaW4gJGcxLCAkZzIge1xuICAgICRmaXJzdC12YWw6IG50aCgkdmFsdWUsIDEpO1xuICAgICRwb3MtdHlwZTogIHR5cGUtb2YoJGZpcnN0LXZhbCk7XG4gICAgJHNwZWMtYXQtaW5kZXg6IG51bGw7XG5cbiAgICAvLyBEZXRlcm1pbmUgaWYgc3BlYyB3YXMgcGFzc2VkIHRvIG1peGluXG4gICAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSBsaXN0IHtcbiAgICAgICRzcGVjLWF0LWluZGV4OiBpZihpbmRleCgkdmFsdWUsIGF0KSwgaW5kZXgoJHZhbHVlLCBhdCksIGZhbHNlKTtcbiAgICB9XG4gICAgQGlmICRzcGVjLWF0LWluZGV4IHtcbiAgICAgIEBpZiAkc3BlYy1hdC1pbmRleCA+IDEge1xuICAgICAgICBAZm9yICRpIGZyb20gMSB0aHJvdWdoICgkc3BlYy1hdC1pbmRleCAtIDEpIHtcbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHNoYXBlLXNpemUgbnRoKCR2YWx1ZSwgJGkpO1xuICAgICAgICB9XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHNwZWMtYXQtaW5kZXggPT0gMSB7XG4gICAgICAgIEBmb3IgJGkgZnJvbSAoJHNwZWMtYXQtaW5kZXggKyAxKSB0aHJvdWdoIGxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICAgICAkcG9zOiAkcG9zIG50aCgkdmFsdWUsICRpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgJGcxOiBudWxsO1xuICAgIH1cblxuICAgIC8vIElmIG5vdCBzcGVjIGNhbGN1bGF0ZSBjb3JyZWN0IHZhbHVlc1xuICAgIEBlbHNlIHtcbiAgICAgIEBpZiAoJHBvcy10eXBlICE9IGNvbG9yKSBvciAoJGZpcnN0LXZhbCAhPSBcInRyYW5zcGFyZW50XCIpIHtcbiAgICAgICAgQGlmICgkcG9zLXR5cGUgPT0gbnVtYmVyKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNlbnRlclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInRvcFwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcInJpZ2h0XCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiYm90dG9tXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwibGVmdFwiKSB7XG5cbiAgICAgICAgICAkcG9zOiAkdmFsdWU7XG5cbiAgICAgICAgICBAaWYgJHBvcyA9PSAkZzEge1xuICAgICAgICAgICAgJGcxOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBlbHNlIGlmXG4gICAgICAgICAgICgkZmlyc3QtdmFsID09IFwiZWxsaXBzZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNpcmNsZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNsb3Nlc3QtY29ybmVyXCIpXG4gICAgICAgIG9yICgkZmlyc3QtdmFsID09IFwiZmFydGhlc3Qtc2lkZVwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImZhcnRoZXN0LWNvcm5lclwiKVxuICAgICAgICBvciAoJGZpcnN0LXZhbCA9PSBcImNvbnRhaW5cIilcbiAgICAgICAgb3IgKCRmaXJzdC12YWwgPT0gXCJjb3ZlclwiKSB7XG5cbiAgICAgICAgICAkc2hhcGUtc2l6ZTogJHZhbHVlO1xuXG4gICAgICAgICAgQGlmICR2YWx1ZSA9PSAkZzEge1xuICAgICAgICAgICAgJGcxOiBudWxsO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIEBlbHNlIGlmICR2YWx1ZSA9PSAkZzIge1xuICAgICAgICAgICAgJGcyOiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBAcmV0dXJuICRnMSwgJGcyLCAkcG9zLCAkc2hhcGUtc2l6ZTtcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLXBvc2l0aW9ucy1wYXJzZXIoJGdyYWRpZW50LXBvcykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9yYWRpYWwtcG9zaXRpb25zLXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgJHNoYXBlLXNpemU6IG50aCgkZ3JhZGllbnQtcG9zLCAxKTtcbiAgJHBvczogICAgICAgIG50aCgkZ3JhZGllbnQtcG9zLCAyKTtcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gICRwcmUtc3BlYzogdW5xdW90ZShpZigkcG9zLCBcIiN7JHBvc30sIFwiLCBudWxsKSlcbiAgICAgICAgICAgICB1bnF1b3RlKGlmKCRzaGFwZS1zaXplLCBcIiN7JHNoYXBlLXNpemV9LFwiLCBudWxsKSk7XG4gICRwb3Mtc3BlYzogaWYoJHBvcywgXCJhdCAjeyRwb3N9XCIsIG51bGwpO1xuXG4gICRzcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skcG9zLXNwZWN9XCI7XG5cbiAgLy8gQWRkIGNvbW1hXG4gIEBpZiAoJHNwZWMgIT0gXCIgIFwiKSB7XG4gICAgJHNwZWM6IFwiI3skc3BlY30sXCI7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcblxuICBAcmV0dXJuICRwcmUtc3BlYyAkc3BlYztcbn1cbiIsIkBmdW5jdGlvbiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcmAgaXMgXCIgK1xuICAgIFwiZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSByZW1vdmVkIGluIDUuMC4wLlwiO1xuICB9XG5cbiAgJGltYWdlOiB1bnF1b3RlKCRpbWFnZSk7XG4gICRncmFkaWVudHM6ICgpO1xuICAkc3RhcnQ6IHN0ci1pbmRleCgkaW1hZ2UsIFwiKFwiKTtcbiAgJGVuZDogc3RyLWluZGV4KCRpbWFnZSwgXCIsXCIpO1xuICAkZmlyc3QtdmFsOiBzdHItc2xpY2UoJGltYWdlLCAkc3RhcnQgKyAxLCAkZW5kIC0gMSk7XG5cbiAgJHByZWZpeDogc3RyLXNsaWNlKCRpbWFnZSwgMSwgJHN0YXJ0KTtcbiAgJHN1ZmZpeDogc3RyLXNsaWNlKCRpbWFnZSwgJGVuZCwgc3RyLWxlbmd0aCgkaW1hZ2UpKTtcblxuICAkaXMtc3BlYy1zeW50YXg6IHN0ci1pbmRleCgkZmlyc3QtdmFsLCBcImF0XCIpO1xuXG4gIEBpZiAkaXMtc3BlYy1zeW50YXggYW5kICRpcy1zcGVjLXN5bnRheCA+IDEge1xuICAgICRrZXl3b3JkOiBzdHItc2xpY2UoJGZpcnN0LXZhbCwgMSwgJGlzLXNwZWMtc3ludGF4IC0gMik7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuICAgICRwb3M6IGFwcGVuZCgkcG9zLCAka2V5d29yZCwgY29tbWEpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiAkaXMtc3BlYy1zeW50YXggPT0gMSB7XG4gICAgJHBvczogc3RyLXNsaWNlKCRmaXJzdC12YWwsICRpcy1zcGVjLXN5bnRheCArIDMsIHN0ci1sZW5ndGgoJGZpcnN0LXZhbCkpO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiAtd2Via2l0LSArICRwcmVmaXggKyAkcG9zICsgJHN1ZmZpeCxcbiAgICAgIHNwZWMtaW1hZ2U6ICRpbWFnZVxuICAgICk7XG4gIH1cblxuICBAZWxzZSBpZiBzdHItaW5kZXgoJGltYWdlLCBcImNvdmVyXCIpIG9yIHN0ci1pbmRleCgkaW1hZ2UsIFwiY29udGFpblwiKSB7XG4gICAgQHdhcm4gXCJSYWRpYWwtZ3JhZGllbnQgbmVlZHMgdG8gYmUgdXBkYXRlZCB0byBjb25mb3JtIHRvIGxhdGVzdCBzcGVjLlwiO1xuXG4gICAgJGdyYWRpZW50czogKFxuICAgICAgd2Via2l0LWltYWdlOiBudWxsLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEBlbHNlIHtcbiAgICAkZ3JhZGllbnRzOiAoXG4gICAgICB3ZWJraXQtaW1hZ2U6IC13ZWJraXQtICsgJGltYWdlLFxuICAgICAgc3BlYy1pbWFnZTogJGltYWdlXG4gICAgKTtcbiAgfVxuXG4gIEByZXR1cm4gJGdyYWRpZW50cztcbn1cbiIsIi8vIFVzZXIgZm9yIGxpbmVhciBhbmQgcmFkaWFsIGdyYWRpZW50cyB3aXRoaW4gYmFja2dyb3VuZC1pbWFnZSBvciBib3JkZXItaW1hZ2UgcHJvcGVydGllc1xuXG5AZnVuY3Rpb24gX3JlbmRlci1ncmFkaWVudHMoJGdyYWRpZW50LXBvc2l0aW9ucywgJGdyYWRpZW50cywgJGdyYWRpZW50LXR5cGUsICR2ZW5kb3I6IGZhbHNlKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgX3JlbmRlci1ncmFkaWVudHNgIGlzIFwiICtcbiAgICBcImRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiA1LjAuMC5cIjtcbiAgfVxuXG4gICRwcmUtc3BlYzogbnVsbDtcbiAgJHNwZWM6IG51bGw7XG4gICR2ZW5kb3ItZ3JhZGllbnRzOiBudWxsO1xuICBAaWYgJGdyYWRpZW50LXR5cGUgPT0gbGluZWFyIHtcbiAgICBAaWYgJGdyYWRpZW50LXBvc2l0aW9ucyB7XG4gICAgICAkcHJlLXNwZWM6IG50aCgkZ3JhZGllbnQtcG9zaXRpb25zLCAxKTtcbiAgICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICAgIH1cbiAgfVxuICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSByYWRpYWwge1xuICAgICRwcmUtc3BlYzogbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDEpO1xuICAgICRzcGVjOiAgICAgbnRoKCRncmFkaWVudC1wb3NpdGlvbnMsIDIpO1xuICB9XG5cbiAgQGlmICR2ZW5kb3Ige1xuICAgICR2ZW5kb3ItZ3JhZGllbnRzOiAtI3skdmVuZG9yfS0jeyRncmFkaWVudC10eXBlfS1ncmFkaWVudCgjeyRwcmUtc3BlY30gJGdyYWRpZW50cyk7XG4gIH1cbiAgQGVsc2UgaWYgJHZlbmRvciA9PSBmYWxzZSB7XG4gICAgJHZlbmRvci1ncmFkaWVudHM6IFwiI3skZ3JhZGllbnQtdHlwZX0tZ3JhZGllbnQoI3skc3BlY30gI3skZ3JhZGllbnRzfSlcIjtcbiAgICAkdmVuZG9yLWdyYWRpZW50czogdW5xdW90ZSgkdmVuZG9yLWdyYWRpZW50cyk7XG4gIH1cbiAgQHJldHVybiAkdmVuZG9yLWdyYWRpZW50cztcbn1cbiIsIkBmdW5jdGlvbiBfc2hhcGUtc2l6ZS1zdHJpcHBlcigkc2hhcGUtc2l6ZSkge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9zaGFwZS1zaXplLXN0cmlwcGVyYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAkc2hhcGUtc2l6ZS1zcGVjOiBudWxsO1xuICBAZWFjaCAkdmFsdWUgaW4gJHNoYXBlLXNpemUge1xuICAgIEBpZiAoJHZhbHVlID09IFwiY292ZXJcIikgb3IgKCR2YWx1ZSA9PSBcImNvbnRhaW5cIikge1xuICAgICAgJHZhbHVlOiBudWxsO1xuICAgIH1cbiAgICAkc2hhcGUtc2l6ZS1zcGVjOiBcIiN7JHNoYXBlLXNpemUtc3BlY30gI3skdmFsdWV9XCI7XG4gIH1cbiAgQHJldHVybiAkc2hhcGUtc2l6ZS1zcGVjO1xufVxuIiwiLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBsaW5lYXIvcmFkaWFsLWdyYWRpZW50LXBhcnNlcnMuXG4vLyBTb3VyY2U6IGh0dHA6Ly9zYXNzbWVpc3Rlci5jb20vZ2lzdC85NjQ3NDA4XG4vLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG5AZnVuY3Rpb24gX3N0ci10by1udW0oJHN0cmluZykge1xuICBAaWYgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzID09IHRydWUge1xuICAgIEB3YXJuIFwiW0JvdXJib25dIFtEZXByZWNhdGlvbl0gYF9zdHItdG8tbnVtYCBpcyBcIiArXG4gICAgXCJkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gNS4wLjAuXCI7XG4gIH1cblxuICAvLyBNYXRyaWNlc1xuICAkc3RyaW5nczogXCIwXCIgXCIxXCIgXCIyXCIgXCIzXCIgXCI0XCIgXCI1XCIgXCI2XCIgXCI3XCIgXCI4XCIgXCI5XCI7XG4gICRudW1iZXJzOiAgMCAgIDEgICAyICAgMyAgIDQgICA1ICAgNiAgIDcgICA4ICAgOTtcblxuICAvLyBSZXN1bHRcbiAgJHJlc3VsdDogMDtcbiAgJGRpdmlkZXI6IDA7XG4gICRtaW51czogZmFsc2U7XG5cbiAgLy8gTG9vcGluZyB0aHJvdWdoIGFsbCBjaGFyYWN0ZXJzXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkc3RyaW5nKSB7XG4gICAgJGNoYXJhY3Rlcjogc3RyLXNsaWNlKCRzdHJpbmcsICRpLCAkaSk7XG4gICAgJGluZGV4OiBpbmRleCgkc3RyaW5ncywgJGNoYXJhY3Rlcik7XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSBcIi1cIiB7XG4gICAgICAkbWludXM6IHRydWU7XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgJGNoYXJhY3RlciA9PSBcIi5cIiB7XG4gICAgICAkZGl2aWRlcjogMTtcbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICBAaWYgbm90ICRpbmRleCB7XG4gICAgICAgICRyZXN1bHQ6IGlmKCRtaW51cywgJHJlc3VsdCAqIC0xLCAkcmVzdWx0KTtcbiAgICAgICAgQHJldHVybiBfY29udmVydC11bml0cygkcmVzdWx0LCBzdHItc2xpY2UoJHN0cmluZywgJGkpKTtcbiAgICAgIH1cblxuICAgICAgJG51bWJlcjogbnRoKCRudW1iZXJzLCAkaW5kZXgpO1xuXG4gICAgICBAaWYgJGRpdmlkZXIgPT0gMCB7XG4gICAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKiAxMDtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAvLyBNb3ZlIHRoZSBkZWNpbWFsIGRvdCB0byB0aGUgbGVmdFxuICAgICAgICAkZGl2aWRlcjogJGRpdmlkZXIgKiAxMDtcbiAgICAgICAgJG51bWJlcjogJG51bWJlciAvICRkaXZpZGVyO1xuICAgICAgfVxuXG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICsgJG51bWJlcjtcbiAgICB9XG4gIH1cbiAgQHJldHVybiBpZigkbWludXMsICRyZXN1bHQgKiAtMSwgJHJlc3VsdCk7XG59XG4iLCIvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLWFuaW1hdGlvbnMvI3RoZS1hbmltYXRpb24tbmFtZS1wcm9wZXJ0eS1cbi8vIEVhY2ggb2YgdGhlc2UgbWl4aW5zIHN1cHBvcnQgY29tbWEgc2VwYXJhdGVkIGxpc3RzIG9mIHZhbHVlcywgd2hpY2ggYWxsb3dzIGRpZmZlcmVudCB0cmFuc2l0aW9ucyBmb3IgaW5kaXZpZHVhbCBwcm9wZXJ0aWVzIHRvIGJlIGRlc2NyaWJlZCBpbiBhIHNpbmdsZSBzdHlsZSBydWxlLiBFYWNoIHZhbHVlIGluIHRoZSBsaXN0IGNvcnJlc3BvbmRzIHRvIHRoZSB2YWx1ZSBhdCB0aGF0IHNhbWUgcG9zaXRpb24gaW4gdGhlIG90aGVyIHByb3BlcnRpZXMuXG5cbkBtaXhpbiBhbmltYXRpb24oJGFuaW1hdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb25cIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLCAkYW5pbWF0aW9ucywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1uYW1lKCRuYW1lcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1uYW1lXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1uYW1lLCAkbmFtZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZHVyYXRpb24oJHRpbWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLWR1cmF0aW9uXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbigkbW90aW9ucy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb25cIik7XG5cbiAgLy8gZWFzZSB8IGxpbmVhciB8IGVhc2UtaW4gfCBlYXNlLW91dCB8IGVhc2UtaW4tb3V0XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi10aW1pbmctZnVuY3Rpb24sICRtb3Rpb25zLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCgkdmFsdWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudFwiKTtcblxuICAvLyBpbmZpbml0ZSB8IDxudW1iZXI+XG4gIEBpbmNsdWRlIHByZWZpeGVyKGFuaW1hdGlvbi1pdGVyYXRpb24tY291bnQsICR2YWx1ZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZGlyZWN0aW9uKCRkaXJlY3Rpb25zLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLWRpcmVjdGlvblwiKTtcblxuICAvLyBub3JtYWwgfCBhbHRlcm5hdGVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRpcmVjdGlvbiwgJGRpcmVjdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tcGxheS1zdGF0ZSgkc3RhdGVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYW5pbWF0aW9uLXBsYXktc3RhdGVcIik7XG5cbiAgLy8gcnVubmluZyB8IHBhdXNlZFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tcGxheS1zdGF0ZSwgJHN0YXRlcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGFuaW1hdGlvbi1kZWxheSgkdGltZXMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhbmltYXRpb24tZGVsYXlcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoYW5pbWF0aW9uLWRlbGF5LCAkdGltZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBhbmltYXRpb24tZmlsbC1tb2RlKCRtb2Rlcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFuaW1hdGlvbi1maWxsLW1vZGVcIik7XG5cbiAgLy8gbm9uZSB8IGZvcndhcmRzIHwgYmFja3dhcmRzIHwgYm90aFxuICBAaW5jbHVkZSBwcmVmaXhlcihhbmltYXRpb24tZmlsbC1tb2RlLCAkbW9kZXMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gYXBwZWFyYW5jZSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJhcHBlYXJhbmNlXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFwcGVhcmFuY2UsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuIiwiQG1peGluIGJhY2tmYWNlLXZpc2liaWxpdHkoJHZpc2liaWxpdHkpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJiYWNrZmFjZS12aXNpYmlsaXR5XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJhY2tmYWNlLXZpc2liaWxpdHksICR2aXNpYmlsaXR5LCB3ZWJraXQgc3BlYyk7XG59XG4iLCIvLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8vXG4vLyBCYWNrZ3JvdW5kIHByb3BlcnR5IGZvciBhZGRpbmcgbXVsdGlwbGUgYmFja2dyb3VuZHMgdXNpbmcgc2hvcnRoYW5kXG4vLyBub3RhdGlvbi5cbi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cblxuQG1peGluIGJhY2tncm91bmQoJGJhY2tncm91bmRzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYmFja2dyb3VuZFwiKTtcblxuICAkd2Via2l0LWJhY2tncm91bmRzOiAoKTtcbiAgJHNwZWMtYmFja2dyb3VuZHM6ICgpO1xuXG4gIEBlYWNoICRiYWNrZ3JvdW5kIGluICRiYWNrZ3JvdW5kcyB7XG4gICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kOiAoKTtcbiAgICAkYmFja2dyb3VuZC10eXBlOiB0eXBlLW9mKCRiYWNrZ3JvdW5kKTtcblxuICAgIEBpZiAkYmFja2dyb3VuZC10eXBlID09IHN0cmluZyBvciAkYmFja2dyb3VuZC10eXBlID09IGxpc3Qge1xuICAgICAgJGJhY2tncm91bmQtc3RyOiBpZigkYmFja2dyb3VuZC10eXBlID09IGxpc3QsIG50aCgkYmFja2dyb3VuZCwgMSksICRiYWNrZ3JvdW5kKTtcblxuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkYmFja2dyb3VuZC1zdHIsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgJGJhY2tncm91bmQ7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwibGluZWFyXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfbGluZWFyLWdyYWRpZW50LXBhcnNlcihcIiN7JGJhY2tncm91bmR9XCIpO1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYmFja2dyb3VuZDogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcInJhZGlhbFwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX3JhZGlhbC1ncmFkaWVudC1wYXJzZXIoXCIjeyRiYWNrZ3JvdW5kfVwiKTtcbiAgICAgICAgJHdlYmtpdC1iYWNrZ3JvdW5kOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJhY2tncm91bmQ6ICAgbWFwLWdldCgkZ3JhZGllbnRzLCBzcGVjLWltYWdlKTtcbiAgICAgIH1cblxuICAgICAgQGVsc2Uge1xuICAgICAgICAkd2Via2l0LWJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kO1xuICAgICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgICAgfVxuICAgIH1cblxuICAgIEBlbHNlIHtcbiAgICAgICR3ZWJraXQtYmFja2dyb3VuZDogJGJhY2tncm91bmQ7XG4gICAgICAkc3BlYy1iYWNrZ3JvdW5kOiAgICRiYWNrZ3JvdW5kO1xuICAgIH1cblxuICAgICR3ZWJraXQtYmFja2dyb3VuZHM6IGFwcGVuZCgkd2Via2l0LWJhY2tncm91bmRzLCAkd2Via2l0LWJhY2tncm91bmQsIGNvbW1hKTtcbiAgICAkc3BlYy1iYWNrZ3JvdW5kczogICBhcHBlbmQoJHNwZWMtYmFja2dyb3VuZHMsICAgJHNwZWMtYmFja2dyb3VuZCwgICBjb21tYSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kOiAkd2Via2l0LWJhY2tncm91bmRzO1xuICBiYWNrZ3JvdW5kOiAkc3BlYy1iYWNrZ3JvdW5kcztcbn1cbiIsIi8vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLy9cbi8vIEJhY2tncm91bmQtaW1hZ2UgcHJvcGVydHkgZm9yIGFkZGluZyBtdWx0aXBsZSBiYWNrZ3JvdW5kIGltYWdlcyB3aXRoXG4vLyBncmFkaWVudHMsIG9yIGZvciBzdHJpbmdpbmcgbXVsdGlwbGUgZ3JhZGllbnRzIHRvZ2V0aGVyLlxuLy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovL1xuXG5AbWl4aW4gYmFja2dyb3VuZC1pbWFnZSgkaW1hZ2VzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYmFja2dyb3VuZC1pbWFnZVwiKTtcblxuICAkd2Via2l0LWltYWdlczogKCk7XG4gICRzcGVjLWltYWdlczogKCk7XG5cbiAgQGVhY2ggJGltYWdlIGluICRpbWFnZXMge1xuICAgICR3ZWJraXQtaW1hZ2U6ICgpO1xuICAgICRzcGVjLWltYWdlOiAoKTtcblxuICAgIEBpZiAodHlwZS1vZigkaW1hZ2UpID09IHN0cmluZykge1xuICAgICAgJHVybC1zdHI6ICAgICAgIHN0ci1zbGljZSgkaW1hZ2UsIDEsIDMpO1xuICAgICAgJGdyYWRpZW50LXR5cGU6IHN0ci1zbGljZSgkaW1hZ2UsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtaW1hZ2U6ICRpbWFnZTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgJGltYWdlO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSBpZiAkZ3JhZGllbnQtdHlwZSA9PSBcImxpbmVhclwiIHtcbiAgICAgICAgJGdyYWRpZW50czogX2xpbmVhci1ncmFkaWVudC1wYXJzZXIoJGltYWdlKTtcbiAgICAgICAgJHdlYmtpdC1pbWFnZTogIG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtaW1hZ2U6ICAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcigkaW1hZ2UpO1xuICAgICAgICAkd2Via2l0LWltYWdlOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWltYWdlOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJHdlYmtpdC1pbWFnZXM6IGFwcGVuZCgkd2Via2l0LWltYWdlcywgJHdlYmtpdC1pbWFnZSwgY29tbWEpO1xuICAgICRzcGVjLWltYWdlczogICBhcHBlbmQoJHNwZWMtaW1hZ2VzLCAgICRzcGVjLWltYWdlLCAgIGNvbW1hKTtcbiAgfVxuXG4gIGJhY2tncm91bmQtaW1hZ2U6ICR3ZWJraXQtaW1hZ2VzO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAkc3BlYy1pbWFnZXM7XG59XG4iLCJAbWl4aW4gYm9yZGVyLWltYWdlKCRib3JkZXJzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm9yZGVyLWltYWdlXCIpO1xuXG4gICR3ZWJraXQtYm9yZGVyczogKCk7XG4gICRzcGVjLWJvcmRlcnM6ICgpO1xuXG4gIEBlYWNoICRib3JkZXIgaW4gJGJvcmRlcnMge1xuICAgICR3ZWJraXQtYm9yZGVyOiAoKTtcbiAgICAkc3BlYy1ib3JkZXI6ICgpO1xuICAgICRib3JkZXItdHlwZTogdHlwZS1vZigkYm9yZGVyKTtcblxuICAgIEBpZiAkYm9yZGVyLXR5cGUgPT0gc3RyaW5nIG9yIGxpc3Qge1xuICAgICAgJGJvcmRlci1zdHI6IGlmKCRib3JkZXItdHlwZSA9PSBsaXN0LCBudGgoJGJvcmRlciwgMSksICRib3JkZXIpO1xuXG4gICAgICAkdXJsLXN0cjogICAgICAgc3RyLXNsaWNlKCRib3JkZXItc3RyLCAxLCAzKTtcbiAgICAgICRncmFkaWVudC10eXBlOiBzdHItc2xpY2UoJGJvcmRlci1zdHIsIDEsIDYpO1xuXG4gICAgICBAaWYgJHVybC1zdHIgPT0gXCJ1cmxcIiB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cblxuICAgICAgQGVsc2UgaWYgJGdyYWRpZW50LXR5cGUgPT0gXCJsaW5lYXJcIiB7XG4gICAgICAgICRncmFkaWVudHM6IF9saW5lYXItZ3JhZGllbnQtcGFyc2VyKFwiI3skYm9yZGVyfVwiKTtcbiAgICAgICAgJHdlYmtpdC1ib3JkZXI6IG1hcC1nZXQoJGdyYWRpZW50cywgd2Via2l0LWltYWdlKTtcbiAgICAgICAgJHNwZWMtYm9yZGVyOiAgIG1hcC1nZXQoJGdyYWRpZW50cywgc3BlYy1pbWFnZSk7XG4gICAgICB9XG5cbiAgICAgIEBlbHNlIGlmICRncmFkaWVudC10eXBlID09IFwicmFkaWFsXCIge1xuICAgICAgICAkZ3JhZGllbnRzOiBfcmFkaWFsLWdyYWRpZW50LXBhcnNlcihcIiN7JGJvcmRlcn1cIik7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiBtYXAtZ2V0KCRncmFkaWVudHMsIHdlYmtpdC1pbWFnZSk7XG4gICAgICAgICRzcGVjLWJvcmRlcjogICBtYXAtZ2V0KCRncmFkaWVudHMsIHNwZWMtaW1hZ2UpO1xuICAgICAgfVxuXG4gICAgICBAZWxzZSB7XG4gICAgICAgICR3ZWJraXQtYm9yZGVyOiAkYm9yZGVyO1xuICAgICAgICAkc3BlYy1ib3JkZXI6ICAgJGJvcmRlcjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBAZWxzZSB7XG4gICAgICAkd2Via2l0LWJvcmRlcjogJGJvcmRlcjtcbiAgICAgICRzcGVjLWJvcmRlcjogICAkYm9yZGVyO1xuICAgIH1cblxuICAgICR3ZWJraXQtYm9yZGVyczogYXBwZW5kKCR3ZWJraXQtYm9yZGVycywgJHdlYmtpdC1ib3JkZXIsIGNvbW1hKTtcbiAgICAkc3BlYy1ib3JkZXJzOiAgIGFwcGVuZCgkc3BlYy1ib3JkZXJzLCAgICRzcGVjLWJvcmRlciwgICBjb21tYSk7XG4gIH1cblxuICAtd2Via2l0LWJvcmRlci1pbWFnZTogJHdlYmtpdC1ib3JkZXJzO1xuICAgICAgICAgIGJvcmRlci1pbWFnZTogJHNwZWMtYm9yZGVycztcbiAgICAgICAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4vL0V4YW1wbGVzOlxuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKHVybChcImltYWdlLnBuZ1wiKSk7XG4vLyBAaW5jbHVkZSBib3JkZXItaW1hZ2UodXJsKFwiaW1hZ2UucG5nXCIpIDIwIHN0cmV0Y2gpO1xuLy8gQGluY2x1ZGUgYm9yZGVyLWltYWdlKGxpbmVhci1ncmFkaWVudCg0NWRlZywgb3JhbmdlLCB5ZWxsb3cpKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSBzdHJldGNoKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShsaW5lYXItZ3JhZGllbnQoNDVkZWcsIG9yYW5nZSwgeWVsbG93KSAyMCAzMCA0MCA1MCBzdHJldGNoIHJvdW5kKTtcbi8vIEBpbmNsdWRlIGJvcmRlci1pbWFnZShyYWRpYWwtZ3JhZGllbnQodG9wLCBjb3Zlciwgb3JhbmdlLCB5ZWxsb3csIG9yYW5nZSkpO1xuIiwiQG1peGluIGNhbGMoJHByb3BlcnR5LCAkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjYWxjXCIpO1xuXG4gICN7JHByb3BlcnR5fTogLXdlYmtpdC1jYWxjKCN7JHZhbHVlfSk7XG4gICN7JHByb3BlcnR5fTogY2FsYygjeyR2YWx1ZX0pO1xufVxuIiwiQG1peGluIGNvbHVtbnMoJGFyZzogYXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbnNcIik7XG5cbiAgLy8gPGNvbHVtbi1jb3VudD4gfHwgPGNvbHVtbi13aWR0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1ucywgJGFyZywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGNvbHVtbi1jb3VudCgkaW50OiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLWNvdW50XCIpO1xuXG4gIC8vIGF1dG8gfHwgaW50ZWdlclxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tY291bnQsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tZ2FwKCRsZW5ndGg6IG5vcm1hbCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1nYXBcIik7XG5cbiAgLy8gbm9ybWFsIHx8IGxlbmd0aFxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tZ2FwLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLWZpbGwoJGFyZzogYXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1maWxsXCIpO1xuXG4gIC8vIGF1dG8gfHwgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1maWxsLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUoJGFyZykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1ydWxlXCIpO1xuXG4gIC8vIDxib3JkZXItd2lkdGg+IHx8IDxib3JkZXItc3R5bGU+IHx8IDxjb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXJ1bGUsICRhcmcsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS1jb2xvcigkY29sb3IpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tcnVsZS1jb2xvclwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS1jb2xvciwgJGNvbG9yLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXJ1bGUtc3R5bGUoJHN0eWxlOiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiY29sdW1uLXJ1bGUtc3R5bGVcIik7XG5cbiAgLy8gbm9uZSB8IGhpZGRlbiB8IGRhc2hlZCB8IGRvdHRlZCB8IGRvdWJsZSB8IGdyb292ZSB8IGluc2V0IHwgaW5zZXQgfCBvdXRzZXQgfCByaWRnZSB8IHNvbGlkXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1ydWxlLXN0eWxlLCAkc3R5bGUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiBjb2x1bW4tcnVsZS13aWR0aCgkd2lkdGg6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4tcnVsZS13aWR0aFwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihjb2x1bW4tcnVsZS13aWR0aCwgJHdpZHRoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXNwYW4oJGFyZzogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImNvbHVtbi1zcGFuXCIpO1xuXG4gIC8vIG5vbmUgfHwgYWxsXG4gIEBpbmNsdWRlIHByZWZpeGVyKGNvbHVtbi1zcGFuLCAkYXJnLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gY29sdW1uLXdpZHRoKCRsZW5ndGg6IGF1dG8pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJjb2x1bW4td2lkdGhcIik7XG5cbiAgLy8gYXV0byB8fCBsZW5ndGhcbiAgQGluY2x1ZGUgcHJlZml4ZXIoY29sdW1uLXdpZHRoLCAkbGVuZ3RoLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIGZpbHRlcigkZnVuY3Rpb246IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJmaWx0ZXJcIik7XG5cbiAgLy8gPGZpbHRlci1mdW5jdGlvbj4gWzxmaWx0ZXItZnVuY3Rpb25dKiB8IG5vbmVcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmlsdGVyLCAkZnVuY3Rpb24sIHdlYmtpdCBzcGVjKTtcbn1cbiIsIi8vIENTUzMgRmxleGlibGUgQm94IE1vZGVsIGFuZCBwcm9wZXJ0eSBkZWZhdWx0c1xuXG4vLyBDdXN0b20gc2hvcnRoYW5kIG5vdGF0aW9uIGZvciBmbGV4Ym94XG5AbWl4aW4gYm94KCRvcmllbnQ6IGlubGluZS1heGlzLCAkcGFjazogc3RhcnQsICRhbGlnbjogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveFwiKTtcblxuICBAaW5jbHVkZSBkaXNwbGF5LWJveDtcbiAgQGluY2x1ZGUgYm94LW9yaWVudCgkb3JpZW50KTtcbiAgQGluY2x1ZGUgYm94LXBhY2soJHBhY2spO1xuICBAaW5jbHVkZSBib3gtYWxpZ24oJGFsaWduKTtcbn1cblxuQG1peGluIGRpc3BsYXktYm94IHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJkaXNwbGF5LWJveFwiKTtcblxuICBkaXNwbGF5OiAtd2Via2l0LWJveDtcbiAgZGlzcGxheTogLW1vei1ib3g7XG4gIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyBJRSAxMFxuICBkaXNwbGF5OiBib3g7XG59XG5cbkBtaXhpbiBib3gtb3JpZW50KCRvcmllbnQ6IGlubGluZS1heGlzKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LW9yaWVudFwiKTtcblxuLy8gaG9yaXpvbnRhbHx2ZXJ0aWNhbHxpbmxpbmUtYXhpc3xibG9jay1heGlzfGluaGVyaXRcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yaWVudCwgJG9yaWVudCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1wYWNrKCRwYWNrOiBzdGFydCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1wYWNrXCIpO1xuXG4vLyBzdGFydHxlbmR8Y2VudGVyfGp1c3RpZnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRwYWNrLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1wYWNrOiAkcGFjazsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1hbGlnbigkYWxpZ246IHN0cmV0Y2gpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtYWxpZ25cIik7XG5cbi8vIHN0YXJ0fGVuZHxjZW50ZXJ8YmFzZWxpbmV8c3RyZXRjaFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtYWxpZ24sICRhbGlnbiwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtYWxpZ246ICRhbGlnbjsgLy8gSUUgMTBcbn1cblxuQG1peGluIGJveC1kaXJlY3Rpb24oJGRpcmVjdGlvbjogbm9ybWFsKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYm94LWRpcmVjdGlvblwiKTtcblxuLy8gbm9ybWFsfHJldmVyc2V8aW5oZXJpdFxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleC1kaXJlY3Rpb246ICRkaXJlY3Rpb247IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtbGluZXMoJGxpbmVzOiBzaW5nbGUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtbGluZXNcIik7XG5cbi8vIHNpbmdsZXxtdWx0aXBsZVxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRsaW5lcywgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIGJveC1vcmRpbmFsLWdyb3VwKCRpbnQ6IDEpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtb3JkaW5hbC1ncm91cFwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtb3JkaW5hbC1ncm91cCwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7IC8vIElFIDEwXG59XG5cbkBtaXhpbiBib3gtZmxleCgkdmFsdWU6IDApIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtZmxleFwiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZmxleCwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuICAtbXMtZmxleDogJHZhbHVlOyAvLyBJRSAxMFxufVxuXG5AbWl4aW4gYm94LWZsZXgtZ3JvdXAoJGludDogMSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImJveC1mbGV4LWdyb3VwXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1mbGV4LWdyb3VwLCAkaW50LCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG4vLyBDU1MzIEZsZXhpYmxlIEJveCBNb2RlbCBhbmQgcHJvcGVydHkgZGVmYXVsdHNcbi8vIFVuaWZpZWQgYXR0cmlidXRlcyBmb3IgMjAwOSwgMjAxMSwgYW5kIDIwMTIgZmxhdm91cnMuXG5cbi8vIDIwMDkgLSBkaXNwbGF5IChib3ggfCBpbmxpbmUtYm94KVxuLy8gMjAxMSAtIGRpc3BsYXkgKGZsZXhib3ggfCBpbmxpbmUtZmxleGJveClcbi8vIDIwMTIgLSBkaXNwbGF5IChmbGV4IHwgaW5saW5lLWZsZXgpXG5AbWl4aW4gZGlzcGxheSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJkaXNwbGF5XCIpO1xuXG4vLyBmbGV4IHwgaW5saW5lLWZsZXhcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXhcIiB7XG4gICAgLy8gMjAwOVxuICAgIGRpc3BsYXk6IC13ZWJraXQtYm94O1xuICAgIGRpc3BsYXk6IC1tb3otYm94O1xuICAgIGRpc3BsYXk6IGJveDtcblxuICAgIC8vIDIwMTJcbiAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1mbGV4O1xuICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OyAvLyAyMDExIChJRSAxMClcbiAgICBkaXNwbGF5OiBmbGV4O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImlubGluZS1mbGV4XCIge1xuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWJveDtcbiAgICBkaXNwbGF5OiAtbW96LWlubGluZS1ib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWJveDtcblxuICAgIGRpc3BsYXk6IC13ZWJraXQtaW5saW5lLWZsZXg7XG4gICAgZGlzcGxheTogLW1vei1pbmxpbmUtZmxleDtcbiAgICBkaXNwbGF5OiAtbXMtaW5saW5lLWZsZXhib3g7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIH0gQGVsc2Uge1xuICAgIGRpc3BsYXk6ICR2YWx1ZTtcbiAgfVxufVxuXG4vLyAyMDA5IC0gYm94LWZsZXggKGludGVnZXIpXG4vLyAyMDExIC0gZmxleCAoZGVjaW1hbCB8IHdpZHRoIGRlY2ltYWwpXG4vLyAyMDEyIC0gZmxleCAoaW50ZWdlciBpbnRlZ2VyIHdpZHRoKVxuQG1peGluIGZsZXgoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleFwiKTtcblxuICAvLyBHcmFiIGZsZXgtZ3JvdyBmb3Igb2xkZXIgYnJvd3NlcnMuXG4gICRmbGV4LWdyb3c6IG50aCgkdmFsdWUsIDEpO1xuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LWZsZXgsICRmbGV4LWdyb3csIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMSAoSUUgMTApLCAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmllbnQgKCBob3Jpem9udGFsIHwgdmVydGljYWwgfCBpbmxpbmUtYXhpcyB8IGJsb2NrLWF4aXMpXG4vLyAgICAgIC0gYm94LWRpcmVjdGlvbiAobm9ybWFsIHwgcmV2ZXJzZSlcbi8vIDIwMTEgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LWRpcmVjdGlvbiAocm93IHwgcm93LXJldmVyc2UgfCBjb2x1bW4gfCBjb2x1bW4tcmV2ZXJzZSlcbkBtaXhpbiBmbGV4LWRpcmVjdGlvbigkdmFsdWU6IHJvdykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXgtZGlyZWN0aW9uXCIpO1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICR2YWx1ZS0yMDA5OiAkdmFsdWU7XG4gICR2YWx1ZS0yMDExOiAkdmFsdWU7XG4gICRkaXJlY3Rpb246IG5vcm1hbDtcblxuICBAaWYgJHZhbHVlID09IHJvdyB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwicm93LXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IGhvcml6b250YWw7XG4gICAgJGRpcmVjdGlvbjogcmV2ZXJzZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gY29sdW1uIHtcbiAgICAkdmFsdWUtMjAwOTogdmVydGljYWw7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiY29sdW1uLXJldmVyc2VcIiB7XG4gICAgJHZhbHVlLTIwMDk6IHZlcnRpY2FsO1xuICAgICRkaXJlY3Rpb246IHJldmVyc2U7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1vcmllbnQsICR2YWx1ZS0yMDA5LCB3ZWJraXQgbW96IHNwZWMpO1xuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtZGlyZWN0aW9uLCAkZGlyZWN0aW9uLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1kaXJlY3Rpb24sICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtZGlyZWN0aW9uOiAkdmFsdWU7XG59XG5cbi8vIDIwMDkgLSBib3gtbGluZXMgKHNpbmdsZSB8IG11bHRpcGxlKVxuLy8gMjAxMSAtIGZsZXgtd3JhcCAobm93cmFwIHwgd3JhcCB8IHdyYXAtcmV2ZXJzZSlcbi8vIDIwMTIgLSBmbGV4LXdyYXAgKG5vd3JhcCB8IHdyYXAgfCB3cmFwLXJldmVyc2UpXG5AbWl4aW4gZmxleC13cmFwKCR2YWx1ZTogbm93cmFwKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC13cmFwXCIpO1xuXG4gIC8vIEFsdCB2YWx1ZXNcbiAgJGFsdC12YWx1ZTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IG5vd3JhcCB7XG4gICAgJGFsdC12YWx1ZTogc2luZ2xlO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSB3cmFwIHtcbiAgICAkYWx0LXZhbHVlOiBtdWx0aXBsZTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJ3cmFwLXJldmVyc2VcIiB7XG4gICAgJGFsdC12YWx1ZTogbXVsdGlwbGU7XG4gIH1cblxuICBAaW5jbHVkZSBwcmVmaXhlcihib3gtbGluZXMsICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZsZXgtd3JhcCwgJHZhbHVlLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuXG4vLyAyMDA5IC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDExIC0gVE9ETzogcGFyc2UgdmFsdWVzIGludG8gZmxleC1kaXJlY3Rpb24vZmxleC13cmFwXG4vLyAyMDEyIC0gZmxleC1mbG93IChmbGV4LWRpcmVjdGlvbiB8fCBmbGV4LXdyYXApXG5AbWl4aW4gZmxleC1mbG93KCR2YWx1ZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXgtZmxvd1wiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWZsb3csICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuLy8gMjAwOSAtIGJveC1vcmRpbmFsLWdyb3VwIChpbnRlZ2VyKVxuLy8gMjAxMSAtIGZsZXgtb3JkZXIgKGludGVnZXIpXG4vLyAyMDEyIC0gb3JkZXIgKGludGVnZXIpXG5AbWl4aW4gb3JkZXIoJGludDogMCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcIm9yZGVyXCIpO1xuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LW9yZGluYWwtZ3JvdXAsICRpbnQsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihvcmRlciwgJGludCwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtb3JkZXI6ICRpbnQ7XG59XG5cbi8vIDIwMTIgLSBmbGV4LWdyb3cgKG51bWJlcilcbkBtaXhpbiBmbGV4LWdyb3coJG51bWJlcjogMCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImZsZXgtZ3Jvd1wiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWdyb3csICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXBvc2l0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1zaHJpbmsgKG51bWJlcilcbkBtaXhpbiBmbGV4LXNocmluaygkbnVtYmVyOiAxKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC1zaHJpbmtcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIoZmxleC1zaHJpbmssICRudW1iZXIsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LW5lZ2F0aXZlOiAkbnVtYmVyO1xufVxuXG4vLyAyMDEyIC0gZmxleC1iYXNpcyAobnVtYmVyKVxuQG1peGluIGZsZXgtYmFzaXMoJHdpZHRoOiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZmxleC1iYXNpc1wiKTtcblxuICBAaW5jbHVkZSBwcmVmaXhlcihmbGV4LWJhc2lzLCAkd2lkdGgsIHdlYmtpdCBtb3ogc3BlYyk7XG4gIC1tcy1mbGV4LXByZWZlcnJlZC1zaXplOiAkd2lkdGg7XG59XG5cbi8vIDIwMDkgLSBib3gtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMSAtIGZsZXgtcGFjayAoc3RhcnQgfCBlbmQgfCBjZW50ZXIgfCBqdXN0aWZ5KVxuLy8gMjAxMiAtIGp1c3RpZnktY29udGVudCAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgc3BhY2UtYmV0d2VlbiB8IHNwYWNlLWFyb3VuZClcbkBtaXhpbiBqdXN0aWZ5LWNvbnRlbnQoJHZhbHVlOiBmbGV4LXN0YXJ0KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwianVzdGlmeS1jb250ZW50XCIpO1xuXG4gIC8vIEFsdCB2YWx1ZXMuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJGFsdC12YWx1ZTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZW5kO1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcInNwYWNlLWJldHdlZW5cIiB7XG4gICAgJGFsdC12YWx1ZToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJGFsdC12YWx1ZTogZGlzdHJpYnV0ZTtcbiAgfVxuXG4gIC8vIDIwMDlcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYm94LXBhY2ssICRhbHQtdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG5cbiAgLy8gMjAxMlxuICBAaW5jbHVkZSBwcmVmaXhlcihqdXN0aWZ5LWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1wYWNrOiAkYWx0LXZhbHVlO1xufVxuXG4vLyAyMDA5IC0gYm94LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTEgLSBmbGV4LWFsaWduIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1pdGVtcyAoZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLWl0ZW1zKCR2YWx1ZTogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFsaWduLWl0ZW1zXCIpO1xuXG4gICRhbHQtdmFsdWU6ICR2YWx1ZTtcblxuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkYWx0LXZhbHVlOiBzdGFydDtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJmbGV4LWVuZFwiIHtcbiAgICAkYWx0LXZhbHVlOiBlbmQ7XG4gIH1cblxuICAvLyAyMDA5XG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1hbGlnbiwgJGFsdC12YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWl0ZW1zLCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgbyBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtYWxpZ246ICRhbHQtdmFsdWU7XG59XG5cbi8vIDIwMTEgLSBmbGV4LWl0ZW0tYWxpZ24gKGF1dG8gfCBzdGFydCB8IGVuZCB8IGNlbnRlciB8IGJhc2VsaW5lIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1zZWxmIChhdXRvIHwgZmxleC1zdGFydCB8IGZsZXgtZW5kIHwgY2VudGVyIHwgYmFzZWxpbmUgfCBzdHJldGNoKVxuQG1peGluIGFsaWduLXNlbGYoJHZhbHVlOiBhdXRvKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiYWxpZ24tc2VsZlwiKTtcblxuICAkdmFsdWUtMjAxMTogJHZhbHVlO1xuICBAaWYgJHZhbHVlID09IFwiZmxleC1zdGFydFwiIHtcbiAgICAkdmFsdWUtMjAxMTogc3RhcnQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwiZmxleC1lbmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGVuZDtcbiAgfVxuXG4gIC8vIDIwMTJcbiAgQGluY2x1ZGUgcHJlZml4ZXIoYWxpZ24tc2VsZiwgJHZhbHVlLCB3ZWJraXQgbW96IHNwZWMpO1xuXG4gIC8vIDIwMTEgKElFIDEwKVxuICAtbXMtZmxleC1pdGVtLWFsaWduOiAkdmFsdWUtMjAxMTtcbn1cblxuLy8gMjAxMSAtIGZsZXgtbGluZS1wYWNrIChzdGFydCB8IGVuZCB8IGNlbnRlciB8IGp1c3RpZnkgfCBkaXN0cmlidXRlIHwgc3RyZXRjaClcbi8vIDIwMTIgLSBhbGlnbi1jb250ZW50IChmbGV4LXN0YXJ0IHwgZmxleC1lbmQgfCBjZW50ZXIgfCBzcGFjZS1iZXR3ZWVuIHwgc3BhY2UtYXJvdW5kIHwgc3RyZXRjaClcbkBtaXhpbiBhbGlnbi1jb250ZW50KCR2YWx1ZTogc3RyZXRjaCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImFsaWduLWNvbnRlbnRcIik7XG5cbiAgJHZhbHVlLTIwMTE6ICR2YWx1ZTtcbiAgQGlmICR2YWx1ZSA9PSBcImZsZXgtc3RhcnRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IHN0YXJ0O1xuICB9IEBlbHNlIGlmICR2YWx1ZSA9PSBcImZsZXgtZW5kXCIge1xuICAgICR2YWx1ZS0yMDExOiBlbmQ7XG4gIH0gQGVsc2UgaWYgJHZhbHVlID09IFwic3BhY2UtYmV0d2VlblwiIHtcbiAgICAkdmFsdWUtMjAxMToganVzdGlmeTtcbiAgfSBAZWxzZSBpZiAkdmFsdWUgPT0gXCJzcGFjZS1hcm91bmRcIiB7XG4gICAgJHZhbHVlLTIwMTE6IGRpc3RyaWJ1dGU7XG4gIH1cblxuICAvLyAyMDEyXG4gIEBpbmNsdWRlIHByZWZpeGVyKGFsaWduLWNvbnRlbnQsICR2YWx1ZSwgd2Via2l0IG1veiBzcGVjKTtcblxuICAvLyAyMDExIChJRSAxMClcbiAgLW1zLWZsZXgtbGluZS1wYWNrOiAkdmFsdWUtMjAxMTtcbn1cbiIsIkBtaXhpbiBmb250LWZhY2UoXG4gICRmb250LWZhbWlseSxcbiAgJGZpbGUtcGF0aCxcbiAgJHdlaWdodDogbm9ybWFsLFxuICAkc3R5bGU6IG5vcm1hbCxcbiAgJGFzc2V0LXBpcGVsaW5lOiAkYXNzZXQtcGlwZWxpbmUsXG4gICRmaWxlLWZvcm1hdHM6IGVvdCB3b2ZmMiB3b2ZmIHR0ZiBzdmcpIHtcblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcblxuICAkZm9udC11cmwtcHJlZml4OiBmb250LXVybC1wcmVmaXhlcigkYXNzZXQtcGlwZWxpbmUpO1xuXG4gIEBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAkZm9udC1mYW1pbHk7XG4gICAgZm9udC1zdHlsZTogJHN0eWxlO1xuICAgIGZvbnQtd2VpZ2h0OiAkd2VpZ2h0O1xuXG4gICAgc3JjOiBmb250LXNvdXJjZS1kZWNsYXJhdGlvbihcbiAgICAgICRmb250LWZhbWlseSxcbiAgICAgICRmaWxlLXBhdGgsXG4gICAgICAkYXNzZXQtcGlwZWxpbmUsXG4gICAgICAkZmlsZS1mb3JtYXRzLFxuICAgICAgJGZvbnQtdXJsLXByZWZpeFxuICAgICk7XG4gIH1cblxuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBtaXhpbiBmb250LWZlYXR1cmUtc2V0dGluZ3MoJHNldHRpbmdzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiZm9udC1mZWF0dXJlLXNldHRpbmdzXCIpO1xuXG4gIEBpZiBsZW5ndGgoJHNldHRpbmdzKSA9PSAwIHsgJHNldHRpbmdzOiBub25lOyB9XG4gIEBpbmNsdWRlIHByZWZpeGVyKGZvbnQtZmVhdHVyZS1zZXR0aW5ncywgJHNldHRpbmdzLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiLy8gSGlEUEkgbWl4aW4uIERlZmF1bHQgdmFsdWUgc2V0IHRvIDEuMyB0byB0YXJnZXQgR29vZ2xlIE5leHVzIDcgKGh0dHA6Ly9iamFuZ28uY29tL2FydGljbGVzL21pbi1kZXZpY2UtcGl4ZWwtcmF0aW8vKVxuQG1peGluIGhpZHBpKCRyYXRpbzogMS4zKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwiaGlkcGlcIik7XG5cbiAgQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAoLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAkcmF0aW8pLFxuICBvbmx5IHNjcmVlbiBhbmQgKG1pbi0tbW96LWRldmljZS1waXhlbC1yYXRpbzogJHJhdGlvKSxcbiAgb25seSBzY3JlZW4gYW5kICgtby1taW4tZGV2aWNlLXBpeGVsLXJhdGlvOiAjeyRyYXRpb30vMSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246IHJvdW5kKCRyYXRpbyAqIDk2ZHBpKSksXG4gIG9ubHkgc2NyZWVuIGFuZCAobWluLXJlc29sdXRpb246ICRyYXRpbyAqIDFkcHB4KSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIkBtaXhpbiBoeXBoZW5zKCRoeXBoZW5hdGlvbjogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImh5cGhlbnNcIik7XG5cbiAgLy8gbm9uZSB8IG1hbnVhbCB8IGF1dG9cbiAgQGluY2x1ZGUgcHJlZml4ZXIoaHlwaGVucywgJGh5cGhlbmF0aW9uLCB3ZWJraXQgbW96IG1zIHNwZWMpO1xufVxuIiwiQG1peGluIGltYWdlLXJlbmRlcmluZyAoJG1vZGU6YXV0bykge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImltYWdlLXJlbmRlcmluZ1wiKTtcblxuICBAaWYgKCRtb2RlID09IGNyaXNwLWVkZ2VzKSB7XG4gICAgLW1zLWludGVycG9sYXRpb24tbW9kZTogbmVhcmVzdC1uZWlnaGJvcjsgLy8gSUU4K1xuICAgIGltYWdlLXJlbmRlcmluZzogLW1vei1jcmlzcC1lZGdlcztcbiAgICBpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzO1xuICAgIGltYWdlLXJlbmRlcmluZzogLXdlYmtpdC1vcHRpbWl6ZS1jb250cmFzdDtcbiAgICBpbWFnZS1yZW5kZXJpbmc6IGNyaXNwLWVkZ2VzO1xuICB9XG5cbiAgQGVsc2Uge1xuICAgIGltYWdlLXJlbmRlcmluZzogJG1vZGU7XG4gIH1cbn1cbiIsIi8vIEFkZHMga2V5ZnJhbWVzIGJsb2NrcyBmb3Igc3VwcG9ydGVkIHByZWZpeGVzLCByZW1vdmluZyByZWR1bmRhbnQgcHJlZml4ZXMgaW4gdGhlIGJsb2NrJ3MgY29udGVudFxuQG1peGluIGtleWZyYW1lcygkbmFtZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImtleWZyYW1lc1wiKTtcblxuICAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQ6ICAgICRwcmVmaXgtZm9yLXdlYmtpdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYTogICAkcHJlZml4LWZvci1tb3ppbGxhO1xuICAkb3JpZ2luYWwtcHJlZml4LWZvci1taWNyb3NvZnQ6ICRwcmVmaXgtZm9yLW1pY3Jvc29mdDtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmE6ICAgICAkcHJlZml4LWZvci1vcGVyYTtcbiAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYzogICAgICAkcHJlZml4LWZvci1zcGVjO1xuXG4gIEBpZiAkb3JpZ2luYWwtcHJlZml4LWZvci13ZWJraXQge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci13ZWJraXQ6IHRydWUgIWdsb2JhbDtcbiAgICBALXdlYmtpdC1rZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLW1vemlsbGEge1xuICAgIEBpbmNsdWRlIGRpc2FibGUtcHJlZml4LWZvci1hbGwoKTtcbiAgICAkcHJlZml4LWZvci1tb3ppbGxhOiB0cnVlICFnbG9iYWw7XG4gICAgQC1tb3ota2V5ZnJhbWVzICN7JG5hbWV9IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxuXG4gICRwcmVmaXgtZm9yLXdlYmtpdDogICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itd2Via2l0ICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1vemlsbGE6ICAgJG9yaWdpbmFsLXByZWZpeC1mb3ItbW96aWxsYSAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogJG9yaWdpbmFsLXByZWZpeC1mb3ItbWljcm9zb2Z0ICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW9wZXJhOiAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itb3BlcmEgICAgICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLXNwZWM6ICAgICAgJG9yaWdpbmFsLXByZWZpeC1mb3Itc3BlYyAgICAgICFnbG9iYWw7XG5cbiAgQGlmICRvcmlnaW5hbC1wcmVmaXgtZm9yLXNwZWMge1xuICAgIEBrZXlmcmFtZXMgI3skbmFtZX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gbGluZWFyLWdyYWRpZW50KCRwb3MsICRnMSwgJGcyOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRmYWxsYmFjazogbnVsbCkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcImxpbmVhci1ncmFkaWVudFwiKTtcblxuICAvLyBEZXRlY3Qgd2hhdCB0eXBlIG9mIHZhbHVlIGV4aXN0cyBpbiAkcG9zXG4gICRwb3MtdHlwZTogdHlwZS1vZihudGgoJHBvcywgMSkpO1xuICAkcG9zLXNwZWM6IG51bGw7XG4gICRwb3MtZGVncmVlOiBudWxsO1xuXG4gIC8vIElmICRwb3MgaXMgbWlzc2luZyBmcm9tIG1peGluLCByZWFzc2lnbiB2YXJzIGFuZCBhZGQgZGVmYXVsdCBwb3NpdGlvblxuICBAaWYgKCRwb3MtdHlwZSA9PSBjb2xvcikgb3IgKG50aCgkcG9zLCAxKSA9PSBcInRyYW5zcGFyZW50XCIpICB7XG4gICAgJGcxMDogJGc5OyAkZzk6ICRnODsgJGc4OiAkZzc7ICRnNzogJGc2OyAkZzY6ICRnNTtcbiAgICAkZzU6ICRnNDsgJGc0OiAkZzM7ICRnMzogJGcyOyAkZzI6ICRnMTsgJGcxOiAkcG9zO1xuICAgICRwb3M6IG51bGw7XG4gIH1cblxuICBAaWYgJHBvcyB7XG4gICAgJHBvc2l0aW9uczogX2xpbmVhci1wb3NpdGlvbnMtcGFyc2VyKCRwb3MpO1xuICAgICRwb3MtZGVncmVlOiBudGgoJHBvc2l0aW9ucywgMSk7XG4gICAgJHBvcy1zcGVjOiAgIG50aCgkcG9zaXRpb25zLCAyKTtcbiAgfVxuXG4gICRmdWxsOiAkZzEsICRnMiwgJGczLCAkZzQsICRnNSwgJGc2LCAkZzcsICRnOCwgJGc5LCAkZzEwO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZhbGxiYWNrLWNvbG9yOiBudGgoJGcxLCAxKTtcblxuICAvLyBJZiAkZmFsbGJhY2sgaXMgYSBjb2xvciB1c2UgdGhhdCBjb2xvciBhcyB0aGUgZmFsbGJhY2sgY29sb3JcbiAgQGlmICh0eXBlLW9mKCRmYWxsYmFjaykgPT0gY29sb3IpIG9yICgkZmFsbGJhY2sgPT0gXCJ0cmFuc3BhcmVudFwiKSB7XG4gICAgJGZhbGxiYWNrLWNvbG9yOiAkZmFsbGJhY2s7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkZmFsbGJhY2stY29sb3I7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KCRwb3MtZGVncmVlICRmdWxsKTsgLy8gU2FmYXJpIDUuMSssIENocm9tZVxuICBiYWNrZ3JvdW5kLWltYWdlOiB1bnF1b3RlKFwibGluZWFyLWdyYWRpZW50KCN7JHBvcy1zcGVjfSN7JGZ1bGx9KVwiKTtcbn1cbiIsIkBtaXhpbiBwZXJzcGVjdGl2ZSgkZGVwdGg6IG5vbmUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJwZXJzcGVjdGl2ZVwiKTtcblxuICAvLyBub25lIHwgPGxlbmd0aD5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUsICRkZXB0aCwgd2Via2l0IG1veiBzcGVjKTtcbn1cblxuQG1peGluIHBlcnNwZWN0aXZlLW9yaWdpbigkdmFsdWU6IDUwJSA1MCUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJwZXJzcGVjdGl2ZS1vcmlnaW5cIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIocGVyc3BlY3RpdmUtb3JpZ2luLCAkdmFsdWUsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCJAbWl4aW4gcGxhY2Vob2xkZXIge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInBsYWNlaG9sZGVyXCIpO1xuXG4gICRwbGFjZWhvbGRlcnM6IFwiOi13ZWJraXQtaW5wdXRcIiBcIjotbW96XCIgXCItbW96XCIgXCItbXMtaW5wdXRcIjtcbiAgQGVhY2ggJHBsYWNlaG9sZGVyIGluICRwbGFjZWhvbGRlcnMge1xuICAgICY6I3skcGxhY2Vob2xkZXJ9LXBsYWNlaG9sZGVyIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIiwiLy8gUmVxdWlyZXMgU2FzcyAzLjErXG5AbWl4aW4gcmFkaWFsLWdyYWRpZW50KCRnMSwgJGcyLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzM6IG51bGwsICRnNDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgJGc1OiBudWxsLCAkZzY6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRnNzogbnVsbCwgJGc4OiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZzk6IG51bGwsICRnMTA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRwb3M6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICRzaGFwZS1zaXplOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAkZmFsbGJhY2s6IG51bGwpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJyYWRpYWwtZ3JhZGllbnRcIik7XG5cbiAgJGRhdGE6IF9yYWRpYWwtYXJnLXBhcnNlcigkZzEsICRnMiwgJHBvcywgJHNoYXBlLXNpemUpO1xuICAkZzE6ICBudGgoJGRhdGEsIDEpO1xuICAkZzI6ICBudGgoJGRhdGEsIDIpO1xuICAkcG9zOiBudGgoJGRhdGEsIDMpO1xuICAkc2hhcGUtc2l6ZTogbnRoKCRkYXRhLCA0KTtcblxuICAkZnVsbDogJGcxLCAkZzIsICRnMywgJGc0LCAkZzUsICRnNiwgJGc3LCAkZzgsICRnOSwgJGcxMDtcblxuICAvLyBTdHJpcCBkZXByZWNhdGVkIGNvdmVyL2NvbnRhaW4gZm9yIHNwZWNcbiAgJHNoYXBlLXNpemUtc3BlYzogX3NoYXBlLXNpemUtc3RyaXBwZXIoJHNoYXBlLXNpemUpO1xuXG4gIC8vIFNldCAkZzEgYXMgdGhlIGRlZmF1bHQgZmFsbGJhY2sgY29sb3JcbiAgJGZpcnN0LWNvbG9yOiBudGgoJGZ1bGwsIDEpO1xuICAkZmFsbGJhY2stY29sb3I6IG50aCgkZmlyc3QtY29sb3IsIDEpO1xuXG4gIEBpZiAodHlwZS1vZigkZmFsbGJhY2spID09IGNvbG9yKSBvciAoJGZhbGxiYWNrID09IFwidHJhbnNwYXJlbnRcIikge1xuICAgICRmYWxsYmFjay1jb2xvcjogJGZhbGxiYWNrO1xuICB9XG5cbiAgLy8gQWRkIENvbW1hcyBhbmQgc3BhY2VzXG4gICRzaGFwZS1zaXplOiBpZigkc2hhcGUtc2l6ZSwgXCIjeyRzaGFwZS1zaXplfSwgXCIsIG51bGwpO1xuICAkcG9zOiAgICAgICAgaWYoJHBvcywgXCIjeyRwb3N9LCBcIiwgbnVsbCk7XG4gICRwb3Mtc3BlYzogICBpZigkcG9zLCBcImF0ICN7JHBvc31cIiwgbnVsbCk7XG4gICRzaGFwZS1zaXplLXNwZWM6IGlmKCgkc2hhcGUtc2l6ZS1zcGVjICE9IFwiIFwiKSBhbmQgKCRwb3MgPT0gbnVsbCksIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSwgXCIsIFwiI3skc2hhcGUtc2l6ZS1zcGVjfSBcIik7XG5cbiAgYmFja2dyb3VuZC1jb2xvcjogICRmYWxsYmFjay1jb2xvcjtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1yYWRpYWwtZ3JhZGllbnQoI3skcG9zfSN7JHNoYXBlLXNpemV9I3skZnVsbH0pO1xuICBiYWNrZ3JvdW5kLWltYWdlOiByYWRpYWwtZ3JhZGllbnQoI3skc2hhcGUtc2l6ZS1zcGVjfSN7JHBvcy1zcGVjfSN7JGZ1bGx9KTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcclxuXHJcbi8vLyBPdXRwdXRzIHRoZSBzcGVjIGFuZCBwcmVmaXhlZCB2ZXJzaW9ucyBvZiB0aGUgYDo6c2VsZWN0aW9uYCBwc2V1ZG8tZWxlbWVudC5cclxuLy8vXHJcbi8vLyBAcGFyYW0ge0Jvb2x9ICRjdXJyZW50LXNlbGVjdG9yIFtmYWxzZV1cclxuLy8vICAgSWYgc2V0IHRvIGB0cnVlYCwgaXQgdGFrZXMgdGhlIGN1cnJlbnQgZWxlbWVudCBpbnRvIGNvbnNpZGVyYXRpb24uXHJcbi8vL1xyXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXHJcbi8vLyAgIC5lbGVtZW50IHtcclxuLy8vICAgICBAaW5jbHVkZSBzZWxlY3Rpb24odHJ1ZSkge1xyXG4vLy8gICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgICB9XHJcbi8vLyAgIH1cclxuLy8vXHJcbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XHJcbi8vLyAgIC5lbGVtZW50OjotbW96LXNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG4vLy9cclxuLy8vICAgLmVsZW1lbnQ6OnNlbGVjdGlvbiB7XHJcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmYmI1MjtcclxuLy8vICAgfVxyXG5cclxuQG1peGluIHNlbGVjdGlvbigkY3VycmVudC1zZWxlY3RvcjogZmFsc2UpIHtcclxuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInNlbGVjdGlvblwiKTtcclxuXHJcbiAgQGlmICRjdXJyZW50LXNlbGVjdG9yIHtcclxuICAgICY6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgJjo6c2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcbiAgfSBAZWxzZSB7XHJcbiAgICA6Oi1tb3otc2VsZWN0aW9uIHtcclxuICAgICAgQGNvbnRlbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgOjpzZWxlY3Rpb24ge1xyXG4gICAgICBAY29udGVudDtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiQG1peGluIHRleHQtZGVjb3JhdGlvbigkdmFsdWUpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0ZXh0LWRlY29yYXRpb25cIik7XG5cbi8vIDx0ZXh0LWRlY29yYXRpb24tbGluZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1zdHlsZT4gfHwgPHRleHQtZGVjb3JhdGlvbi1jb2xvcj5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLCAkdmFsdWUsIG1veik7XG59XG5cbkBtaXhpbiB0ZXh0LWRlY29yYXRpb24tbGluZSgkbGluZTogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRleHQtZGVjb3JhdGlvbi1saW5lXCIpO1xuXG4vLyBub25lIHx8IHVuZGVybGluZSB8fCBvdmVybGluZSB8fCBsaW5lLXRocm91Z2hcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLWxpbmUsICRsaW5lLCBtb3opO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLXN0eWxlKCRzdHlsZTogc29saWQpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0ZXh0LWRlY29yYXRpb24tc3R5bGVcIik7XG5cbi8vIHNvbGlkIHx8IGRvdWJsZSB8fCBkb3R0ZWQgfHwgZGFzaGVkIHx8IHdhdnlcbiAgQGluY2x1ZGUgcHJlZml4ZXIodGV4dC1kZWNvcmF0aW9uLXN0eWxlLCAkc3R5bGUsIG1veiB3ZWJraXQpO1xufVxuXG5AbWl4aW4gdGV4dC1kZWNvcmF0aW9uLWNvbG9yKCRjb2xvcjogY3VycmVudENvbG9yKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidGV4dC1kZWNvcmF0aW9uLWNvbG9yXCIpO1xuXG4vLyBjdXJyZW50Q29sb3IgfHwgPGNvbG9yPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0ZXh0LWRlY29yYXRpb24tY29sb3IsICRjb2xvciwgbW96KTtcbn1cbiIsIkBtaXhpbiB0cmFuc2Zvcm0oJHByb3BlcnR5OiBub25lKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNmb3JtXCIpO1xuXG4gIC8vIG5vbmUgfCA8dHJhbnNmb3JtLWZ1bmN0aW9uPlxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2Zvcm0sICRwcm9wZXJ0eSwgd2Via2l0IG1veiBtcyBvIHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNmb3JtLW9yaWdpbigkYXhlczogNTAlKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNmb3JtLW9yaWdpblwiKTtcblxuICAvLyB4LWF4aXMgLSBsZWZ0IHwgY2VudGVyIHwgcmlnaHQgIHwgbGVuZ3RoIHwgJVxuICAvLyB5LWF4aXMgLSB0b3AgIHwgY2VudGVyIHwgYm90dG9tIHwgbGVuZ3RoIHwgJVxuICAvLyB6LWF4aXMgLSAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuZ3RoXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1vcmlnaW4sICRheGVzLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2Zvcm0tc3R5bGUoJHN0eWxlOiBmbGF0KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNmb3JtLXN0eWxlXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zZm9ybS1zdHlsZSwgJHN0eWxlLCB3ZWJraXQgbW96IG1zIG8gc3BlYyk7XG59XG4iLCIvLyBTaG9ydGhhbmQgbWl4aW4uIFN1cHBvcnRzIG11bHRpcGxlIHBhcmVudGhlc2VzLWRlbGltaW5hdGVkIHZhbHVlcyBmb3IgZWFjaCB2YXJpYWJsZS5cbi8vIEV4YW1wbGU6IEBpbmNsdWRlIHRyYW5zaXRpb24gKGFsbCAycyBlYXNlLWluLW91dCk7XG4vLyAgICAgICAgICBAaW5jbHVkZSB0cmFuc2l0aW9uIChvcGFjaXR5IDFzIGVhc2UtaW4gMnMsIHdpZHRoIDJzIGVhc2Utb3V0KTtcbi8vICAgICAgICAgIEBpbmNsdWRlIHRyYW5zaXRpb24tcHJvcGVydHkgKHRyYW5zZm9ybSwgb3BhY2l0eSk7XG5cbkBtaXhpbiB0cmFuc2l0aW9uKCRwcm9wZXJ0aWVzLi4uKSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZS1mb3ItcHJlZml4aW5nKFwidHJhbnNpdGlvblwiKTtcblxuICAvLyBGaXggZm9yIHZlbmRvci1wcmVmaXggdHJhbnNmb3JtIHByb3BlcnR5XG4gICRuZWVkcy1wcmVmaXhlczogZmFsc2U7XG4gICR3ZWJraXQ6ICgpO1xuICAkbW96OiAoKTtcbiAgJHNwZWM6ICgpO1xuXG4gIC8vIENyZWF0ZSBsaXN0cyBmb3IgdmVuZG9yLXByZWZpeGVkIHRyYW5zZm9ybVxuICBAZWFjaCAkbGlzdCBpbiAkcHJvcGVydGllcyB7XG4gICAgQGlmIG50aCgkbGlzdCwgMSkgPT0gXCJ0cmFuc2Zvcm1cIiB7XG4gICAgICAkbmVlZHMtcHJlZml4ZXM6IHRydWU7XG4gICAgICAkbGlzdDE6IC13ZWJraXQtdHJhbnNmb3JtO1xuICAgICAgJGxpc3QyOiAtbW96LXRyYW5zZm9ybTtcbiAgICAgICRsaXN0MzogKCk7XG5cbiAgICAgIEBlYWNoICR2YXIgaW4gJGxpc3Qge1xuICAgICAgICAkbGlzdDM6IGpvaW4oJGxpc3QzLCAkdmFyKTtcblxuICAgICAgICBAaWYgJHZhciAhPSBcInRyYW5zZm9ybVwiIHtcbiAgICAgICAgICAkbGlzdDE6IGpvaW4oJGxpc3QxLCAkdmFyKTtcbiAgICAgICAgICAkbGlzdDI6IGpvaW4oJGxpc3QyLCAkdmFyKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QxKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdDIpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0Myk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAkd2Via2l0OiBhcHBlbmQoJHdlYmtpdCwgJGxpc3QsIGNvbW1hKTtcbiAgICAgICRtb3o6ICAgIGFwcGVuZCgkbW96LCAgICAkbGlzdCwgY29tbWEpO1xuICAgICAgJHNwZWM6ICAgYXBwZW5kKCRzcGVjLCAgICRsaXN0LCBjb21tYSk7XG4gICAgfVxuICB9XG5cbiAgQGlmICRuZWVkcy1wcmVmaXhlcyB7XG4gICAgLXdlYmtpdC10cmFuc2l0aW9uOiAkd2Via2l0O1xuICAgICAgIC1tb3otdHJhbnNpdGlvbjogJG1vejtcbiAgICAgICAgICAgIHRyYW5zaXRpb246ICRzcGVjO1xuICB9IEBlbHNlIHtcbiAgICBAaWYgbGVuZ3RoKCRwcm9wZXJ0aWVzKSA+PSAxIHtcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHByb3BlcnRpZXM6IGFsbCAwLjE1cyBlYXNlLW91dCAwcztcbiAgICAgIEBpbmNsdWRlIHByZWZpeGVyKHRyYW5zaXRpb24sICRwcm9wZXJ0aWVzLCB3ZWJraXQgbW96IHNwZWMpO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi1wcm9wZXJ0eSgkcHJvcGVydGllcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zaXRpb24tcHJvcGVydHlcIik7XG5cbiAgLXdlYmtpdC10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIndlYmtpdFwiKTtcbiAgICAgLW1vei10cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBcIm1velwiKTtcbiAgICAgICAgICB0cmFuc2l0aW9uLXByb3BlcnR5OiB0cmFuc2l0aW9uLXByb3BlcnR5LW5hbWVzKCRwcm9wZXJ0aWVzLCBmYWxzZSk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWR1cmF0aW9uKCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zaXRpb24tZHVyYXRpb25cIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kdXJhdGlvbiwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuXG5AbWl4aW4gdHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24oJG1vdGlvbnMuLi4pIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJ0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvblwiKTtcblxuICAvLyBlYXNlIHwgbGluZWFyIHwgZWFzZS1pbiB8IGVhc2Utb3V0IHwgZWFzZS1pbi1vdXQgfCBjdWJpYy1iZXppZXIoKVxuICBAaW5jbHVkZSBwcmVmaXhlcih0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiwgJG1vdGlvbnMsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG5cbkBtaXhpbiB0cmFuc2l0aW9uLWRlbGF5KCR0aW1lcy4uLikge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInRyYW5zaXRpb24tZGVsYXlcIik7XG5cbiAgQGluY2x1ZGUgcHJlZml4ZXIodHJhbnNpdGlvbi1kZWxheSwgJHRpbWVzLCB3ZWJraXQgbW96IHNwZWMpO1xufVxuIiwiQG1peGluIHVzZXItc2VsZWN0KCR2YWx1ZTogbm9uZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUtZm9yLXByZWZpeGluZyhcInVzZXItc2VsZWN0XCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKHVzZXItc2VsZWN0LCAkdmFsdWUsIHdlYmtpdCBtb3ogbXMgc3BlYyk7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBQcm92aWRlcyBhIHF1aWNrIG1ldGhvZCBmb3IgdGFyZ2V0aW5nIGBib3JkZXItY29sb3JgIG9uIHNwZWNpZmljIHNpZGVzIG9mIGEgYm94LiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge0FyZ2xpc3R9ICR2YWxzXG4vLy8gICBMaXN0IG9mIGFyZ3VtZW50c1xuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1jb2xvcigjYTYwYjU1ICM3NmNkOWMgbnVsbCAjZThhZTFhKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICNlOGFlMWE7XG4vLy8gICAgIGJvcmRlci1yaWdodC1jb2xvcjogIzc2Y2Q5Yztcbi8vLyAgICAgYm9yZGVyLXRvcC1jb2xvcjogI2E2MGI1NTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1jb2xvcmBcblxuQG1peGluIGJvcmRlci1jb2xvcigkdmFscy4uLikge1xuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCBjb2xvciwgJHZhbHMuLi4pO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciB0YXJnZXRpbmcgYGJvcmRlci1yYWRpdXNgIG9uIGJvdGggY29ybmVycyBvbiB0aGUgc2lkZSBvZiBhIGJveC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkcmFkaWlcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50LW9uZSB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKDVweCk7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50LXR3byB7XG4vLy8gICAgIEBpbmNsdWRlIGJvcmRlci1sZWZ0LXJhZGl1cygzcHgpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQtb25lIHtcbi8vLyAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogNXB4O1xuLy8vICAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogNXB4O1xuLy8vICAgfVxuLy8vXG4vLy8gICAuZWxlbWVudC10d28ge1xuLy8vICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAzcHg7XG4vLy8gICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDNweDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci1yYWRpdXNgXG5cbkBtaXhpbiBib3JkZXItdG9wLXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xuICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogJHJhZGlpO1xufVxuXG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaWkpIHtcbiAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRyYWRpaTtcbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpaSkge1xuICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkcmFkaWk7XG4gIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAkcmFkaWk7XG59XG5cbkBtaXhpbiBib3JkZXItbGVmdC1yYWRpdXMoJHJhZGlpKSB7XG4gIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRyYWRpaTtcbiAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHJhZGlpO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXN0eWxlYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItc3R5bGUoZGFzaGVkIG51bGwgc29saWQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbi8vLyAgICAgYm9yZGVyLXRvcC1zdHlsZTogZGFzaGVkO1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgYm9yZGVyLXN0eWxlYFxuXG5AbWl4aW4gYm9yZGVyLXN0eWxlKCR2YWxzLi4uKSB7XG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShib3JkZXIsIHN0eWxlLCAkdmFscy4uLik7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgYm9yZGVyLXdpZHRoYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBib3JkZXItd2lkdGgoMWVtIG51bGwgMjBweCk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGJvcmRlci1ib3R0b20td2lkdGg6IDIwcHg7XG4vLy8gICAgIGJvcmRlci10b3Atd2lkdGg6IDFlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYGJvcmRlci13aWR0aGBcblxuQG1peGluIGJvcmRlci13aWR0aCgkdmFscy4uLikge1xuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcbiAgQGluY2x1ZGUgZGlyZWN0aW9uYWwtcHJvcGVydHkoYm9yZGVyLCB3aWR0aCwgJHZhbHMuLi4pO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIEdlbmVyYXRlcyB2YXJpYWJsZXMgZm9yIGFsbCBidXR0b25zLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC1idXR0b25zfWAuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgICN7JGFsbC1idXR0b25zfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWZvY3VzfSxcbi8vLyAgICN7JGFsbC1idXR0b25zLWhvdmVyfSB7XG4vLy8gICAgIGJhY2tncm91bmQtY29sb3I6ICMwZjA7XG4vLy8gICB9XG4vLy9cbi8vLyAgICN7JGFsbC1idXR0b25zLWFjdGl2ZX0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBmO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgYnV0dG9uLFxuLy8vICAgaW5wdXRbdHlwZT1cImJ1dHRvblwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJyZXNldFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl0ge1xuLy8vICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBidXR0b246Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwiYnV0dG9uXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXTpmb2N1cyxcbi8vLyAgIGJ1dHRvbjpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwicmVzZXRcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwic3VibWl0XCJdOmhvdmVyIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzBmMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgYnV0dG9uOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJidXR0b25cIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInJlc2V0XCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzdWJtaXRcIl06YWN0aXZlIHtcbi8vLyAgICAgYmFja2dyb3VuZC1jb2xvcjogIzAwZjtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIGFzc2lnbi1pbnB1dHNcbi8vL1xuLy8vIEB0eXBlIExpc3Rcbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBkb3VibGUgYXNzaWduZWQgdmFyaWFibGVzIChMaW5lcyA1OeKAkzYyKSBpbiB2NS4wLjBcblxuJGJ1dHRvbnMtbGlzdDogJ2J1dHRvbicsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImJ1dHRvblwiXScsXG4gICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInJlc2V0XCJdJyxcbiAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwic3VibWl0XCJdJztcblxuJHVzZXItb3V0cHV0LWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2U7XG5cbiRhbGwtYnV0dG9uczogICAgICAgIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCk7XG4kYWxsLWJ1dHRvbnMtYWN0aXZlOiBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGFjdGl2ZSk7XG4kYWxsLWJ1dHRvbnMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCRidXR0b25zLWxpc3QsIGZvY3VzKTtcbiRhbGwtYnV0dG9ucy1ob3ZlcjogIGFzc2lnbi1pbnB1dHMoJGJ1dHRvbnMtbGlzdCwgaG92ZXIpO1xuXG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLW91dHB1dC1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nO1xuXG4kYWxsLWJ1dHRvbi1pbnB1dHM6ICAgICAgICAkYWxsLWJ1dHRvbnM7XG4kYWxsLWJ1dHRvbi1pbnB1dHMtYWN0aXZlOiAkYWxsLWJ1dHRvbnMtYWN0aXZlO1xuJGFsbC1idXR0b24taW5wdXRzLWZvY3VzOiAgJGFsbC1idXR0b25zLWZvY3VzO1xuJGFsbC1idXR0b24taW5wdXRzLWhvdmVyOiAgJGFsbC1idXR0b25zLWhvdmVyO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gaW5jbHVkZSBhIGNsZWFyZml4IGZvciBjb250YWluaW5nIGZsb2F0cy5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9jc3Ntb2pvLmNvbS9sYXRlc3RfbmV3X2NsZWFyZml4X3NvX2Zhci9cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50OjphZnRlciB7XG4vLy8gICAgIGNsZWFyOiBib3RoO1xuLy8vICAgICBjb250ZW50OiBcIlwiO1xuLy8vICAgICBkaXNwbGF5OiB0YWJsZTtcbi8vLyAgIH1cblxuQG1peGluIGNsZWFyZml4IHtcbiAgJjo6YWZ0ZXIge1xuICAgIGNsZWFyOiBib3RoO1xuICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgZGlzcGxheTogdGFibGU7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRydW5jYXRlcyB0ZXh0IGFuZCBhZGRzIGFuIGVsbGlwc2lzIHRvIHJlcHJlc2VudCBvdmVyZmxvdy5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyfSAkd2lkdGggWzEwMCVdXG4vLy8gICBNYXgtd2lkdGggZm9yIHRoZSBzdHJpbmcgdG8gcmVzcGVjdCBiZWZvcmUgYmVpbmcgdHJ1bmNhdGVkXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgZWxsaXBzaXM7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbi8vLyAgICAgbWF4LXdpZHRoOiAxMDAlO1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgICAgd29yZC13cmFwOiBub3JtYWw7XG4vLy8gICB9XG5cbkBtaXhpbiBlbGxpcHNpcygkd2lkdGg6IDEwMCUpIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBtYXgtd2lkdGg6ICR3aWR0aDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gIHdvcmQtd3JhcDogbm9ybWFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VvcmdpYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kZ2VvcmdpYTogXCJHZW9yZ2lhXCIsIFwiQ2FtYnJpYVwiLCBcIlRpbWVzIE5ldyBSb21hblwiLCBcIlRpbWVzXCIsIHNlcmlmO1xuXG4vLy8gSGVsdmV0aWNhIGZvbnQgc3RhY2suXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiRoZWx2ZXRpY2E6IFwiSGVsdmV0aWNhIE5ldWVcIiwgXCJIZWx2ZXRpY2FcIiwgXCJSb2JvdG9cIiwgXCJBcmlhbFwiLCBzYW5zLXNlcmlmO1xuXG4vLy8gTHVjaWRhIEdyYW5kZSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kbHVjaWRhLWdyYW5kZTogXCJMdWNpZGEgR3JhbmRlXCIsIFwiVGFob21hXCIsIFwiVmVyZGFuYVwiLCBcIkFyaWFsXCIsIHNhbnMtc2VyaWY7XG5cbi8vLyBNb25vc3BhY2UgZm9udCBzdGFjay5cbi8vL1xuLy8vIEB0eXBlIExpc3RcblxuJG1vbm9zcGFjZTogXCJCaXRzdHJlYW0gVmVyYSBTYW5zIE1vbm9cIiwgXCJDb25zb2xhc1wiLCBcIkNvdXJpZXJcIiwgbW9ub3NwYWNlO1xuXG4vLy8gVmVyZGFuYSBmb250IHN0YWNrLlxuLy8vXG4vLy8gQHR5cGUgTGlzdFxuXG4kdmVyZGFuYTogXCJWZXJkYW5hXCIsIFwiR2VuZXZhXCIsIHNhbnMtc2VyaWY7XG4iLCIvLy8gSGlkZXMgdGhlIHRleHQgaW4gYW4gZWxlbWVudCwgY29tbW9ubHkgdXNlZCB0byBzaG93IGFuIGltYWdlLiBTb21lIGVsZW1lbnRzIHdpbGwgbmVlZCBibG9jay1sZXZlbCBzdHlsZXMgYXBwbGllZC5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly96ZWxkbWFuLmNvbS8yMDEyLzAzLzAxL3JlcGxhY2luZy10aGUtOTk5OXB4LWhhY2stbmV3LWltYWdlLXJlcGxhY2VtZW50XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgaGlkZS10ZXh0O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBvdmVyZmxvdzogaGlkZGVuO1xuLy8vICAgICB0ZXh0LWluZGVudDogMTAxJTtcbi8vLyAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlbW92ZSBoZWlnaHQgYXJndW1lbnQgaW4gdjUuMC4wXG5cbkBtaXhpbiBoaWRlLXRleHQoJGhlaWdodDogbnVsbCkge1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LWluZGVudDogMTAxJTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICBAaWYgJGhlaWdodCB7XG4gICAgQHdhcm4gXCJUaGUgYGhpZGUtdGV4dGAgbWl4aW4gaGFzIGNoYW5nZWQgYW5kIG5vIGxvbmdlciByZXF1aXJlcyBhIGhlaWdodC4gVGhlIGhlaWdodCBhcmd1bWVudCB3aWxsIG5vIGxvbmdlciBiZSBhY2NlcHRlZCBpbiB2NS4wLjBcIjtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgbWFyZ2luYCBvbiBzcGVjaWZpYyBzaWRlcyBvZiBhIGJveC4gVXNlIGEgYG51bGxgIHZhbHVlIHRvIOKAnHNraXDigJ0gYSBzaWRlLlxuLy8vXG4vLy8gQHBhcmFtIHtBcmdsaXN0fSAkdmFsc1xuLy8vICAgTGlzdCBvZiBhcmd1bWVudHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBtYXJnaW4obnVsbCAxMHB4IDNlbSAyMHZoKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLWJvdHRvbTogM2VtO1xuLy8vICAgICBtYXJnaW4tbGVmdDogMjB2aDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge21peGlufSBkaXJlY3Rpb25hbC1wcm9wZXJ0eVxuLy8vXG4vLy8gQG91dHB1dCBgbWFyZ2luYFxuXG5AbWl4aW4gbWFyZ2luKCR2YWxzLi4uKSB7XG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShtYXJnaW4sIGZhbHNlLCAkdmFscy4uLik7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYSBxdWljayBtZXRob2QgZm9yIHRhcmdldGluZyBgcGFkZGluZ2Agb24gc3BlY2lmaWMgc2lkZXMgb2YgYSBib3guIFVzZSBhIGBudWxsYCB2YWx1ZSB0byDigJxza2lw4oCdIGEgc2lkZS5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJHZhbHNcbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcGFkZGluZygxMnZoIG51bGwgMTBweCA1JSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIHBhZGRpbmctYm90dG9tOiAxMHB4O1xuLy8vICAgICBwYWRkaW5nLWxlZnQ6IDUlO1xuLy8vICAgICBwYWRkaW5nLXRvcDogMTJ2aDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHttaXhpbn0gZGlyZWN0aW9uYWwtcHJvcGVydHlcbi8vL1xuLy8vIEBvdXRwdXQgYHBhZGRpbmdgXG5cbkBtaXhpbiBwYWRkaW5nKCR2YWxzLi4uKSB7XG4gICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmc6ICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncztcbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiBmYWxzZSAhZ2xvYmFsO1xuICBAaW5jbHVkZSBkaXJlY3Rpb25hbC1wcm9wZXJ0eShwYWRkaW5nLCBmYWxzZSwgJHZhbHMuLi4pO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLWRlcHJlY2F0aW9uLXdhcm5pbmdzLXNldHRpbmcgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFByb3ZpZGVzIGEgcXVpY2sgbWV0aG9kIGZvciBzZXR0aW5nIGFuIGVsZW1lbnTigJlzIHBvc2l0aW9uLiBVc2UgYSBgbnVsbGAgdmFsdWUgdG8g4oCcc2tpcOKAnSBhIHNpZGUuXG4vLy9cbi8vLyBAcGFyYW0ge1Bvc2l0aW9ufSAkcG9zaXRpb24gW3JlbGF0aXZlXVxuLy8vICAgQSBDU1MgcG9zaXRpb24gdmFsdWVcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gJGNvb3JkaW5hdGVzIFtudWxsIG51bGwgbnVsbCBudWxsXVxuLy8vICAgTGlzdCBvZiB2YWx1ZXMgdGhhdCBjb3JyZXNwb25kIHRvIHRoZSA0LXZhbHVlIHN5bnRheCBmb3IgdGhlIGVkZ2VzIG9mIGEgYm94XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgbnVsbCBudWxsIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBsZWZ0OiAxMGVtO1xuLy8vICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4vLy8gICAgIHRvcDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vIEByZXF1aXJlIHtmdW5jdGlvbn0gaXMtbGVuZ3RoXG4vLy8gQHJlcXVpcmUge2Z1bmN0aW9ufSB1bnBhY2tcblxuQG1peGluIHBvc2l0aW9uKCRwb3NpdGlvbjogcmVsYXRpdmUsICRjb29yZGluYXRlczogbnVsbCBudWxsIG51bGwgbnVsbCkge1xuICBAaWYgdHlwZS1vZigkcG9zaXRpb24pID09IGxpc3Qge1xuICAgICRjb29yZGluYXRlczogJHBvc2l0aW9uO1xuICAgICRwb3NpdGlvbjogcmVsYXRpdmU7XG4gIH1cblxuICAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogZmFsc2UgIWdsb2JhbDtcbiAgJGNvb3JkaW5hdGVzOiB1bnBhY2soJGNvb3JkaW5hdGVzKTtcblxuICAkb2Zmc2V0czogKFxuICAgIHRvcDogICAgbnRoKCRjb29yZGluYXRlcywgMSksXG4gICAgcmlnaHQ6ICBudGgoJGNvb3JkaW5hdGVzLCAyKSxcbiAgICBib3R0b206IG50aCgkY29vcmRpbmF0ZXMsIDMpLFxuICAgIGxlZnQ6ICAgbnRoKCRjb29yZGluYXRlcywgNClcbiAgKTtcblxuICBwb3NpdGlvbjogJHBvc2l0aW9uO1xuXG4gIEBlYWNoICRvZmZzZXQsICR2YWx1ZSBpbiAkb2Zmc2V0cyB7XG4gICAgQGlmIGlzLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAgICN7JG9mZnNldH06ICR2YWx1ZTtcbiAgICB9XG4gIH1cbiAgJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzOiAkdXNlci1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBIG1peGluIGZvciBnZW5lcmF0aW5nIHZlbmRvciBwcmVmaXhlcyBvbiBub24tc3RhbmRhcmRpemVkIHByb3BlcnRpZXMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJHByb3BlcnR5XG4vLy8gICBQcm9wZXJ0eSB0byBwcmVmaXhcbi8vL1xuLy8vIEBwYXJhbSB7Kn0gJHZhbHVlXG4vLy8gICBWYWx1ZSB0byB1c2Vcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHByZWZpeGVzXG4vLy8gICBQcmVmaXhlcyB0byBkZWZpbmVcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwcmVmaXhlcihib3JkZXItcmFkaXVzLCAxMHB4LCB3ZWJraXQgbXMgc3BlYyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMTBweDtcbi8vLyAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuLy8vICAgfVxuLy8vXG4vLy8gQHJlcXVpcmUge3ZhcmlhYmxlfSAkcHJlZml4LWZvci13ZWJraXRcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1vemlsbGFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLW1pY3Jvc29mdFxuLy8vIEByZXF1aXJlIHt2YXJpYWJsZX0gJHByZWZpeC1mb3Itb3BlcmFcbi8vLyBAcmVxdWlyZSB7dmFyaWFibGV9ICRwcmVmaXgtZm9yLXNwZWNcblxuQG1peGluIHByZWZpeGVyKCRwcm9wZXJ0eSwgJHZhbHVlLCAkcHJlZml4ZXMpIHtcbiAgQGVhY2ggJHByZWZpeCBpbiAkcHJlZml4ZXMge1xuICAgIEBpZiAkcHJlZml4ID09IHdlYmtpdCB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itd2Via2l0IHtcbiAgICAgICAgLXdlYmtpdC0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbW96IHtcbiAgICAgIEBpZiAkcHJlZml4LWZvci1tb3ppbGxhIHtcbiAgICAgICAgLW1vei0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbXMge1xuICAgICAgQGlmICRwcmVmaXgtZm9yLW1pY3Jvc29mdCB7XG4gICAgICAgIC1tcy0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gbyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itb3BlcmEge1xuICAgICAgICAtby0jeyRwcm9wZXJ0eX06ICR2YWx1ZTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRwcmVmaXggPT0gc3BlYyB7XG4gICAgICBAaWYgJHByZWZpeC1mb3Itc3BlYyB7XG4gICAgICAgICN7JHByb3BlcnR5fTogJHZhbHVlO1xuICAgICAgfVxuICAgIH0gQGVsc2UgIHtcbiAgICAgIEB3YXJuIFwiVW5yZWNvZ25pemVkIHByZWZpeDogI3skcHJlZml4fVwiO1xuICAgIH1cbiAgfVxufVxuXG5AbWl4aW4gZGlzYWJsZS1wcmVmaXgtZm9yLWFsbCgpIHtcbiAgJHByZWZpeC1mb3Itd2Via2l0OiAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1tb3ppbGxhOiAgIGZhbHNlICFnbG9iYWw7XG4gICRwcmVmaXgtZm9yLW1pY3Jvc29mdDogZmFsc2UgIWdsb2JhbDtcbiAgJHByZWZpeC1mb3Itb3BlcmE6ICAgICBmYWxzZSAhZ2xvYmFsO1xuICAkcHJlZml4LWZvci1zcGVjOiAgICAgIGZhbHNlICFnbG9iYWw7XG59XG4iLCJAbWl4aW4gcmV0aW5hLWltYWdlKCRmaWxlbmFtZSwgJGJhY2tncm91bmQtc2l6ZSwgJGV4dGVuc2lvbjogcG5nLCAkcmV0aW5hLWZpbGVuYW1lOiBudWxsLCAkcmV0aW5hLXN1ZmZpeDogXzJ4LCAkYXNzZXQtcGlwZWxpbmU6ICRhc3NldC1waXBlbGluZSkge1xuICBAaW5jbHVkZSBfYm91cmJvbi1kZXByZWNhdGUoXCJyZXRpbmEtaW1hZ2VcIik7XG5cbiAgQGlmICRhc3NldC1waXBlbGluZSB7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gIH0gQGVsc2Uge1xuICAgIGJhY2tncm91bmQtaW1hZ2U6ICAgICAgIHVybChcIiN7JGZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICB9XG5cbiAgQGluY2x1ZGUgaGlkcGkge1xuICAgIEBpZiAkYXNzZXQtcGlwZWxpbmUge1xuICAgICAgQGlmICRyZXRpbmEtZmlsZW5hbWUge1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBpbWFnZS11cmwoXCIjeyRyZXRpbmEtZmlsZW5hbWV9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogaW1hZ2UtdXJsKFwiI3skZmlsZW5hbWV9I3skcmV0aW5hLXN1ZmZpeH0uI3skZXh0ZW5zaW9ufVwiKTtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpZiAkcmV0aW5hLWZpbGVuYW1lIHtcbiAgICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiI3skcmV0aW5hLWZpbGVuYW1lfS4jeyRleHRlbnNpb259XCIpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIiN7JGZpbGVuYW1lfSN7JHJldGluYS1zdWZmaXh9LiN7JGV4dGVuc2lvbn1cIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgYmFja2dyb3VuZC1zaXplOiAkYmFja2dyb3VuZC1zaXplO1xuICB9XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBTZXRzIHRoZSBgd2lkdGhgIGFuZCBgaGVpZ2h0YCBvZiB0aGUgZWxlbWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNpemVcbi8vLyAgIEEgbGlzdCBvZiBhdCBtb3N0IDIgc2l6ZSB2YWx1ZXMuXG4vLy9cbi8vLyAgIElmIHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUgdmFsdWUgaW4gYCRzaXplYCBpdCBpcyB1c2VkIGZvciBib3RoIHdpZHRoIGFuZCBoZWlnaHQuIEFsbCB1bml0cyBhcmUgc3VwcG9ydGVkLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZmlyc3QtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHNpemUoMmVtKTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2l6ZShhdXRvIDEwZW0pO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmZpcnN0LWVsZW1lbnQge1xuLy8vICAgICB3aWR0aDogMmVtO1xuLy8vICAgICBoZWlnaHQ6IDJlbTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLnNlY29uZC1lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IGF1dG87XG4vLy8gICAgIGhlaWdodDogMTBlbTtcbi8vLyAgIH1cbi8vL1xuLy8vIEB0b2RvIFJlZmFjdG9yIGluIDUuMC4wIHRvIHVzZSBhIGNvbW1hLXNlcGFyYXRlZCBhcmd1bWVudFxuXG5AbWl4aW4gc2l6ZSgkdmFsdWUpIHtcbiAgJHdpZHRoOiBudGgoJHZhbHVlLCAxKTtcbiAgJGhlaWdodDogJHdpZHRoO1xuXG4gIEBpZiBsZW5ndGgoJHZhbHVlKSA+IDEge1xuICAgICRoZWlnaHQ6IG50aCgkdmFsdWUsIDIpO1xuICB9XG5cbiAgJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZzogJG91dHB1dC1ib3VyYm9uLWRlcHJlY2F0aW9uLXdhcm5pbmdzO1xuICAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlICFnbG9iYWw7XG5cbiAgQGlmIGlzLXNpemUoJGhlaWdodCkge1xuICAgIGhlaWdodDogJGhlaWdodDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skaGVpZ2h0fWAgaXMgbm90IGEgdmFsaWQgbGVuZ3RoIGZvciB0aGUgYCRoZWlnaHRgIHBhcmFtZXRlciBpbiB0aGUgYHNpemVgIG1peGluLlwiO1xuICB9XG5cbiAgQGlmIGlzLXNpemUoJHdpZHRoKSB7XG4gICAgd2lkdGg6ICR3aWR0aDtcbiAgfSBAZWxzZSB7XG4gICAgQHdhcm4gXCJgI3skd2lkdGh9YCBpcyBub3QgYSB2YWxpZCBsZW5ndGggZm9yIHRoZSBgJHdpZHRoYCBwYXJhbWV0ZXIgaW4gdGhlIGBzaXplYCBtaXhpbi5cIjtcbiAgfVxuXG4gICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5nczogJHVzZXItZGVwcmVjYXRpb24td2FybmluZ3Mtc2V0dGluZyAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gR2VuZXJhdGVzIHZhcmlhYmxlcyBmb3IgYWxsIHRleHQtYmFzZWQgaW5wdXRzLiBQbGVhc2Ugbm90ZSB0aGF0IHlvdSBtdXN0IHVzZSBpbnRlcnBvbGF0aW9uIG9uIHRoZSB2YXJpYWJsZTogYCN7JGFsbC10ZXh0LWlucHV0c31gLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHN9IHtcbi8vLyAgICAgYm9yZGVyOiAxcHggc29saWQgI2YwMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgI3skYWxsLXRleHQtaW5wdXRzLWZvY3VzfSxcbi8vLyAgICN7JGFsbC10ZXh0LWlucHV0cy1ob3Zlcn0ge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAjeyRhbGwtdGV4dC1pbnB1dHMtYWN0aXZlfSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZVwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJlbWFpbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJtb250aFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwic2VhcmNoXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cInRpbWVcIl0sXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdLFxuLy8vICAgaW5wdXRbdHlwZT1cIndlZWtcIl0sXG4vLy8gICB0ZXh0YXJlYSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICNmMDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIGlucHV0W3R5cGU9XCJjb2xvclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRlXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lLWxvY2FsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImVtYWlsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cIm51bWJlclwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGVsXCJdOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cInRleHRcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTpmb2N1cyxcbi8vLyAgIGlucHV0W3R5cGU9XCJ1cmxcIl06Zm9jdXMsXG4vLy8gICBpbnB1dFt0eXBlPVwid2Vla1wiXTpmb2N1cyxcbi8vLyAgIHRleHRhcmVhOmZvY3VzLFxuLy8vICAgaW5wdXRbdHlwZT1cImNvbG9yXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibW9udGhcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwibnVtYmVyXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInNlYXJjaFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0ZWxcIl06aG92ZXIsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ0aW1lXCJdOmhvdmVyLFxuLy8vICAgaW5wdXRbdHlwZT1cInVybFwiXTpob3Zlcixcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmhvdmVyLFxuLy8vICAgdGV4dGFyZWE6aG92ZXIge1xuLy8vICAgICBib3JkZXI6IDFweCBzb2xpZCAjMGYwO1xuLy8vICAgfVxuLy8vXG4vLy8gICBpbnB1dFt0eXBlPVwiY29sb3JcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGVcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cImRhdGV0aW1lXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJkYXRldGltZS1sb2NhbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwiZW1haWxcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cIm1vbnRoXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJudW1iZXJcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJzZWFyY2hcIl06YWN0aXZlLFxuLy8vICAgaW5wdXRbdHlwZT1cInRlbFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGV4dFwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidGltZVwiXTphY3RpdmUsXG4vLy8gICBpbnB1dFt0eXBlPVwidXJsXCJdOmFjdGl2ZSxcbi8vLyAgIGlucHV0W3R5cGU9XCJ3ZWVrXCJdOmFjdGl2ZSxcbi8vLyAgIHRleHRhcmVhOmFjdGl2ZSB7XG4vLy8gICAgIGJvcmRlcjogMXB4IHNvbGlkICMwMGY7XG4vLy8gICB9XG4vLy9cbi8vLyBAcmVxdWlyZSBhc3NpZ24taW5wdXRzXG4vLy9cbi8vLyBAdHlwZSBMaXN0XG5cbiR0ZXh0LWlucHV0cy1saXN0OiAnaW5wdXRbdHlwZT1cImNvbG9yXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cImRhdGVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWVcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwiZW1haWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibW9udGhcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwibnVtYmVyXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInNlYXJjaFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0ZWxcIl0nLFxuICAgICAgICAgICAgICAgICAgICdpbnB1dFt0eXBlPVwidGV4dFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ0aW1lXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXRbdHlwZT1cInVybFwiXScsXG4gICAgICAgICAgICAgICAgICAgJ2lucHV0W3R5cGU9XCJ3ZWVrXCJdJyxcbiAgICAgICAgICAgICAgICAgICAnaW5wdXQ6bm90KFt0eXBlXSknLFxuICAgICAgICAgICAgICAgICAgICd0ZXh0YXJlYSc7XG5cbiR1c2VyLW91dHB1dC1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nOiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M7XG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6IGZhbHNlO1xuXG4kYWxsLXRleHQtaW5wdXRzOiAgICAgICAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCk7XG4kYWxsLXRleHQtaW5wdXRzLWFjdGl2ZTogYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgYWN0aXZlKTtcbiRhbGwtdGV4dC1pbnB1dHMtZm9jdXM6ICBhc3NpZ24taW5wdXRzKCR0ZXh0LWlucHV0cy1saXN0LCBmb2N1cyk7XG4kYWxsLXRleHQtaW5wdXRzLWhvdmVyOiAgYXNzaWduLWlucHV0cygkdGV4dC1pbnB1dHMtbGlzdCwgaG92ZXIpO1xuXG4kb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3M6ICR1c2VyLW91dHB1dC1kZXByZWNhdGlvbi13YXJuaW5ncy1zZXR0aW5nO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ1NTIGN1YmljLWJlemllciB0aW1pbmcgZnVuY3Rpb25zLiBUaW1pbmcgZnVuY3Rpb25zIGNvdXJ0ZXN5IG9mIGpxdWVyeS5lYXNpZSAoZ2l0aHViLmNvbS9qYXVraWEvZWFzaWUpXG4vLy9cbi8vLyBUaW1pbmcgZnVuY3Rpb25zIGFyZSB0aGUgc2FtZSBhcyBkZW1vZWQgaGVyZTogaHR0cDovL2pxdWVyeXVpLmNvbS9yZXNvdXJjZXMvZGVtb3MvZWZmZWN0L2Vhc2luZy5odG1sXG4vLy9cbi8vLyBAdHlwZSBjdWJpYy1iZXppZXJcblxuJGVhc2UtaW4tcXVhZDogICAgICBjdWJpYy1iZXppZXIoMC41NTAsICAwLjA4NSwgMC42ODAsIDAuNTMwKTtcbiRlYXNlLWluLWN1YmljOiAgICAgY3ViaWMtYmV6aWVyKDAuNTUwLCAgMC4wNTUsIDAuNjc1LCAwLjE5MCk7XG4kZWFzZS1pbi1xdWFydDogICAgIGN1YmljLWJlemllcigwLjg5NSwgIDAuMDMwLCAwLjY4NSwgMC4yMjApO1xuJGVhc2UtaW4tcXVpbnQ6ICAgICBjdWJpYy1iZXppZXIoMC43NTUsICAwLjA1MCwgMC44NTUsIDAuMDYwKTtcbiRlYXNlLWluLXNpbmU6ICAgICAgY3ViaWMtYmV6aWVyKDAuNDcwLCAgMC4wMDAsIDAuNzQ1LCAwLjcxNSk7XG4kZWFzZS1pbi1leHBvOiAgICAgIGN1YmljLWJlemllcigwLjk1MCwgIDAuMDUwLCAwLjc5NSwgMC4wMzUpO1xuJGVhc2UtaW4tY2lyYzogICAgICBjdWJpYy1iZXppZXIoMC42MDAsICAwLjA0MCwgMC45ODAsIDAuMzM1KTtcbiRlYXNlLWluLWJhY2s6ICAgICAgY3ViaWMtYmV6aWVyKDAuNjAwLCAtMC4yODAsIDAuNzM1LCAwLjA0NSk7XG5cbiRlYXNlLW91dC1xdWFkOiAgICAgY3ViaWMtYmV6aWVyKDAuMjUwLCAgMC40NjAsIDAuNDUwLCAwLjk0MCk7XG4kZWFzZS1vdXQtY3ViaWM6ICAgIGN1YmljLWJlemllcigwLjIxNSwgIDAuNjEwLCAwLjM1NSwgMS4wMDApO1xuJGVhc2Utb3V0LXF1YXJ0OiAgICBjdWJpYy1iZXppZXIoMC4xNjUsICAwLjg0MCwgMC40NDAsIDEuMDAwKTtcbiRlYXNlLW91dC1xdWludDogICAgY3ViaWMtYmV6aWVyKDAuMjMwLCAgMS4wMDAsIDAuMzIwLCAxLjAwMCk7XG4kZWFzZS1vdXQtc2luZTogICAgIGN1YmljLWJlemllcigwLjM5MCwgIDAuNTc1LCAwLjU2NSwgMS4wMDApO1xuJGVhc2Utb3V0LWV4cG86ICAgICBjdWJpYy1iZXppZXIoMC4xOTAsICAxLjAwMCwgMC4yMjAsIDEuMDAwKTtcbiRlYXNlLW91dC1jaXJjOiAgICAgY3ViaWMtYmV6aWVyKDAuMDc1LCAgMC44MjAsIDAuMTY1LCAxLjAwMCk7XG4kZWFzZS1vdXQtYmFjazogICAgIGN1YmljLWJlemllcigwLjE3NSwgIDAuODg1LCAwLjMyMCwgMS4yNzUpO1xuXG4kZWFzZS1pbi1vdXQtcXVhZDogIGN1YmljLWJlemllcigwLjQ1NSwgIDAuMDMwLCAwLjUxNSwgMC45NTUpO1xuJGVhc2UtaW4tb3V0LWN1YmljOiBjdWJpYy1iZXppZXIoMC42NDUsICAwLjA0NSwgMC4zNTUsIDEuMDAwKTtcbiRlYXNlLWluLW91dC1xdWFydDogY3ViaWMtYmV6aWVyKDAuNzcwLCAgMC4wMDAsIDAuMTc1LCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtcXVpbnQ6IGN1YmljLWJlemllcigwLjg2MCwgIDAuMDAwLCAwLjA3MCwgMS4wMDApO1xuJGVhc2UtaW4tb3V0LXNpbmU6ICBjdWJpYy1iZXppZXIoMC40NDUsICAwLjA1MCwgMC41NTAsIDAuOTUwKTtcbiRlYXNlLWluLW91dC1leHBvOiAgY3ViaWMtYmV6aWVyKDEuMDAwLCAgMC4wMDAsIDAuMDAwLCAxLjAwMCk7XG4kZWFzZS1pbi1vdXQtY2lyYzogIGN1YmljLWJlemllcigwLjc4NSwgIDAuMTM1LCAwLjE1MCwgMC44NjApO1xuJGVhc2UtaW4tb3V0LWJhY2s6ICBjdWJpYy1iZXppZXIoMC42ODAsIC0wLjU1MCwgMC4yNjUsIDEuNTUwKTtcbiIsIkBtaXhpbiB0cmlhbmdsZSgkc2l6ZSwgJGNvbG9yLCAkZGlyZWN0aW9uKSB7XG4gICR3aWR0aDogbnRoKCRzaXplLCAxKTtcbiAgJGhlaWdodDogbnRoKCRzaXplLCBsZW5ndGgoJHNpemUpKTtcbiAgJGZvcmVncm91bmQtY29sb3I6IG50aCgkY29sb3IsIDEpO1xuICAkYmFja2dyb3VuZC1jb2xvcjogaWYobGVuZ3RoKCRjb2xvcikgPT0gMiwgbnRoKCRjb2xvciwgMiksIHRyYW5zcGFyZW50KTtcbiAgaGVpZ2h0OiAwO1xuICB3aWR0aDogMDtcblxuICBAaWYgKCRkaXJlY3Rpb24gPT0gdXApIG9yICgkZGlyZWN0aW9uID09IGRvd24pIG9yICgkZGlyZWN0aW9uID09IHJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBsZWZ0KSB7XG4gICAgJHdpZHRoOiAkd2lkdGggLyAyO1xuICAgICRoZWlnaHQ6IGlmKGxlbmd0aCgkc2l6ZSkgPiAxLCAkaGVpZ2h0LCAkaGVpZ2h0LzIpO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gdXAge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gcmlnaHQge1xuICAgICAgYm9yZGVyLWJvdHRvbTogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfSBAZWxzZSBpZiAkZGlyZWN0aW9uID09IGRvd24ge1xuICAgICAgYm9yZGVyLWxlZnQ6ICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gbGVmdCB7XG4gICAgICBib3JkZXItYm90dG9tOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItcmlnaHQ6ICRoZWlnaHQgc29saWQgJGZvcmVncm91bmQtY29sb3I7XG4gICAgICBib3JkZXItdG9wOiAkd2lkdGggc29saWQgJGJhY2tncm91bmQtY29sb3I7XG4gICAgfVxuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IHVwLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSB1cC1sZWZ0KSB7XG4gICAgYm9yZGVyLXRvcDogJGhlaWdodCBzb2xpZCAkZm9yZWdyb3VuZC1jb2xvcjtcblxuICAgIEBpZiAkZGlyZWN0aW9uID09IHVwLXJpZ2h0IHtcbiAgICAgIGJvcmRlci1sZWZ0OiAgJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH0gQGVsc2UgaWYgJGRpcmVjdGlvbiA9PSB1cC1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBkb3duLXJpZ2h0KSBvciAoJGRpcmVjdGlvbiA9PSBkb3duLWxlZnQpIHtcbiAgICBib3JkZXItYm90dG9tOiAkaGVpZ2h0IHNvbGlkICRmb3JlZ3JvdW5kLWNvbG9yO1xuXG4gICAgQGlmICRkaXJlY3Rpb24gPT0gZG93bi1yaWdodCB7XG4gICAgICBib3JkZXItbGVmdDogICR3aWR0aCBzb2xpZCAkYmFja2dyb3VuZC1jb2xvcjtcbiAgICB9IEBlbHNlIGlmICRkaXJlY3Rpb24gPT0gZG93bi1sZWZ0IHtcbiAgICAgIGJvcmRlci1yaWdodDogJHdpZHRoIHNvbGlkICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIH1cbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC11cCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICRoZWlnaHQgJHdpZHRoO1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWRvd24pIHtcbiAgICBib3JkZXItY29sb3I6ICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkaGVpZ2h0ICR3aWR0aDtcbiAgfSBAZWxzZSBpZiAoJGRpcmVjdGlvbiA9PSBpbnNldC1yaWdodCkge1xuICAgIGJvcmRlci1jb2xvcjogJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGJhY2tncm91bmQtY29sb3IgJGZvcmVncm91bmQtY29sb3I7XG4gICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICBib3JkZXItd2lkdGg6ICR3aWR0aCAkaGVpZ2h0O1xuICB9IEBlbHNlIGlmICgkZGlyZWN0aW9uID09IGluc2V0LWxlZnQpIHtcbiAgICBib3JkZXItY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yICRmb3JlZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgYm9yZGVyLXdpZHRoOiAkd2lkdGggJGhlaWdodDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gY2hhbmdlIHRoZSBgd29yZC13cmFwYCBwcm9wZXJ0eS5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkd3JhcCBbYnJlYWstd29yZF1cbi8vLyAgIFZhbHVlIGZvciB0aGUgYHdvcmQtYnJlYWtgIHByb3BlcnR5LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAud3JhcHBlciB7XG4vLy8gICAgIEBpbmNsdWRlIHdvcmQtd3JhcChicmVhay13b3JkKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC53cmFwcGVyIHtcbi8vLyAgICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbi8vLyAgICAgd29yZC1icmVhazogYnJlYWstYWxsO1xuLy8vICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4vLy8gICB9XG5cbkBtaXhpbiB3b3JkLXdyYXAoJHdyYXA6IGJyZWFrLXdvcmQpIHtcbiAgb3ZlcmZsb3ctd3JhcDogJHdyYXA7XG4gIHdvcmQtd3JhcDogJHdyYXA7XG5cbiAgQGlmICR3cmFwID09IGJyZWFrLXdvcmQge1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgfSBAZWxzZSB7XG4gICAgd29yZC1icmVhazogJHdyYXA7XG4gIH1cbn1cbiIsIi8vIFRoZSBmb2xsb3dpbmcgZmVhdHVyZXMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBNQUpPUiB2ZXJzaW9uIHJlbGVhc2VcblxuQG1peGluIGlubGluZS1ibG9jayB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZShcImlubGluZS1ibG9ja1wiKTtcblxuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG59XG5cbkBtaXhpbiBidXR0b24gKCRzdHlsZTogc2ltcGxlLCAkYmFzZS1jb2xvcjogIzQyOTRmMCwgJHRleHQtc2l6ZTogaW5oZXJpdCwgJHBhZGRpbmc6IDdweCAxOHB4KSB7XG4gIEBpbmNsdWRlIF9ib3VyYm9uLWRlcHJlY2F0ZShcImJ1dHRvblwiKTtcblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IHN0cmluZyBhbmQgdHlwZS1vZigkYmFzZS1jb2xvcikgPT0gY29sb3Ige1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gc3RyaW5nIGFuZCB0eXBlLW9mKCRiYXNlLWNvbG9yKSA9PSBudW1iZXIge1xuICAgICRwYWRkaW5nOiAkdGV4dC1zaXplO1xuICAgICR0ZXh0LXNpemU6ICRiYXNlLWNvbG9yO1xuICAgICRiYXNlLWNvbG9yOiAjNDI5NGYwO1xuXG4gICAgQGlmICRwYWRkaW5nID09IGluaGVyaXQge1xuICAgICAgJHBhZGRpbmc6IDdweCAxOHB4O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IGNvbG9yIHtcbiAgICAkYmFzZS1jb2xvcjogJHN0eWxlO1xuICAgICRzdHlsZTogc2ltcGxlO1xuICAgIEBpbmNsdWRlIGJ1dHRvbnN0eWxlKCRzdHlsZSwgJGJhc2UtY29sb3IsICR0ZXh0LXNpemUsICRwYWRkaW5nKTtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRzdHlsZSkgPT0gY29sb3IgYW5kIHR5cGUtb2YoJGJhc2UtY29sb3IpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICR0ZXh0LXNpemU7XG4gICAgJHRleHQtc2l6ZTogJGJhc2UtY29sb3I7XG4gICAgJGJhc2UtY29sb3I6ICRzdHlsZTtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSBpbmhlcml0IHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICBAaWYgdHlwZS1vZigkc3R5bGUpID09IG51bWJlciB7XG4gICAgJHBhZGRpbmc6ICRiYXNlLWNvbG9yO1xuICAgICR0ZXh0LXNpemU6ICRzdHlsZTtcbiAgICAkYmFzZS1jb2xvcjogIzQyOTRmMDtcbiAgICAkc3R5bGU6IHNpbXBsZTtcblxuICAgIEBpZiAkcGFkZGluZyA9PSAjNDI5NGYwIHtcbiAgICAgICRwYWRkaW5nOiA3cHggMThweDtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBidXR0b25zdHlsZSgkc3R5bGUsICRiYXNlLWNvbG9yLCAkdGV4dC1zaXplLCAkcGFkZGluZyk7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgfVxufVxuXG4vLyBTZWxlY3RvciBTdHlsZSBCdXR0b25cbkBtaXhpbiBidXR0b25zdHlsZSgkdHlwZSwgJGItY29sb3IsICR0LXNpemUsICRwYWQpIHtcbiAgLy8gR3JheXNjYWxlIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIHRydWUsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGlmICR0eXBlID09IHNoaW55IGFuZCAkYi1jb2xvciA9PSBncmF5c2NhbGUoJGItY29sb3IpIHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gcGlsbCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICBAaWYgJHR5cGUgPT0gZmxhdCBhbmQgJGItY29sb3IgPT0gZ3JheXNjYWxlKCRiLWNvbG9yKSB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgdHJ1ZSwgJHQtc2l6ZSwgJHBhZCk7XG4gIH1cblxuICAvLyBDb2xvcmVkIGJ1dHRvblxuICBAaWYgJHR5cGUgPT0gc2ltcGxlIHtcbiAgICBAaW5jbHVkZSBzaW1wbGUoJGItY29sb3IsIGZhbHNlLCAkdC1zaXplLCAkcGFkKTtcbiAgfVxuXG4gIEBlbHNlIGlmICR0eXBlID09IHNoaW55IHtcbiAgICBAaW5jbHVkZSBzaGlueSgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gcGlsbCB7XG4gICAgQGluY2x1ZGUgcGlsbCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG5cbiAgQGVsc2UgaWYgJHR5cGUgPT0gZmxhdCB7XG4gICAgQGluY2x1ZGUgZmxhdCgkYi1jb2xvciwgZmFsc2UsICR0LXNpemUsICRwYWQpO1xuICB9XG59XG5cbi8vIFNpbXBsZSBCdXR0b25cbkBtaXhpbiBzaW1wbGUoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDklLCAgJGxpZ2h0bmVzczogLTE0JSk7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtOCUsICAkbGlnaHRuZXNzOiAgMTUlKTtcbiAgJHN0b3AtZ3JhZGllbnQ6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA5JSwgICRsaWdodG5lc3M6IC0xMSUpO1xuICAkdGV4dC1zaGFkb3c6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogIDE1JSwgJGxpZ2h0bmVzczogLTE4JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlcjogICAgICAgIGdyYXlzY2FsZSgkYm9yZGVyKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXI7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLCAkc3RvcC1ncmFkaWVudCk7XG4gIHBhZGRpbmc6ICRwYWRkaW5nO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIDFweCAwICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogLTQlLCAkbGlnaHRuZXNzOiAtNSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAtNyUsICRsaWdodG5lc3M6ICA1JSk7XG4gICAgJHN0b3AtZ3JhZGllbnQtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246ICA4JSwgJGxpZ2h0bmVzczogLTE0JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiAgICBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgICAgJGluc2V0LXNoYWRvdy1ob3ZlcjogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWhvdmVyKTtcbiAgICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCAoJGJhc2UtY29sb3ItaG92ZXIsICRzdG9wLWdyYWRpZW50LWhvdmVyKTtcblxuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93LWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkc2F0dXJhdGlvbjogOSUsICRsaWdodG5lc3M6IC0xNCUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiA3JSwgJGxpZ2h0bmVzczogLTE3JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICBncmF5c2NhbGUoJGJvcmRlci1hY3RpdmUpO1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm9yZGVyOiAxcHggc29saWQgJGJvcmRlci1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDhweCA0cHggJGluc2V0LXNoYWRvdy1hY3RpdmUsIGluc2V0IDAgMCA4cHggNHB4ICRpbnNldC1zaGFkb3ctYWN0aXZlO1xuICB9XG59XG5cbi8vIFNoaW55IEJ1dHRvblxuQG1peGluIHNoaW55KCRiYXNlLWNvbG9yLCAkZ3JheXNjYWxlOiBmYWxzZSwgJHRleHRzaXplOiBpbmhlcml0LCAkcGFkZGluZzogN3B4IDE4cHgpIHtcbiAgJGNvbG9yOiAgICAgICAgIGhzbCgwLCAwLCAxMDAlKTtcbiAgJGJvcmRlcjogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTExNywgJGdyZWVuOiAtMTExLCAkYmx1ZTogLTgxKTtcbiAgJGJvcmRlci1ib3R0b206IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEyNiwgJGdyZWVuOiAtMTI3LCAkYmx1ZTogLTEyMik7XG4gICRmb3VydGgtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC03OSwgICRncmVlbjogLTcwLCAgJGJsdWU6IC00Nik7XG4gICRpbnNldC1zaGFkb3c6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6ICAzNywgICRncmVlbjogIDI5LCAgJGJsdWU6ICAxMik7XG4gICRzZWNvbmQtc3RvcDogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC01NiwgICRncmVlbjogLTUwLCAgJGJsdWU6IC0zMyk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC0xNDAsICRncmVlbjogLTE0MSwgJGJsdWU6IC0xMTQpO1xuICAkdGhpcmQtc3RvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtODYsICAkZ3JlZW46IC03NSwgICRibHVlOiAtNDgpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gICAgJHRleHQtc2hhZG93OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRzYXR1cmF0aW9uOiAxMCUsICRsaWdodG5lc3M6IDQlKTtcbiAgfVxuXG4gIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICRib3JkZXI6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlcik7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGZvdXJ0aC1zdG9wOiAgIGdyYXlzY2FsZSgkZm91cnRoLXN0b3ApO1xuICAgICRpbnNldC1zaGFkb3c6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdyk7XG4gICAgJHNlY29uZC1zdG9wOiAgIGdyYXlzY2FsZSgkc2Vjb25kLXN0b3ApO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgICAkdGhpcmQtc3RvcDogICAgZ3JheXNjYWxlKCR0aGlyZC1zdG9wKTtcbiAgfVxuXG4gIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRiYXNlLWNvbG9yIDAlLCAkc2Vjb25kLXN0b3AgNTAlLCAkdGhpcmQtc3RvcCA1MCUsICRmb3VydGgtc3RvcCAxMDAlKTtcblxuICBib3JkZXI6IDFweCBzb2xpZCAkYm9yZGVyO1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgYm94LXNoYWRvdzogaW5zZXQgMCAxcHggMCAwICRpbnNldC1zaGFkb3c7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkZmlyc3Qtc3RvcC1ob3ZlcjogIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTEzLCAkZ3JlZW46IC0xNSwgJGJsdWU6IC0xOCk7XG4gICAgJHNlY29uZC1zdG9wLWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRyZWQ6IC02NiwgJGdyZWVuOiAtNjIsICRibHVlOiAtNTEpO1xuICAgICR0aGlyZC1zdG9wLWhvdmVyOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtOTMsICRncmVlbjogLTg1LCAkYmx1ZTogLTY2KTtcbiAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHJlZDogLTg2LCAkZ3JlZW46IC04MCwgJGJsdWU6IC02Myk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRmaXJzdC1zdG9wLWhvdmVyOiAgZ3JheXNjYWxlKCRmaXJzdC1zdG9wLWhvdmVyKTtcbiAgICAgICRzZWNvbmQtc3RvcC1ob3ZlcjogZ3JheXNjYWxlKCRzZWNvbmQtc3RvcC1ob3Zlcik7XG4gICAgICAkdGhpcmQtc3RvcC1ob3ZlcjogIGdyYXlzY2FsZSgkdGhpcmQtc3RvcC1ob3Zlcik7XG4gICAgICAkZm91cnRoLXN0b3AtaG92ZXI6IGdyYXlzY2FsZSgkZm91cnRoLXN0b3AtaG92ZXIpO1xuICAgIH1cblxuICAgIEBpbmNsdWRlIGxpbmVhci1ncmFkaWVudCh0b3AsICRmaXJzdC1zdG9wLWhvdmVyICAwJSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkc2Vjb25kLXN0b3AtaG92ZXIgNTAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlyZC1zdG9wLWhvdmVyICA1MCUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdXJ0aC1zdG9wLWhvdmVyIDEwMCUpO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkcmVkOiAtMTExLCAkZ3JlZW46IC0xMTYsICRibHVlOiAtMTIyKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGluc2V0LXNoYWRvdy1hY3RpdmU6IGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgfVxuXG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDIwcHggMCAkaW5zZXQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBQaWxsIEJ1dHRvblxuQG1peGluIHBpbGwoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuICAkYm9yZGVyLWJvdHRvbTogYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgOCwgJHNhdHVyYXRpb246IC0xMSUsICRsaWdodG5lc3M6IC0yNiUpO1xuICAkYm9yZGVyLXNpZGVzOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yMSUsICRsaWdodG5lc3M6IC0yMSUpO1xuICAkYm9yZGVyLXRvcDogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0zMCUsICRsaWdodG5lc3M6IC0xNSUpO1xuICAkaW5zZXQtc2hhZG93OiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAtMSwgJHNhdHVyYXRpb246IC0xJSwgICRsaWdodG5lc3M6ICA3JSk7XG4gICRzdG9wLWdyYWRpZW50OiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDE0JSwgJGxpZ2h0bmVzczogLTEwJSk7XG4gICR0ZXh0LXNoYWRvdzogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTE5JSwgJGxpZ2h0bmVzczogLTE1JSk7XG5cbiAgQGlmIGlzLWxpZ2h0KCRiYXNlLWNvbG9yKSB7XG4gICAgJGNvbG9yOiAgICAgICBoc2woMCwgMCwgMjAlKTtcbiAgICAkdGV4dC1zaGFkb3c6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDEwJSwgJGxpZ2h0bmVzczogNCUpO1xuICB9XG5cbiAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgJGJvcmRlci1ib3R0b206IGdyYXlzY2FsZSgkYm9yZGVyLWJvdHRvbSk7XG4gICAgJGJvcmRlci1zaWRlczogIGdyYXlzY2FsZSgkYm9yZGVyLXNpZGVzKTtcbiAgICAkYm9yZGVyLXRvcDogICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAkaW5zZXQtc2hhZG93OiAgZ3JheXNjYWxlKCRpbnNldC1zaGFkb3cpO1xuICAgICRzdG9wLWdyYWRpZW50OiBncmF5c2NhbGUoJHN0b3AtZ3JhZGllbnQpO1xuICAgICR0ZXh0LXNoYWRvdzogICBncmF5c2NhbGUoJHRleHQtc2hhZG93KTtcbiAgfVxuXG4gIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICBib3JkZXItY29sb3I6ICRib3JkZXItdG9wICRib3JkZXItc2lkZXMgJGJvcmRlci1ib3R0b207XG4gIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gIGJveC1zaGFkb3c6IGluc2V0IDAgMXB4IDAgMCAkaW5zZXQtc2hhZG93O1xuICBjb2xvcjogJGNvbG9yO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogJHRleHRzaXplO1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgQGluY2x1ZGUgbGluZWFyLWdyYWRpZW50ICgkYmFzZS1jb2xvciwgJHN0b3AtZ3JhZGllbnQpO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRleHQtc2hhZG93OiAwIC0xcHggMXB4ICR0ZXh0LXNoYWRvdztcbiAgYmFja2dyb3VuZC1jbGlwOiBwYWRkaW5nLWJveDtcblxuICAmOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1ob3ZlcjogICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxpZ2h0bmVzczogLTQuNSUpO1xuICAgICRib3JkZXItYm90dG9tOiAgICAgICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogIDEzLjUlLCAkbGlnaHRuZXNzOiAtMzIlKTtcbiAgICAkYm9yZGVyLXNpZGVzOiAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiAgNCwgJHNhdHVyYXRpb246IC0yJSwgICAgJGxpZ2h0bmVzczogLTI3JSk7XG4gICAgJGJvcmRlci10b3A6ICAgICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogLTEsICRzYXR1cmF0aW9uOiAtMTclLCAgICRsaWdodG5lc3M6IC0yMSUpO1xuICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICAgICAgICAgICAkc2F0dXJhdGlvbjogLTElLCAgICAkbGlnaHRuZXNzOiAgMyUpO1xuICAgICRzdG9wLWdyYWRpZW50LWhvdmVyOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA4LCAkc2F0dXJhdGlvbjogLTQlLCAgICAkbGlnaHRuZXNzOiAtMTUuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6ICA1LCAkc2F0dXJhdGlvbjogLTUlLCAgICAkbGlnaHRuZXNzOiAtMjIlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGdyYXlzY2FsZSgkYmFzZS1jb2xvci1ob3Zlcik7XG4gICAgICAkYm9yZGVyLWJvdHRvbTogICAgICAgZ3JheXNjYWxlKCRib3JkZXItYm90dG9tKTtcbiAgICAgICRib3JkZXItc2lkZXM6ICAgICAgICBncmF5c2NhbGUoJGJvcmRlci1zaWRlcyk7XG4gICAgICAkYm9yZGVyLXRvcDogICAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItdG9wKTtcbiAgICAgICRpbnNldC1zaGFkb3ctaG92ZXI6ICBncmF5c2NhbGUoJGluc2V0LXNoYWRvdy1ob3Zlcik7XG4gICAgICAkc3RvcC1ncmFkaWVudC1ob3ZlcjogZ3JheXNjYWxlKCRzdG9wLWdyYWRpZW50LWhvdmVyKTtcbiAgICAgICR0ZXh0LXNoYWRvdy1ob3ZlcjogICBncmF5c2NhbGUoJHRleHQtc2hhZG93LWhvdmVyKTtcbiAgICB9XG5cbiAgICBAaW5jbHVkZSBsaW5lYXItZ3JhZGllbnQgKCRiYXNlLWNvbG9yLWhvdmVyLCAkc3RvcC1ncmFkaWVudC1ob3Zlcik7XG5cbiAgICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItdG9wO1xuICAgIGJvcmRlci1jb2xvcjogJGJvcmRlci10b3AgJGJvcmRlci1zaWRlcyAkYm9yZGVyLWJvdHRvbTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAwIDAgJGluc2V0LXNoYWRvdy1ob3ZlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWhvdmVyO1xuICB9XG5cbiAgJjphY3RpdmU6bm90KDpkaXNhYmxlZCksXG4gICY6Zm9jdXM6bm90KDpkaXNhYmxlZCkge1xuICAgICRhY3RpdmUtY29sb3I6ICAgICAgICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA0LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMTAlKTtcbiAgICAkYm9yZGVyLWFjdGl2ZTogICAgICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJGh1ZTogNiwgICRzYXR1cmF0aW9uOiAtMi41JSwgJGxpZ2h0bmVzczogLTMwJSk7XG4gICAgJGJvcmRlci1ib3R0b20tYWN0aXZlOiBhZGp1c3QtY29sb3IoJGJhc2UtY29sb3IsICRodWU6IDExLCAkc2F0dXJhdGlvbjogIDYlLCAgICRsaWdodG5lc3M6IC0zMSUpO1xuICAgICRpbnNldC1zaGFkb3ctYWN0aXZlOiAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA5LCAgJHNhdHVyYXRpb246ICAyJSwgICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuICAgICR0ZXh0LXNoYWRvdy1hY3RpdmU6ICAgYWRqdXN0LWNvbG9yKCRiYXNlLWNvbG9yLCAkaHVlOiA1LCAgJHNhdHVyYXRpb246IC0xMiUsICAkbGlnaHRuZXNzOiAtMjEuNSUpO1xuXG4gICAgQGlmICRncmF5c2NhbGUgPT0gdHJ1ZSB7XG4gICAgICAkYWN0aXZlLWNvbG9yOiAgICAgICAgIGdyYXlzY2FsZSgkYWN0aXZlLWNvbG9yKTtcbiAgICAgICRib3JkZXItYWN0aXZlOiAgICAgICAgZ3JheXNjYWxlKCRib3JkZXItYWN0aXZlKTtcbiAgICAgICRib3JkZXItYm90dG9tLWFjdGl2ZTogZ3JheXNjYWxlKCRib3JkZXItYm90dG9tLWFjdGl2ZSk7XG4gICAgICAkaW5zZXQtc2hhZG93LWFjdGl2ZTogIGdyYXlzY2FsZSgkaW5zZXQtc2hhZG93LWFjdGl2ZSk7XG4gICAgICAkdGV4dC1zaGFkb3ctYWN0aXZlOiAgIGdyYXlzY2FsZSgkdGV4dC1zaGFkb3ctYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kOiAkYWN0aXZlLWNvbG9yO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItYWN0aXZlO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkYm9yZGVyLWJvdHRvbS1hY3RpdmU7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDZweCAzcHggJGluc2V0LXNoYWRvdy1hY3RpdmU7XG4gICAgdGV4dC1zaGFkb3c6IDAgLTFweCAxcHggJHRleHQtc2hhZG93LWFjdGl2ZTtcbiAgfVxufVxuXG4vLyBGbGF0IEJ1dHRvblxuQG1peGluIGZsYXQoJGJhc2UtY29sb3IsICRncmF5c2NhbGU6IGZhbHNlLCAkdGV4dHNpemU6IGluaGVyaXQsICRwYWRkaW5nOiA3cHggMThweCkge1xuICAkY29sb3I6ICAgICAgICAgaHNsKDAsIDAsIDEwMCUpO1xuXG4gIEBpZiBpcy1saWdodCgkYmFzZS1jb2xvcikge1xuICAgICRjb2xvcjogICAgICAgaHNsKDAsIDAsIDIwJSk7XG4gIH1cblxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvcjtcbiAgYm9yZGVyLXJhZGl1czogM3B4O1xuICBib3JkZXI6IDA7XG4gIGNvbG9yOiAkY29sb3I7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zaXplOiAkdGV4dHNpemU7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xuICBwYWRkaW5nOiAkcGFkZGluZztcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNsaXA6IHBhZGRpbmctYm94O1xuXG4gICY6aG92ZXI6bm90KDpkaXNhYmxlZCl7XG4gICAgJGJhc2UtY29sb3ItaG92ZXI6ICAgIGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IDQlLCAkbGlnaHRuZXNzOiA1JSk7XG5cbiAgICBAaWYgJGdyYXlzY2FsZSA9PSB0cnVlIHtcbiAgICAgICRiYXNlLWNvbG9yLWhvdmVyOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItaG92ZXIpO1xuICAgIH1cblxuICAgIGJhY2tncm91bmQtY29sb3I6ICRiYXNlLWNvbG9yLWhvdmVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuXG4gICY6YWN0aXZlOm5vdCg6ZGlzYWJsZWQpLFxuICAmOmZvY3VzOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICAkYmFzZS1jb2xvci1hY3RpdmU6IGFkanVzdC1jb2xvcigkYmFzZS1jb2xvciwgJHNhdHVyYXRpb246IC00JSwgJGxpZ2h0bmVzczogLTUlKTtcblxuICAgIEBpZiAkZ3JheXNjYWxlID09IHRydWUge1xuICAgICAgJGJhc2UtY29sb3ItYWN0aXZlOiBncmF5c2NhbGUoJGJhc2UtY29sb3ItYWN0aXZlKTtcbiAgICB9XG5cbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1jb2xvci1hY3RpdmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICB9XG59XG5cbi8vIEZsZXhpYmxlIGdyaWRcbkBmdW5jdGlvbiBmbGV4LWdyaWQoJGNvbHVtbnMsICRjb250YWluZXItY29sdW1uczogJGZnLW1heC1jb2x1bW5zKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZmxleC1ncmlkYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuIEZvciBncmlkIGZ1bmN0aW9ucywgY2hlY2sgb3V0IEJvdXJib24ncyBzaXN0ZXIgbGlicmFyeVwiICtcbiAgICBcIk5lYXQuXCI7XG4gIH1cblxuICAkd2lkdGg6ICRjb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29sdW1ucyAtIDEpICogJGZnLWd1dHRlcjtcbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkd2lkdGggLyAkY29udGFpbmVyLXdpZHRoKTtcbn1cblxuLy8gRmxleGlibGUgZ3V0dGVyXG5AZnVuY3Rpb24gZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMsICRndXR0ZXI6ICRmZy1ndXR0ZXIpIHtcbiAgQGlmICRvdXRwdXQtYm91cmJvbi1kZXByZWNhdGlvbi13YXJuaW5ncyA9PSB0cnVlIHtcbiAgICBAd2FybiBcIltCb3VyYm9uXSBbRGVwcmVjYXRpb25dIGBmbGV4LWd1dHRlcmAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLiBGb3IgZ3JpZCBmdW5jdGlvbnMsIGNoZWNrIG91dCBCb3VyYm9uJ3Mgc2lzdGVyIGxpYnJhcnlcIiArXG4gICAgXCJOZWF0LlwiO1xuICB9XG5cbiAgJGNvbnRhaW5lci13aWR0aDogJGNvbnRhaW5lci1jb2x1bW5zICogJGZnLWNvbHVtbiArICgkY29udGFpbmVyLWNvbHVtbnMgLSAxKSAqICRmZy1ndXR0ZXI7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbkBmdW5jdGlvbiBncmlkLXdpZHRoKCRuKSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZ3JpZC13aWR0aGAgaXMgZGVwcmVjYXRlZCBhbmQgd2lsbCBiZSBcIiArXG4gICAgXCJyZW1vdmVkIGluIDUuMC4wLiBGb3IgZ3JpZCBmdW5jdGlvbnMsIGNoZWNrIG91dCBCb3VyYm9uJ3Mgc2lzdGVyIGxpYnJhcnlcIiArXG4gICAgXCJOZWF0LlwiO1xuICB9XG5cbiAgQHJldHVybiAkbiAqICRndy1jb2x1bW4gKyAoJG4gLSAxKSAqICRndy1ndXR0ZXI7XG59XG5cbkBmdW5jdGlvbiBnb2xkZW4tcmF0aW8oJHZhbHVlLCAkaW5jcmVtZW50KSB7XG4gIEBpZiAkb3V0cHV0LWJvdXJib24tZGVwcmVjYXRpb24td2FybmluZ3MgPT0gdHJ1ZSB7XG4gICAgQHdhcm4gXCJbQm91cmJvbl0gW0RlcHJlY2F0aW9uXSBgZ29sZGVuLXJhdGlvYCBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIFwiICtcbiAgICBcInJlbW92ZWQgaW4gNS4wLjAuIFlvdSBjYW4gdXNlIHRoZSBgbW9kdWxhci1zY2FsZWAgZnVuY3Rpb24gaW5zdGVhZC5cIjtcbiAgfVxuXG4gIEByZXR1cm4gbW9kdWxhci1zY2FsZSgkaW5jcmVtZW50LCAkdmFsdWUsICRyYXRpbzogJGdvbGRlbik7XG59XG5cbkBtaXhpbiBib3gtc2l6aW5nKCRib3gpIHtcbiAgQGluY2x1ZGUgX2JvdXJib24tZGVwcmVjYXRlLWZvci1wcmVmaXhpbmcoXCJib3gtc2l6aW5nXCIpO1xuXG4gIEBpbmNsdWRlIHByZWZpeGVyKGJveC1zaXppbmcsICRib3gsIHdlYmtpdCBtb3ogc3BlYyk7XG59XG4iLCIvLyBOZWF0IDEuOS4xXG4vLyBodHRwOi8vbmVhdC5ib3VyYm9uLmlvXG4vLyBDb3B5cmlnaHQgMjAxMi0yMDE1IHRob3VnaHRib3QsIGluYy5cbi8vIE1JVCBMaWNlbnNlXG5cbi8vIEhlbHBlcnNcbkBpbXBvcnQgXCJuZWF0LWhlbHBlcnNcIjtcblxuLy8gR3JpZFxuQGltcG9ydCBcImdyaWQvcHJpdmF0ZVwiO1xuQGltcG9ydCBcImdyaWQvYm94LXNpemluZ1wiO1xuQGltcG9ydCBcImdyaWQvb21lZ2FcIjtcbkBpbXBvcnQgXCJncmlkL291dGVyLWNvbnRhaW5lclwiO1xuQGltcG9ydCBcImdyaWQvc3Bhbi1jb2x1bW5zXCI7XG5AaW1wb3J0IFwiZ3JpZC9yb3dcIjtcbkBpbXBvcnQgXCJncmlkL3NoaWZ0XCI7XG5AaW1wb3J0IFwiZ3JpZC9wYWRcIjtcbkBpbXBvcnQgXCJncmlkL2ZpbGwtcGFyZW50XCI7XG5AaW1wb3J0IFwiZ3JpZC9tZWRpYVwiO1xuQGltcG9ydCBcImdyaWQvcmVzZXQtZGlzcGxheVwiO1xuQGltcG9ydCBcImdyaWQvdG8tZGVwcmVjYXRlXCI7XG5AaW1wb3J0IFwiZ3JpZC92aXN1YWwtZ3JpZFwiO1xuQGltcG9ydCBcImdyaWQvZGlzcGxheS1jb250ZXh0XCI7XG5AaW1wb3J0IFwiZ3JpZC9kaXJlY3Rpb24tY29udGV4dFwiO1xuIiwiLy8gTWl4aW5zXG5AaW1wb3J0IFwibWl4aW5zL2NsZWFyZml4XCI7XG5cbi8vIEZ1bmN0aW9uc1xuQGltcG9ydCBcImZ1bmN0aW9ucy9wcml2YXRlXCI7XG5AaW1wb3J0IFwiZnVuY3Rpb25zL25ldy1icmVha3BvaW50XCI7XG5cbi8vIFNldHRpbmdzXG5AaW1wb3J0IFwic2V0dGluZ3MvZ3JpZFwiO1xuQGltcG9ydCBcInNldHRpbmdzL3Zpc3VhbC1ncmlkXCI7XG5AaW1wb3J0IFwic2V0dGluZ3MvZGlzYWJsZS13YXJuaW5nc1wiO1xuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUHJvdmlkZXMgYW4gZWFzeSB3YXkgdG8gaW5jbHVkZSBhIGNsZWFyZml4IGZvciBjb250YWluaW5nIGZsb2F0cy5cbi8vL1xuLy8vIEBsaW5rIGh0dHA6Ly9nb28uZ2wveVA1aGlaXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIGNsZWFyZml4O1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzXG4vLy8gICAuZWxlbWVudDo6YWZ0ZXIge1xuLy8vICAgICBjbGVhcjogYm90aDtcbi8vLyAgICAgY29udGVudDogXCJcIjtcbi8vLyAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICB9XG5cbkBtaXhpbiBjbGVhcmZpeCB7XG4gICY6OmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59XG4iLCIvLyBOb3QgZnVuY3Rpb24gZm9yIExpYnNhc3MgY29tcGF0aWJpbGl0eVxuLy8gaHR0cHM6Ly9naXRodWIuY29tL3Nhc3MvbGlic2Fzcy9pc3N1ZXMvMzY4XG5AZnVuY3Rpb24gaXMtbm90KCR2YWx1ZSkge1xuICBAcmV0dXJuIGlmKCR2YWx1ZSwgZmFsc2UsIHRydWUpO1xufVxuXG4vLyBDaGVja3MgaWYgYSBudW1iZXIgaXMgZXZlblxuQGZ1bmN0aW9uIGlzLWV2ZW4oJGludCkge1xuICBAcmV0dXJuICRpbnQgJSAyID09IDA7XG59XG5cbi8vIENoZWNrcyBpZiBhbiBlbGVtZW50IGJlbG9uZ3MgdG8gYSBsaXN0IG9yIG5vdFxuQGZ1bmN0aW9uIGJlbG9uZ3MtdG8oJHRlc3RlZC1pdGVtLCAkbGlzdCkge1xuICBAcmV0dXJuIGlzLW5vdChub3QtYmVsb25ncy10bygkdGVzdGVkLWl0ZW0sICRsaXN0KSk7XG59XG5cbkBmdW5jdGlvbiBub3QtYmVsb25ncy10bygkdGVzdGVkLWl0ZW0sICRsaXN0KSB7XG4gIEByZXR1cm4gaXMtbm90KGluZGV4KCRsaXN0LCAkdGVzdGVkLWl0ZW0pKTtcbn1cblxuLy8gQ29udGFpbnMgZGlzcGxheSB2YWx1ZVxuQGZ1bmN0aW9uIGNvbnRhaW5zLWRpc3BsYXktdmFsdWUoJHF1ZXJ5KSB7XG4gIEByZXR1cm4gYmVsb25ncy10byh0YWJsZSwgJHF1ZXJ5KVxuICAgICAgIG9yIGJlbG9uZ3MtdG8oYmxvY2ssICRxdWVyeSlcbiAgICAgICBvciBiZWxvbmdzLXRvKGlubGluZS1ibG9jaywgJHF1ZXJ5KVxuICAgICAgIG9yIGJlbG9uZ3MtdG8oaW5saW5lLCAkcXVlcnkpO1xufVxuXG4vLyBQYXJzZXMgdGhlIGZpcnN0IGFyZ3VtZW50IG9mIHNwYW4tY29sdW1ucygpXG5AZnVuY3Rpb24gY29udGFpbmVyLXNwYW4oJHNwYW46ICRzcGFuKSB7XG4gIEBpZiBsZW5ndGgoJHNwYW4pID09IDMge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzcGFuLCAzKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNwYW4pID09IDIge1xuICAgICRjb250YWluZXItY29sdW1uczogbnRoKCRzcGFuLCAyKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfVxuXG4gIEByZXR1cm4gJGdyaWQtY29sdW1ucztcbn1cblxuQGZ1bmN0aW9uIGNvbnRhaW5lci1zaGlmdCgkc2hpZnQ6ICRzaGlmdCkge1xuICAkcGFyZW50LWNvbHVtbnM6ICRncmlkLWNvbHVtbnMgIWRlZmF1bHQgIWdsb2JhbDtcblxuICBAaWYgbGVuZ3RoKCRzaGlmdCkgPT0gMyB7XG4gICAgJGNvbnRhaW5lci1jb2x1bW5zOiBudGgoJHNoaWZ0LCAzKTtcbiAgICBAcmV0dXJuICRjb250YWluZXItY29sdW1ucztcbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHNoaWZ0KSA9PSAyIHtcbiAgICAkY29udGFpbmVyLWNvbHVtbnM6IG50aCgkc2hpZnQsIDIpO1xuICAgIEByZXR1cm4gJGNvbnRhaW5lci1jb2x1bW5zO1xuICB9XG5cbiAgQHJldHVybiAkcGFyZW50LWNvbHVtbnM7XG59XG5cbi8vIEdlbmVyYXRlcyBhIHN0cmlwZWQgYmFja2dyb3VuZFxuQGZ1bmN0aW9uIGdyYWRpZW50LXN0b3BzKCRncmlkLWNvbHVtbnMsICRjb2xvcjogJHZpc3VhbC1ncmlkLWNvbG9yKSB7XG4gICR0cmFuc3BhcmVudDogdHJhbnNwYXJlbnQ7XG4gICRhbHQtY29sb3I6IGRhcmtlbigkY29sb3IsIDEwJSk7XG5cbiAgJGNvbHVtbi13aWR0aDogZmxleC1ncmlkKDEsICRncmlkLWNvbHVtbnMpO1xuICAkZ3V0dGVyLXdpZHRoOiBmbGV4LWd1dHRlcigkZ3JpZC1jb2x1bW5zKTtcbiAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4td2lkdGg7XG4gICRhbHRlcm5hdGU6IGZhbHNlO1xuXG4gICR2YWx1ZXM6ICgkdHJhbnNwYXJlbnQgMCwgaWYoJGFsdGVybmF0ZSwgJGNvbG9yLCAkYWx0LWNvbG9yKSAwKTtcblxuICBAZm9yICRpIGZyb20gMSB0byAkZ3JpZC1jb2x1bW5zKjIge1xuICAgIEBpZiBpcy1ldmVuKCRpKSB7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJHRyYW5zcGFyZW50ICRjb2x1bW4tb2Zmc2V0LCBjb21tYSk7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgaWYoJGFsdGVybmF0ZSwgJGNvbG9yLCAkYWx0LWNvbG9yKSAkY29sdW1uLW9mZnNldCwgY29tbWEpO1xuICAgICAgJGNvbHVtbi1vZmZzZXQ6ICRjb2x1bW4tb2Zmc2V0ICsgJGNvbHVtbi13aWR0aDtcbiAgICB9IEBlbHNlIHtcbiAgICAgICR2YWx1ZXM6IGFwcGVuZCgkdmFsdWVzLCBpZigkYWx0ZXJuYXRlLCAkY29sb3IsICRhbHQtY29sb3IpICRjb2x1bW4tb2Zmc2V0LCBjb21tYSk7XG4gICAgICAkdmFsdWVzOiBhcHBlbmQoJHZhbHVlcywgJHRyYW5zcGFyZW50ICRjb2x1bW4tb2Zmc2V0LCBjb21tYSk7XG4gICAgICAkY29sdW1uLW9mZnNldDogJGNvbHVtbi1vZmZzZXQgKyAkZ3V0dGVyLXdpZHRoO1xuXG4gICAgICAkYWx0ZXJuYXRlOiBub3QgJGFsdGVybmF0ZTtcbiAgICB9XG4gIH1cblxuICBAcmV0dXJuICR2YWx1ZXM7XG59XG5cbi8vIExheW91dCBkaXJlY3Rpb25cbkBmdW5jdGlvbiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQsICRkZWZhdWx0KSB7XG4gICRkaXJlY3Rpb246IG51bGw7XG5cbiAgQGlmIHRvLXVwcGVyLWNhc2UoJGxheW91dCkgPT0gXCJMVFJcIiBvciB0by11cHBlci1jYXNlKCRsYXlvdXQpID09IFwiUlRMXCIge1xuICAgICRkaXJlY3Rpb246IGRpcmVjdGlvbi1mcm9tLWxheW91dCgkbGF5b3V0KTtcbiAgfSBAZWxzZSB7XG4gICAgJGRpcmVjdGlvbjogZGlyZWN0aW9uLWZyb20tbGF5b3V0KCRkZWZhdWx0KTtcbiAgfVxuXG4gIEByZXR1cm4gJGRpcmVjdGlvbjtcbn1cblxuQGZ1bmN0aW9uIGRpcmVjdGlvbi1mcm9tLWxheW91dCgkbGF5b3V0KSB7XG4gICRkaXJlY3Rpb246IG51bGw7XG5cbiAgQGlmIHRvLXVwcGVyLWNhc2UoJGxheW91dCkgPT0gXCJMVFJcIiB7XG4gICAgJGRpcmVjdGlvbjogcmlnaHQ7XG4gIH0gQGVsc2Uge1xuICAgICRkaXJlY3Rpb246IGxlZnQ7XG4gIH1cblxuICBAcmV0dXJuICRkaXJlY3Rpb247XG59XG5cbkBmdW5jdGlvbiBnZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pIHtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogbGVmdDtcblxuICBAaWYgJGRpcmVjdGlvbiA9PSBcImxlZnRcIiB7XG4gICAgJG9wcG9zaXRlLWRpcmVjdGlvbjogcmlnaHQ7XG4gIH1cblxuICBAcmV0dXJuICRvcHBvc2l0ZS1kaXJlY3Rpb247XG59XG5cblxuQGZ1bmN0aW9uIHRvLW51bWJlcigkc3RyaW5nKSB7XG4gICRzdHJpbmc6IHN0ci1yZXBsYWNlKCRzdHJpbmcsIFwiIFwiLCBcIlwiKTtcbiAgJHN0cmluZ3M6IFwiMFwiIFwiMVwiIFwiMlwiIFwiM1wiIFwiNFwiIFwiNVwiIFwiNlwiIFwiN1wiIFwiOFwiIFwiOVwiO1xuICAkbnVtYmVyczogIDAgMSAyIDMgNCA1IDYgNyA4IDk7XG4gICRyZXN1bHQ6IDA7XG5cbiAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCBzdHItbGVuZ3RoKCRzdHJpbmcpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHN0cmluZywgJGksICRpKTtcbiAgICAkaW5kZXg6IGluZGV4KCRzdHJpbmdzLCAkY2hhcmFjdGVyKTtcblxuICAgIEBpZiBub3QgJGluZGV4IHtcbiAgICAgIEB3YXJuIFwiVW5rbm93biBjaGFyYWN0ZXIgYCN7JGNoYXJhY3Rlcn1gLlwiO1xuICAgICAgQHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAkbnVtYmVyOiBudGgoJG51bWJlcnMsICRpbmRleCk7XG4gICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgJG51bWJlcjtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuQGZ1bmN0aW9uIHN0ci1yZXBsYWNlKCRzdHJpbmcsICRzZWFyY2gsICRyZXBsYWNlOiBcIlwiKSB7XG4gICRpbmRleDogc3RyLWluZGV4KCRzdHJpbmcsICRzZWFyY2gpO1xuXG4gIEBpZiAkaW5kZXgge1xuICAgICRmaXJzdDogc3RyLXNsaWNlKCRzdHJpbmcsIDEsICRpbmRleCAtIDEpO1xuICAgICRsYXN0LXNsaWNlOiBzdHItc2xpY2UoJHN0cmluZywgJGluZGV4ICsgc3RyLWxlbmd0aCgkc2VhcmNoKSk7XG4gICAgJGxhc3Q6IHN0ci1yZXBsYWNlKCRsYXN0LXNsaWNlLCAkc2VhcmNoLCAkcmVwbGFjZSk7XG4gICAgQHJldHVybiAkZmlyc3QgKyAkcmVwbGFjZSArICRsYXN0O1xuICB9XG5cbiAgQHJldHVybiAkc3RyaW5nO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUmV0dXJucyBhIG1lZGlhIGNvbnRleHQgKG1lZGlhIHF1ZXJ5IC8gZ3JpZCBjb250ZXh0KSB0aGF0IGNhbiBiZSBzdG9yZWQgaW4gYSB2YXJpYWJsZSBhbmQgcGFzc2VkIHRvIGBtZWRpYSgpYCBhcyBhIHNpbmdsZS1rZXl3b3JkIGFyZ3VtZW50LiBNZWRpYSBjb250ZXh0cyBkZWZpbmVkIHVzaW5nIGBuZXctYnJlYWtwb2ludGAgYXJlIHVzZWQgYnkgdGhlIHZpc3VhbCBncmlkLCBhcyBsb25nIGFzIHRoZXkgYXJlIGRlZmluZWQgYmVmb3JlIGltcG9ydGluZyBOZWF0LlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkcXVlcnlcbi8vLyAgIEEgbGlzdCBvZiBtZWRpYSBxdWVyeSBmZWF0dXJlcyBhbmQgdmFsdWVzLiBFYWNoIGAkZmVhdHVyZWAgc2hvdWxkIGhhdmUgYSBjb3JyZXNwb25kaW5nIGAkdmFsdWVgLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGAkdmFsdWVgIGluIGAkcXVlcnlgLCBgJGRlZmF1bHQtZmVhdHVyZWAgaXMgZ29pbmcgdG8gYmUgdXNlZC5cbi8vL1xuLy8vICAgVGhlIG51bWJlciBvZiB0b3RhbCBjb2x1bW5zIGluIHRoZSBncmlkIGNhbiBiZSBzZXQgYnkgcGFzc2luZyBgJGNvbHVtbnNgIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QgKG92ZXJyaWRlcyBgJHRvdGFsLWNvbHVtbnNgKS4gRm9yIGEgbGlzdCBvZiB2YWxpZCB2YWx1ZXMgZm9yIGAkZmVhdHVyZWAsIGNsaWNrIFtoZXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWExKS5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyICh1bml0bGVzcyl9ICR0b3RhbC1jb2x1bW5zIFskZ3JpZC1jb2x1bW5zXVxuLy8vICAgLSBOdW1iZXIgb2YgY29sdW1ucyB0byB1c2UgaW4gdGhlIG5ldyBncmlkIGNvbnRleHQuIENhbiBiZSBzZXQgYXMgYSBzaG9ydGhhbmQgaW4gdGhlIGZpcnN0IHBhcmFtZXRlci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgJG1vYmlsZTogbmV3LWJyZWFrcG9pbnQobWF4LXdpZHRoIDQ4MHB4IDQpO1xuLy8vXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG1lZGlhKCRtb2JpbGUpIHtcbi8vLyAgICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNCk7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ4MHB4KSB7XG4vLy8gICAgIC5lbGVtZW50IHtcbi8vLyAgICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgICBtYXJnaW4tcmlnaHQ6IDcuNDIyOTclO1xuLy8vICAgICAgIHdpZHRoOiAxMDAlO1xuLy8vICAgICB9XG4vLy8gICAgIC5lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgICAgfVxuLy8vICAgfVxuXG5AZnVuY3Rpb24gbmV3LWJyZWFrcG9pbnQoJHF1ZXJ5OiAkZmVhdHVyZSAkdmFsdWUgJGNvbHVtbnMsICR0b3RhbC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICAkcXVlcnk6ICRkZWZhdWx0LWZlYXR1cmUgbnRoKCRxdWVyeSwgMSkgJHRvdGFsLWNvbHVtbnM7XG4gIH0gQGVsc2UgaWYgaXMtZXZlbihsZW5ndGgoJHF1ZXJ5KSkge1xuICAgICRxdWVyeTogYXBwZW5kKCRxdWVyeSwgJHRvdGFsLWNvbHVtbnMpO1xuICB9XG5cbiAgQGlmIGlzLW5vdChiZWxvbmdzLXRvKCRxdWVyeSwgJHZpc3VhbC1ncmlkLWJyZWFrcG9pbnRzKSkge1xuICAgICR2aXN1YWwtZ3JpZC1icmVha3BvaW50czogYXBwZW5kKCR2aXN1YWwtZ3JpZC1icmVha3BvaW50cywgJHF1ZXJ5LCBjb21tYSkgIWdsb2JhbDtcbiAgfVxuXG4gIEByZXR1cm4gJHF1ZXJ5O1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU2V0cyB0aGUgcmVsYXRpdmUgd2lkdGggb2YgYSBzaW5nbGUgZ3JpZCBjb2x1bW4uIFRoZSB1bml0IHVzZWQgc2hvdWxkIGJlIHRoZSBzYW1lIG9uZSB1c2VkIHRvIGRlZmluZSBgJGd1dHRlcmAuIFNldCB3aXRoIGEgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKFVuaXQpXG5cbiRjb2x1bW46IDQuMjM1OGVtICFkZWZhdWx0O1xuXG4vLy8gU2V0cyB0aGUgcmVsYXRpdmUgd2lkdGggb2YgYSBzaW5nbGUgZ3JpZCBndXR0ZXIuIFRoZSB1bml0IHVzZWQgc2hvdWxkIGJlIHRoZSBzYW1lIG9uZSB1c2VkIHRvIGRlZmluZSBgJGNvbHVtbmAuIFNldCB3aXRoIHRoZSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAoVW5pdClcblxuJGd1dHRlcjogMS42MThlbSAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIHRvdGFsIG51bWJlciBvZiBjb2x1bW5zIGluIHRoZSBncmlkLiBJdHMgdmFsdWUgY2FuIGJlIG92ZXJyaWRkZW4gaW5zaWRlIGEgbWVkaWEgcXVlcnkgdXNpbmcgdGhlIGBtZWRpYSgpYCBtaXhpbi4gU2V0IHdpdGggdGhlIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgTnVtYmVyIChVbml0bGVzcylcblxuJGdyaWQtY29sdW1uczogMTIgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBtYXgtd2lkdGggcHJvcGVydHkgb2YgdGhlIGVsZW1lbnQgdGhhdCBpbmNsdWRlcyBgb3V0ZXItY29udGFpbmVyKClgLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBOdW1iZXIgKFVuaXQpXG4vLy9cbiRtYXgtd2lkdGg6IDEyMDBweCAhZGVmYXVsdDtcblxuLy8vIFdoZW4gc2V0IHRvIHRydWUsIGl0IHNldHMgdGhlIGJveC1zaXppbmcgcHJvcGVydHkgb2YgYWxsIGVsZW1lbnRzIHRvIGBib3JkZXItYm94YC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIGh0bWwge1xuLy8vICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OyB9XG4vLy9cbi8vLyAgICosICo6OmFmdGVyLCAqOjpiZWZvcmUge1xuLy8vICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuLy8vICAgfVxuXG4kYm9yZGVyLWJveC1zaXppbmc6IHRydWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBkZWZhdWx0IFttZWRpYSBmZWF0dXJlXShodHRwOi8vd3d3LnczLm9yZy9UUi9jc3MzLW1lZGlhcXVlcmllcy8jbWVkaWEpIHRoYXQgYG1lZGlhKClgIGFuZCBgbmV3LWJyZWFrcG9pbnQoKWAgcmV2ZXJ0IHRvIHdoZW4gb25seSBhIGJyZWFrcG9pbnQgdmFsdWUgaXMgcGFzc2VkLiBTZXQgd2l0aCBhIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG5cbiRkZWZhdWx0LWZlYXR1cmU6IG1pbi13aWR0aDsgLy8gRGVmYXVsdCBAbWVkaWEgZmVhdHVyZSBmb3IgdGhlIGJyZWFrcG9pbnQoKSBtaXhpblxuXG4vLy9TZXRzIHRoZSBkZWZhdWx0IGxheW91dCBkaXJlY3Rpb24gb2YgdGhlIGdyaWQuIENhbiBiZSBgTFRSYCBvciBgUlRMYC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vQHR5cGUgU3RyaW5nXG5cbiRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb246IExUUiAhZGVmYXVsdDtcbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERpc3BsYXlzIHRoZSB2aXN1YWwgZ3JpZCB3aGVuIHNldCB0byB0cnVlLiBUaGUgb3ZlcmxhaWQgZ3JpZCBtYXkgYmUgZmV3IHBpeGVscyBvZmYgZGVwZW5kaW5nIG9uIHRoZSBicm93c2VyJ3MgcmVuZGVyaW5nIGVuZ2luZSBhbmQgcGl4ZWwgcm91bmRpbmcgYWxnb3JpdGhtLiBTZXQgd2l0aCB0aGUgYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBCb29sXG5cbiR2aXN1YWwtZ3JpZDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSB2aXN1YWwgZ3JpZCBjb2xvci4gU2V0IHdpdGggYCFnbG9iYWxgIGZsYWcuXG4vLy9cbi8vLyBAdHlwZSBDb2xvclxuXG4kdmlzdWFsLWdyaWQtY29sb3I6ICNlZWUgIWRlZmF1bHQ7XG5cbi8vLyBTZXRzIHRoZSBgei1pbmRleGAgcHJvcGVydHkgb2YgdGhlIHZpc3VhbCBncmlkLiBDYW4gYmUgYGJhY2tgIChiZWhpbmQgY29udGVudCkgb3IgYGZyb250YCAoaW4gZnJvbnQgb2YgY29udGVudCkuIFNldCB3aXRoIGAhZ2xvYmFsYCBmbGFnLlxuLy8vXG4vLy8gQHR5cGUgU3RyaW5nXG5cbiR2aXN1YWwtZ3JpZC1pbmRleDogYmFjayAhZGVmYXVsdDtcblxuLy8vIFNldHMgdGhlIG9wYWNpdHkgcHJvcGVydHkgb2YgdGhlIHZpc3VhbCBncmlkLiBTZXQgd2l0aCBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIE51bWJlciAodW5pdGxlc3MpXG5cbiR2aXN1YWwtZ3JpZC1vcGFjaXR5OiAwLjQgIWRlZmF1bHQ7XG5cbiR2aXN1YWwtZ3JpZC1icmVha3BvaW50czogKCkgIWRlZmF1bHQ7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBEaXNhYmxlIGFsbCBkZXByZWNhdGlvbiB3YXJuaW5ncy4gRGVmYXVsdHMgdG8gYGZhbHNlYC4gU2V0IHdpdGggYSBgIWdsb2JhbGAgZmxhZy5cbi8vL1xuLy8vIEB0eXBlIEJvb2xcblxuJGRpc2FibGUtd2FybmluZ3M6IGZhbHNlICFkZWZhdWx0O1xuXG5AbWl4aW4gLW5lYXQtd2FybigkbWVzc2FnZSkge1xuICBAaWYgJGRpc2FibGUtd2FybmluZ3MgPT0gZmFsc2Uge1xuICAgIEB3YXJuIFwiI3skbWVzc2FnZX1cIjtcbiAgfVxufVxuIiwiJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFkZWZhdWx0O1xuJGZnLWNvbHVtbjogJGNvbHVtbjtcbiRmZy1ndXR0ZXI6ICRndXR0ZXI7XG4kZmctbWF4LWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4kY29udGFpbmVyLWRpc3BsYXktdGFibGU6IGZhbHNlICFkZWZhdWx0O1xuJGxheW91dC1kaXJlY3Rpb246IExUUiAhZGVmYXVsdDtcblxuQGZ1bmN0aW9uIGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zOiAkZmctbWF4LWNvbHVtbnMpIHtcbiAgJHdpZHRoOiBmbGV4LXdpZHRoKCRjb2x1bW5zKTtcbiAgJGNvbnRhaW5lci13aWR0aDogZmxleC13aWR0aCgkY29udGFpbmVyLWNvbHVtbnMpO1xuICBAcmV0dXJuIHBlcmNlbnRhZ2UoJHdpZHRoIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbkBmdW5jdGlvbiBmbGV4LWd1dHRlcigkY29udGFpbmVyLWNvbHVtbnM6ICRmZy1tYXgtY29sdW1ucywgJGd1dHRlcjogJGZnLWd1dHRlcikge1xuICAkY29udGFpbmVyLXdpZHRoOiBmbGV4LXdpZHRoKCRjb250YWluZXItY29sdW1ucyk7XG4gIEByZXR1cm4gcGVyY2VudGFnZSgkZ3V0dGVyIC8gJGNvbnRhaW5lci13aWR0aCk7XG59XG5cbkBmdW5jdGlvbiBmbGV4LXdpZHRoKCRuLCAkY29sdW1uLXdpZHRoOiAkZmctY29sdW1uLCAkZ3V0dGVyLXdpZHRoOiAkZmctZ3V0dGVyKSB7XG4gIEByZXR1cm4gJG4gKiAkY29sdW1uLXdpZHRoICsgKCRuIC0gMSkgKiAkZ3V0dGVyLXdpZHRoO1xufVxuXG5AZnVuY3Rpb24gZ2V0LXBhcmVudC1jb2x1bW5zKCRjb2x1bW5zKSB7XG4gIEBpZiAkY29sdW1ucyAhPSAkZ3JpZC1jb2x1bW5zIHtcbiAgICAkcGFyZW50LWNvbHVtbnM6ICRjb2x1bW5zICFnbG9iYWw7XG4gIH0gQGVsc2Uge1xuICAgICRwYXJlbnQtY29sdW1uczogJGdyaWQtY29sdW1ucyAhZ2xvYmFsO1xuICB9XG5cbiAgQHJldHVybiAkcGFyZW50LWNvbHVtbnM7XG59XG5cbkBmdW5jdGlvbiBpcy1kaXNwbGF5LXRhYmxlKCRjb250YWluZXItaXMtZGlzcGxheS10YWJsZSwgJGRpc3BsYXkpIHtcbiAgQHJldHVybiAkY29udGFpbmVyLWlzLWRpc3BsYXktdGFibGUgPT0gdHJ1ZSBvciAkZGlzcGxheSA9PSB0YWJsZTtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQGlmICRib3JkZXItYm94LXNpemluZyA9PSB0cnVlIHtcbiAgaHRtbCB7IC8vIGh0dHA6Ly9iaXQubHkvMXFrMnRWUlxuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIH1cblxuICAqIHtcbiAgICAmLFxuICAgICY6OmFmdGVyLFxuICAgICY6OmJlZm9yZSB7XG4gICAgICBib3gtc2l6aW5nOiBpbmhlcml0O1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gUmVtb3ZlcyB0aGUgZWxlbWVudCdzIGd1dHRlciBtYXJnaW4sIHJlZ2FyZGxlc3Mgb2YgaXRzIHBvc2l0aW9uIGluIHRoZSBncmlkIGhpZXJhcmNoeSBvciBkaXNwbGF5IHByb3BlcnR5LiBJdCBjYW4gdGFyZ2V0IGEgc3BlY2lmaWMgZWxlbWVudCwgb3IgZXZlcnkgYG50aC1jaGlsZGAgb2NjdXJyZW5jZS4gV29ya3Mgb25seSB3aXRoIGBibG9ja2AgbGF5b3V0cy5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHF1ZXJ5IFtibG9ja11cbi8vLyAgIExpc3Qgb2YgYXJndW1lbnRzLiBTdXBwb3J0ZWQgYXJndW1lbnRzIGFyZSBgbnRoLWNoaWxkYCBzZWxlY3RvcnMgKHRhcmdldHMgYSBzcGVjaWZpYyBwc2V1ZG8gZWxlbWVudCkgYW5kIGBhdXRvYCAodGFyZ2V0cyBgbGFzdC1jaGlsZGApLlxuLy8vXG4vLy8gICBXaGVuIHBhc3NlZCBhbiBgbnRoLWNoaWxkYCBhcmd1bWVudCBvZiB0eXBlIGAqbmAgd2l0aCBgYmxvY2tgIGRpc3BsYXksIHRoZSBvbWVnYSBtaXhpbiBhdXRvbWF0aWNhbGx5IGFkZHMgYSBjbGVhciB0byB0aGUgYCpuKzFgIHRoIGVsZW1lbnQuIE5vdGUgdGhhdCBjb21wb3NpdGUgYXJndW1lbnRzIHN1Y2ggYXMgYDJuKzFgIGRvIG5vdCBzdXBwb3J0IHRoaXMgZmVhdHVyZS5cbi8vL1xuLy8vICAgKipEZXByZWNhdGlvbiB3YXJuaW5nKio6IFRoZSBvbWVnYSBtaXhpbiB3aWxsIG5vIGxvbmdlciB0YWtlIGEgYCRkaXJlY3Rpb25gIGFyZ3VtZW50LiBUbyBjaGFuZ2UgdGhlIGxheW91dCBkaXJlY3Rpb24sIHVzZSBgcm93KCRkaXJlY3Rpb24pYCBvciBzZXQgYCRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb25gIGluc3RlYWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgb21lZ2E7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5udGgtZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIG9tZWdhKDRuKTtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuLy8vICAgfVxuLy8vXG4vLy8gICAubnRoLWVsZW1lbnQ6bnRoLWNoaWxkKDRuKSB7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMDtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLm50aC1lbGVtZW50Om50aC1jaGlsZCg0bisxKSB7XG4vLy8gICAgIGNsZWFyOiBsZWZ0O1xuLy8vICAgfVxuXG5AbWl4aW4gb21lZ2EoJHF1ZXJ5OiBibG9jaywgJGRpcmVjdGlvbjogZGVmYXVsdCkge1xuICAkdGFibGU6IGJlbG9uZ3MtdG8odGFibGUsICRxdWVyeSk7XG4gICRhdXRvOiBiZWxvbmdzLXRvKGF1dG8sICRxdWVyeSk7XG5cbiAgQGlmICRkaXJlY3Rpb24gIT0gZGVmYXVsdCB7XG4gICAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSBvbWVnYSBtaXhpbiB3aWxsIG5vIGxvbmdlciB0YWtlIGEgJGRpcmVjdGlvbiBhcmd1bWVudC4gVG8gY2hhbmdlIHRoZSBsYXlvdXQgZGlyZWN0aW9uLCB1c2UgdGhlIGRpcmVjdGlvbigpey4uLn0gbWl4aW4uXCIpO1xuICB9IEBlbHNlIHtcbiAgICAkZGlyZWN0aW9uOiBnZXQtZGlyZWN0aW9uKCRsYXlvdXQtZGlyZWN0aW9uLCAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uKTtcbiAgfVxuXG4gIEBpZiAkdGFibGUge1xuICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgb21lZ2EgbWl4aW4gbm8gbG9uZ2VyIHJlbW92ZXMgcGFkZGluZyBpbiB0YWJsZSBsYXlvdXRzLlwiKTtcbiAgfVxuXG4gIEBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAxIHtcbiAgICBAaWYgJGF1dG8ge1xuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgQGVsc2UgaWYgY29udGFpbnMtZGlzcGxheS12YWx1ZSgkcXVlcnkpIGFuZCAkdGFibGUgPT0gZmFsc2Uge1xuICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IDA7XG4gICAgfVxuXG4gICAgQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgbnRoLWNoaWxkKCRxdWVyeSwgJGRpcmVjdGlvbik7XG4gICAgfVxuICB9IEBlbHNlIGlmIGxlbmd0aCgkcXVlcnkpID09IDIge1xuICAgIEBpZiAkYXV0byB7XG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIG50aC1jaGlsZChudGgoJHF1ZXJ5LCAxKSwgJGRpcmVjdGlvbik7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiVG9vIG1hbnkgYXJndW1lbnRzIHBhc3NlZCB0byB0aGUgb21lZ2EoKSBtaXhpbi5cIik7XG4gIH1cbn1cblxuQG1peGluIG50aC1jaGlsZCgkcXVlcnksICRkaXJlY3Rpb24pIHtcbiAgJG9wcG9zaXRlLWRpcmVjdGlvbjogZ2V0LW9wcG9zaXRlLWRpcmVjdGlvbigkZGlyZWN0aW9uKTtcblxuICAmOm50aC1jaGlsZCgjeyRxdWVyeX0pIHtcbiAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgfVxuXG4gIEBpZiB0eXBlLW9mKCRxdWVyeSkgPT0gc3RyaW5nIHtcbiAgICAkcXVlcnk6IHN0ci1yZXBsYWNlKCRxdWVyeSwgXCIgXCIsIFwiXCIpO1xuICAgICRvcGVyYXRvcjogZmFsc2U7XG5cbiAgICBAaWYgc3RyX2luZGV4KCRxdWVyeSwgXCIrXCIpIHtcbiAgICAgICRvcGVyYXRvcjogXCIrXCI7XG4gICAgfSBAZWxzZSBpZiBzdHJfaW5kZXgoJHF1ZXJ5LCBcIi1cIikge1xuICAgICAgJG9wZXJhdG9yOiBcIi1cIjtcbiAgICB9XG5cbiAgICBAaWYgJG9wZXJhdG9yIHtcbiAgICAgICRvcGVyYXRvci1pbmRleDogc3RyX2luZGV4KCRxdWVyeSwgJG9wZXJhdG9yKTtcbiAgICAgICRmaXJzdDogc3RyLXNsaWNlKCRxdWVyeSwgMCwgKCRvcGVyYXRvci1pbmRleCAtIDEpKTtcbiAgICAgICRsYXN0OiB0by1udW1iZXIoc3RyLXNsaWNlKCRxdWVyeSwgKCRvcGVyYXRvci1pbmRleCArIDEpLCAtMSkpO1xuICAgICAgQGlmICRvcGVyYXRvciA9PSBcIitcIiB7XG4gICAgICAgICRsYXN0OiAkbGFzdCArIDE7XG4gICAgICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSBcIi1cIiB7XG4gICAgICAgICRsYXN0OiAkbGFzdCAtIDE7XG4gICAgICB9XG4gICAgICAkbnRoOiBcIiN7JGZpcnN0fSN7JG9wZXJhdG9yfSN7JGxhc3R9XCI7XG5cbiAgICAgICY6bnRoLWNoaWxkKCN7JG50aH0pIHtcbiAgICAgICAgY2xlYXI6ICRvcHBvc2l0ZS1kaXJlY3Rpb247XG4gICAgICB9XG4gICAgfVxuICB9IEBlbHNlIGlmIHR5cGUtb2YoJHF1ZXJ5KSA9PSBudW1iZXIgYW5kIHVuaXQoJHF1ZXJ5KSA9PSBcIm5cIiB7XG4gICAgJjpudGgtY2hpbGQoI3skcXVlcnl9KzEpIHtcbiAgICAgIGNsZWFyOiAkb3Bwb3NpdGUtZGlyZWN0aW9uO1xuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gTWFrZXMgYW4gZWxlbWVudCBhIG91dGVyIGNvbnRhaW5lciBieSBjZW50ZXJpbmcgaXQgaW4gdGhlIHZpZXdwb3J0LCBjbGVhcmluZyBpdHMgZmxvYXRzLCBhbmQgc2V0dGluZyBpdHMgYG1heC13aWR0aGAuXG4vLy8gQWx0aG91Z2ggb3B0aW9uYWwsIHVzaW5nIGBvdXRlci1jb250YWluZXJgIGlzIHJlY29tbWVuZGVkLiBUaGUgbWl4aW4gY2FuIGJlIGNhbGxlZCBvbiBtb3JlIHRoYW4gb25lIGVsZW1lbnQgcGVyIHBhZ2UsIGFzIGxvbmcgYXMgdGhleSBhcmUgbm90IG5lc3RlZC5cbi8vL1xuLy8vIEBwYXJhbSB7TnVtYmVyIFt1bml0XX0gJGxvY2FsLW1heC13aWR0aCBbJG1heC13aWR0aF1cbi8vLyAgIE1heCB3aWR0aCB0byBiZSBhcHBsaWVkIHRvIHRoZSBlbGVtZW50LiBDYW4gYmUgYSBwZXJjZW50YWdlIG9yIGEgbWVhc3VyZS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBvdXRlci1jb250YWluZXIoMTAwJSk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1heC13aWR0aDogMTAwJTtcbi8vLyAgICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4vLy8gICAgIG1hcmdpbi1yaWdodDogYXV0bztcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQ6OmFmdGVyIHtcbi8vLyAgICAgY2xlYXI6IGJvdGg7XG4vLy8gICAgIGNvbnRlbnQ6IFwiXCI7XG4vLy8gICAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vICAgfVxuXG5AbWl4aW4gb3V0ZXItY29udGFpbmVyKCRsb2NhbC1tYXgtd2lkdGg6ICRtYXgtd2lkdGgpIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIG1heC13aWR0aDogJGxvY2FsLW1heC13aWR0aDtcbiAgbWFyZ2luOiB7XG4gICAgbGVmdDogYXV0bztcbiAgICByaWdodDogYXV0bztcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gU3BlY2lmaWVzIHRoZSBudW1iZXIgb2YgY29sdW1ucyBhbiBlbGVtZW50IHNob3VsZCBzcGFuLiBJZiB0aGUgc2VsZWN0b3IgaXMgbmVzdGVkIHRoZSBudW1iZXIgb2YgY29sdW1ucyBvZiBpdHMgcGFyZW50IGVsZW1lbnQgc2hvdWxkIGJlIHBhc3NlZCBhcyBhbiBhcmd1bWVudCBhcyB3ZWxsLlxuLy8vXG4vLy8gQHBhcmFtIHtMaXN0fSAkc3BhblxuLy8vICAgQSBsaXN0IGNvbnRhaW5pbmcgYCRjb2x1bW5zYCwgdGhlIHVuaXRsZXNzIG51bWJlciBvZiBjb2x1bW5zIHRoZSBlbGVtZW50IHNwYW5zIChyZXF1aXJlZCksIGFuZCBgJGNvbnRhaW5lci1jb2x1bW5zYCwgdGhlIG51bWJlciBvZiBjb2x1bW5zIHRoZSBwYXJlbnQgZWxlbWVudCBzcGFucyAob3B0aW9uYWwpLlxuLy8vXG4vLy8gICBJZiBvbmx5IG9uZSB2YWx1ZSBpcyBwYXNzZWQsIGl0IGlzIGFzc3VtZWQgdGhhdCBpdCdzIGAkY29sdW1uc2AgYW5kIHRoYXQgdGhhdCBgJGNvbnRhaW5lci1jb2x1bW5zYCBpcyBlcXVhbCB0byBgJGdyaWQtY29sdW1uc2AsIHRoZSB0b3RhbCBudW1iZXIgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZC5cbi8vL1xuLy8vICAgVGhlIHZhbHVlcyBjYW4gYmUgc2VwYXJhdGVkIHdpdGggYW55IHN0cmluZyBzdWNoIGFzIGBvZmAsIGAvYCwgZXRjLlxuLy8vXG4vLy8gICBgJGNvbHVtbnNgIGFsc28gYWNjZXB0cyBkZWNpbWFscyBmb3Igd2hlbiBpdCdzIG5lY2Vzc2FyeSB0byBicmVhayBvdXQgb2YgdGhlIHN0YW5kYXJkIGdyaWQuIEUuZy4gUGFzc2luZyBgMi40YCBpbiBhIHN0YW5kYXJkIDEyIGNvbHVtbiBncmlkIHdpbGwgZGl2aWRlIHRoZSByb3cgaW50byA1IGNvbHVtbnMuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW2Jsb2NrXVxuLy8vICAgU2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudC4gQnkgZGVmYXVsdCBpdCBzZXRzIHRoZSBkaXNwbGF5IHByb3BlcnR5IG9mIHRoZSBlbGVtZW50IHRvIGBibG9ja2AuXG4vLy9cbi8vLyAgIElmIHBhc3NlZCBgYmxvY2stY29sbGFwc2VgLCBpdCBhbHNvIHJlbW92ZXMgdGhlIG1hcmdpbiBndXR0ZXIgYnkgYWRkaW5nIGl0IHRvIHRoZSBlbGVtZW50IHdpZHRoLlxuLy8vXG4vLy8gICBJZiBwYXNzZWQgYHRhYmxlYCwgaXQgc2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSB0byBgdGFibGUtY2VsbGAgYW5kIGNhbGN1bGF0ZXMgdGhlIHdpZHRoIG9mIHRoZSBlbGVtZW50IHdpdGhvdXQgdGFraW5nIGd1dHRlcnMgaW50byBjb25zaWRlcmF0aW9uLiBUaGUgcmVzdWx0IGRvZXMgbm90IGFsaWduIHdpdGggdGhlIGJsb2NrLWJhc2VkIGdyaWQuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vXG4vLy8gICAgLm5lc3RlZC1lbGVtZW50IHtcbi8vLyAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucygyIG9mIDYpO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4vLy8gICAgIHdpZHRoOiA0OC44MjExNyU7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG4vLy9cbi8vLyAgIC5lbGVtZW50IC5uZXN0ZWQtZWxlbWVudCB7XG4vLy8gICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgbWFyZ2luLXJpZ2h0OiA0LjgyOTE2JTtcbi8vLyAgICAgd2lkdGg6IDMwLjExMzg5JTtcbi8vLyAgIH1cbi8vL1xuLy8vICAgLmVsZW1lbnQgLm5lc3RlZC1lbGVtZW50Omxhc3QtY2hpbGQge1xuLy8vICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICB9XG5cbkBtaXhpbiBzcGFuLWNvbHVtbnMoJHNwYW46ICRjb2x1bW5zIG9mICRjb250YWluZXItY29sdW1ucywgJGRpc3BsYXk6IGJsb2NrKSB7XG4gICRjb2x1bW5zOiBudGgoJHNwYW4sIDEpO1xuICAkY29udGFpbmVyLWNvbHVtbnM6IGNvbnRhaW5lci1zcGFuKCRzcGFuKTtcblxuICAkcGFyZW50LWNvbHVtbnM6IGdldC1wYXJlbnQtY29sdW1ucygkY29udGFpbmVyLWNvbHVtbnMpICFnbG9iYWw7XG5cbiAgJGRpcmVjdGlvbjogZ2V0LWRpcmVjdGlvbigkbGF5b3V0LWRpcmVjdGlvbiwgJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbik7XG4gICRvcHBvc2l0ZS1kaXJlY3Rpb246IGdldC1vcHBvc2l0ZS1kaXJlY3Rpb24oJGRpcmVjdGlvbik7XG5cbiAgJGRpc3BsYXktdGFibGU6IGlzLWRpc3BsYXktdGFibGUoJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlLCAkZGlzcGxheSk7XG5cbiAgQGlmICRkaXNwbGF5LXRhYmxlICB7XG4gICAgZGlzcGxheTogdGFibGUtY2VsbDtcbiAgICB3aWR0aDogcGVyY2VudGFnZSgkY29sdW1ucyAvICRjb250YWluZXItY29sdW1ucyk7XG4gIH0gQGVsc2Uge1xuICAgIGZsb2F0OiAjeyRvcHBvc2l0ZS1kaXJlY3Rpb259O1xuXG4gICAgQGlmICRkaXNwbGF5ICE9IG5vLWRpc3BsYXkge1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgfVxuXG4gICAgQGlmICRkaXNwbGF5ID09IGNvbGxhcHNlIHtcbiAgICAgIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgJ2NvbGxhcHNlJyBhcmd1bWVudCB3aWxsIGJlIGRlcHJlY2F0ZWQuIFVzZSAnYmxvY2stY29sbGFwc2UnIGluc3RlYWQuXCIpO1xuICAgIH1cblxuICAgIEBpZiAkZGlzcGxheSA9PSBjb2xsYXBzZSBvciAkZGlzcGxheSA9PSBibG9jay1jb2xsYXBzZSB7XG4gICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpICsgZmxleC1ndXR0ZXIoJGNvbnRhaW5lci1jb2x1bW5zKTtcblxuICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgd2lkdGg6IGZsZXgtZ3JpZCgkY29sdW1ucywgJGNvbnRhaW5lci1jb2x1bW5zKTtcbiAgICAgIH1cblxuICAgIH0gQGVsc2Uge1xuICAgICAgbWFyZ2luLSN7JGRpcmVjdGlvbn06IGZsZXgtZ3V0dGVyKCRjb250YWluZXItY29sdW1ucyk7XG4gICAgICB3aWR0aDogZmxleC1ncmlkKCRjb2x1bW5zLCAkY29udGFpbmVyLWNvbHVtbnMpO1xuXG4gICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICBtYXJnaW4tI3skZGlyZWN0aW9ufTogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIERlc2lnbmF0ZXMgdGhlIGVsZW1lbnQgYXMgYSByb3cgb2YgY29sdW1ucyBpbiB0aGUgZ3JpZCBsYXlvdXQuIEl0IGNsZWFycyB0aGUgZmxvYXRzIG9uIHRoZSBlbGVtZW50IGFuZCBzZXRzIGl0cyBkaXNwbGF5IHByb3BlcnR5LiBSb3dzIGNhbid0IGJlIG5lc3RlZCwgYnV0IHRoZXJlIGNhbiBiZSBtb3JlIHRoYW4gb25lIHJvdyBlbGVtZW504oCUd2l0aCBkaWZmZXJlbnQgZGlzcGxheSBwcm9wZXJ0aWVz4oCUcGVyIGxheW91dC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlzcGxheSBbZGVmYXVsdF1cbi8vLyAgU2V0cyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBvZiB0aGUgZWxlbWVudCBhbmQgdGhlIGRpc3BsYXkgY29udGV4dCB0aGF0IHdpbGwgYmUgdXNlZCBieSBpdHMgY2hpbGRyZW4uIENhbiBiZSBgYmxvY2tgIG9yIGB0YWJsZWAuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpcmVjdGlvbiBbJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbl1cbi8vLyAgU2V0cyB0aGUgbGF5b3V0IGRpcmVjdGlvbi4gQ2FuIGJlIGBMVFJgIChsZWZ0LXRvLXJpZ2h0KSBvciBgUlRMYCAocmlnaHQtdG8tbGVmdCkuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgLmVsZW1lbnQge1xuLy8vICAgIEBpbmNsdWRlIHJvdygpO1xuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gIC5lbGVtZW50IHtcbi8vLyAgICAqem9vbTogMTtcbi8vLyAgICBkaXNwbGF5OiBibG9jaztcbi8vLyAgfVxuLy8vXG4vLy8gLmVsZW1lbnQ6YmVmb3JlLCAuZWxlbWVudDphZnRlciB7XG4vLy8gICBjb250ZW50OiBcIiBcIjtcbi8vLyAgIGRpc3BsYXk6IHRhYmxlO1xuLy8vIH1cbi8vL1xuLy8vIC5lbGVtZW50OmFmdGVyIHtcbi8vLyAgIGNsZWFyOiBib3RoO1xuLy8vIH1cblxuQG1peGluIHJvdygkZGlzcGxheTogZGVmYXVsdCwgJGRpcmVjdGlvbjogJGRlZmF1bHQtbGF5b3V0LWRpcmVjdGlvbikge1xuXG4gICRsYXlvdXQtZGlyZWN0aW9uOiAkZGlyZWN0aW9uICFnbG9iYWw7XG5cbiAgQGlmICRkaXNwbGF5ID09IHRhYmxlIHtcbiAgICBkaXNwbGF5OiB0YWJsZTtcbiAgICBAaW5jbHVkZSBmaWxsLXBhcmVudDtcbiAgICB0YWJsZS1sYXlvdXQ6IGZpeGVkO1xuICAgICRjb250YWluZXItZGlzcGxheS10YWJsZTogdHJ1ZSAhZ2xvYmFsO1xuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSBjbGVhcmZpeDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6IGZhbHNlICFnbG9iYWw7XG4gIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8vIFRyYW5zbGF0ZXMgYW4gZWxlbWVudCBob3Jpem9udGFsbHkgYnkgYSBudW1iZXIgb2YgY29sdW1ucy4gUG9zaXRpdmUgYXJndW1lbnRzIHNoaWZ0IHRoZSBlbGVtZW50IHRvIHRoZSBhY3RpdmUgbGF5b3V0IGRpcmVjdGlvbiwgd2hpbGUgbmVnYXRpdmUgb25lcyBzaGlmdCBpdCB0byB0aGUgb3Bwb3NpdGUgZGlyZWN0aW9uLlxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKHVuaXRsZXNzKX0gJG4tY29sdW1ucyBbMV1cbi8vLyAgIE51bWJlciBvZiBjb2x1bW5zIGJ5IHdoaWNoIHRoZSBlbGVtZW50IHNoaWZ0cy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBzaGlmdCgtMyk7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1Mgb3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAtMjUuNTg5NDElO1xuLy8vICAgfVxuXG5AbWl4aW4gc2hpZnQoJG4tY29sdW1uczogMSkge1xuICBAaW5jbHVkZSBzaGlmdC1pbi1jb250ZXh0KCRuLWNvbHVtbnMpO1xufVxuXG4vLy8gVHJhbnNsYXRlcyBhbiBlbGVtZW50IGhvcml6b250YWxseSBieSBhIG51bWJlciBvZiBjb2x1bW5zLCBpbiBhIHNwZWNpZmljIG5lc3RpbmcgY29udGV4dC5cbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJHNoaWZ0XG4vLy8gICBBIGxpc3QgY29udGFpbmluZyB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdG8gc2hpZnQgKGAkY29sdW1uc2ApIGFuZCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgb2YgdGhlIHBhcmVudCBlbGVtZW50IChgJGNvbnRhaW5lci1jb2x1bW5zYCkuXG4vLy9cbi8vLyAgIFRoZSB0d28gdmFsdWVzIGNhbiBiZSBzZXBhcmF0ZWQgd2l0aCBhbnkgc3RyaW5nIHN1Y2ggYXMgYG9mYCwgYC9gLCBldGMuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgc2hpZnQoLTMgb2YgNik7XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1Mgb3V0cHV0XG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIG1hcmdpbi1sZWZ0OiAtNTIuNDE0NTglO1xuLy8vICAgfVxuXG5AbWl4aW4gc2hpZnQtaW4tY29udGV4dCgkc2hpZnQ6ICRjb2x1bW5zIG9mICRjb250YWluZXItY29sdW1ucykge1xuICAkbi1jb2x1bW5zOiBudGgoJHNoaWZ0LCAxKTtcbiAgJHBhcmVudC1jb2x1bW5zOiBjb250YWluZXItc2hpZnQoJHNoaWZ0KSAhZ2xvYmFsO1xuXG4gICRkaXJlY3Rpb246IGdldC1kaXJlY3Rpb24oJGxheW91dC1kaXJlY3Rpb24sICRkZWZhdWx0LWxheW91dC1kaXJlY3Rpb24pO1xuICAkb3Bwb3NpdGUtZGlyZWN0aW9uOiBnZXQtb3Bwb3NpdGUtZGlyZWN0aW9uKCRkaXJlY3Rpb24pO1xuXG4gIG1hcmdpbi0jeyRvcHBvc2l0ZS1kaXJlY3Rpb259OiAkbi1jb2x1bW5zICogZmxleC1ncmlkKDEsICRwYXJlbnQtY29sdW1ucykgKyAkbi1jb2x1bW5zICogZmxleC1ndXR0ZXIoJHBhcmVudC1jb2x1bW5zKTtcblxuICAvLyBSZXNldCBuZXN0aW5nIGNvbnRleHRcbiAgJHBhcmVudC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zICFnbG9iYWw7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBBZGRzIHBhZGRpbmcgdG8gdGhlIGVsZW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRwYWRkaW5nIFtmbGV4LWd1dHRlcigpXVxuLy8vICAgQSBsaXN0IG9mIHBhZGRpbmcgdmFsdWUocykgdG8gdXNlLiBQYXNzaW5nIGBkZWZhdWx0YCBpbiB0aGUgbGlzdCB3aWxsIHJlc3VsdCBpbiB1c2luZyB0aGUgZ3V0dGVyIHdpZHRoIGFzIGEgcGFkZGluZyB2YWx1ZS5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBwYWQoMzBweCAtMjBweCAxMHB4IGRlZmF1bHQpO1xuLy8vICAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBwYWRkaW5nOiAzMHB4IC0yMHB4IDEwcHggMi4zNTc2NSU7XG4vLy8gICB9XG5cbkBtaXhpbiBwYWQoJHBhZGRpbmc6IGZsZXgtZ3V0dGVyKCkpIHtcbiAgJHBhZGRpbmctbGlzdDogbnVsbDtcbiAgQGVhY2ggJHZhbHVlIGluICRwYWRkaW5nIHtcbiAgICAkdmFsdWU6IGlmKCR2YWx1ZSA9PSAnZGVmYXVsdCcsIGZsZXgtZ3V0dGVyKCksICR2YWx1ZSk7XG4gICAgJHBhZGRpbmctbGlzdDogam9pbigkcGFkZGluZy1saXN0LCAkdmFsdWUpO1xuICB9XG4gIHBhZGRpbmc6ICRwYWRkaW5nLWxpc3Q7XG59XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8vLyBGb3JjZXMgdGhlIGVsZW1lbnQgdG8gZmlsbCBpdHMgcGFyZW50IGNvbnRhaW5lci5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSBmaWxsLXBhcmVudDtcbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzcyAtIENTUyBPdXRwdXRcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgd2lkdGg6IDEwMCU7XG4vLy8gICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4vLy8gICB9XG5cbkBtaXhpbiBmaWxsLXBhcmVudCgpIHtcbiAgd2lkdGg6IDEwMCU7XG5cbiAgQGlmICRib3JkZXItYm94LXNpemluZyA9PSBmYWxzZSB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gT3V0cHV0cyBhIG1lZGlhLXF1ZXJ5IGJsb2NrIHdpdGggYW4gb3B0aW9uYWwgZ3JpZCBjb250ZXh0ICh0aGUgdG90YWwgbnVtYmVyIG9mIGNvbHVtbnMgdXNlZCBpbiB0aGUgZ3JpZCkuXG4vLy9cbi8vLyBAcGFyYW0ge0xpc3R9ICRxdWVyeVxuLy8vICAgQSBsaXN0IG9mIG1lZGlhIHF1ZXJ5IGZlYXR1cmVzIGFuZCB2YWx1ZXMsIHdoZXJlIGVhY2ggYCRmZWF0dXJlYCBzaG91bGQgaGF2ZSBhIGNvcnJlc3BvbmRpbmcgYCR2YWx1ZWAuXG4vLy8gICBGb3IgYSBsaXN0IG9mIHZhbGlkIHZhbHVlcyBmb3IgYCRmZWF0dXJlYCwgY2xpY2sgW2hlcmVdKGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtbWVkaWFxdWVyaWVzLyNtZWRpYTEpLlxuLy8vXG4vLy8gICBJZiB0aGVyZSBpcyBvbmx5IGEgc2luZ2xlIGAkdmFsdWVgIGluIGAkcXVlcnlgLCBgJGRlZmF1bHQtZmVhdHVyZWAgaXMgZ29pbmcgdG8gYmUgdXNlZC5cbi8vL1xuLy8vICAgVGhlIG51bWJlciBvZiB0b3RhbCBjb2x1bW5zIGluIHRoZSBncmlkIGNhbiBiZSBzZXQgYnkgcGFzc2luZyBgJGNvbHVtbnNgIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QgKG92ZXJyaWRlcyBgJHRvdGFsLWNvbHVtbnNgKS5cbi8vL1xuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXIgKHVuaXRsZXNzKX0gJHRvdGFsLWNvbHVtbnMgWyRncmlkLWNvbHVtbnNdXG4vLy8gICAtIE51bWJlciBvZiBjb2x1bW5zIHRvIHVzZSBpbiB0aGUgbmV3IGdyaWQgY29udGV4dC4gQ2FuIGJlIHNldCBhcyBhIHNob3J0aGFuZCBpbiB0aGUgZmlyc3QgcGFyYW1ldGVyLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAucmVzcG9uc2l2ZS1lbGVtZW50IHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKDc2OXB4KSB7XG4vLy8gICAgICAgIEBpbmNsdWRlIHNwYW4tY29sdW1ucyg2KTtcbi8vLyAgICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vICAubmV3LWNvbnRleHQtZWxlbWVudCB7XG4vLy8gICAgQGluY2x1ZGUgbWVkaWEobWluLXdpZHRoIDMyMHB4IG1heC13aWR0aCA0ODBweCwgNikge1xuLy8vICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG4vLy8gQGV4YW1wbGUgY3NzIC0gQ1NTIE91dHB1dFxuLy8vICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA3NjlweCkge1xuLy8vICAgIC5yZXNwb25zaXZlLWVsZW1lbnQge1xuLy8vICAgICAgZGlzcGxheTogYmxvY2s7XG4vLy8gICAgICBmbG9hdDogbGVmdDtcbi8vLyAgICAgIG1hcmdpbi1yaWdodDogMi4zNTc2NSU7XG4vLy8gICAgICB3aWR0aDogNDguODIxMTclO1xuLy8vICAgIH1cbi8vL1xuLy8vICAgIC5yZXNwb25zaXZlLWVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4vLy8gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMzIwcHgpIGFuZCAobWF4LXdpZHRoOiA0ODBweCkge1xuLy8vICAgIC5uZXctY29udGV4dC1lbGVtZW50IHtcbi8vLyAgICAgIGRpc3BsYXk6IGJsb2NrO1xuLy8vICAgICAgZmxvYXQ6IGxlZnQ7XG4vLy8gICAgICBtYXJnaW4tcmlnaHQ6IDQuODI5MTYlO1xuLy8vICAgICAgd2lkdGg6IDEwMCU7XG4vLy8gICAgfVxuLy8vXG4vLy8gICAgLm5ldy1jb250ZXh0LWVsZW1lbnQ6bGFzdC1jaGlsZCB7XG4vLy8gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4vLy8gICAgfVxuLy8vICB9XG5cbkBtaXhpbiBtZWRpYSgkcXVlcnk6ICRmZWF0dXJlICR2YWx1ZSAkY29sdW1ucywgJHRvdGFsLWNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgQGlmIGxlbmd0aCgkcXVlcnkpID09IDEge1xuICAgIEBtZWRpYSBzY3JlZW4gYW5kICgkZGVmYXVsdC1mZWF0dXJlOiBudGgoJHF1ZXJ5LCAxKSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnMgIWdsb2JhbDtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zICFnbG9iYWw7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICAkbG9vcC10bzogbGVuZ3RoKCRxdWVyeSk7XG4gICAgJG1lZGlhLXF1ZXJ5OiBcInNjcmVlbiBhbmQgXCI7XG4gICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICRncmlkLWNvbHVtbnM6ICR0b3RhbC1jb2x1bW5zICFnbG9iYWw7XG5cbiAgICBAaWYgaXMtbm90KGlzLWV2ZW4obGVuZ3RoKCRxdWVyeSkpKSB7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiBudGgoJHF1ZXJ5LCAkbG9vcC10bykgIWdsb2JhbDtcbiAgICAgICRsb29wLXRvOiAkbG9vcC10byAtIDE7XG4gICAgfVxuXG4gICAgJGk6IDE7XG4gICAgQHdoaWxlICRpIDw9ICRsb29wLXRvIHtcbiAgICAgICRtZWRpYS1xdWVyeTogJG1lZGlhLXF1ZXJ5ICsgXCIoXCIgKyBudGgoJHF1ZXJ5LCAkaSkgKyBcIjogXCIgKyBudGgoJHF1ZXJ5LCAkaSArIDEpICsgXCIpIFwiO1xuXG4gICAgICBAaWYgKCRpICsgMSkgIT0gJGxvb3AtdG8ge1xuICAgICAgICAkbWVkaWEtcXVlcnk6ICRtZWRpYS1xdWVyeSArIFwiYW5kIFwiO1xuICAgICAgfVxuXG4gICAgICAkaTogJGkgKyAyO1xuICAgIH1cblxuICAgIEBtZWRpYSAjeyRtZWRpYS1xdWVyeX0ge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnMgIWdsb2JhbDtcbiAgICB9XG4gIH1cbn1cbiIsIi8vLyBSZXNldHMgdGhlIGFjdGl2ZSBkaXNwbGF5IHByb3BlcnR5IHRvIGBibG9ja2AuIFBhcnRpY3VsYXJseSB1c2VmdWwgd2hlbiBjaGFuZ2luZyB0aGUgZGlzcGxheSBwcm9wZXJ0eSBpbiBhIHNpbmdsZSByb3cuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVXNhZ2Vcbi8vLyAgIC5lbGVtZW50IHtcbi8vLyAgICAgQGluY2x1ZGUgcm93KHRhYmxlKTtcbi8vLyAgICAgLy8gQ29udGV4dCBjaGFuZ2VkIHRvIHRhYmxlIGRpc3BsYXlcbi8vLyAgIH1cbi8vL1xuLy8vICAgQGluY2x1ZGUgcmVzZXQtZGlzcGxheTtcbi8vLyAgIC8vIENvbnRleHQgaXMgcmVzZXQgdG8gYmxvY2sgZGlzcGxheVxuXG5AbWl4aW4gcmVzZXQtZGlzcGxheSB7XG4gICRjb250YWluZXItZGlzcGxheS10YWJsZTogZmFsc2UgIWdsb2JhbDtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQG1peGluIGJyZWFrcG9pbnQoJHF1ZXJ5OiRmZWF0dXJlICR2YWx1ZSAkY29sdW1ucywgJHRvdGFsLWNvbHVtbnM6ICRncmlkLWNvbHVtbnMpIHtcbiAgQGluY2x1ZGUgLW5lYXQtd2FybihcIlRoZSBicmVha3BvaW50KCkgbWl4aW4gd2FzIHJlbmFtZWQgdG8gbWVkaWEoKSBpbiBOZWF0IDEuMC4gUGxlYXNlIHVwZGF0ZSB5b3VyIHByb2plY3Qgd2l0aCB0aGUgbmV3IHN5bnRheCBiZWZvcmUgdGhlIG5leHQgdmVyc2lvbiBidW1wLlwiKTtcblxuICBAaWYgbGVuZ3RoKCRxdWVyeSkgPT0gMSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKCRkZWZhdWx0LWZlYXR1cmU6IG50aCgkcXVlcnksIDEpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucztcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAyIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkdG90YWwtY29sdW1ucztcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSAzIHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSB7XG4gICAgICAkZGVmYXVsdC1ncmlkLWNvbHVtbnM6ICRncmlkLWNvbHVtbnM7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiBudGgoJHF1ZXJ5LCAzKTtcbiAgICAgIEBjb250ZW50O1xuICAgICAgJGdyaWQtY29sdW1uczogJGRlZmF1bHQtZ3JpZC1jb2x1bW5zO1xuICAgIH1cbiAgfSBAZWxzZSBpZiBsZW5ndGgoJHF1ZXJ5KSA9PSA0IHtcbiAgICBAbWVkaWEgc2NyZWVuIGFuZCAobnRoKCRxdWVyeSwgMSk6IG50aCgkcXVlcnksIDIpKSBhbmQgKG50aCgkcXVlcnksIDMpOiBudGgoJHF1ZXJ5LCA0KSkge1xuICAgICAgJGRlZmF1bHQtZ3JpZC1jb2x1bW5zOiAkZ3JpZC1jb2x1bW5zO1xuICAgICAgJGdyaWQtY29sdW1uczogJHRvdGFsLWNvbHVtbnM7XG4gICAgICBAY29udGVudDtcbiAgICAgICRncmlkLWNvbHVtbnM6ICRkZWZhdWx0LWdyaWQtY29sdW1ucztcbiAgICB9XG4gIH0gQGVsc2UgaWYgbGVuZ3RoKCRxdWVyeSkgPT0gNSB7XG4gICAgQG1lZGlhIHNjcmVlbiBhbmQgKG50aCgkcXVlcnksIDEpOiBudGgoJHF1ZXJ5LCAyKSkgYW5kIChudGgoJHF1ZXJ5LCAzKTogbnRoKCRxdWVyeSwgNCkpIHtcbiAgICAgICRkZWZhdWx0LWdyaWQtY29sdW1uczogJGdyaWQtY29sdW1ucztcbiAgICAgICRncmlkLWNvbHVtbnM6IG50aCgkcXVlcnksIDUpO1xuICAgICAgQGNvbnRlbnQ7XG4gICAgICAkZ3JpZC1jb2x1bW5zOiAkZGVmYXVsdC1ncmlkLWNvbHVtbnM7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAaW5jbHVkZSAtbmVhdC13YXJuKFwiV3JvbmcgbnVtYmVyIG9mIGFyZ3VtZW50cyBmb3IgYnJlYWtwb2ludCgpLiBSZWFkIHRoZSBkb2N1bWVudGF0aW9uIGZvciBtb3JlIGRldGFpbHMuXCIpO1xuICB9XG59XG5cbkBtaXhpbiBudGgtb21lZ2EoJG50aCwgJGRpc3BsYXk6IGJsb2NrLCAkZGlyZWN0aW9uOiBkZWZhdWx0KSB7XG4gIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJUaGUgbnRoLW9tZWdhKCkgbWl4aW4gaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBvbWVnYSgpIGluc3RlYWQuXCIpO1xuICBAaW5jbHVkZSBvbWVnYSgkbnRoICRkaXNwbGF5LCAkZGlyZWN0aW9uKTtcbn1cblxuLy8vIFJlc2V0cyB0aGUgYWN0aXZlIGxheW91dCBkaXJlY3Rpb24gdG8gdGhlIGRlZmF1bHQgdmFsdWUgc2V0IGluIGAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uYC4gUGFydGljdWxhcmx5IHVzZWZ1bCB3aGVuIGNoYW5naW5nIHRoZSBsYXlvdXQgZGlyZWN0aW9uIGluIGEgc2luZ2xlIHJvdy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBVc2FnZVxuLy8vICAgLmVsZW1lbnQge1xuLy8vICAgICBAaW5jbHVkZSByb3coJGRpcmVjdGlvbjogUlRMKTtcbi8vLyAgICAgLy8gQ29udGV4dCBjaGFuZ2VkIHRvIHJpZ2h0LXRvLWxlZnRcbi8vLyAgIH1cbi8vL1xuLy8vICAgQGluY2x1ZGUgcmVzZXQtbGF5b3V0LWRpcmVjdGlvbjtcbi8vLyAgIC8vIENvbnRleHQgaXMgcmVzZXQgdG8gbGVmdC10by1yaWdodFxuXG5AbWl4aW4gcmVzZXQtbGF5b3V0LWRpcmVjdGlvbiB7XG4gICRsYXlvdXQtZGlyZWN0aW9uOiAkZGVmYXVsdC1sYXlvdXQtZGlyZWN0aW9uICFnbG9iYWw7XG4gIEBpbmNsdWRlIC1uZWF0LXdhcm4oXCJSZXNldHRpbmcgJGRpcmVjdGlvbiB3aWxsIGJlIGRlcHJlY2F0ZWQgaW4gZnV0dXJlIHZlcnNpb25zIGluIGZhdm9yIG9mIHRoZSBkaXJlY3Rpb24oKXsuLi59IG1peGluLlwiKTtcbn1cblxuLy8vIFJlc2V0cyBib3RoIHRoZSBhY3RpdmUgbGF5b3V0IGRpcmVjdGlvbiBhbmQgdGhlIGFjdGl2ZSBkaXNwbGF5IHByb3BlcnR5LlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICAuZWxlbWVudCB7XG4vLy8gICAgIEBpbmNsdWRlIHJvdyh0YWJsZSwgUlRMKTtcbi8vLyAgICAgLy8gQ29udGV4dCBjaGFuZ2VkIHRvIHRhYmxlIHRhYmxlIGFuZCByaWdodC10by1sZWZ0XG4vLy8gICB9XG4vLy9cbi8vLyAgIEBpbmNsdWRlIHJlc2V0LWFsbDtcbi8vLyAgIC8vIENvbnRleHQgaXMgcmVzZXQgdG8gYmxvY2sgZGlzcGxheSBhbmQgbGVmdC10by1yaWdodFxuXG5AbWl4aW4gcmVzZXQtYWxsIHtcbiAgQGluY2x1ZGUgcmVzZXQtZGlzcGxheTtcbiAgQGluY2x1ZGUgcmVzZXQtbGF5b3V0LWRpcmVjdGlvbjtcbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuQG1peGluIGdyaWQtY29sdW1uLWdyYWRpZW50KCR2YWx1ZXMuLi4pIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogLXdlYmtpdC1saW5lYXItZ3JhZGllbnQobGVmdCwgJHZhbHVlcyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IC1tb3otbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtbXMtbGluZWFyLWdyYWRpZW50KGxlZnQsICR2YWx1ZXMpO1xuICBiYWNrZ3JvdW5kLWltYWdlOiAtby1saW5lYXItZ3JhZGllbnQobGVmdCwgJHZhbHVlcyk7XG4gIGJhY2tncm91bmQtaW1hZ2U6IHVucXVvdGUoXCJsaW5lYXItZ3JhZGllbnQodG8gbGVmdCwgI3skdmFsdWVzfSlcIik7XG59XG5cbkBpZiAkdmlzdWFsLWdyaWQgPT0gdHJ1ZSBvciAkdmlzdWFsLWdyaWQgPT0geWVzIHtcbiAgYm9keTpiZWZvcmUge1xuICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLWdyYWRpZW50KGdyYWRpZW50LXN0b3BzKCRncmlkLWNvbHVtbnMpKTtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbGVmdDogMDtcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgICBtYXgtd2lkdGg6ICRtYXgtd2lkdGg7XG4gICAgb3BhY2l0eTogJHZpc3VhbC1ncmlkLW9wYWNpdHk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHJpZ2h0OiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgQGlmICR2aXN1YWwtZ3JpZC1pbmRleCA9PSBiYWNrIHtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgIH1cblxuICAgIEBlbHNlIGlmICR2aXN1YWwtZ3JpZC1pbmRleCA9PSBmcm9udCB7XG4gICAgICB6LWluZGV4OiA5OTk5O1xuICAgIH1cblxuICAgIEBlYWNoICRicmVha3BvaW50IGluICR2aXN1YWwtZ3JpZC1icmVha3BvaW50cyB7XG4gICAgICBAaWYgJGJyZWFrcG9pbnQge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkYnJlYWtwb2ludCkge1xuICAgICAgICAgIEBpbmNsdWRlIGdyaWQtY29sdW1uLWdyYWRpZW50KGdyYWRpZW50LXN0b3BzKCRncmlkLWNvbHVtbnMpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hhbmdlcyB0aGUgZGlzcGxheSBwcm9wZXJ0eSB1c2VkIGJ5IG90aGVyIG1peGlucyBjYWxsZWQgaW4gdGhlIGNvZGUgYmxvY2sgYXJndW1lbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGRpc3BsYXkgW2Jsb2NrXVxuLy8vICAgRGlzcGxheSB2YWx1ZSB0byBiZSB1c2VkIHdpdGhpbiB0aGUgYmxvY2suIENhbiBiZSBgdGFibGVgIG9yIGBibG9ja2AuXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzXG4vLy8gICBAaW5jbHVkZSBkaXNwbGF5LWNvbnRleHQodGFibGUpIHtcbi8vLyAgICAuZGlzcGxheS10YWJsZSB7XG4vLy8gICAgICBAaW5jbHVkZSBzcGFuLWNvbHVtbnMoNik7XG4vLy8gICAgIH1cbi8vLyAgIH1cbi8vL1xuLy8vIEBleGFtcGxlIGNzc1xuLy8vICAgLmRpc3BsYXktdGFibGUge1xuLy8vICAgICAgZGlzcGxheTogdGFibGUtY2VsbDtcbi8vLyAgICAgIC4uLlxuLy8vICAgfVxuXG5AbWl4aW4gZGlzcGxheS1jb250ZXh0KCRkaXNwbGF5OiBibG9jaykge1xuICAkc2NvcGUtZGlzcGxheTogJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlO1xuICAkY29udGFpbmVyLWRpc3BsYXktdGFibGU6ICRkaXNwbGF5ID09IHRhYmxlICFnbG9iYWw7XG5cbiAgQGNvbnRlbnQ7XG5cbiAgJGNvbnRhaW5lci1kaXNwbGF5LXRhYmxlOiAkc2NvcGUtZGlzcGxheSAhZ2xvYmFsO1xufVxuIiwiQGNoYXJzZXQgXCJVVEYtOFwiO1xuXG4vLy8gQ2hhbmdlcyB0aGUgZGlyZWN0aW9uIHByb3BlcnR5IHVzZWQgYnkgb3RoZXIgbWl4aW5zIGNhbGxlZCBpbiB0aGUgY29kZSBibG9jayBhcmd1bWVudC5cbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZGlyZWN0aW9uIFtsZWZ0LXRvLXJpZ2h0XVxuLy8vICAgTGF5b3V0IGRpcmVjdGlvbiB0byBiZSB1c2VkIHdpdGhpbiB0aGUgYmxvY2suIENhbiBiZSBgbGVmdC10by1yaWdodGAgb3IgYHJpZ2h0LXRvLWxlZnRgLlxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFVzYWdlXG4vLy8gICBAaW5jbHVkZSBkaXJlY3Rpb24tY29udGV4dChyaWdodC10by1sZWZ0KSB7XG4vLy8gICAgLnJpZ2h0LXRvLWxlZnQtYmxvY2sge1xuLy8vICAgICAgQGluY2x1ZGUgc3Bhbi1jb2x1bW5zKDYpO1xuLy8vICAgICB9XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBjc3MgLSBDU1MgT3V0cHV0XG4vLy8gICAucmlnaHQtdG8tbGVmdC1ibG9jayB7XG4vLy8gICAgIGZsb2F0OiByaWdodDtcbi8vLyAgICAgIC4uLlxuLy8vICAgfVxuXG5AbWl4aW4gZGlyZWN0aW9uLWNvbnRleHQoJGRpcmVjdGlvbjogbGVmdC10by1yaWdodCkge1xuICAkc2NvcGUtZGlyZWN0aW9uOiAkbGF5b3V0LWRpcmVjdGlvbjtcblxuICBAaWYgdG8tbG93ZXItY2FzZSgkZGlyZWN0aW9uKSA9PSBcImxlZnQtdG8tcmlnaHRcIiB7XG4gICAgJGxheW91dC1kaXJlY3Rpb246IExUUiAhZ2xvYmFsO1xuICB9IEBlbHNlIGlmIHRvLWxvd2VyLWNhc2UoJGRpcmVjdGlvbikgPT0gXCJyaWdodC10by1sZWZ0XCIge1xuICAgICRsYXlvdXQtZGlyZWN0aW9uOiBSVEwgIWdsb2JhbDtcbiAgfVxuXG4gIEBjb250ZW50O1xuXG4gICRsYXlvdXQtZGlyZWN0aW9uOiAkc2NvcGUtZGlyZWN0aW9uICFnbG9iYWw7XG59XG4iLCIvLyBCcmVha3BvaW50c1xuJGxhcmdlLXNjcmVlbjogIG5ldy1icmVha3BvaW50KG1heC13aWR0aCAxMjAwcHggMTIpO1xuJG1lZGl1bS1zY3JlZW46IG5ldy1icmVha3BvaW50KG1heC13aWR0aCAgOTkycHggMTIpO1xuJHNtYWxsLXNjcmVlbjogIG5ldy1icmVha3BvaW50KG1heC13aWR0aCAgNzY4cHggIDYpO1xuIiwiLy8gU2V0cyBhbiBhdHRyaWJ1dGUgd2l0aCBzZXQgYWxwaGEgdHJhbnNwYXJlbmN5LCBzdWNoIGFzIGJhY2tncm91bmQtY29sb3JcbkBtaXhpbiBhbHBoYS1hdHRyaWJ1dGUoJGF0dHJpYnV0ZSwgJGNvbG9yLCAkYmFja2dyb3VuZCkge1xuICAkcGVyY2VudDogYWxwaGEoJGNvbG9yKSAqIDEwMCU7XG4gICRvcGFxdWU6IG9wYWNpZnkoJGNvbG9yLCAxKTtcbiAgJHNvbGlkLWNvbG9yOiBtaXgoJG9wYXF1ZSwgJGJhY2tncm91bmQsICRwZXJjZW50KTtcbiAgI3skYXR0cmlidXRlfTogJHNvbGlkLWNvbG9yO1xuICAjeyRhdHRyaWJ1dGV9OiAkY29sb3I7XG59XG5cbi8vIExpbmsgdGhhdCBsb29rcyBsaWtlIG5vcm1hbCB0ZXh0XG5AbWl4aW4gdW5zdHlsZWQtbGluaygpIHtcbiAgY29sb3I6IGluaGVyaXQ7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLy8gQSBsaXN0IHRoYXQgaXMgbGFpZCBvdXQgZnJvbSBsZWZ0IHRvIHJpZ2h0IChub3QgaW5saW5lKVxuQG1peGluIGhvcml6b250YWwtbGlzdCgpIHtcbiAgQGluY2x1ZGUgY2xlYXJmaXg7XG4gIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xuICBtYXJnaW46IDBweDtcblxuICBsaSB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZy1sZWZ0OiA0cHg7XG4gICAgcGFkZGluZy1yaWdodDogNHB4O1xuXG4gICAgJjpmaXJzdCB7XG4gICAgICBwYWRkaW5nLWxlZnQ6IDBweDtcbiAgICB9XG5cbiAgICAmOmxhc3Qge1xuICAgICAgcGFkZGluZy1yaWdodDogMHB4O1xuICAgIH1cbiAgfVxufVxuXG4vLyBUdXJuIG9mZiBidWxsZXRzIGZvciBhIGxpc3RcbkBtaXhpbiBuby1idWxsZXRzKCkge1xuICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7XG4gIG1hcmdpbi1sZWZ0OiAwO1xufVxuXG4ubm8tYnVsbGV0cyB7XG4gIEBpbmNsdWRlIG5vLWJ1bGxldHMoKTtcbn1cblxuQG1peGluIHZpc3VhbGx5LWhpZGRlbigpIHtcbiAgbWFyZ2luOiAtMXB4O1xuICBwYWRkaW5nOiAwO1xuICB3aWR0aDogMXB4O1xuICBoZWlnaHQ6IDFweDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgY2xpcDogcmVjdCgwIDAgMCAwKTtcbiAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgcG9zaXRpb246IGFic29sdXRlO1xufVxuIiwiJGNvbG9yLWxpc3Q6IChcbiAgcHJpbWFyeTogJGJyYW5kLXByaW1hcnksXG4gIGluZm86ICRicmFuZC1pbmZvLFxuICBzdWNjZXNzOiAkYnJhbmQtc3VjY2VzcyxcbiAgd2FybmluZzogJGJyYW5kLXdhcm5pbmcsXG4gIGRhbmdlcjogJGJyYW5kLWRhbmdlclxuKTtcblxuQGVhY2ggJGNvZGUsICRjb2xvciBpbiAkY29sb3ItbGlzdCB7XG4gIC50ZXh0LSN7JGNvZGV9IHtcbiAgICBjb2xvcjogJGNvbG9yO1xuICB9XG59XG4iLCIudGFibGVzIHtcbiAgJGJhc2UtYm9yZGVyLWNvbG9yOiBnYWluc2Jvcm8gIWRlZmF1bHQ7XG4gICRiYXNlLWJvcmRlci1yYWRpdXM6IDNweCAhZGVmYXVsdDtcbiAgJGJhc2UtbGluZS1oZWlnaHQ6IDEuNWVtICFkZWZhdWx0O1xuICAkYmFzZS1zcGFjaW5nOiAxLjVlbSAhZGVmYXVsdDtcbiAgJGRhcmstZ3JheTogIzMzMyAhZGVmYXVsdDtcbiAgJGxpZ2h0LWdyYXk6ICNEREQgIWRlZmF1bHQ7XG4gICRtZWRpdW0tc2NyZWVuOiA0MGVtICFkZWZhdWx0O1xuICAkbGFyZ2Utc2NyZWVuOiA1My43NWVtICFkZWZhdWx0O1xuICAkYmFzZS1mb250LWNvbG9yOiAkZGFyay1ncmF5ICFkZWZhdWx0O1xuICAkdGFibGUtYm9yZGVyLWNvbG9yOiAkYmFzZS1ib3JkZXItY29sb3I7XG4gICR0YWJsZS1ib3JkZXI6IDFweCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAkdGFibGUtYmFja2dyb3VuZDogbGlnaHRlbigkdGFibGUtYm9yZGVyLWNvbG9yLCAxMiUpO1xuICAkdGFibGUtaGVhZGVyLWJhY2tncm91bmQ6IGxpZ2h0ZW4oJHRhYmxlLWJhY2tncm91bmQsIDEwJSk7XG4gICR0YWJsZS1ob3Zlci1iYWNrZ3JvdW5kOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsIDUlKTtcbiAgJHRhYmxlLXN0cmlwZS1iYWNrZ3JvdW5kOiBkYXJrZW4oJHRhYmxlLWJhY2tncm91bmQsIDIlKTtcbiAgJHRhYmxlLXN0cmlwZS1iYWNrZ3JvdW5kLWhvdmVyOiBkYXJrZW4oJHRhYmxlLXN0cmlwZS1iYWNrZ3JvdW5kLCA1JSk7XG4gICR0YWJsZS1wYWRkaW5nOiAwLjc1ZW0gMWVtO1xuXG4gIGJvcmRlcjogJHRhYmxlLWJvcmRlcjtcbiAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgYm9yZGVyLWxlZnQ6IDA7XG4gIGJvcmRlci1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXM7XG4gIGJvcmRlci1zcGFjaW5nOiAwO1xuICB3aWR0aDogMTAwJTtcblxuICB0Ym9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG5cbiAgICB0cjpob3ZlciA+IHRkLCB0cjpob3ZlciA+IHRoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1ob3Zlci1iYWNrZ3JvdW5kO1xuICAgIH1cbiAgICB0cjpudGgtY2hpbGQoZXZlbikge1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZS1iYWNrZ3JvdW5kO1xuICAgICAgJjpob3ZlciA+IHRkIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLXN0cmlwZS1iYWNrZ3JvdW5kLWhvdmVyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRoZWFkOmZpcnN0LW9mLXR5cGUge1xuICAgIHRyOmZpcnN0LWNoaWxkID4gdGg6Zmlyc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGJhc2UtYm9yZGVyLXJhZGl1cztcbiAgICB9XG5cbiAgICB0cjpmaXJzdC1jaGlsZCA+IHRoOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXM7XG4gICAgfVxuICB9XG5cbiAgdGJvZHk6bGFzdC1jaGlsZCB7XG4gICAgdHI6bGFzdC1jaGlsZCA+IHRkOmZpcnN0LWNoaWxkIHtcbiAgICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXM7XG4gICAgfVxuXG4gICAgdHI6bGFzdC1jaGlsZCA+IHRkOmxhc3QtY2hpbGQge1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXM7XG4gICAgfVxuICB9XG5cbiAgdGhlYWQge1xuICAgIHRoIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR0YWJsZS1oZWFkZXItYmFja2dyb3VuZDtcbiAgICAgIGJvcmRlci1ib3R0b206IDA7XG4gICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcbiAgICAgIHRleHQtYWxpZ246IGxlZnQ7XG5cbiAgICAgICY6Zmlyc3QtY2hpbGQge1xuICAgICAgICBib3JkZXItbGVmdDogMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB0Ym9keSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHRhYmxlLWJhY2tncm91bmQ7XG5cbiAgICB0ZCB7XG4gICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAkdGFibGUtYm9yZGVyLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICR0YWJsZS1ib3JkZXItY29sb3I7XG4gICAgICBwYWRkaW5nOiAkdGFibGUtcGFkZGluZztcblxuICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgfVxuXG4gICAgICBidXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMC43ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkYmFzZS1saW5lLWhlaWdodDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC4zZW07XG4gICAgICAgIG1hcmdpbi1yaWdodDogMC41ZW07XG4gICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIHBhZGRpbmc6IDAuM2VtIDFlbTtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJG1lZGl1bS1zY3JlZW4pIHtcbiAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCJAbWl4aW4gYnV0dG9uLWNvbG9yKCRjb2xvcikge1xuICBjb2xvcjogI2ZmZjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgkY29sb3IsIDIwJSk7XG4gIH1cbiAgJjpkaXNhYmxlZDpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICB9XG59XG5cbkBtaXhpbiBidXR0b24tY29sb3ItaW52ZXJzZSgkY29sb3IpIHtcbiAgY29sb3I6ICRjb2xvcjtcbiAgYm9yZGVyOiAwLjJlbSBzb2xpZCAkY29sb3I7XG4gIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAmOmhvdmVyLCAmOmZvY3VzIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRjb2xvciwgMjUlKTtcbiAgfVxuICAmOmRpc2FibGVkOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxufVxuXG4jeyRhbGwtYnV0dG9uc30sIC5idXR0b24tcHJpbWFyeSwgLmJ1dHRvbiB7XG4gIGFwcGVhcmFuY2U6IG5vbmU7XG4gIGJvcmRlcjogMDtcbiAgYm9yZGVyLXJhZGl1czogJGJhc2UtYm9yZGVyLXJhZGl1cztcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZzogJHNtYWxsLXNwYWNpbmcgJGJhc2Utc3BhY2luZztcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgJGJhc2UtZHVyYXRpb24gJGJhc2UtdGltaW5nO1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcblxuICAmOmhvdmVyLFxuICAmOmZvY3VzIHtcbiAgICBjb2xvcjogI2ZmZjtcbiAgfVxuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgb3BhY2l0eTogMC41O1xuICB9XG5cbiAgQGluY2x1ZGUgYnV0dG9uLWNvbG9yKCRtZWRpdW0tZ3JheSk7XG5cbiAgJi5pbnZlcnNlIHtcbiAgICBAaW5jbHVkZSBidXR0b24tY29sb3ItaW52ZXJzZSgkbWVkaXVtLWdyYXkpO1xuICB9XG59XG5cbmJ1dHRvblt0eXBlPXN1Ym1pdF0sIC5idXR0b24tcHJpbWFyeSB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1jb2xvcigkYnJhbmQtcHJpbWFyeSk7XG5cbiAgJi5idXR0b24taW52ZXJzZSB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWNvbG9yLWludmVyc2UoJGJyYW5kLXByaW1hcnkpO1xuICB9XG59XG5cbmJ1dHRvblt0eXBlPXN1Ym1pdF0uYnV0dG9uLWluZm8sIC5idXR0b24taW5mbyB7XG4gIEBpbmNsdWRlIGJ1dHRvbi1jb2xvcigkYnJhbmQtaW5mbyk7XG5cbiAgJi5idXR0b24taW52ZXJzZSB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWNvbG9yLWludmVyc2UoJGJyYW5kLWluZm8pO1xuICB9XG59XG5cbmJ1dHRvblt0eXBlPXN1Ym1pdF0uYnV0dG9uLWRhbmdlciwgLmJ1dHRvbi1kYW5nZXIge1xuICBAaW5jbHVkZSBidXR0b24tY29sb3IoJGJyYW5kLWRhbmdlcik7XG5cbiAgJi5idXR0b24taW52ZXJzZSB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLWNvbG9yLWludmVyc2UoJGJyYW5kLWRhbmdlcik7XG4gIH1cbn1cbiIsIi5idXR0b24tZ3JvdXAge1xuICAkYnV0dG9uLWdyb3VwLWJhY2tncm91bmQ6ICRiYXNlLWJhY2tncm91bmQtY29sb3I7XG4gICRidXR0b24tZ3JvdXAtY29sb3I6IGxpZ2h0ZW4oJGJhc2UtZm9udC1jb2xvciwgMzAlKTtcbiAgJGJ1dHRvbi1ncm91cC1ib3JkZXI6IDFweCBzb2xpZCBzaWx2ZXI7XG4gICRidXR0b24tZ3JvdXAtaW5uZXItYm9yZGVyOiAxcHggc29saWQgbGlnaHRlbihzaWx2ZXIsIDE4JSk7XG4gICRidXR0b24tZ3JvdXAtYmFja2dyb3VuZC1jaGVja2VkOiAkYWN0aW9uLWNvbG9yO1xuICAkYnV0dG9uLWdyb3VwLWNvbG9yLWNoZWNrZWQ6IHdoaXRlO1xuICAkYnV0dG9uLWdyb3VwLWJvcmRlci1jaGVja2VkOiBkYXJrZW4oJGJ1dHRvbi1ncm91cC1iYWNrZ3JvdW5kLWNoZWNrZWQsIDE1JSk7XG5cbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG5cbiAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cblxuICBpbnB1dCB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuXG4gIGxhYmVsIHtcbiAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICAuYnV0dG9uLWdyb3VwLWl0ZW0ge1xuICAgICAgYmFja2dyb3VuZDogJGJ1dHRvbi1ncm91cC1iYWNrZ3JvdW5kO1xuICAgICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICAgIGNvbG9yOiAkYnV0dG9uLWdyb3VwLWNvbG9yO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgICAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG4gICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgbGluZS1oZWlnaHQ6IDE7XG4gICAgICBwYWRkaW5nOiAwLjc1ZW0gMWVtO1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgICBib3JkZXItYm90dG9tOiAkYnV0dG9uLWdyb3VwLWJvcmRlcjtcbiAgICAgIGJvcmRlci1sZWZ0OiAwO1xuICAgICAgYm9yZGVyLXJpZ2h0OiAkYnV0dG9uLWdyb3VwLWlubmVyLWJvcmRlcjtcbiAgICAgIGJvcmRlci10b3A6ICRidXR0b24tZ3JvdXAtYm9yZGVyO1xuICAgICAgd2lkdGg6IDEwMCU7XG5cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgICBib3JkZXItbGVmdDogJGJ1dHRvbi1ncm91cC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yaWdodDogJGJ1dHRvbi1ncm91cC1ib3JkZXI7XG4gICAgICB9XG5cbiAgICAgICY6Zm9jdXMsXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZGFya2VuKCRidXR0b24tZ3JvdXAtYmFja2dyb3VuZCwgMyUpO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Zmlyc3QtY2hpbGQgLmJ1dHRvbi1ncm91cC1pdGVtIHtcbiAgICAgIEBpbmNsdWRlIGJvcmRlci10b3AtcmFkaXVzKCRiYXNlLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkYmFzZS1ib3JkZXItcmFkaXVzO1xuICAgICAgYm9yZGVyLWxlZnQ6ICRidXR0b24tZ3JvdXAtYm9yZGVyO1xuICAgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJGJhc2UtYm9yZGVyLXJhZGl1cztcbiAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwO1xuXG4gICAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICAgIGJvcmRlci10b3A6ICRidXR0b24tZ3JvdXAtYm9yZGVyO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6bGFzdC1jaGlsZCAuYnV0dG9uLWdyb3VwLWl0ZW0ge1xuICAgICAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yYWRpdXMoJGJhc2UtYm9yZGVyLXJhZGl1cyk7XG4gICAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXM7XG4gICAgICBib3JkZXItcmlnaHQ6ICRidXR0b24tZ3JvdXAtYm9yZGVyO1xuICAgICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXM7XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICAgYm9yZGVyLWJvdHRvbTogJGJ1dHRvbi1ncm91cC1ib3JkZXI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaW5wdXQ6Y2hlY2tlZCArIC5idXR0b24tZ3JvdXAtaXRlbSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkYnV0dG9uLWdyb3VwLWJhY2tncm91bmQtY2hlY2tlZDtcbiAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRidXR0b24tZ3JvdXAtYm9yZGVyLWNoZWNrZWQ7XG4gICAgICBib3gtc2hhZG93OiBpbnNldCAwIDFweCAycHggZGFya2VuKCRidXR0b24tZ3JvdXAtYmFja2dyb3VuZC1jaGVja2VkLCAxMCUpO1xuICAgICAgY29sb3I6ICRidXR0b24tZ3JvdXAtY29sb3ItY2hlY2tlZDtcblxuICAgICAgJi5idXR0b24taW5mbyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRicmFuZC1pbmZvO1xuICAgICAgfVxuXG4gICAgICAmLmJ1dHRvbi1kYW5nZXIge1xuICAgICAgICBiYWNrZ3JvdW5kOiAkYnJhbmQtZGFuZ2VyO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiLmRyb3Bkb3duIHtcbiAgJGRyb3Bkb3duLWNvbG9yOiAkYmFzZS1mb250LWNvbG9yO1xuICAkZHJvcGRvd24tZGVzY3JpcHRpb24tY29sb3I6IGxpZ2h0ZW4oJGRyb3Bkb3duLWNvbG9yLCA0MCUpO1xuICAkZHJvcGRvd24tYm9yZGVyOiAxcHggc29saWQgc2lsdmVyO1xuICAkZHJvcGRvd24tYmFja2dyb3VuZDogJGJhc2UtYmFja2dyb3VuZC1jb2xvcjtcbiAgJGRyb3Bkb3duLWJhY2tncm91bmQtaG92ZXI6IGRhcmtlbigkZHJvcGRvd24tYmFja2dyb3VuZCwgMyUpO1xuICAkZHJvcGRvd24taW5uZXItYm9yZGVyOiAxcHggc29saWQgc2lsdmVyO1xuICAkZHJvcGRvd24taGVpZ2h0OiA0MHB4O1xuICAkZHJvcGRvd24tcGFkZGluZzogMWVtO1xuICAkZHJvcGRvd24tZGlzdGFuY2UtZnJvbS1tZW51OiA1MHB4O1xuICAkZHJvcGRvd24tYXJyb3ctdG9wLWRpc3RhbmNlOiAwO1xuXG4gIGxpbmUtaGVpZ2h0OiAkYmFzZS1saW5lLWhlaWdodDtcblxuICAuZHJvcGRvd24tY29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIC5kcm9wZG93bi1kZXNjcmlwdGlvbiB7XG4gICAgYmFja2dyb3VuZDogJGRyb3Bkb3duLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyLWJvdHRvbTogJGRyb3Bkb3duLWJvcmRlcjtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAkYmFzZS1ib3JkZXItcmFkaXVzO1xuICAgIGJvcmRlci1sZWZ0OiAkZHJvcGRvd24tYm9yZGVyO1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyLXRvcDogJGRyb3Bkb3duLWJvcmRlcjtcbiAgICBjb2xvcjogJGRyb3Bkb3duLWRlc2NyaXB0aW9uLWNvbG9yO1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIGZvbnQtc2l6ZTogMC43ZW07XG4gICAgbGluZS1oZWlnaHQ6ICRkcm9wZG93bi1oZWlnaHQ7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgKCRkcm9wZG93bi1wYWRkaW5nIC8gMikgMCAkZHJvcGRvd24tcGFkZGluZztcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4pIHtcbiAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIH1cbiAgfVxuXG4gIC5kcm9wZG93bi1idXR0b24ge1xuICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bi1iYWNrZ3JvdW5kO1xuICAgIGJvcmRlci1ib3R0b206ICRkcm9wZG93bi1ib3JkZXI7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyLXJpZ2h0OiAkZHJvcGRvd24tYm9yZGVyO1xuICAgIGJvcmRlci10b3A6ICRkcm9wZG93bi1ib3JkZXI7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXM7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZsb2F0OiByaWdodDtcbiAgICBmb250LXNpemU6IDAuN2VtO1xuICAgIGxpbmUtaGVpZ2h0OiAkZHJvcGRvd24taGVpZ2h0O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwICgkZHJvcGRvd24tcGFkZGluZyAqIDIuNSkgMCAoJGRyb3Bkb3duLXBhZGRpbmcgLyAyKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkbGFyZ2Utc2NyZWVuKSB7XG4gICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgIHBhZGRpbmc6IDAgKCRkcm9wZG93bi1wYWRkaW5nICogMi41KSAwICgkZHJvcGRvd24tcGFkZGluZyAvIDIpO1xuICAgIH1cbiAgfVxuXG4gIC5kcm9wZG93bi1idXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRkcm9wZG93bi1iYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG5cbiAgLmRyb3Bkb3duLWJ1dHRvbjo6YWZ0ZXIge1xuICAgIGNvbG9yOiAkYmFzZS1mb250LWNvbG9yO1xuICAgIGNvbnRlbnQ6IFwiXFwyNUJFXCI7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAkZHJvcGRvd24tcGFkZGluZztcbiAgICB0b3A6ICRkcm9wZG93bi1hcnJvdy10b3AtZGlzdGFuY2U7XG4gIH1cblxuICAuZHJvcGRvd24tbWVudSB7XG4gICAgYmFja2dyb3VuZDogJGRyb3Bkb3duLWJhY2tncm91bmQ7XG4gICAgYm9yZGVyOiAkZHJvcGRvd24tYm9yZGVyO1xuICAgIGJvcmRlci1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXM7XG4gICAgYm94LXNoYWRvdzogMCAycHggMnB4IHRyYW5zcGFyZW50aXplKGJsYWNrLCAwLjgpO1xuICAgIGNvbG9yOiAkZHJvcGRvd24tY29sb3I7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogJGRyb3Bkb3duLWRpc3RhbmNlLWZyb20tbWVudTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICB3aWR0aDogMjI4cHg7XG4gICAgei1pbmRleDogOTk5OTk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgQGluY2x1ZGUgcG9zaXRpb24oYWJzb2x1dGUsIDAgMWVtIDAgMCk7XG4gICAgICBjb2xvcjogJGRyb3Bkb3duLWJhY2tncm91bmQ7XG4gICAgICBjb250ZW50OiBcIlxcMjViMlwiO1xuICAgICAgZm9udC1zaXplOiAxLjRlbTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgdGV4dC1zaGFkb3c6IDAgLTJweCAycHggdHJhbnNwYXJlbnRpemUoYmxhY2ssIDAuNyk7XG4gICAgICB0b3A6IC0wLjdlbTtcbiAgICB9XG4gIH1cblxuICAuZHJvcGRvd24tbWVudSBsaSB7XG4gICAgYm9yZGVyLWJvdHRvbTogJGRyb3Bkb3duLWlubmVyLWJvcmRlcjtcbiAgICBjb2xvcjogJGRyb3Bkb3duLWNvbG9yO1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgcGFkZGluZzogJGRyb3Bkb3duLXBhZGRpbmcgLyAyO1xuICB9XG5cbiAgLmRyb3Bkb3duLW1lbnUgbGk6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICRkcm9wZG93bi1iYWNrZ3JvdW5kLWhvdmVyO1xuICB9XG5cbiAgLmRyb3Bkb3duLW1lbnUgbGk6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXM7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXM7XG4gIH1cblxuICAuZHJvcGRvd24tbWVudSBsaTpsYXN0LWNoaWxkIHtcbiAgICBib3JkZXI6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogJGJhc2UtYm9yZGVyLXJhZGl1cztcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogJGJhc2UtYm9yZGVyLXJhZGl1cztcbiAgfVxuXG4gIC5zaG93LW1lbnUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG59IiwiZmllbGRzZXQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgYm9yZGVyOiAwO1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG59XG5cbmxlZ2VuZCB7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nIC8gMjtcbiAgcGFkZGluZzogMDtcbn1cblxubGFiZWwge1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmcgLyAyO1xufVxuXG5pbnB1dCxcbnNlbGVjdCxcbnRleHRhcmVhIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtZmFtaWx5OiAkYmFzZS1mb250LWZhbWlseTtcbiAgZm9udC1zaXplOiAkYmFzZS1mb250LXNpemU7XG59XG5cbiN7JGFsbC10ZXh0LWlucHV0c30ge1xuICBhcHBlYXJhbmNlOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAkYmFzZS1iYWNrZ3JvdW5kLWNvbG9yO1xuICBib3JkZXI6ICRiYXNlLWJvcmRlcjtcbiAgYm9yZGVyLXJhZGl1czogJGJhc2UtYm9yZGVyLXJhZGl1cztcbiAgYm94LXNoYWRvdzogJGZvcm0tYm94LXNoYWRvdztcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG4gIHBhZGRpbmc6ICRiYXNlLXNwYWNpbmcgLyAzO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgJGJhc2UtZHVyYXRpb24gJGJhc2UtdGltaW5nO1xuICB3aWR0aDogMTAwJTtcblxuICAmOmhvdmVyIHtcbiAgICBib3JkZXItY29sb3I6IHNoYWRlKCRiYXNlLWJvcmRlci1jb2xvciwgMjAlKTtcbiAgfVxuXG4gICY6Zm9jdXMge1xuICAgIGJvcmRlci1jb2xvcjogJGFjdGlvbi1jb2xvcjtcbiAgICBib3gtc2hhZG93OiAkZm9ybS1ib3gtc2hhZG93LWZvY3VzO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBzaGFkZSgkYmFzZS1iYWNrZ3JvdW5kLWNvbG9yLCA1JSk7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyOiAkYmFzZS1ib3JkZXI7XG4gICAgfVxuICB9XG5cbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiB0aW50KCRiYXNlLWZvbnQtY29sb3IsIDQwJSk7XG4gIH1cbn1cblxudGV4dGFyZWEge1xuICByZXNpemU6IHZlcnRpY2FsO1xufVxuXG5bdHlwZT1cImNoZWNrYm94XCJdLFxuW3R5cGU9XCJyYWRpb1wiXSB7XG4gIGRpc3BsYXk6IGlubGluZTtcbiAgbWFyZ2luLXJpZ2h0OiAkc21hbGwtc3BhY2luZyAvIDI7XG59XG5cblt0eXBlPVwiZmlsZVwiXSB7XG4gIG1hcmdpbi1ib3R0b206ICRzbWFsbC1zcGFjaW5nO1xuICB3aWR0aDogMTAwJTtcbn1cblxuc2VsZWN0IHtcbiAgbWFyZ2luLWJvdHRvbTogJHNtYWxsLXNwYWNpbmc7XG4gIHdpZHRoOiAxMDAlO1xufVxuIiwiLnBhZ2luYXRpb24ge1xuICAkYmFzZS1ib3JkZXItY29sb3I6IGdhaW5zYm9ybyAhZGVmYXVsdDtcbiAgJGJhc2UtYm9yZGVyLXJhZGl1czogM3B4ICFkZWZhdWx0O1xuICAkYmFzZS1zcGFjaW5nOiAxLjVlbSAhZGVmYXVsdDtcbiAgJGFjdGlvbi1jb2xvcjogIzQ3N0RDQSAhZGVmYXVsdDtcbiAgJGRhcmstZ3JheTogIzMzMyAhZGVmYXVsdDtcbiAgJGxhcmdlLXNjcmVlbjogNTMuNzVlbSAhZGVmYXVsdDtcbiAgJGJhc2UtZm9udC1jb2xvcjogJGRhcmstZ3JheSAhZGVmYXVsdDtcbiAgJHBhZ2luYXRpb24tYm9yZGVyLWNvbG9yOiAkYmFzZS1ib3JkZXItY29sb3I7XG4gICRwYWdpbmF0aW9uLWJvcmRlcjogMXB4IHNvbGlkICRwYWdpbmF0aW9uLWJvcmRlci1jb2xvcjtcbiAgJHBhZ2luYXRpb24tYmFja2dyb3VuZDogbGlnaHRlbigkcGFnaW5hdGlvbi1ib3JkZXItY29sb3IsIDEwKTtcbiAgJHBhZ2luYXRpb24taG92ZXItYmFja2dyb3VuZDogbGlnaHRlbigkcGFnaW5hdGlvbi1iYWNrZ3JvdW5kLCA1KTtcbiAgJHBhZ2luYXRpb24tY29sb3I6ICRiYXNlLWZvbnQtY29sb3I7XG5cbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAzZW07XG5cbiAgdWwge1xuICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG5cbiAgICBsaSB7XG4gICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cblxuICAgIHVsIGxpIHtcbiAgICAgIGRpc3BsYXk6IG5vbmU7XG5cbiAgICAgICY6bnRoLWNoaWxkKDEpLFxuICAgICAgJjpudGgtY2hpbGQoMiksXG4gICAgICAmOm50aC1jaGlsZCgzKSB7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcbiAgICAgIH1cblxuICAgICAgQGluY2x1ZGUgbWVkaWEoJGxhcmdlLXNjcmVlbikge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgbGkgYSB7XG4gICAgICBiYWNrZ3JvdW5kOiAkcGFnaW5hdGlvbi1iYWNrZ3JvdW5kO1xuICAgICAgYm9yZGVyLXJhZGl1czogJGJhc2UtYm9yZGVyLXJhZGl1cztcbiAgICAgIGJvcmRlcjogJHBhZ2luYXRpb24tYm9yZGVyO1xuICAgICAgY29sb3I6ICRwYWdpbmF0aW9uLWNvbG9yO1xuICAgICAgb3V0bGluZTogbm9uZTtcbiAgICAgIHBhZGRpbmc6ICgkYmFzZS1zcGFjaW5nIC8gNCkgKCRndXR0ZXIgLyAyKTtcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2UtaW4tb3V0O1xuXG4gICAgICAmOmhvdmVyLFxuICAgICAgJjpmb2N1cyB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwYWdpbmF0aW9uLWhvdmVyLWJhY2tncm91bmQ7XG4gICAgICAgIGNvbG9yOiAkYWN0aW9uLWNvbG9yO1xuICAgICAgfVxuXG4gICAgICAmOmFjdGl2ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICRwYWdpbmF0aW9uLWJhY2tncm91bmQ7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiIsIiRiYXNlLXNwYWNpbmc6IDEuNWVtICFkZWZhdWx0O1xuJGZsYXNoZXM6IChcbiAgXCJhbGVydFwiOiAjZmZmNmJmLFxuICBcImVycm9yXCI6ICNmYmUzZTQsXG4gIFwibm90aWNlXCI6ICNlNWVkZjgsXG4gIFwic3VjY2Vzc1wiOiAjZTZlZmMyLFxuKSAhZGVmYXVsdDtcblxuQGVhY2ggJGZsYXNoLXR5cGUsICRjb2xvciBpbiAkZmxhc2hlcyB7XG4gIC5mbGFzaC0jeyRmbGFzaC10eXBlfSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNvbG9yO1xuICAgIGNvbG9yOiBzaGFkZSgkY29sb3IsIDYwJSk7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogJGJhc2Utc3BhY2luZyAvIDI7XG4gICAgcGFkZGluZzogJGJhc2Utc3BhY2luZyAvIDI7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuXG4gICAgYSB7XG4gICAgICBjb2xvcjogc2hhZGUoJGNvbG9yLCA3MCUpO1xuICAgICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG5cbiAgICAgICY6Zm9jdXMsXG4gICAgICAmOmhvdmVyIHtcbiAgICAgICAgY29sb3I6IHNoYWRlKCRjb2xvciwgOTAlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuIiwiLnBhbmVsIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI0ZGRjtcbiAgcGFkZGluZzogMWVtO1xuICBib3JkZXI6ICRiYXNlLWJvcmRlcjtcbiAgbWFyZ2luLWJvdHRvbTogMWVtO1xuXG4gIGgyIHtcbiAgICBib3JkZXItYm90dG9tOiAkYmFzZS1ib3JkZXI7XG4gICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICB9XG59XG4iLCIuY2FyZHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2Vlbjtcbn1cblxuLmNhcmQge1xuICAgICRiYXNlLWJvcmRlci1yYWRpdXM6IDNweCAhZGVmYXVsdDtcbiAgICAkYmFzZS1zcGFjaW5nOiAxLjVlbSAhZGVmYXVsdDtcbiAgICAkY2FyZC1ib3JkZXItY29sb3I6ICRiYXNlLWJvcmRlci1jb2xvcjtcbiAgICAkY2FyZC1ib3JkZXI6IDFweCBzb2xpZCAkY2FyZC1ib3JkZXItY29sb3I7XG4gICAgJGNhcmQtYmFja2dyb3VuZDogbGlnaHRlbigkY2FyZC1ib3JkZXItY29sb3IsIDEwJSk7XG4gICAgJGNhcmQtaGVhZGVyLWJhY2tncm91bmQ6ICRjYXJkLWJhY2tncm91bmQ7XG4gICAgJGNhcmQtbWFyZ2luOiAxZW07XG4gICAgJGNhcmQtaW1hZ2UtaG92ZXItb3BhY2l0eTogMC43O1xuICAgICRjYXJkLWltYWdlLWhvdmVyLWNvbG9yOiAjRjhGMkI0O1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmQtYmFja2dyb3VuZDtcbiAgICBib3JkZXI6ICRjYXJkLWJvcmRlcjtcbiAgICBib3JkZXItcmFkaXVzOiAkYmFzZS1ib3JkZXItcmFkaXVzO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDRweCBkYXJrZW4oJGJhc2UtYmFja2dyb3VuZC1jb2xvciwgMTAlKTtcbiAgICBmbGV4LWJhc2lzOiAxM2VtO1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtYXJnaW46IDAgJGNhcmQtbWFyZ2luICRiYXNlLXNwYWNpbmcgJGNhcmQtbWFyZ2luO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcblxuICAgIGEge1xuICAgICAgICBjb2xvcjogJGJhc2UtZm9udC1jb2xvcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5jYXJkLWltYWdlIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmQtaW1hZ2UtaG92ZXItY29sb3I7XG4gICAgICAgIGhlaWdodDogMTUwcHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDE1MHB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuXG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygkYmFzZS1ib3JkZXItcmFkaXVzKTtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlLWluLW91dDtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmNhcmQtaGVhZGVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGNhcmQtaGVhZGVyLWJhY2tncm91bmQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXMgJGJhc2UtYm9yZGVyLXJhZGl1cyAwIDA7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICAgIHBhZGRpbmc6ICgkYmFzZS1zcGFjaW5nIC8gMykgKCRiYXNlLXNwYWNpbmcgLyAyKTtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1pbi1vdXQ7XG4gICAgfVxuXG4gICAgLmNhcmQtY29weSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAxLjVlbTtcbiAgICAgICAgcGFkZGluZzogKCRiYXNlLXNwYWNpbmcgLyAyKSAoJGJhc2Utc3BhY2luZyAvIDIpO1xuXG4gICAgICAgIHAge1xuICAgICAgICAgICAgbWFyZ2luOiAwIDAgKCRiYXNlLXNwYWNpbmcgLyAyKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgICY6Zm9jdXMsXG4gICAgJjpob3ZlciB7XG4gICAgICAgIGltZyB7XG4gICAgICAgICAgICBvcGFjaXR5OiAkY2FyZC1pbWFnZS1ob3Zlci1vcGFjaXR5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjphY3RpdmUge1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FyZC1iYWNrZ3JvdW5kO1xuXG4gICAgICAgIC5jYXJkLWhlYWRlciB7XG4gICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAkY2FyZC1iYWNrZ3JvdW5kO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiLmV4cGFuZGVyIHtcbiAgICAkZXhwYW5kZXItYXJyb3ctd2lkdGg6IDAuN2VtO1xuICAgICRleHBhbmRlci10b2dnbGUtc2l6ZTogMWVtO1xuICAgICRleHBhbmRlci10b2dnbGUtYXJyb3ctc2l6ZTogJGV4cGFuZGVyLXRvZ2dsZS1zaXplO1xuICAgICRleHBhbmRlci10b2dnbGUtbWFyZ2luOiAxZW07XG5cbiAgICAuZXhwYW5kZXItdHJpZ2dlciB7XG4gICAgICAgIGNvbG9yOiAkYWN0aW9uLWNvbG9yO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6ICRleHBhbmRlci10b2dnbGUtc2l6ZTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogJGV4cGFuZGVyLXRvZ2dsZS1zaXplO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogJGV4cGFuZGVyLXRvZ2dsZS1zaXplIC8gNDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkZXhwYW5kZXItYXJyb3ctd2lkdGg7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgdXNlci1zZWxlY3Q6IG5vbmU7XG5cbiAgICAgICAgJjo6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiXFwyNUJDXCI7XG4gICAgICAgICAgICBmb250LXNpemU6ICRleHBhbmRlci1hcnJvdy13aWR0aDtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMC41ZW07XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmhpZGRlbiB7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgICBjb250ZW50OiBcIlxcMjVCQVwiO1xuICAgICAgICAgICAgZm9udC1zaXplOiAkZXhwYW5kZXItYXJyb3ctd2lkdGg7XG4gICAgICAgICAgICBwb3NpdGlvbjogc3RhdGljO1xuICAgICAgICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmhpZGRlbiArIC5leHBhbmRlci1jb250ZW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG59XG4iLCJmb3JtLnNlYXJjaC1iYXIge1xuICAkc2VhcmNoLWJhci1ib3JkZXItY29sb3I6ICRiYXNlLWJvcmRlci1jb2xvcjtcbiAgJHNlYXJjaC1iYXItYm9yZGVyOiAxcHggc29saWQgJHNlYXJjaC1iYXItYm9yZGVyLWNvbG9yO1xuICAkc2VhcmNoLWJhci1iYWNrZ3JvdW5kOiBsaWdodGVuKCRzZWFyY2gtYmFyLWJvcmRlci1jb2xvciwgMTAlKTtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGRpc3BsYXk6IGZsZXg7XG5cbiAgaW5wdXRbdHlwZT1zZWFyY2hdIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogKCRiYXNlLXNwYWNpbmcgLyAzKSAoJGJhc2Utc3BhY2luZyAvIDMpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3I7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICBzZWxlY3Qge1xuICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgfVxuXG4gIGJ1dHRvblt0eXBlPXN1Ym1pdF0ge1xuICAgIEBpbmNsdWRlIHBvc2l0aW9uKGFic29sdXRlLCAwIDAgMCBudWxsKTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIHBhZGRpbmc6IDVweCAxMHB4O1xuXG4gICAgaW1nIHtcbiAgICAgIGhlaWdodDogMTJweDtcbiAgICAgIG9wYWNpdHk6IDAuNztcbiAgICB9XG4gIH1cbn1cbiIsIkBpbXBvcnQgXCJhcHAvYmFzZVwiO1xuXG4vLyBQYXJ0aWFsc1xuQGltcG9ydCBcIm5hdmlnYXRpb25cIjtcbkBpbXBvcnQgXCJmb290ZXJcIjtcbkBpbXBvcnQgXCJoZXJvXCI7XG5AaW1wb3J0IFwiZXBpc29kZXNcIjtcbkBpbXBvcnQgXCJzZWFyY2hcIjtcbiIsIkBpbXBvcnQgXCJjb21wYXNzL2NzczMvYm9yZGVyLXJhZGl1c1wiO1xuXG5uYXYge1xuICAgIGxpbmUtaGVpZ2h0OiA1ZW07XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG5cbiAgICB1bCB7XG4gICAgICAgIEBpbmNsdWRlIG5vLWJ1bGxldHM7XG4gICAgICAgIG1hcmdpbjogMDsgcGFkZGluZzogMDtcbiAgICAgICAgZGlzcGxheTogaW5saW5lO1xuXG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFwiL1wiO1xuICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDFlbTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogMWVtO1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMjAlO1xuICAgICAgICB9XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsaSB7XG4gICAgICAgICAgICBtYXJnaW46IDA7IHBhZGRpbmc6IDA7XG4gICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmU7XG5cbiAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgIG1hcmdpbi1sZWZ0OiAxZW07XG4gICAgICAgICAgICAgICAgbWFyZ2luLXJpZ2h0OiAxZW07XG4gICAgICAgICAgICAgICAgZm9udC1zaXplOiAxMjAlO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiL1wiO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IFwiXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhIHtcbiAgICAgICAgQGluY2x1ZGUgdW5zdHlsZWQtbGluaztcbiAgICB9XG59XG5cbnVsLnNob3dzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZmxvdzogcm93O1xuICAgIEBpbmNsdWRlIG5vLWJ1bGxldHMoKTtcblxuICAgIHBhZGRpbmc6IDA7IG1hcmdpbjogMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRicmFuZC1wcmltYXJ5LCA0MyUpO1xuICAgIGNvbG9yOiAkYmFzZS1mb250LWNvbG9yO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICB9XG5cbiAgICBsaSB7XG4gICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBwYWRkaW5nOiAxZW07XG5cbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiAwLjVlbTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGEge1xuICAgICAgICAgICAgY29sb3I6ICRiYXNlLWZvbnQtY29sb3I7XG4gICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgICAgICAgICAgcGFkZGluZzogMWVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICAgICAgICAgICAgcGFkZGluZzogMC41ZW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICY6aG92ZXIge1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGxpZ2h0ZW4oJGJyYW5kLXByaW1hcnksIDMwJSk7XG4gICAgICAgICAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZC1jb2xvciAwLjNzIGVhc2UtaW4tb3V0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGltcG9ydCBcInNoYXJlZFwiO1xuXG4kZGVmYXVsdC1ib3JkZXItcmFkaXVzOiA1cHggIWRlZmF1bHQ7XG5cbi8vIFJvdW5kIGFsbCBjb3JuZXJzIGJ5IGEgc3BlY2lmaWMgYW1vdW50LCBkZWZhdWx0cyB0byB2YWx1ZSBvZiBgJGRlZmF1bHQtYm9yZGVyLXJhZGl1c2AuXG4vL1xuLy8gV2hlbiB0d28gdmFsdWVzIGFyZSBwYXNzZWQsIHRoZSBmaXJzdCBpcyB0aGUgaG9yaXpvbnRhbCByYWRpdXNcbi8vIGFuZCB0aGUgc2Vjb25kIGlzIHRoZSB2ZXJ0aWNhbCByYWRpdXMuXG4vL1xuLy8gTm90ZTogd2Via2l0IGRvZXMgbm90IHN1cHBvcnQgc2hvcnRoYW5kIHN5bnRheCBmb3Igc2V2ZXJhbCBjb3JuZXJzIGF0IG9uY2UuXG4vLyBTbyBpbiB0aGUgY2FzZSB3aGVyZSB5b3UgcGFzcyBzZXZlcmFsIHZhbHVlcyBvbmx5IHRoZSBmaXJzdCB3aWxsIGJlIHBhc3NlZCB0byB3ZWJraXQuXG4vL1xuLy8gRXhhbXBsZXM6XG4vL1xuLy8gICAgIC5zaW1wbGUgICB7IEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoNHB4LCA0cHgpOyB9XG4vLyAgICAgLmNvbXBvdW5kIHsgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cygycHggNXB4LCAzcHggNnB4KTsgfVxuLy8gICAgIC5jcmF6eSAgICB7IEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMXB4IDNweCA1cHggN3B4LCAycHggNHB4IDZweCA4cHgpfVxuLy9cbi8vIFdoaWNoIGdlbmVyYXRlczpcbi8vXG4vLyAgICAuc2ltcGxlIHtcbi8vICAgICAgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHggNHB4O1xuLy8gICAgICAtbW96LWJvcmRlci1yYWRpdXM6IDRweCAvIDRweDtcbi8vICAgICAgLWtodG1sLWJvcmRlci1yYWRpdXM6IDRweCAvIDRweDtcbi8vICAgICAgYm9yZGVyLXJhZGl1czogNHB4IC8gNHB4OyB9XG4vLyAgICBcbi8vICAgIC5jb21wb3VuZCB7XG4vLyAgICAgIC13ZWJraXQtYm9yZGVyLXJhZGl1czogMnB4IDNweDtcbi8vICAgICAgLW1vei1ib3JkZXItcmFkaXVzOiAycHggNXB4IC8gM3B4IDZweDtcbi8vICAgICAgLWtodG1sLWJvcmRlci1yYWRpdXM6IDJweCA1cHggLyAzcHggNnB4O1xuLy8gICAgICBib3JkZXItcmFkaXVzOiAycHggNXB4IC8gM3B4IDZweDsgfVxuLy8gICAgXG4vLyAgICAuY3Jhenkge1xuLy8gICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDFweCAycHg7XG4vLyAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogMXB4IDNweCA1cHggN3B4IC8gMnB4IDRweCA2cHggOHB4O1xuLy8gICAgICAta2h0bWwtYm9yZGVyLXJhZGl1czogMXB4IDNweCA1cHggN3B4IC8gMnB4IDRweCA2cHggOHB4O1xuLy8gICAgICBib3JkZXItcmFkaXVzOiAxcHggM3B4IDVweCA3cHggLyAycHggNHB4IDZweCA4cHg7IH1cblxuQG1peGluIGJvcmRlci1yYWRpdXMoJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cywgJHZlcnRpY2FsLXJhZGl1czogZmFsc2UpIHtcblxuICBAaWYgJHZlcnRpY2FsLXJhZGl1cyB7XG4gICAgLy8gV2Via2l0IGRvZXNuJ3QgdW5kZXJzdGFuZCB0aGUgb2ZmaWNpYWwgc2hvcnRoYW5kIHN5bnRheCBmb3Igc3BlY2lmeWluZ1xuICAgIC8vIGEgdmVydGljYWwgcmFkaXVzIHVubGVzcyBzbyBpbiBjYXNlIHRoZXJlJ3Mgc2V2ZXJhbCB3ZSBvbmx5IHRha2UgdGhlIGZpcnN0LlxuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChib3JkZXItcmFkaXVzLCBmaXJzdC12YWx1ZS1vZigkcmFkaXVzKSBmaXJzdC12YWx1ZS1vZigkdmVydGljYWwtcmFkaXVzKSxcbiAgICAgIG5vdCgtbW96KSxcbiAgICAgIC13ZWJraXQsXG4gICAgICBub3QoLW8pLFxuICAgICAgbm90KC1tcyksXG4gICAgICBub3QoLWtodG1sKSxcbiAgICAgIG5vdChvZmZpY2lhbClcbiAgICApO1xuICAgIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChcImJvcmRlci1yYWRpdXNcIiwgJHJhZGl1cyB1bnF1b3RlKFwiL1wiKSAkdmVydGljYWwtcmFkaXVzLFxuICAgICAgLW1veixcbiAgICAgIG5vdCgtd2Via2l0KSxcbiAgICAgIG5vdCgtbyksXG4gICAgICBub3QoLW1zKSxcbiAgICAgIC1raHRtbCxcbiAgICAgIG9mZmljaWFsXG4gICAgKTtcbiAgfVxuICBAZWxzZSB7XG4gICAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKGJvcmRlci1yYWRpdXMsICRyYWRpdXMpO1xuICB9XG59XG5cbi8vIFJvdW5kIHJhZGl1cyBhdCBwb3NpdGlvbiBieSBhbW91bnQuXG4vL1xuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yIGAkdmVydGA6IGB0b3BgLCBgYm90dG9tYFxuLy8gKiBsZWdhbCB2YWx1ZXMgZm9yIGAkaG9yemA6IGBsZWZ0YCwgYHJpZ2h0YFxuXG5AbWl4aW4gYm9yZGVyLWNvcm5lci1yYWRpdXMoJHZlcnQsICRob3J6LCAkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzKSB7XG4gIC8vIFN1cHBvcnQgZm9yIG1vemlsbGEncyBzeW50YXggZm9yIHNwZWNpZnlpbmcgYSBjb3JuZXJcbiAgQGluY2x1ZGUgZXhwZXJpbWVudGFsKFwiYm9yZGVyLXJhZGl1cy0jeyR2ZXJ0fSN7JGhvcnp9XCIsICRyYWRpdXMsXG4gICAgLW1veixcbiAgICBub3QoLXdlYmtpdCksXG4gICAgbm90KC1vKSxcbiAgICBub3QoLW1zKSxcbiAgICBub3QoLWtodG1sKSxcbiAgICBub3Qob2ZmaWNpYWwpXG4gICk7XG4gIEBpbmNsdWRlIGV4cGVyaW1lbnRhbChcImJvcmRlci0jeyR2ZXJ0fS0jeyRob3J6fS1yYWRpdXNcIiwgJHJhZGl1cyxcbiAgICBub3QoLW1veiksXG4gICAgLXdlYmtpdCxcbiAgICBub3QoLW8pLFxuICAgIG5vdCgtbXMpLFxuICAgIC1raHRtbCxcbiAgICBvZmZpY2lhbFxuICApO1xuICBcbn1cblxuLy8gUm91bmQgdG9wLWxlZnQgY29ybmVyIG9ubHlcblxuQG1peGluIGJvcmRlci10b3AtbGVmdC1yYWRpdXMoJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cykge1xuICBAaW5jbHVkZSBib3JkZXItY29ybmVyLXJhZGl1cyh0b3AsIGxlZnQsICRyYWRpdXMpOyB9XG5cbi8vIFJvdW5kIHRvcC1yaWdodCBjb3JuZXIgb25seVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1yaWdodC1yYWRpdXMoJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cykge1xuICBAaW5jbHVkZSBib3JkZXItY29ybmVyLXJhZGl1cyh0b3AsIHJpZ2h0LCAkcmFkaXVzKTsgfVxuXG4vLyBSb3VuZCBib3R0b20tbGVmdCBjb3JuZXIgb25seVxuXG5AbWl4aW4gYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cygkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzKSB7XG4gIEBpbmNsdWRlIGJvcmRlci1jb3JuZXItcmFkaXVzKGJvdHRvbSwgbGVmdCwgJHJhZGl1cyk7IH1cblxuLy8gUm91bmQgYm90dG9tLXJpZ2h0IGNvcm5lciBvbmx5XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cygkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzKSB7XG4gIEBpbmNsdWRlIGJvcmRlci1jb3JuZXItcmFkaXVzKGJvdHRvbSwgcmlnaHQsICRyYWRpdXMpOyB9XG5cbi8vIFJvdW5kIGJvdGggdG9wIGNvcm5lcnMgYnkgYW1vdW50XG5AbWl4aW4gYm9yZGVyLXRvcC1yYWRpdXMoJHJhZGl1czogJGRlZmF1bHQtYm9yZGVyLXJhZGl1cykge1xuICBAaW5jbHVkZSBib3JkZXItdG9wLWxlZnQtcmFkaXVzKCRyYWRpdXMpO1xuICBAaW5jbHVkZSBib3JkZXItdG9wLXJpZ2h0LXJhZGl1cygkcmFkaXVzKTsgfVxuXG4vLyBSb3VuZCBib3RoIHJpZ2h0IGNvcm5lcnMgYnkgYW1vdW50XG5AbWl4aW4gYm9yZGVyLXJpZ2h0LXJhZGl1cygkcmFkaXVzOiAkZGVmYXVsdC1ib3JkZXItcmFkaXVzKSB7XG4gIEBpbmNsdWRlIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzKCRyYWRpdXMpO1xuICBAaW5jbHVkZSBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cygkcmFkaXVzKTsgfVxuXG4vLyBSb3VuZCBib3RoIGJvdHRvbSBjb3JuZXJzIGJ5IGFtb3VudFxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXMpIHtcbiAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cygkcmFkaXVzKTtcbiAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXMoJHJhZGl1cyk7IH1cblxuLy8gUm91bmQgYm90aCBsZWZ0IGNvcm5lcnMgYnkgYW1vdW50XG5AbWl4aW4gYm9yZGVyLWxlZnQtcmFkaXVzKCRyYWRpdXM6ICRkZWZhdWx0LWJvcmRlci1yYWRpdXMpIHtcbiAgQGluY2x1ZGUgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cygkcmFkaXVzKTtcbiAgQGluY2x1ZGUgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cygkcmFkaXVzKTsgfVxuIiwiQGltcG9ydCBcIi4uL3N1cHBvcnRcIjtcblxuLy8gVGhpcyBtaXhpbiBwcm92aWRlcyBiYXNpYyBzdXBwb3J0IGZvciBDU1MzIHByb3BlcnRpZXMgYW5kXG4vLyB0aGVpciBjb3JyZXNwb25kaW5nIGV4cGVyaW1lbnRhbCBDU1MyIHByb3BlcnRpZXMgd2hlblxuLy8gdGhlIGltcGxlbWVudGF0aW9ucyBhcmUgaWRlbnRpY2FsIGV4Y2VwdCBmb3IgdGhlIHByb3BlcnR5XG4vLyBwcmVmaXguXG5AbWl4aW4gZXhwZXJpbWVudGFsKCRwcm9wZXJ0eSwgJHZhbHVlLFxuICAkbW96ICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEsXG4gICR3ZWJraXQgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0LFxuICAkbyAgICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhLFxuICAkbXMgICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdCxcbiAgJGtodG1sICAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1raHRtbCxcbiAgJG9mZmljaWFsIDogdHJ1ZVxuKSB7XG4gIEBpZiAkd2Via2l0ICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgeyAtd2Via2l0LSN7JHByb3BlcnR5fSA6ICR2YWx1ZTsgfVxuICBAaWYgJGtodG1sICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Ita2h0bWwgICAgIHsgIC1raHRtbC0jeyRwcm9wZXJ0eX0gOiAkdmFsdWU7IH1cbiAgQGlmICRtb3ogICAgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICB7ICAgIC1tb3otI3skcHJvcGVydHl9IDogJHZhbHVlOyB9XG4gIEBpZiAkbXMgICAgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1taWNyb3NvZnQgeyAgICAgLW1zLSN7JHByb3BlcnR5fSA6ICR2YWx1ZTsgfVxuICBAaWYgJG8gICAgICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgIHsgICAgICAtby0jeyRwcm9wZXJ0eX0gOiAkdmFsdWU7IH1cbiAgQGlmICRvZmZpY2lhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgICAgICAgI3skcHJvcGVydHl9IDogJHZhbHVlOyB9XG59XG5cbi8vIFNhbWUgYXMgZXhwZXJpbWVudGFsKCksIGJ1dCBmb3IgY2FzZXMgd2hlbiB0aGUgcHJvcGVydHkgaXMgdGhlIHNhbWUgYW5kIHRoZSB2YWx1ZSBpcyB2ZW5kb3JpemVkXG5AbWl4aW4gZXhwZXJpbWVudGFsLXZhbHVlKCRwcm9wZXJ0eSwgJHZhbHVlLFxuICAkbW96ICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEsXG4gICR3ZWJraXQgICA6ICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0LFxuICAkbyAgICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW9wZXJhLFxuICAkbXMgICAgICAgOiAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1pY3Jvc29mdCxcbiAgJGtodG1sICAgIDogJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1raHRtbCxcbiAgJG9mZmljaWFsIDogdHJ1ZVxuKSB7XG4gIEBpZiAkd2Via2l0ICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci13ZWJraXQgICAgeyAjeyRwcm9wZXJ0eX0gOiAtd2Via2l0LSN7JHZhbHVlfTsgfVxuICBAaWYgJGtodG1sICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Ita2h0bWwgICAgIHsgI3skcHJvcGVydHl9IDogIC1raHRtbC0jeyR2YWx1ZX07IH1cbiAgQGlmICRtb3ogICAgIGFuZCAkZXhwZXJpbWVudGFsLXN1cHBvcnQtZm9yLW1vemlsbGEgICB7ICN7JHByb3BlcnR5fSA6ICAgIC1tb3otI3skdmFsdWV9OyB9XG4gIEBpZiAkbXMgICAgICBhbmQgJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1taWNyb3NvZnQgeyAjeyRwcm9wZXJ0eX0gOiAgICAgLW1zLSN7JHZhbHVlfTsgfVxuICBAaWYgJG8gICAgICAgYW5kICRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgIHsgI3skcHJvcGVydHl9IDogICAgICAtby0jeyR2YWx1ZX07IH1cbiAgQGlmICRvZmZpY2lhbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICN7JHByb3BlcnR5fSA6ICAgICAgICAgI3skdmFsdWV9OyB9XG59XG4iLCIvLyBVc3VhbGx5IGNvbXBhc3MgaGFja3MgYXBwbHkgdG8gYm90aCBpZTYgJiA3IC0tIHNldCB0aGlzIHRvIGZhbHNlIHRvIGRpc2FibGUgc3VwcG9ydCBmb3IgYm90aC5cbiRsZWdhY3ktc3VwcG9ydC1mb3ItaWU6IHRydWUgIWRlZmF1bHQ7XG5cbi8vIFNldHRpbmcgdGhpcyB0byBmYWxzZSB3aWxsIHJlc3VsdCBpbiBzbWFsbGVyIG91dHB1dCwgYnV0IG5vIHN1cHBvcnQgZm9yIGllNiBoYWNrc1xuJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTY6ICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUgIWRlZmF1bHQ7XG5cbi8vIFNldHRpbmcgdGhpcyB0byBmYWxzZSB3aWxsIHJlc3VsdCBpbiBzbWFsbGVyIG91dHB1dCwgYnV0IG5vIHN1cHBvcnQgZm9yIGllNyBoYWNrc1xuJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTc6ICRsZWdhY3ktc3VwcG9ydC1mb3ItaWUgIWRlZmF1bHQ7XG5cbi8vIFNldHRpbmcgdGhpcyB0byBmYWxzZSB3aWxsIHJlc3VsdCBpbiBzbWFsbGVyIG91dHB1dCwgYnV0IG5vIHN1cHBvcnQgZm9yIGxlZ2FjeSBpZTggaGFja3NcbiRsZWdhY3ktc3VwcG9ydC1mb3ItaWU4OiAkbGVnYWN5LXN1cHBvcnQtZm9yLWllICFkZWZhdWx0O1xuXG4vLyBAcHJpdmF0ZVxuLy8gVGhlIHVzZXIgY2FuIHNpbXBseSBzZXQgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZSBhbmQgNiwgNywgYW5kIDggd2lsbCBiZSBzZXQgYWNjb3JkaW5nbHksXG4vLyBCdXQgaW4gY2FzZSB0aGUgdXNlciBzZXQgZWFjaCBvZiB0aG9zZSBleHBsaWNpdGx5LCB3ZSBuZWVkIHRvIHN5bmMgdGhlIHZhbHVlIG9mXG4vLyB0aGlzIGNvbWJpbmVkIHZhcmlhYmxlLlxuJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTogJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTYgb3IgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTcgb3IgJGxlZ2FjeS1zdXBwb3J0LWZvci1pZTg7XG5cbi8vIFdoZXRoZXIgdG8gb3V0cHV0IGxlZ2FjeSBzdXBwb3J0IGZvciBtb3ppbGxhLlxuLy8gVXN1YWxseSB0aGlzIG1lYW5zIGhhY2tzIHRvIHN1cHBvcnQgRmlyZWZveCAzLjYgb3IgZWFybGllci5cbiRsZWdhY3ktc3VwcG9ydC1mb3ItbW96aWxsYTogdHJ1ZTtcblxuLy8gU3VwcG9ydCBmb3IgbW96aWxsYSBpbiBleHBlcmltZW50YWwgY3NzMyBwcm9wZXJ0aWVzICgtbW96KS5cbiRleHBlcmltZW50YWwtc3VwcG9ydC1mb3ItbW96aWxsYSAgICAgIDogdHJ1ZSAhZGVmYXVsdDtcbi8vIFN1cHBvcnQgZm9yIHdlYmtpdCBpbiBleHBlcmltZW50YWwgY3NzMyBwcm9wZXJ0aWVzICgtd2Via2l0KS5cbiRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itd2Via2l0ICAgICAgIDogdHJ1ZSAhZGVmYXVsdDtcbi8vIFN1cHBvcnQgZm9yIHdlYmtpdCdzIG9yaWdpbmFsIChub24tc3RhbmRhcmQpIGdyYWRpZW50IHN5bnRheC5cbiRzdXBwb3J0LWZvci1vcmlnaW5hbC13ZWJraXQtZ3JhZGllbnRzIDogdHJ1ZSAhZGVmYXVsdDtcbi8vIFN1cHBvcnQgZm9yIG9wZXJhIGluIGV4cGVyaW1lbnRhbCBjc3MzIHByb3BlcnRpZXMgKC1vKS5cbiRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itb3BlcmEgICAgICAgIDogdHJ1ZSAhZGVmYXVsdDtcbi8vIFN1cHBvcnQgZm9yIG1pY3Jvc29mdCBpbiBleHBlcmltZW50YWwgY3NzMyBwcm9wZXJ0aWVzICgtbXMpLlxuJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1taWNyb3NvZnQgICAgOiB0cnVlICFkZWZhdWx0O1xuLy8gU3VwcG9ydCBmb3Iga2h0bWwgaW4gZXhwZXJpbWVudGFsIGNzczMgcHJvcGVydGllcyAoLWtodG1sKS5cbiRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Ita2h0bWwgICAgICAgIDogZmFsc2UgIWRlZmF1bHQ7XG4vLyBTdXBwb3J0IGZvciBzdmcgaW4gZXhwZXJpbWVudGFsIGNzczMgcHJvcGVydGllcy5cbi8vIFNldHRpbmcgdGhpcyB0byB0cnVlIG1pZ2h0IGFkZCBzaWduaWZpY2FudCBzaXplIHRvIHlvdXJcbi8vIGdlbmVyYXRlZCBzdHlsZXNoZWV0cy5cbiRleHBlcmltZW50YWwtc3VwcG9ydC1mb3Itc3ZnICAgICAgICAgIDogZmFsc2UgIWRlZmF1bHQ7XG4vLyBTdXBwb3J0IGZvciBDU1MgUElFIGluIGV4cGVyaW1lbnRhbCBjc3MzIHByb3BlcnRpZXMgKC1waWUpLlxuJGV4cGVyaW1lbnRhbC1zdXBwb3J0LWZvci1waWUgICAgICAgICAgOiBmYWxzZSAhZGVmYXVsdDtcbiIsImZvb3RlciB7XG4gICRiYXNlLXNwYWNpbmc6IDAuNWVtO1xuICAkZm9vdGVyLWJhY2tncm91bmQ6ICRicmFuZC1wcmltYXJ5O1xuICAkZm9vdGVyLWNvbG9yOiB3aGl0ZTtcbiAgJGZvb3Rlci1saW5rLWNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkZm9vdGVyLWNvbG9yLCAwLjYpO1xuICAkZm9vdGVyLWRpc2NsYWltZXItY29sb3I6IHRyYW5zcGFyZW50aXplKCRmb290ZXItY29sb3IsIDAuNik7XG5cbiAgYmFja2dyb3VuZDogJGZvb3Rlci1iYWNrZ3JvdW5kO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6ICRiYXNlLXNwYWNpbmc7XG4gIHdpZHRoOiAxMDAlO1xuICBtYXJnaW4tdG9wOiA1ZW07XG5cbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuXG4gIGgzIHtcbiAgICBjb2xvcjogJGJhc2UtZm9udC1jb2xvcjtcbiAgICBmb250LXNpemU6IDEwMCU7XG4gIH1cblxuICB1bCB7XG4gICAgbGluZS1oZWlnaHQ6IDEuOGVtO1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgcGFkZGluZy1sZWZ0OiAwO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICBsaW5lLWhlaWdodDogMS41ZW07XG4gICAgICBtYXJnaW46IDAgMCAxZW0gMDtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuXG4gICAgbGkge1xuICAgICAgZGlzcGxheTogaW5saW5lO1xuICAgICAgcGFkZGluZy1yaWdodDogMC44ZW07XG5cbiAgICAgICY6bGFzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICB9XG5cbiAgICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICAgICAgcGFkZGluZy1yaWdodDogMmVtO1xuICAgICAgfVxuXG4gICAgICBhIHtcbiAgICAgICAgY29sb3I6ICRmb290ZXItbGluay1jb2xvcjtcbiAgICAgICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuXG4gICAgICAgICY6Zm9jdXMsXG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiB0cmFuc3BhcmVudGl6ZSgkZm9vdGVyLWNvbG9yLCAwKTtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICAgIGltZyB7XG4gICAgICAgIHdpZHRoOiAzMHB4O1xuICAgICAgfVxuXG4gICAgfVxuICB9XG59XG4iLCIuaGVybyB7XG4gICAgYm9yZGVyLXRvcDogMTBweCBzb2xpZCBsaWdodGVuKCRicmFuZC1wcmltYXJ5LCA0MyUpO1xuICAgIGJvcmRlci1ib3R0b206IDEwcHggc29saWQgbGlnaHRlbigkYnJhbmQtcHJpbWFyeSwgNDMlKTtcblxuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiL2ltYWdlcy9oZXJvLWhlYWRzaG90LWxhdWdoaW5nLmpwZ1wiKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuXG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogbGVmdDtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcblxuICAgIGhlaWdodDogNDAwcHg7XG4gICAgcGFkZGluZzogMmVtO1xuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiByaWdodDtcbiAgICAgICAgYmFja2dyb3VuZC1zaXplOiBub25lO1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuaGVyby1jb250ZW50IHtcbiAgICAgICAgbWF4LXdpZHRoOiAzMGVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC5oZXJvLWJveCB7XG4gICAgICAgIEBpbmNsdWRlIGFscGhhLWF0dHJpYnV0ZSgnYmFja2dyb3VuZC1jb2xvcicsIHJnYmEod2hpdGUsIDAuNSksIHdoaXRlKTtcbiAgICAgICAgY29sb3I6ICRzZWNvbmRhcnktZm9udC1jb2xvcjtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBwYWRkaW5nOiAwLjdlbTtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG5cbiAgICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICAgICAgZm9udC1zaXplOiAxNTAlO1xuICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICBsZXR0ZXItc3BhY2luZzogJGJhc2UtbGV0dGVyLXNwYWNpbmcgKiAxLjg7XG5cbiAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgICAgICAgZm9udC1zaXplOiAxMDAlO1xuICAgICAgICB9XG5cbiAgICAgICAgc21hbGwge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBmb250LXNpemU6IDYwJTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMWVtO1xuICAgICAgICAgICAgbGV0dGVyLXNwYWNpbmc6ICRiYXNlLWxldHRlci1zcGFjaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgYS5zdWJzY3JpYmUge1xuICAgICAgICAgICAgQGluY2x1ZGUgdW5zdHlsZWQtbGluaztcblxuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgICAgIGhlaWdodDogMmVtO1xuXG4gICAgICAgICAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgICAgICAgICAgcGFkZGluZy1sZWZ0OiAxZW07XG4gICAgICAgICAgICBsaW5lLWhlaWdodDogMmVtO1xuICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMC41ZW07XG5cbiAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAyZW07XG4gICAgICAgICAgICAgICAgd2lkdGg6IDJlbTtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLmhlcm8tbG9nbyB7XG4gICAgICAgIG1hcmdpbjogYXV0bztcbiAgICB9XG59XG5cbiIsIiRiYXNlLWJvcmRlci1yYWRpdXM6IDNweCAhZGVmYXVsdDtcbiRiYXNlLXNwYWNpbmc6IDEuNWVtICFkZWZhdWx0O1xuJGRhcmstZ3JheTogIzMzMyAhZGVmYXVsdDtcbiRiYXNlLWZvbnQtY29sb3I6ICRkYXJrLWdyYXkgIWRlZmF1bHQ7XG4kZXBpc29kZS1ndXR0ZXI6IDEuNGVtO1xuJGVwaXNvZGUtaW1hZ2UtcGFkZGluZzogMC43ZW07XG4kZXBpc29kZS1pbWFnZS13aWR0aDogMzAwcHg7XG4kZXBpc29kZS1jb2xvcjogJGJhc2UtZm9udC1jb2xvcjtcbiRlcGlzb2RlLXNlY29uZGFyeS1jb2xvcjogbGlnaHRlbigkYmFzZS1mb250LWNvbG9yLCAxNSUpO1xuJGVwaXNvZGUtYmFja2dyb3VuZDogbGlnaHRlbigkYnJhbmQtcHJpbWFyeSwgMTUlKTtcbiRlcGlzb2RlLWRldGFpbC1jb2xvcjogdHJhbnNwYXJlbnRpemUoJGJyYW5kLXByaW1hcnksIDAuMSk7XG4kZXBpc29kZS1pbWFnZS12ZXJ0LWFsaWdubWVudDogdG9wO1xuXG4kc2hvdy1jb2xvcnM6IChhdWRpb3NoZWxmOiAkZXBpc29kZS1iYWNrZ3JvdW5kLCBhZnRlcmRhcms6ICNDOTVGNUYpO1xuXG5AaW1wb3J0IFwibWFpbi9lcGlzb2Rlcy9saXN0XCI7XG5AaW1wb3J0IFwibWFpbi9lcGlzb2Rlcy9zaW5nbGVcIjtcbkBpbXBvcnQgXCJtYWluL2VwaXNvZGVzL3Byb2R1Y3RcIjtcbkBpbXBvcnQgXCJtYWluL2VwaXNvZGVzL3NpbWlsYXJcIjtcbkBpbXBvcnQgXCJtYWluL2VwaXNvZGVzL3BsYXllclwiO1xuIiwiLmVwaXNvZGUtbGlzdCB7XG4gICAgLmVwaXNvZGUge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAkYmFzZS1zcGFjaW5nO1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMWVtO1xuICAgICAgICB3aWR0aDogMTAwJTtcblxuICAgICAgICAmOmxhc3QtY2hpbGQge1xuICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogbm9uZTtcbiAgICAgICAgfVxuXG4gICAgICAgIEBpbmNsdWRlIG1lZGlhKCRzbWFsbC1zY3JlZW4pIHtcbiAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAkZXBpc29kZS1kZXRhaWwtY29sb3I7XG4gICAgICAgIH1cblxuICAgICAgICAuZXBpc29kZS1kZXRhaWxzIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlO1xuICAgICAgICAgICAgbWFyZ2luOiAwIGF1dG87XG5cbiAgICAgICAgICAgIC5lcGlzb2RlLWltYWdlLCAuZXBpc29kZS1oZWFkZXIge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IHRhYmxlLWNlbGw7XG4gICAgICAgICAgICAgICAgdmVydGljYWwtYWxpZ246ICRlcGlzb2RlLWltYWdlLXZlcnQtYWxpZ25tZW50O1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luLWJvdHRvbTogMWVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLmVwaXNvZGUtaW1hZ2Uge1xuICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6ICRlcGlzb2RlLWd1dHRlcjtcblxuICAgICAgICAgICAgICAgIGltZyB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6ICRiYXNlLWJvcmRlci1yYWRpdXM7XG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICAgICAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogJGVwaXNvZGUtaW1hZ2UtcGFkZGluZztcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICRlcGlzb2RlLWltYWdlLXdpZHRoO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW46IDAgYXV0bztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAuZXBpc29kZS1yZXZlcnNlLW9yZGVyICYge1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctcmlnaHQ6IDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAuZXBpc29kZS1oZWFkZXIge1xuICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgJGVwaXNvZGUtZGV0YWlsLWNvbG9yO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDJlbSAwO1xuXG4gICAgICAgICAgICAgICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItdG9wOiBub25lO1xuICAgICAgICAgICAgICAgICAgICBwYWRkaW5nLXRvcDogMC4xZW07XG4gICAgICAgICAgICAgICAgICAgIHBhZGRpbmctYm90dG9tOiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGgxIHtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxLjRlbTtcbiAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAwIDAgMC4yZW0gMDtcblxuICAgICAgICAgICAgICAgICAgICBhIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC5uYXJyYXRvciwuc3VidGl0bGUge1xuICAgICAgICAgICAgICAgICAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6ICRlcGlzb2RlLXNlY29uZGFyeS1jb2xvcjtcbiAgICAgICAgICAgICAgICAgICAgZm9udC1zaXplOiAxZW07XG4gICAgICAgICAgICAgICAgICAgIG1hcmdpbjogMCAwIDAuMmVtIDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLnByZWZpeCB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgICAgICAgICAgICAgY29sb3I6IGxpZ2h0ZW4oJGJhc2UtZm9udC1jb2xvciwgMjAlKTtcbiAgICAgICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAwLjRlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAuZXBpc29kZS1jb250ZW50IHtcbiAgICAgICAgICAgIHdpZHRoOiAxMDAlO1xuXG4gICAgICAgICAgICBib3JkZXItbGVmdDogMXB4IHNvbGlkICRlcGlzb2RlLWRldGFpbC1jb2xvcjtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogMWVtO1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDEuNWVtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDAuNWVtO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwLmVwaXNvZGUtZGV0YWlsIHtcbiAgICAgICAgICAgICAgICBjb2xvcjogJGVwaXNvZGUtZGV0YWlsLWNvbG9yO1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgICAgICAgICAgICAgZm9udC1zdHlsZTogaXRhbGljO1xuICAgICAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAwLjllbTtcbiAgICAgICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC5tb3JlLWxpbmsge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICB0ZXh0LWFsaWduOiByaWdodDtcbiAgICAgICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgICAgICAgICAgbWFyZ2luOiAyZW0gM2VtO1xuICAgICAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcblxuICAgICAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICAgICAgZm9udDogbm9ybWFsIDE2cHggZm9udGF3ZXNvbWU7XG4gICAgICAgICAgICAgICAgbWFyZ2luLWxlZnQ6IDAuM2VtO1xuICAgICAgICAgICAgICAgIG1hcmdpbi10b3A6IDAuNWVtO1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcXGYwZGEnOyAvLyBjYXJldC1yaWdodFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLmVwaXNvZGUtYXVkaW8ge1xuICAgICAgICAgICAgbWFyZ2luLXRvcDogMWVtO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4uYWJvdXQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCAkYmFzZS1ib3JkZXItY29sb3I7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcblxuICAgIG1hcmdpbjogMC41ZW0gMCAzZW07XG4gICAgcGFkZGluZzogMC41ZW0gMCAzZW07XG5cbiAgICBkaXYge1xuICAgICAgICBpbWcge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgICAgICBtYXJnaW4tbGVmdDogM2VtO1xuXG4gICAgICAgICAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICAgICAgICAgICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgICAgICAgICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG5AZWFjaCAkY2xhc3MsICRjb2xvciBpbiAkc2hvdy1jb2xvcnMge1xuICAgIGFydGljbGUuZXBpc29kZS4jeyRjbGFzc30gLmVwaXNvZGUtaW1hZ2UgaW1nIHsgYmFja2dyb3VuZDogJGNvbG9yOyB9XG4gICAgYXJ0aWNsZS5lcGlzb2RlLiN7JGNsYXNzfSAuZXBpc29kZS1zaG93IHsgY29sb3I6ICRjb2xvcjsgZm9udC13ZWlnaHQ6IGJvbGQ7IH1cbiAgICBhcnRpY2xlLmVwaXNvZGUuI3skY2xhc3N9IC5lcGlzb2RlLWRldGFpbHMgLmVwaXNvZGUtaGVhZGVyIHsgYm9yZGVyLXRvcC1jb2xvcjogJGNvbG9yOyB9XG4gICAgYXJ0aWNsZS5lcGlzb2RlLiN7JGNsYXNzfSAuZXBpc29kZS1jb250ZW50IHsgYm9yZGVyLWxlZnQtY29sb3I6ICRjb2xvcjsgfVxufVxuXG5mb3JtLnNlYXJjaC1iYXIge1xuICAgIG1hcmdpbi10b3A6IDFlbTtcbn1cbiIsIkBpbXBvcnQgXCJjb21wYXNzL2NzczMvYm9yZGVyLXJhZGl1c1wiO1xuXG5hcnRpY2xlLmVwaXNvZGUtc2luZ2xlIHtcbiAgLmVwaXNvZGUtaGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG5cbiAgICBib3JkZXItdG9wOiAxMHB4IHNvbGlkIGxpZ2h0ZW4oJGJyYW5kLXByaW1hcnksIDQzJSk7XG5cbiAgICBsaW5lYXItZ3JhZGllbnQ6IDUwZGVnLCBsaWdodGVuKCRicmFuZC1wcmltYXJ5LCAwMCUpIDAlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpZ2h0ZW4oJGJyYW5kLXByaW1hcnksIDIzJSkgNDMlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpZ2h0ZW4oJGJyYW5kLXByaW1hcnksIDMyJSkgNDMlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpZ2h0ZW4oJGJyYW5kLXByaW1hcnksIDQzJSkgMTAwJTtcblxuICAgIC5lcGlzb2RlLWltYWdlIHtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBtYXJnaW46IDJlbTtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB9XG5cbiAgICAuZXBpc29kZS10aXRsZSB7XG4gICAgICBmbGV4OiAxO1xuICAgICAgbWFyZ2luOiAyZW0gNGVtO1xuXG4gICAgICBzbWFsbCB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBmb250LXNpemU6IDFlbTtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgICB9XG5cbiAgICAgIGgxIHtcbiAgICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuXG4gICAgICBoMiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMS4yZW07XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIH1cblxuICAgICAgaDMge1xuICAgICAgICBmb250LXNpemU6IDEuMmVtO1xuICAgICAgICBtYXJnaW4tdG9wOiAwO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGNvbG9yOiAkZXBpc29kZS1zZWNvbmRhcnktY29sb3I7XG4gICAgICAgIHRleHQtdHJhbnNmb3JtOiB1bnNldDtcbiAgICAgIH1cblxuICAgICAgLmVwaXNvZGUtZGF0ZSB7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgY29sb3I6IGRhcmtlbigkZXBpc29kZS1kZXRhaWwtY29sb3IsIDIwJSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLmVwaXNvZGUtYXVkaW8ge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgfVxuXG4gIHVsLmVwaXNvZGUtbGlua3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3c7XG4gICAgQGluY2x1ZGUgbm8tYnVsbGV0cygpO1xuXG4gICAgcGFkZGluZzogMDtcbiAgICBtYXJnaW4tdG9wOiAwO1xuICAgIG1hcmdpbi1ib3R0b206IDJlbTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxLjNlbTtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiBsaWdodGVuKCRicmFuZC1wcmltYXJ5LCA0MyUpO1xuXG4gICAgbGkge1xuICAgICAgZmxleDogMTtcblxuICAgICAgYm9yZGVyOiAxcHggc29saWQgJGVwaXNvZGUtZGV0YWlsLWNvbG9yO1xuICAgICAgYm9yZGVyLXRvcDogbm9uZTtcbiAgICAgIEBpbmNsdWRlIGJvcmRlci1yYWRpdXMoMWVtLCAwLjVlbSk7XG4gICAgICBAaW5jbHVkZSBib3JkZXItdG9wLXJhZGl1cygwKTtcbiAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlLWluLW91dDtcblxuICAgICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRlcGlzb2RlLWJhY2tncm91bmQ7XG4gICAgICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4zcyBlYXNlLWluLW91dDtcbiAgICAgIH1cblxuICAgICAgYSB7XG4gICAgICAgIGNvbG9yOiAkZXBpc29kZS1jb2xvcjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBoZWlnaHQ6IDEwMCU7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICAgICAgcGFkZGluZzogMWVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5lcGlzb2RlLWNvbnRlbnQge1xuICAgIG1heC13aWR0aDogODAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuXG4gICAgLmVwaXNvZGUtYmx1cmIge1xuICAgICAgcGFkZGluZy1sZWZ0OiAyZW07XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAyZW07XG4gICAgICBib3JkZXItbGVmdDogMC4zZW0gc29saWQgJGJyYW5kLXByaW1hcnk7XG4gICAgICBib3JkZXItcmlnaHQ6IDAuM2VtIHNvbGlkICRicmFuZC1wcmltYXJ5O1xuICAgIH1cbiAgfVxuXG4gIC5iYWRnZXMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1mbG93OiByb3cgd3JhcDtcbiAgICBmbGV4LWdyb3c6IDE7XG5cbiAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICBmbGV4LWZsb3c6IGNvbHVtbjtcbiAgICB9XG5cbiAgICBoMyB7XG4gICAgICBtYXJnaW46IDA7XG4gICAgfVxuXG4gICAgZGl2IHtcbiAgICAgIGZsZXg6IDE7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxLjJlbTtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxLjJlbTtcblxuICAgICAgYS5idXR0b24ge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uLXg6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogOTAlO1xuICAgICAgICBtYXJnaW4tbGVmdDogNSU7XG5cbiAgICAgICAgaW1nIHtcbiAgICAgICAgICAgIGhlaWdodDogMi40ZW07XG4gICAgICAgICAgICBmbG9hdDogbGVmdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC5hZmZpbGlhdGUuaG9yaXpvbnRhbCB7XG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cblxuICAuZXBpc29kZS1yZWxhdGVkIHtcbiAgICBoMyB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5lcGlzb2RlLWNyZWRpdHMge1xuICAgIG1hcmdpbi10b3A6IDRlbTtcbiAgICBib3JkZXItdG9wOiAkYmFzZS1ib3JkZXI7XG4gICAgcGFkZGluZy10b3A6IDJlbTtcbiAgICBmb250LXNpemU6IDgwJTtcbiAgfVxufVxuIiwiLnByb2R1Y3QtYm94IHtcbiAgZmxleC1ncm93OiAxO1xuXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgd2lkdGg6IDIwZW07XG4gIG1hcmdpbjogMCBhdXRvO1xuXG4gIC5wcm9kdWN0LWltYWdlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW46IDAgYXV0bztcbiAgfVxuXG4gIC5wcm9kdWN0LXRpdGxle1xuICAgIGZvbnQtc2l6ZTogMS41ZW07XG4gICAgZm9udC13ZWlnaHQ6IGJvbGQ7XG4gICAgbGluZS1oZWlnaHQ6IDFlbTtcbiAgICBjb2xvcjogJGJhc2UtZm9udC1jb2xvcjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgaGVpZ2h0OiAzZW07XG4gICAgbWFyZ2luLXRvcDogMC40ZW07XG4gIH1cblxuICAucHJvZHVjdC1hdXRob3Ige1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEuMmVtO1xuICAgIGhlaWdodDogMi40ZW07XG4gIH1cblxuICAucHJvZHVjdC1wcmljZSB7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiAkYnJhbmQtZGFuZ2VyO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICB9XG5cbiAgaW5wdXRbdHlwZT1cInN1Ym1pdFwiXSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogaW5oZXJpdDtcbiAgfVxuXG4gIC5hLWJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogJGFtYXpvbi1wcmltYXJ5O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAxZW0gYXV0byAwO1xuICAgIG1heC13aWR0aDogMTBlbTtcbiAgICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlO1xuICAgIGhlaWdodDogMi42ZW07XG4gICAgYm9yZGVyOiAxcHggc29saWQ7XG4gICAgYm9yZGVyLWNvbG9yOiAjY2JhOTU3ICNiZjk0MmEgI2FhODMyNjtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmUhaW1wb3J0YW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAtbW96LWJvcmRlci1yYWRpdXM6IDNweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAgICY6YWN0aXZlIHtcbiAgICAgIGJvcmRlci1jb2xvcjogI2FhODMyNiAjYmY5NDJhICNiZjk0MmE7XG5cbiAgICAgIC5hLWJ1dHRvbi1pbm5lciB7XG4gICAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsLjIpIGluc2V0O1xuICAgICAgICAtbW96LWJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsMCwwLC4yKSBpbnNldDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwwLDAsLjIpIGluc2V0O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBjMTRiO1xuICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6aG92ZXIge1xuICAgICAgYm9yZGVyLWNvbG9yOiAjYzU5ZjQzICNhYTgzMjYgIzk1NzMyMTtcblxuICAgICAgLmEtYnV0dG9uLWlubmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2Y1ZDc4ZTtcbiAgICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjZjVkNzhlKSx0bygjZWViOTMzKSk7XG4gICAgICAgIGJhY2tncm91bmQ6IC13ZWJraXQtbGluZWFyLWdyYWRpZW50KHRvcCwjZjVkNzhlLCNlZWI5MzMpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAtbW96LWxpbmVhci1ncmFkaWVudCh0b3AsI2Y1ZDc4ZSwjZWViOTMzKTtcbiAgICAgICAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y1ZDc4ZSwjZWViOTMzKTtcbiAgICAgICAgYmFja2dyb3VuZDogLW8tbGluZWFyLWdyYWRpZW50KHRvcCwjZjVkNzhlLCNlZWI5MzMpO1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjFjODYwO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6Zm9jdXMge1xuICAgICAgb3V0bGluZTogMDtcbiAgICAgIGJvcmRlci1jb2xvcjogI2U0NzkxMTtcbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDNweCByZ2JhKDIyOCwxMjEsMTcsLjUpO1xuICAgICAgLW1vei1ib3gtc2hhZG93OiAwIDAgM3B4IHJnYmEoMjI4LDEyMSwxNywuNSk7XG4gICAgICBib3gtc2hhZG93OiAwIDAgM3B4IHJnYmEoMjI4LDEyMSwxNywuNSk7XG4gICAgfVxuXG4gICAgLmEtYnV0dG9uLWlubmVyIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDNweDtcbiAgICAgIC1tb3otYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG5cbiAgICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC40KSBpbnNldDtcbiAgICAgIC1tb3otYm94LXNoYWRvdzogMCAxcHggMCByZ2JhKDI1NSwyNTUsMjU1LC40KSBpbnNldDtcbiAgICAgIGJveC1zaGFkb3c6IDAgMXB4IDAgcmdiYSgyNTUsMjU1LDI1NSwuNCkgaW5zZXQ7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjdkZmE1O1xuICAgICAgYmFja2dyb3VuZDogLXdlYmtpdC1ncmFkaWVudChsaW5lYXIsbGVmdCB0b3AsbGVmdCBib3R0b20sZnJvbSgjZjdkZmE1KSx0bygjZjBjMTRiKSk7XG4gICAgICBiYWNrZ3JvdW5kOiAtd2Via2l0LWxpbmVhci1ncmFkaWVudCh0b3AsI2Y3ZGZhNSwjZjBjMTRiKTtcbiAgICAgIGJhY2tncm91bmQ6IC1tb3otbGluZWFyLWdyYWRpZW50KHRvcCwjZjdkZmE1LCNmMGMxNGIpO1xuICAgICAgYmFja2dyb3VuZDogLW1zLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y3ZGZhNSwjZjBjMTRiKTtcbiAgICAgIGJhY2tncm91bmQ6IC1vLWxpbmVhci1ncmFkaWVudCh0b3AsI2Y3ZGZhNSwjZjBjMTRiKTtcbiAgICAgIGJhY2tncm91bmQ6ICNmM2QwNzg7XG5cbiAgICAgIC5hLWljb24tc2hvcC1ub3cge1xuICAgICAgICBsZWZ0OiAycHg7XG4gICAgICAgIHRvcDogMnB4O1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGhlaWdodDogMmVtO1xuICAgICAgICB3aWR0aDogMmVtO1xuICAgICAgICBiYWNrZ3JvdW5kOiAwIDA7XG4gICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICAgICAgdmVydGljYWwtYWxpZ246IHRvcDtcbiAgICAgIH1cblxuICAgICAgLmEtYnV0dG9uLWlucHV0IHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICB6LWluZGV4OiAyMDtcbiAgICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbGVmdDogMDtcbiAgICAgICAgdG9wOiAwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICAgICAgICBvdXRsaW5lOiAwO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIG92ZXJmbG93OiB2aXNpYmxlO1xuICAgICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAgIG9wYWNpdHk6IC4wMTtcbiAgICAgICAgZmlsdGVyOiBhbHBoYShvcGFjaXR5PTEpO1xuICAgICAgfVxuXG4gICAgICAuYS1idXR0b24tdGV4dCB7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgei1pbmRleDogMTA7XG4gICAgICAgIGNvbG9yOiAkc2Vjb25kYXJ5LWZvbnQtY29sb3I7XG4gICAgICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyZW07XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBib3JkZXI6IDA7XG4gICAgICAgIG91dGxpbmU6IDA7XG4gICAgICAgIHBhZGRpbmc6IDAgMnB4IDAgMmVtO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbiIsIkBpbXBvcnQgXCJjb21wYXNzL2NzczMvYm9yZGVyLXJhZGl1c1wiO1xuXG4uc2ltaWxhciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZmxvdzogcm93IHdyYXA7XG4gIGZsZXgtd3JhcDogd3JhcDtcblxuICAucHJvZHVjdC1ib3gge1xuICAgIHdpZHRoOiAzMyU7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIEBpbmNsdWRlIG1lZGlhKCRsYXJnZS1zY3JlZW4pIHtcbiAgICAgIHdpZHRoOiAzMyU7XG4gICAgfVxuXG4gICAgQGluY2x1ZGUgbWVkaWEoJHNtYWxsLXNjcmVlbikge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICB9XG5cbiAgICAucHJvZHVjdC1wYW5lbCB7XG4gICAgICBib3JkZXI6IDFweCBzb2xpZCAkYmFzZS1ib3JkZXItY29sb3I7XG4gICAgICBAaW5jbHVkZSBib3JkZXItcmFkaXVzKDJlbSAwLjVlbSk7XG4gICAgICBwYWRkaW5nOiAxZW07XG4gICAgICBtYXJnaW46IDFlbTtcbiAgICB9XG5cbiAgICAucHJvZHVjdC1pbWFnZSB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIG1heC13aWR0aDogOTAlO1xuICAgICAgaGVpZ2h0OiBhdXRvO1xuICAgICAgbWFyZ2luOiAwIGF1dG87XG4gICAgfVxuICB9XG59XG4iLCIvLyBUYWtlbiBmcm9tOiBodHRwczovL2NvZGVwZW4uaW8vZGF2YXRyb241MDAwL3Blbi91cWt0R1xuXG4ucGNhc3QtcGxheWVyIHtcbiAgICAucGNhc3QtcGxheWVyLWNvbnRyb2xzIHtcbiAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICAgICAgYmFja2dyb3VuZDogJGRhcmstZ3JheTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgaGVpZ2h0OiA0MnB4O1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgfVxuXG4gICAgYnV0dG9uLCAuYnV0dG9uIHtcbiAgICAgICAgYmFja2dyb3VuZDogIzJhMmEyYTtcbiAgICAgICAgY29sb3I6ICNmZmY7XG4gICAgICAgIGJvcmRlcjogMDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgICAgICBwYWRkaW5nOiA1cHg7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4O1xuICAgICAgICAtd2Via2l0LWFwcHJlYW5jZTogbm9uZTtcbiAgICAgICAgbWluLXdpZHRoOiAzMnB4O1xuXG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgICAgQGluY2x1ZGUgdmlzdWFsbHktaGlkZGVuKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm9ncmVzcyB7XG4gICAgICAgIGhlaWdodDogMTNweDtcbiAgICAgICAgd2lkdGg6IGNhbGMoMTAwJSAtIDMxOHB4KTtcbiAgICAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lO1xuICAgICAgICAtbW96LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgICAgIGFwcGVhcmFuY2U6IG5vbmU7XG4gICAgfVxuXG4gICAgcHJvZ3Jlc3NbdmFsdWVdOjotd2Via2l0LXByb2dyZXNzLWJhciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICM1NTU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDA7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDVweCByZ2JhKDAsIDAsIDAsIDAuMjUpIGluc2V0O1xuICAgIH1cblxuICAgIHByb2dyZXNzW3ZhbHVlXTo6LXdlYmtpdC1wcm9ncmVzcy12YWx1ZSB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgfVxuXG4gICAgLnBjYXN0LXRpbWUge1xuICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICAgICAgcGFkZGluZzogMCA1cHg7XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgd2lkdGg6IDRlbTtcbiAgICB9XG5cbiAgICAucGNhc3Qtc3BlZWQge1xuICAgICAgICB3aWR0aDogMi41ZW07XG4gICAgfVxuXG4gICAgLnBjYXN0LWRvd25sb2FkIHtcbiAgICAgICAgZm9udC1zaXplOiAxM3B4O1xuICAgICAgICAmOmhvdmVyLFxuICAgICAgICAmOmZvY3VzIHtcbiAgICAgICAgICAgIGNvbG9yOiAjNjY2O1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiZm9ybS5zZWFyY2gtYmFyIHtcbiAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgJGJhc2Utc3BhY2luZzogMS41ZW0gIWRlZmF1bHQ7XG4gICRiYXNlLWJvcmRlci1jb2xvcjogZ2FpbnNib3JvICFkZWZhdWx0O1xuICAkYmFzZS1saW5lLWhlaWdodDogMS41ZW0gIWRlZmF1bHQ7XG4gIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuICAkc2VhcmNoLWJhci1ib3JkZXItY29sb3I6ICRiYXNlLWJvcmRlci1jb2xvcjtcbiAgJHNlYXJjaC1iYXItYm9yZGVyOiAxcHggc29saWQgJHNlYXJjaC1iYXItYm9yZGVyLWNvbG9yO1xuICAkc2VhcmNoLWJhci1iYWNrZ3JvdW5kOiBsaWdodGVuKCRzZWFyY2gtYmFyLWJvcmRlci1jb2xvciwgMTAlKTtcblxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgaW5wdXRbdHlwZT1zZWFyY2hdIHtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRiYXNlLWJvcmRlci1jb2xvcjtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogKCRiYXNlLXNwYWNpbmcgLyAzKSAoJGJhc2Utc3BhY2luZyAvIDMpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3I7XG4gICAgd2lkdGg6IDEwMCU7XG4gIH1cblxuICBidXR0b25bdHlwZT1zdWJtaXRdIHtcbiAgICBAaW5jbHVkZSBwb3NpdGlvbihhYnNvbHV0ZSwgMCAwIDAgbnVsbCk7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBwYWRkaW5nOiA1cHggMTBweDtcblxuICAgIHNwYW4ge1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDAuNWVtO1xuICAgICAgICBAaW5jbHVkZSBtZWRpYSgkc21hbGwtc2NyZWVuKSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgJjpiZWZvcmUge1xuICAgICAgICBmb250OiBub3JtYWwgMWVtIGZvbnRhd2Vzb21lO1xuICAgICAgICBjb250ZW50OiAnXFxmMDAyICc7XG4gICAgfVxuICB9XG59XG4iXSwibWFwcGluZ3MiOiJBNEZHRSxBQUFBLElBQUksQ0FBQztFQUNILFVBQVUsRUFBRSxVQUFXLEdBQ3hCOztBQUVELEFBQUEsQ0FBQyxFQUFELEFBQUEsQ0FBQyxBQUVFLE9BQU8sRUFGVixBQUFBLENBQUMsQUFHRSxRQUFRLENBQUM7RUFDUixVQUFVLEVBQUUsT0FBUSxHQUNyQjs7QWUrQkwsQUFBQSxXQUFXLENBQUM7RUFKVixlQUFlLEVBQUUsSUFBSztFQUN0QixXQUFXLEVBQUUsQ0FBRSxHQUtoQjs7QUNwQ0MsQUFBQSxhQUFhLENBQWI7RUFDRSxLQUFLLEUxR1RPLE9BQU8sRzBHVXBCOztBQUZELEFBQUEsVUFBVSxDQUFWO0VBQ0UsS0FBSyxFMUdSSSxPQUFPLEcwR1NqQjs7QUFGRCxBQUFBLGFBQWEsQ0FBYjtFQUNFLEtBQUssRTFHUE8sT0FBTyxHMEdRcEI7O0FBRkQsQUFBQSxhQUFhLENBQWI7RUFDRSxLQUFLLEUxR05PLE9BQU8sRzBHT3BCOztBQUZELEFBQUEsWUFBWSxDQUFaO0VBQ0UsS0FBSyxFMUdMTyxPQUFPLEcwR01wQjs7QUNYSCxBQUFBLE9BQU8sQ0FBQztFQW1CTixNQUFNLEVBUlMsR0FBRyxDQUFDLEtBQUssQzNHQ2IsSUFBSTtFMkdRZixlQUFlLEVBQUUsUUFBUztFQUMxQixXQUFXLEVBQUUsQ0FBRTtFQUNmLGFBQWEsRTNHS00sR0FBRztFMkdKdEIsY0FBYyxFQUFFLENBQUU7RUFDbEIsS0FBSyxFQUFFLElBQUssR0FnRmI7RUF4R0QsQUEwQkUsT0ExQkssQ0EwQkwsS0FBSyxDQUFDO0lBQ0osZ0JBQWdCLEVBZkMsT0FBTyxHQTBCekI7SUF0Q0gsQUE2QmUsT0E3QlIsQ0EwQkwsS0FBSyxDQUdILEVBQUUsQUFBQSxNQUFNLEdBQUcsRUFBRSxFQTdCakIs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 */
