/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Breakpoint component used by include-media vendor library.
 */
/**
 * Extracts nested keys from given map.
 * Example: deep-get($some-map, some, nested, keys);
 */
@use "sass:map";
/**
* Default project breakpoints - [em]
*/
/**
 * Gap between columns (all CSS units allowed) [Example: 1.5rem]
 * @see https://developer.mozilla.org/en-US/docs/Web/CSS/column-gap
 */
/**
 * @see https://developer.mozilla.org/en-US/docs/Web/CSS/column-rule
 */
.cms-o-nas .cs-container.cs-container--paragraph,
.cms-serwis .cs-container.cs-container--paragraph {
  background-color: #ffffff; }

.cs-paragraph {
  -moz-column-gap: 6rem;
       column-gap: 6rem;
  -moz-column-rule: 1px solid #dcdcdc;
       column-rule: 1px solid #dcdcdc;
  margin: 0 0 3rem; }
  @media (min-width: 48em) {
    .cs-paragraph {
      margin: 0 0 4rem; } }
  .cs-paragraph--skip-spacing {
    margin: 0; }
  .cs-paragraph img {
    height: auto; }
  @media (min-width: 48em) {
    .cs-paragraph--cols-2, .cs-paragraph--cols-3, .cs-paragraph--cols-4 {
      -moz-column-count: 2;
           column-count: 2; }
      .cs-paragraph--cols-2 li, .cs-paragraph--cols-3 li, .cs-paragraph--cols-4 li {
        width: 100%; }
      .cs-paragraph--cols-2 img, .cs-paragraph--cols-3 img, .cs-paragraph--cols-4 img {
        display: block;
        max-width: 100%; } }
  @media (min-width: 64em) {
    .cs-paragraph--cols-3, .cs-paragraph--cols-4 {
      -moz-column-count: 3;
           column-count: 3; } }
  @media (min-width: 80em) {
    .cs-paragraph--cols-4 {
      -moz-column-count: 4;
           column-count: 4; } }
  .cs-paragraph--mode-optimal {
    max-width: 40em;
    margin-left: auto;
    margin-right: auto;
    -moz-column-count: initial;
         column-count: initial; }

.kma_service_text_and_info__wrapper {
  display: flex;
  margin-bottom: 40px; }
  @media (max-width: 63.99em) {
    .kma_service_text_and_info__wrapper {
      flex-direction: column; } }

.kma_service_text_and_info__info-wrapper {
  display: flex; }

.kma_service_text_and_info__info-icon {
  width: 66px;
  height: 66px;
  margin-right: 16px; }

.kma_service_text_and_info__text {
  width: 60%;
  font-size: 18px;
  font-weight: 300;
  line-height: 29px;
  padding-top: 30px;
  padding-bottom: 40px; }
  @media (max-width: 63.99em) {
    .kma_service_text_and_info__text {
      width: 100%; } }
  .kma_service_text_and_info__text--bold {
    font-weight: 600; }

.kma_service_text_and_info__info {
  width: 40%;
  border: 1px solid #d5d5d5;
  border-radius: 8px;
  padding: 40px 20px; }
  @media (max-width: 63.99em) {
    .kma_service_text_and_info__info {
      display: flex;
      flex-direction: column;
      align-items: center;
      width: 100%; } }
  .kma_service_text_and_info__info-text-title {
    font-size: 16px;
    font-weight: 600;
    line-height: 1;
    margin-bottom: 10px; }
  .kma_service_text_and_info__info-text-subtitle {
    font-size: 24px;
    font-weight: 600;
    line-height: 30px; }
    .kma_service_text_and_info__info-text-subtitle span {
      color: #c1272f;
      text-transform: uppercase; }
  .kma_service_text_and_info__info-contact {
    font-size: 16px;
    font-weight: 300;
    line-height: 26px;
    text-align: center; }
    .kma_service_text_and_info__info-contact p {
      margin: 0; }
    .kma_service_text_and_info__info-contact a {
      color: #c1272f; }

.kma_service_text_and_info_button {
  display: block;
  color: #ffffff !important;
  font-size: 16px;
  font-weight: 500;
  line-height: 26px;
  text-align: center;
  padding: 13px 45px;
  max-width: 285px;
  width: 100%;
  border: 1px solid #c1272f;
  border-radius: 27px;
  background-color: #c1272f;
  margin-top: 20px;
  margin-bottom: 16px; }
  @media (max-width: 30em) {
    .kma_service_text_and_info_button {
      padding-inline: 10px; } }
  .kma_service_text_and_info_button:hover {
    color: #ffffff; }

.kma_service_contact__wrapper {
  display: flex;
  background-color: #e5e9eb;
  border-radius: 8px; }

.kma_service_contact__image {
  width: 30%; }
  @media (max-width: 47.99em) {
    .kma_service_contact__image {
      display: none; } }
  .kma_service_contact__image img {
    height: 100%; }

.kma_service_contact__text {
  width: 70%;
  padding: 40px 60px 40px 40px; }
  @media (max-width: 47.99em) {
    .kma_service_contact__text {
      width: 100%; } }
  .kma_service_contact__text-info {
    font-size: 18px;
    font-weight: 300;
    line-height: 29px;
    margin-bottom: 16px; }

.kma_service_contact__title {
  font-size: 24px;
  font-weight: 600;
  line-height: 32px; }

.kma_service_contact__mail-wrapper, .kma_service_contact__phone-wrapper {
  display: flex;
  align-items: flex-start; }
  .kma_service_contact__mail-wrapper img, .kma_service_contact__phone-wrapper img {
    width: 24px;
    height: auto;
    margin-right: 16px; }

.kma_service_contact__mail-wrapper {
  margin-bottom: 15px; }
  .kma_service_contact__mail-wrapper img {
    margin-top: 7px; }

.kma_service_contact__mail-text a {
  color: #c1272f;
  font-size: 18px;
  font-weight: 600;
  line-height: 29px; }

.kma_service_contact__phone-text {
  font-size: 18px;
  line-height: 29px;
  margin-bottom: 6px; }
  .kma_service_contact__phone-text span {
    font-weight: 600; }

.kma_service_contact__phone-info {
  font-size: 12px;
  font-weight: 300;
  line-height: 18px; }

.kma_service_contact__disclaimer {
  max-width: 970px;
  margin: 40px auto 90px auto;
  font-size: 18px;
  font-weight: 300;
  line-height: 29px;
  text-align: center; }
  @media (max-width: 30em) {
    .kma_service_contact__disclaimer {
      margin-bottom: 20rem; } }

.cms-o-nas .cs-container.cs-container--paragraph {
  background-color: #ffffff; }

.cms-o-nas .cs-paragraph {
  font-size: 18px;
  font-weight: 300;
  line-height: 29px;
  text-align: center;
  max-width: 920px;
  margin: 0 auto 35px auto; }

.cms-kontakt .cs-container {
  background-color: #ffffff; }

.cms-kontakt .column.main .cs-container--paragraph:nth-of-type(3) {
  background-color: #f7f7f7;
  margin-bottom: 80px;
  margin-top: -40px;
  padding-top: 40px;
  padding-bottom: 40px; }

.cms-kontakt .column.main > div:empty {
  margin-bottom: -12rem; }
  @media (max-width: 48em) {
    .cms-kontakt .column.main > div:empty {
      margin-bottom: 0; } }

.kma_contact__info .cs-image-teaser__description span {
  display: block;
  margin-top: 12px;
  font-size: 14px;
  line-height: 23px; }

.kma_contant_company_info__wrapper {
  background-color: #e5e9eb;
  display: flex;
  position: relative;
  margin-top: -60px; }
  .kma_contant_company_info__wrapper:after {
    content: "";
    display: block;
    background-color: #e5e9eb;
    display: block;
    height: 100%;
    position: absolute;
    z-index: 0;
    width: 999px;
    top: 0px;
    right: -999px; }
  .kma_contant_company_info__wrapper:before {
    content: "";
    display: block;
    background-color: #e5e9eb;
    display: block;
    height: 100%;
    position: absolute;
    z-index: 0;
    width: 999px;
    top: 0px;
    left: -999px; }
  @media (max-width: 63.99em) {
    .kma_contant_company_info__wrapper:before {
      width: 15px;
      left: -15px; } }

.kma_contant_company_info__image_wrapper {
  position: relative;
  width: 40%;
  min-height: 752px; }
  @media (max-width: 63.99em) {
    .kma_contant_company_info__image_wrapper {
      display: none; } }
  .kma_contant_company_info__image_wrapper div {
    position: absolute;
    width: 685px;
    left: -216px; }

.kma_contant_company_info__contact_wrapper {
  padding: 165px 0 135px 30px;
  width: 60%;
  position: relative; }
  @media (max-width: 63.99em) {
    .kma_contant_company_info__contact_wrapper {
      width: 100%;
      padding: 50px 0; } }

.kma_contant_company_info__title {
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 32px;
  margin-bottom: 16px; }

.kma_contant_company_info__subtitle {
  font-size: 16px;
  font-weight: 300;
  letter-spacing: 0;
  line-height: 26px;
  margin-bottom: 32px; }

.kma_contant_company_info__buttons {
  margin-bottom: 50px; }
  @media (max-width: 47.99em) {
    .kma_contant_company_info__buttons {
      display: flex;
      flex-direction: column; } }

.kma_contant_company_info__phone_form, .kma_contant_company_info__form {
  display: inline-block;
  padding: 13px 46px;
  border: 1px solid #c1272f;
  border-radius: 27px;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 26px;
  text-align: center; }
  a.kma_contant_company_info__phone_form, .kma_contant_company_info__form {
    color: #c1272f; }
    a.kma_contant_company_info__phone_form:hover, .kma_contant_company_info__form:hover {
      color: #c1272f; }

.kma_contant_company_info__form {
  background-color: #c1272f;
  margin-right: 30px; }
  a.kma_contant_company_info__form {
    color: #ffffff; }
    a.kma_contant_company_info__form:hover {
      color: #ffffff; }
  @media (max-width: 47.99em) {
    .kma_contant_company_info__form {
      margin-right: 0;
      margin-bottom: 30px; } }

.kma_contant_company_info__phones_subtitle {
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0;
  line-height: 26px;
  padding-left: 38px;
  position: relative;
  padding-bottom: 38px;
  margin-bottom: 38px;
  border-bottom: 1px solid #d5d5d5; }
  .kma_contant_company_info__phones_subtitle a {
    font-weight: 600;
    color: #c1272f; }
    .kma_contant_company_info__phones_subtitle a:hover {
      color: #c1272f; }
  .kma_contant_company_info__phones_subtitle::before {
    content: "";
    display: block;
    background-image: url("../images/icons/mail_black.svg");
    width: 23px;
    height: 18px;
    position: absolute;
    left: 2px;
    background-size: contain;
    background-repeat: no-repeat;
    top: 4px; }

.kma_contant_company_info__phones_item_wrapper {
  display: flex;
  flex-wrap: wrap; }

.kma_contant_company_info__phone_pl_wrapper, .kma_contant_company_info__phone_en_wrapper {
  width: 50%; }

.kma_contant_company_info__phone_pl_wrapper {
  padding-left: 38px;
  position: relative; }
  .kma_contant_company_info__phone_pl_wrapper::before {
    content: "";
    display: block;
    background-image: url("../images/icons/headphones_black.svg");
    height: 23px;
    width: 23px;
    position: absolute;
    left: 0;
    background-size: contain;
    background-repeat: no-repeat;
    top: 3px; }

.kma_contant_company_info__flags {
  width: 90px;
  height: 23px;
  display: block;
  background-image: url("../images/flags.png");
  background-size: contain;
  background-repeat: no-repeat;
  margin-bottom: 10px; }

.kma_contant_company_info__phone_subtitle {
  width: 100%;
  margin-top: 14px;
  font-size: 12px;
  font-weight: 300;
  letter-spacing: 0;
  line-height: 18px; }

.kma_contant_company_info__phone_text {
  font-size: 16px;
  letter-spacing: 0;
  line-height: 26px; }
  .kma_contant_company_info__phone_text span {
    font-weight: 600; }

.kma_contant_business_info__wrapper {
  display: flex;
  margin-bottom: 70px; }
  @media (max-width: 63.99em) {
    .kma_contant_business_info__wrapper {
      flex-direction: column; } }

.kma_contant_business_info__bank_info_wrapper {
  width: 70%;
  padding-right: 30px; }
  @media (max-width: 63.99em) {
    .kma_contant_business_info__bank_info_wrapper {
      width: 100%;
      padding-right: 0; } }

.kma_contant_business_info__address_wrapper {
  width: 30%; }
  @media (max-width: 63.99em) {
    .kma_contant_business_info__address_wrapper {
      width: 100%; } }

.kma_contant_business_info__title {
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 32px;
  margin-bottom: 25px; }

.kma_contant_business_info__acount_info {
  font-size: 16px;
  font-weight: 300;
  letter-spacing: 0;
  line-height: 26px;
  margin-bottom: 16px; }
  .kma_contant_business_info__acount_info span {
    font-weight: 600; }

.kma_contant_business_info__address {
  font-weight: 300; }
  .kma_contant_business_info__address p:nth-child(n + 3) {
    margin-bottom: 0; }

.kma_contant_business_info__company_name {
  font-weight: 600; }

.kma_contant_business_info__button {
  display: inline-block;
  border: 1px solid #c1272f;
  border-radius: 24px;
  background-color: #ffffff;
  padding: 12px 24px 12px 60px;
  font-size: 16px;
  font-weight: 500;
  letter-spacing: 0;
  line-height: 24px;
  text-align: center;
  margin-top: 30px;
  position: relative;
  cursor: pointer; }
  a.kma_contant_business_info__button {
    color: #c1272f; }
    a.kma_contant_business_info__button:hover {
      color: #c1272f; }
  .kma_contant_business_info__button:before {
    content: "";
    display: block;
    height: 25px;
    width: 30px;
    background-image: url("../images/icons/dojazd.svg");
    background-size: contain;
    background-repeat: no-repeat;
    position: absolute;
    left: 20px; }

.kma_contant_department__header_title {
  font-size: 26px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 32px;
  text-align: center;
  margin-top: 70px; }

.kma_contant_department__header_subtitle {
  font-size: 18px;
  font-weight: 300;
  letter-spacing: 0;
  line-height: 29px;
  text-align: center; }
  .kma_contant_department__header_subtitle a {
    color: #c1272f; }

.kma_contant_department__title {
  font-size: 24px;
  font-weight: 600;
  letter-spacing: 0;
  line-height: 40px;
  z-index: 1;
  display: flex;
  position: relative;
  padding-top: 33px;
  padding-bottom: 17px; }
  .kma_contant_department__title:before {
    content: "";
    display: block;
    height: 250px;
    background-color: #f7f7f7;
    position: absolute;
    z-index: -1;
    width: 9999px;
    left: -900px;
    top: 0; }

.kma_contant_department__members_wrapper {
  position: relative;
  z-index: 1;
  display: flex;
  padding-bottom: 20px; }
  @media (max-width: 63.99em) {
    .kma_contant_department__members_wrapper {
      flex-wrap: wrap; } }

.kma_contant_member__wrapper {
  width: 25%;
  display: flex;
  flex-direction: column;
  align-items: center; }
  @media (max-width: 63.99em) {
    .kma_contant_member__wrapper {
      width: 50%; }
      .kma_contant_member__wrapper:nth-child(n + 3) {
        margin-top: 20px; } }
  @media (max-width: 47.99em) {
    .kma_contant_member__wrapper {
      width: 100%; }
      .kma_contant_member__wrapper:nth-child(n + 2) {
        margin-top: 20px; } }
  .kma_contant_member__wrapper [data-tooltip],
  .kma_contant_member__wrapper .kma_contant_member_tooltip {
    position: relative;
    cursor: pointer; }
    .kma_contant_member__wrapper [data-tooltip] > img,
    .kma_contant_member__wrapper .kma_contant_member_tooltip > img {
      max-width: unset;
      left: 50% !important;
      z-index: 10001; }
    .kma_contant_member__wrapper [data-tooltip]:before, .kma_contant_member__wrapper [data-tooltip]:after,
    .kma_contant_member__wrapper [data-tooltip] > img,
    .kma_contant_member__wrapper .kma_contant_member_tooltip:before,
    .kma_contant_member__wrapper .kma_contant_member_tooltip:after,
    .kma_contant_member__wrapper .kma_contant_member_tooltip > img {
      position: absolute;
      visibility: hidden;
      transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out, transform 0.2s cubic-bezier(0.71, 1.7, 0.77, 1.24);
      transform: translate3d(-50%, 0, 0);
      pointer-events: none;
      bottom: 100%;
      left: 50%; }
    .kma_contant_member__wrapper [data-tooltip]:before,
    .kma_contant_member__wrapper .kma_contant_member_tooltip:before {
      z-index: 1001;
      border: 6px solid transparent;
      background: transparent;
      content: "";
      margin-left: 0;
      margin-bottom: -12px;
      border-top-color: #000000;
      border-top-color: rgba(51, 51, 51, 0.9);
      left: 50%; }
    .kma_contant_member__wrapper [data-tooltip]:after,
    .kma_contant_member__wrapper .kma_contant_member_tooltip:after {
      z-index: 1000;
      background-color: #000000;
      background-color: rgba(51, 51, 51, 0.9);
      color: #ffffff;
      content: attr(data-tooltip);
      line-height: 1.2;
      font-size: 14px;
      padding: 6px 10px;
      white-space: nowrap;
      left: calc(50% - 10px); }
    .kma_contant_member__wrapper [data-tooltip]:hover:before, .kma_contant_member__wrapper [data-tooltip]:hover:after,
    .kma_contant_member__wrapper [data-tooltip]:hover > img,
    .kma_contant_member__wrapper [data-tooltip]:focus > img, .kma_contant_member__wrapper [data-tooltip]:focus:before, .kma_contant_member__wrapper [data-tooltip]:focus:after,
    .kma_contant_member__wrapper .kma_contant_member_tooltip:hover:before,
    .kma_contant_member__wrapper .kma_contant_member_tooltip:hover:after,
    .kma_contant_member__wrapper .kma_contant_member_tooltip:hover > img,
    .kma_contant_member__wrapper .kma_contant_member_tooltip:focus > img,
    .kma_contant_member__wrapper .kma_contant_member_tooltip:focus:before,
    .kma_contant_member__wrapper .kma_contant_member_tooltip:focus:after {
      visibility: visible;
      opacity: 1;
      transform: translateY(-12px) translateX(-50%); }

.kma_contant_member__contact_details {
  display: flex;
  justify-content: center; }

.kma_contant_member__phone, .kma_contant_member__mail {
  height: 23px;
  width: 23px;
  display: block;
  background-image: url("../images/icons/mail_contact.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  line-height: 0;
  font-size: 0;
  color: transparent; }

.kma_contant_member__phone {
  margin-right: 40px;
  background-image: url("../images/icons/call.svg"); }

.kma_contant_member__image {
  margin-bottom: 16px;
  position: relative; }
  .kma_contant_member__image:before {
    content: "";
    display: block;
    height: 250px;
    background-color: #f7f7f7;
    position: absolute;
    z-index: -1;
    width: 9999px;
    left: -900px;
    top: 0; }
  .kma_contant_member__image img {
    height: 250px;
    width: auto; }

.kma_contant_member__name, .kma_contant_member__position {
  font-size: 16px;
  font-weight: 300;
  letter-spacing: 0;
  line-height: 26px;
  text-align: center; }

.kma_contant_member__name {
  font-weight: 600; }

.kma_contact-form {
  padding: 0 2rem; }
  .kma_contact-form .field.email, .kma_contact-form .field.telephone, .kma_contact-form .field.comment {
    margin-bottom: 1rem; }
  .kma_contact-form .field-recaptcha {
    margin-top: 2rem; }
  .kma_contact-form .field.comment textarea {
    margin-bottom: 0 !important; }
  .kma_contact-form .field.comment div.mage-error {
    padding-top: 0; }
  .kma_contact-form .g-recaptcha {
    margin-bottom: 4px; }
  .kma_contact-form .form.contact {
    border-radius: 8px;
    background-color: #ffffff;
    padding: 40px 50px; }
    @media (max-width: 48em) {
      .kma_contact-form .form.contact {
        padding: 2rem; } }
  @media (max-width: 48em) {
    .kma_contact-form {
      padding: 2rem 0; } }
  .kma_contact-form fieldset {
    border: none;
    padding: 0; }
    .kma_contact-form fieldset legend {
      font-weight: 600;
      font-size: 26px; }
      @media (max-width: 48em) {
        .kma_contact-form fieldset legend {
          margin-bottom: -1rem;
          font-size: 18px; } }
  .kma_contact-form .actions-toolbar button {
    color: #c1272f;
    min-width: 140px; }

body.cms-kontakt .kma_contact-form .actions-toolbar > .primary {
  display: flex;
  justify-content: center; }

body.cms-kontakt .kma_contact-form .actions-toolbar .kma_contant_business_info__button {
  padding: 12px 35px !important; }
  body.cms-kontakt .kma_contact-form .actions-toolbar .kma_contant_business_info__button::before {
    display: none; }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NzL3BhcmFncmFwaC5jc3MiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9bbmFtZV0vLi4vdGhlbWUtY3JlYXRpdmVzaG9wL3NyYy9jb25maWcvYnJlYWtwb2ludHMuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vcGFyYWdyYXBoLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9zcmMvY29tcG9uZW50cy9wYXJhZ3JhcGgvcGFyYWdyYXBoLnNjc3MiLCJ3ZWJwYWNrOi8vW25hbWVdLy4uL3RoZW1lLWNyZWF0aXZlc2hvcC9zcmMvdXRpbHMvY29tcG9uZW50LXNwYWNpbmcuc2NzcyIsIndlYnBhY2s6Ly9bbmFtZV0vLi9ub2RlX21vZHVsZXMvaW5jbHVkZS1tZWRpYS9kaXN0L19pbmNsdWRlLW1lZGlhLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbkBpbXBvcnQgJ2V0Yy92aWV3LnNjc3MnO1xuQGltcG9ydCAndXRpbHMvZGVlcC1nZXQvZGVlcC1nZXQuc2Nzcyc7XG5cbi8vIEJyZWFrcG9pbnRzIGltcG9ydCBmcm9tIHZpZXcueG1sIFtweF1cbiRicmVha3BvaW50c19weDogZGVlcC1nZXQoJHZpZXcteG1sLCB2YXJzLCBNYWdlbnRvX1RoZW1lLCBicmVha3BvaW50cyk7XG4kYnJlYWtwb2ludHNfZW06ICgpO1xuXG5AdXNlIFwic2FzczptYXBcIjtcblxuQGZ1bmN0aW9uIGNhbGN1bGF0ZS1icmVha3BvaW50cygkYnJlYWtwb2ludHNfZW0sICRicmVha3BvaW50c19weCkge1xuICAgICRyZXN1bHQ6ICRicmVha3BvaW50c19lbTtcbiAgICBAZWFjaCAka2V5LCAkdmFsdWUgaW4gJGJyZWFrcG9pbnRzX3B4IHtcbiAgICAgICAgJHJlc3VsdDogbWFwLW1lcmdlKFxuICAgICAgICAgICAgJHJlc3VsdCxcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICB1bnF1b3RlKCRrZXkpOiAkdmFsdWUgLyAxNiAqIDFlbSxcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBAcmV0dXJuICRyZXN1bHQ7XG59XG5cbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuXG4kYnJlYWtwb2ludHM6IGNhbGN1bGF0ZS1icmVha3BvaW50cygkYnJlYWtwb2ludHNfZW0sICRicmVha3BvaW50c19weCkgIWRlZmF1bHQ7XG5cbi8vIHBob25lOiAyMy4xMjVlbSAtIDM3MHB4XG4vLyBwaG9uZUxnOiAzMGVtIC0gNDgwcHgsXG4vLyB0YWJsZXQ6IDQ4ZW0gLSA3NjhweCxcbi8vIGxhcHRvcDogNjRlbSAtIDEwMjRweCxcbi8vIGxhcHRvcExnOiA4MGVtIC0gMTI4MHB4LFxuLy8gZGVza3RvcDogOTBlbSAtIDE0NDBweCxcbi8vIHR2OiAxMjBlbSAtIDE5MjBweCxcbiIsIi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEJyZWFrcG9pbnQgY29tcG9uZW50IHVzZWQgYnkgaW5jbHVkZS1tZWRpYSB2ZW5kb3IgbGlicmFyeS5cbiAqL1xuLyoqXG4gKiBFeHRyYWN0cyBuZXN0ZWQga2V5cyBmcm9tIGdpdmVuIG1hcC5cbiAqIEV4YW1wbGU6IGRlZXAtZ2V0KCRzb21lLW1hcCwgc29tZSwgbmVzdGVkLCBrZXlzKTtcbiAqL1xuQHVzZSBcInNhc3M6bWFwXCI7XG4vKipcbiogRGVmYXVsdCBwcm9qZWN0IGJyZWFrcG9pbnRzIC0gW2VtXVxuKi9cbi8qKlxuICogQnJlYWtwb2ludCBjb21wb25lbnQgdXNlZCBieSBpbmNsdWRlLW1lZGlhIHZlbmRvciBsaWJyYXJ5LlxuICovXG4vKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AdXNlIFwic2FzczptYXBcIjtcbi8qKlxuKiBEZWZhdWx0IHByb2plY3QgYnJlYWtwb2ludHMgLSBbZW1dXG4qL1xuLyoqXG4gKiBCcmVha3BvaW50IGNvbXBvbmVudCB1c2VkIGJ5IGluY2x1ZGUtbWVkaWEgdmVuZG9yIGxpYnJhcnkuXG4gKi9cbi8qKlxuICogRXh0cmFjdHMgbmVzdGVkIGtleXMgZnJvbSBnaXZlbiBtYXAuXG4gKiBFeGFtcGxlOiBkZWVwLWdldCgkc29tZS1tYXAsIHNvbWUsIG5lc3RlZCwga2V5cyk7XG4gKi9cbkB1c2UgXCJzYXNzOm1hcFwiO1xuLyoqXG4qIERlZmF1bHQgcHJvamVjdCBicmVha3BvaW50cyAtIFtlbV1cbiovXG4vKipcbiAqIEdhcCBiZXR3ZWVuIGNvbHVtbnMgKGFsbCBDU1MgdW5pdHMgYWxsb3dlZCkgW0V4YW1wbGU6IDEuNXJlbV1cbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL2NvbHVtbi1nYXBcbiAqL1xuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9jb2x1bW4tcnVsZVxuICovXG4uY21zLW8tbmFzIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1wYXJhZ3JhcGgsXG4uY21zLXNlcndpcyAuY3MtY29udGFpbmVyLmNzLWNvbnRhaW5lci0tcGFyYWdyYXBoIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuXG4uY3MtcGFyYWdyYXBoIHtcbiAgY29sdW1uLWdhcDogNnJlbTtcbiAgY29sdW1uLXJ1bGU6IDFweCBzb2xpZCAjZGNkY2RjO1xuICBtYXJnaW46IDAgMCAzcmVtOyB9XG4gIEBtZWRpYSAobWluLXdpZHRoOiA0OGVtKSB7XG4gICAgLmNzLXBhcmFncmFwaCB7XG4gICAgICBtYXJnaW46IDAgMCA0cmVtOyB9IH1cbiAgLmNzLXBhcmFncmFwaC0tc2tpcC1zcGFjaW5nIHtcbiAgICBtYXJnaW46IDA7IH1cbiAgLmNzLXBhcmFncmFwaCBpbWcge1xuICAgIGhlaWdodDogYXV0bzsgfVxuICBAbWVkaWEgKG1pbi13aWR0aDogNDhlbSkge1xuICAgIC5jcy1wYXJhZ3JhcGgtLWNvbHMtMiwgLmNzLXBhcmFncmFwaC0tY29scy0zLCAuY3MtcGFyYWdyYXBoLS1jb2xzLTQge1xuICAgICAgY29sdW1uLWNvdW50OiAyOyB9XG4gICAgICAuY3MtcGFyYWdyYXBoLS1jb2xzLTIgbGksIC5jcy1wYXJhZ3JhcGgtLWNvbHMtMyBsaSwgLmNzLXBhcmFncmFwaC0tY29scy00IGxpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5jcy1wYXJhZ3JhcGgtLWNvbHMtMiBpbWcsIC5jcy1wYXJhZ3JhcGgtLWNvbHMtMyBpbWcsIC5jcy1wYXJhZ3JhcGgtLWNvbHMtNCBpbWcge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWF4LXdpZHRoOiAxMDAlOyB9IH1cbiAgQG1lZGlhIChtaW4td2lkdGg6IDY0ZW0pIHtcbiAgICAuY3MtcGFyYWdyYXBoLS1jb2xzLTMsIC5jcy1wYXJhZ3JhcGgtLWNvbHMtNCB7XG4gICAgICBjb2x1bW4tY291bnQ6IDM7IH0gfVxuICBAbWVkaWEgKG1pbi13aWR0aDogODBlbSkge1xuICAgIC5jcy1wYXJhZ3JhcGgtLWNvbHMtNCB7XG4gICAgICBjb2x1bW4tY291bnQ6IDQ7IH0gfVxuICAuY3MtcGFyYWdyYXBoLS1tb2RlLW9wdGltYWwge1xuICAgIG1heC13aWR0aDogNDBlbTtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgY29sdW1uLWNvdW50OiBpbml0aWFsOyB9XG5cbi5rbWFfc2VydmljZV90ZXh0X2FuZF9pbmZvX193cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLWJvdHRvbTogNDBweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgIC5rbWFfc2VydmljZV90ZXh0X2FuZF9pbmZvX193cmFwcGVyIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IH0gfVxuXG4ua21hX3NlcnZpY2VfdGV4dF9hbmRfaW5mb19faW5mby13cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDsgfVxuXG4ua21hX3NlcnZpY2VfdGV4dF9hbmRfaW5mb19faW5mby1pY29uIHtcbiAgd2lkdGg6IDY2cHg7XG4gIGhlaWdodDogNjZweDtcbiAgbWFyZ2luLXJpZ2h0OiAxNnB4OyB9XG5cbi5rbWFfc2VydmljZV90ZXh0X2FuZF9pbmZvX190ZXh0IHtcbiAgd2lkdGg6IDYwJTtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMjlweDtcbiAgcGFkZGluZy10b3A6IDMwcHg7XG4gIHBhZGRpbmctYm90dG9tOiA0MHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmttYV9zZXJ2aWNlX3RleHRfYW5kX2luZm9fX3RleHQge1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAua21hX3NlcnZpY2VfdGV4dF9hbmRfaW5mb19fdGV4dC0tYm9sZCB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4ua21hX3NlcnZpY2VfdGV4dF9hbmRfaW5mb19faW5mbyB7XG4gIHdpZHRoOiA0MCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNkNWQ1ZDU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgcGFkZGluZzogNDBweCAyMHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmttYV9zZXJ2aWNlX3RleHRfYW5kX2luZm9fX2luZm8ge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgd2lkdGg6IDEwMCU7IH0gfVxuICAua21hX3NlcnZpY2VfdGV4dF9hbmRfaW5mb19faW5mby10ZXh0LXRpdGxlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMTtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG4gIC5rbWFfc2VydmljZV90ZXh0X2FuZF9pbmZvX19pbmZvLXRleHQtc3VidGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzMHB4OyB9XG4gICAgLmttYV9zZXJ2aWNlX3RleHRfYW5kX2luZm9fX2luZm8tdGV4dC1zdWJ0aXRsZSBzcGFuIHtcbiAgICAgIGNvbG9yOiAjYzEyNzJmO1xuICAgICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfVxuICAua21hX3NlcnZpY2VfdGV4dF9hbmRfaW5mb19faW5mby1jb250YWN0IHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBsaW5lLWhlaWdodDogMjZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgICAua21hX3NlcnZpY2VfdGV4dF9hbmRfaW5mb19faW5mby1jb250YWN0IHAge1xuICAgICAgbWFyZ2luOiAwOyB9XG4gICAgLmttYV9zZXJ2aWNlX3RleHRfYW5kX2luZm9fX2luZm8tY29udGFjdCBhIHtcbiAgICAgIGNvbG9yOiAjYzEyNzJmOyB9XG5cbi5rbWFfc2VydmljZV90ZXh0X2FuZF9pbmZvX2J1dHRvbiB7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHBhZGRpbmc6IDEzcHggNDVweDtcbiAgbWF4LXdpZHRoOiAyODVweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjMTI3MmY7XG4gIGJvcmRlci1yYWRpdXM6IDI3cHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNjMTI3MmY7XG4gIG1hcmdpbi10b3A6IDIwcHg7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDMwZW0pIHtcbiAgICAua21hX3NlcnZpY2VfdGV4dF9hbmRfaW5mb19idXR0b24ge1xuICAgICAgcGFkZGluZy1pbmxpbmU6IDEwcHg7IH0gfVxuICAua21hX3NlcnZpY2VfdGV4dF9hbmRfaW5mb19idXR0b246aG92ZXIge1xuICAgIGNvbG9yOiAjZmZmZmZmOyB9XG5cbi5rbWFfc2VydmljZV9jb250YWN0X193cmFwcGVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZTllYjtcbiAgYm9yZGVyLXJhZGl1czogOHB4OyB9XG5cbi5rbWFfc2VydmljZV9jb250YWN0X19pbWFnZSB7XG4gIHdpZHRoOiAzMCU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAua21hX3NlcnZpY2VfY29udGFjdF9faW1hZ2Uge1xuICAgICAgZGlzcGxheTogbm9uZTsgfSB9XG4gIC5rbWFfc2VydmljZV9jb250YWN0X19pbWFnZSBpbWcge1xuICAgIGhlaWdodDogMTAwJTsgfVxuXG4ua21hX3NlcnZpY2VfY29udGFjdF9fdGV4dCB7XG4gIHdpZHRoOiA3MCU7XG4gIHBhZGRpbmc6IDQwcHggNjBweCA0MHB4IDQwcHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDQ3Ljk5ZW0pIHtcbiAgICAua21hX3NlcnZpY2VfY29udGFjdF9fdGV4dCB7XG4gICAgICB3aWR0aDogMTAwJTsgfSB9XG4gIC5rbWFfc2VydmljZV9jb250YWN0X190ZXh0LWluZm8ge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyOXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cblxuLmttYV9zZXJ2aWNlX2NvbnRhY3RfX3RpdGxlIHtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMzJweDsgfVxuXG4ua21hX3NlcnZpY2VfY29udGFjdF9fbWFpbC13cmFwcGVyLCAua21hX3NlcnZpY2VfY29udGFjdF9fcGhvbmUtd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0OyB9XG4gIC5rbWFfc2VydmljZV9jb250YWN0X19tYWlsLXdyYXBwZXIgaW1nLCAua21hX3NlcnZpY2VfY29udGFjdF9fcGhvbmUtd3JhcHBlciBpbWcge1xuICAgIHdpZHRoOiAyNHB4O1xuICAgIGhlaWdodDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7IH1cblxuLmttYV9zZXJ2aWNlX2NvbnRhY3RfX21haWwtd3JhcHBlciB7XG4gIG1hcmdpbi1ib3R0b206IDE1cHg7IH1cbiAgLmttYV9zZXJ2aWNlX2NvbnRhY3RfX21haWwtd3JhcHBlciBpbWcge1xuICAgIG1hcmdpbi10b3A6IDdweDsgfVxuXG4ua21hX3NlcnZpY2VfY29udGFjdF9fbWFpbC10ZXh0IGEge1xuICBjb2xvcjogI2MxMjcyZjtcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsaW5lLWhlaWdodDogMjlweDsgfVxuXG4ua21hX3NlcnZpY2VfY29udGFjdF9fcGhvbmUtdGV4dCB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDI5cHg7XG4gIG1hcmdpbi1ib3R0b206IDZweDsgfVxuICAua21hX3NlcnZpY2VfY29udGFjdF9fcGhvbmUtdGV4dCBzcGFuIHtcbiAgICBmb250LXdlaWdodDogNjAwOyB9XG5cbi5rbWFfc2VydmljZV9jb250YWN0X19waG9uZS1pbmZvIHtcbiAgZm9udC1zaXplOiAxMnB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMThweDsgfVxuXG4ua21hX3NlcnZpY2VfY29udGFjdF9fZGlzY2xhaW1lciB7XG4gIG1heC13aWR0aDogOTcwcHg7XG4gIG1hcmdpbjogNDBweCBhdXRvIDkwcHggYXV0bztcbiAgZm9udC1zaXplOiAxOHB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBsaW5lLWhlaWdodDogMjlweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiAzMGVtKSB7XG4gICAgLmttYV9zZXJ2aWNlX2NvbnRhY3RfX2Rpc2NsYWltZXIge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMjByZW07IH0gfVxuXG4uY21zLW8tbmFzIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1wYXJhZ3JhcGgge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmOyB9XG5cbi5jbXMtby1uYXMgLmNzLXBhcmFncmFwaCB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGluZS1oZWlnaHQ6IDI5cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWF4LXdpZHRoOiA5MjBweDtcbiAgbWFyZ2luOiAwIGF1dG8gMzVweCBhdXRvOyB9XG5cbi5jbXMta29udGFrdCAuY3MtY29udGFpbmVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjsgfVxuXG4uY21zLWtvbnRha3QgLmNvbHVtbi5tYWluIC5jcy1jb250YWluZXItLXBhcmFncmFwaDpudGgtb2YtdHlwZSgzKSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gIG1hcmdpbi1ib3R0b206IDgwcHg7XG4gIG1hcmdpbi10b3A6IC00MHB4O1xuICBwYWRkaW5nLXRvcDogNDBweDtcbiAgcGFkZGluZy1ib3R0b206IDQwcHg7IH1cblxuLmNtcy1rb250YWt0IC5jb2x1bW4ubWFpbiA+IGRpdjplbXB0eSB7XG4gIG1hcmdpbi1ib3R0b206IC0xMnJlbTsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgIC5jbXMta29udGFrdCAuY29sdW1uLm1haW4gPiBkaXY6ZW1wdHkge1xuICAgICAgbWFyZ2luLWJvdHRvbTogMDsgfSB9XG5cbi5rbWFfY29udGFjdF9faW5mbyAuY3MtaW1hZ2UtdGVhc2VyX19kZXNjcmlwdGlvbiBzcGFuIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIG1hcmdpbi10b3A6IDEycHg7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgbGluZS1oZWlnaHQ6IDIzcHg7IH1cblxuLmttYV9jb250YW50X2NvbXBhbnlfaW5mb19fd3JhcHBlciB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlNWU5ZWI7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogLTYwcHg7IH1cbiAgLmttYV9jb250YW50X2NvbXBhbnlfaW5mb19fd3JhcHBlcjphZnRlciB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlOWViO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMDtcbiAgICB3aWR0aDogOTk5cHg7XG4gICAgdG9wOiAwcHg7XG4gICAgcmlnaHQ6IC05OTlweDsgfVxuICAua21hX2NvbnRhbnRfY29tcGFueV9pbmZvX193cmFwcGVyOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZTVlOWViO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgei1pbmRleDogMDtcbiAgICB3aWR0aDogOTk5cHg7XG4gICAgdG9wOiAwcHg7XG4gICAgbGVmdDogLTk5OXB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmttYV9jb250YW50X2NvbXBhbnlfaW5mb19fd3JhcHBlcjpiZWZvcmUge1xuICAgICAgd2lkdGg6IDE1cHg7XG4gICAgICBsZWZ0OiAtMTVweDsgfSB9XG5cbi5rbWFfY29udGFudF9jb21wYW55X2luZm9fX2ltYWdlX3dyYXBwZXIge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiA0MCU7XG4gIG1pbi1oZWlnaHQ6IDc1MnB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmttYV9jb250YW50X2NvbXBhbnlfaW5mb19faW1hZ2Vfd3JhcHBlciB7XG4gICAgICBkaXNwbGF5OiBub25lOyB9IH1cbiAgLmttYV9jb250YW50X2NvbXBhbnlfaW5mb19faW1hZ2Vfd3JhcHBlciBkaXYge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogNjg1cHg7XG4gICAgbGVmdDogLTIxNnB4OyB9XG5cbi5rbWFfY29udGFudF9jb21wYW55X2luZm9fX2NvbnRhY3Rfd3JhcHBlciB7XG4gIHBhZGRpbmc6IDE2NXB4IDAgMTM1cHggMzBweDtcbiAgd2lkdGg6IDYwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmttYV9jb250YW50X2NvbXBhbnlfaW5mb19fY29udGFjdF93cmFwcGVyIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgcGFkZGluZzogNTBweCAwOyB9IH1cblxuLmttYV9jb250YW50X2NvbXBhbnlfaW5mb19fdGl0bGUge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBsaW5lLWhlaWdodDogMzJweDtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDsgfVxuXG4ua21hX2NvbnRhbnRfY29tcGFueV9pbmZvX19zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogMTZweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICBtYXJnaW4tYm90dG9tOiAzMnB4OyB9XG5cbi5rbWFfY29udGFudF9jb21wYW55X2luZm9fX2J1dHRvbnMge1xuICBtYXJnaW4tYm90dG9tOiA1MHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmttYV9jb250YW50X2NvbXBhbnlfaW5mb19fYnV0dG9ucyB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG5cbi5rbWFfY29udGFudF9jb21wYW55X2luZm9fX3Bob25lX2Zvcm0sIC5rbWFfY29udGFudF9jb21wYW55X2luZm9fX2Zvcm0ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDEzcHggNDZweDtcbiAgYm9yZGVyOiAxcHggc29saWQgI2MxMjcyZjtcbiAgYm9yZGVyLXJhZGl1czogMjdweDtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gIHRleHQtYWxpZ246IGNlbnRlcjsgfVxuICBhLmttYV9jb250YW50X2NvbXBhbnlfaW5mb19fcGhvbmVfZm9ybSwgLmttYV9jb250YW50X2NvbXBhbnlfaW5mb19fZm9ybSB7XG4gICAgY29sb3I6ICNjMTI3MmY7IH1cbiAgICBhLmttYV9jb250YW50X2NvbXBhbnlfaW5mb19fcGhvbmVfZm9ybTpob3ZlciwgLmttYV9jb250YW50X2NvbXBhbnlfaW5mb19fZm9ybTpob3ZlciB7XG4gICAgICBjb2xvcjogI2MxMjcyZjsgfVxuXG4ua21hX2NvbnRhbnRfY29tcGFueV9pbmZvX19mb3JtIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogI2MxMjcyZjtcbiAgbWFyZ2luLXJpZ2h0OiAzMHB4OyB9XG4gIGEua21hX2NvbnRhbnRfY29tcGFueV9pbmZvX19mb3JtIHtcbiAgICBjb2xvcjogI2ZmZmZmZjsgfVxuICAgIGEua21hX2NvbnRhbnRfY29tcGFueV9pbmZvX19mb3JtOmhvdmVyIHtcbiAgICAgIGNvbG9yOiAjZmZmZmZmOyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA0Ny45OWVtKSB7XG4gICAgLmttYV9jb250YW50X2NvbXBhbnlfaW5mb19fZm9ybSB7XG4gICAgICBtYXJnaW4tcmlnaHQ6IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAzMHB4OyB9IH1cblxuLmttYV9jb250YW50X2NvbXBhbnlfaW5mb19fcGhvbmVzX3N1YnRpdGxlIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gIHBhZGRpbmctbGVmdDogMzhweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLWJvdHRvbTogMzhweDtcbiAgbWFyZ2luLWJvdHRvbTogMzhweDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkNWQ1ZDU7IH1cbiAgLmttYV9jb250YW50X2NvbXBhbnlfaW5mb19fcGhvbmVzX3N1YnRpdGxlIGEge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICNjMTI3MmY7IH1cbiAgICAua21hX2NvbnRhbnRfY29tcGFueV9pbmZvX19waG9uZXNfc3VidGl0bGUgYTpob3ZlciB7XG4gICAgICBjb2xvcjogI2MxMjcyZjsgfVxuICAua21hX2NvbnRhbnRfY29tcGFueV9pbmZvX19waG9uZXNfc3VidGl0bGU6OmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbWFpbF9ibGFjay5zdmdcIik7XG4gICAgd2lkdGg6IDIzcHg7XG4gICAgaGVpZ2h0OiAxOHB4O1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiAycHg7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgdG9wOiA0cHg7IH1cblxuLmttYV9jb250YW50X2NvbXBhbnlfaW5mb19fcGhvbmVzX2l0ZW1fd3JhcHBlciB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtd3JhcDogd3JhcDsgfVxuXG4ua21hX2NvbnRhbnRfY29tcGFueV9pbmZvX19waG9uZV9wbF93cmFwcGVyLCAua21hX2NvbnRhbnRfY29tcGFueV9pbmZvX19waG9uZV9lbl93cmFwcGVyIHtcbiAgd2lkdGg6IDUwJTsgfVxuXG4ua21hX2NvbnRhbnRfY29tcGFueV9pbmZvX19waG9uZV9wbF93cmFwcGVyIHtcbiAgcGFkZGluZy1sZWZ0OiAzOHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmttYV9jb250YW50X2NvbXBhbnlfaW5mb19fcGhvbmVfcGxfd3JhcHBlcjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9oZWFkcGhvbmVzX2JsYWNrLnN2Z1wiKTtcbiAgICBoZWlnaHQ6IDIzcHg7XG4gICAgd2lkdGg6IDIzcHg7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgdG9wOiAzcHg7IH1cblxuLmttYV9jb250YW50X2NvbXBhbnlfaW5mb19fZmxhZ3Mge1xuICB3aWR0aDogOTBweDtcbiAgaGVpZ2h0OiAyM3B4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ZsYWdzLnBuZ1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBtYXJnaW4tYm90dG9tOiAxMHB4OyB9XG5cbi5rbWFfY29udGFudF9jb21wYW55X2luZm9fX3Bob25lX3N1YnRpdGxlIHtcbiAgd2lkdGg6IDEwMCU7XG4gIG1hcmdpbi10b3A6IDE0cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiAxOHB4OyB9XG5cbi5rbWFfY29udGFudF9jb21wYW55X2luZm9fX3Bob25lX3RleHQge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBsaW5lLWhlaWdodDogMjZweDsgfVxuICAua21hX2NvbnRhbnRfY29tcGFueV9pbmZvX19waG9uZV90ZXh0IHNwYW4ge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuLmttYV9jb250YW50X2J1c2luZXNzX2luZm9fX3dyYXBwZXIge1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tYm90dG9tOiA3MHB4OyB9XG4gIEBtZWRpYSAobWF4LXdpZHRoOiA2My45OWVtKSB7XG4gICAgLmttYV9jb250YW50X2J1c2luZXNzX2luZm9fX3dyYXBwZXIge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9XG5cbi5rbWFfY29udGFudF9idXNpbmVzc19pbmZvX19iYW5rX2luZm9fd3JhcHBlciB7XG4gIHdpZHRoOiA3MCU7XG4gIHBhZGRpbmctcmlnaHQ6IDMwcHg7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAua21hX2NvbnRhbnRfYnVzaW5lc3NfaW5mb19fYmFua19pbmZvX3dyYXBwZXIge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwOyB9IH1cblxuLmttYV9jb250YW50X2J1c2luZXNzX2luZm9fX2FkZHJlc3Nfd3JhcHBlciB7XG4gIHdpZHRoOiAzMCU7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAua21hX2NvbnRhbnRfYnVzaW5lc3NfaW5mb19fYWRkcmVzc193cmFwcGVyIHtcbiAgICAgIHdpZHRoOiAxMDAlOyB9IH1cblxuLmttYV9jb250YW50X2J1c2luZXNzX2luZm9fX3RpdGxlIHtcbiAgZm9udC1zaXplOiAyNnB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgbGluZS1oZWlnaHQ6IDMycHg7XG4gIG1hcmdpbi1ib3R0b206IDI1cHg7IH1cblxuLmttYV9jb250YW50X2J1c2luZXNzX2luZm9fX2Fjb3VudF9pbmZvIHtcbiAgZm9udC1zaXplOiAxNnB4O1xuICBmb250LXdlaWdodDogMzAwO1xuICBsZXR0ZXItc3BhY2luZzogMDtcbiAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gIG1hcmdpbi1ib3R0b206IDE2cHg7IH1cbiAgLmttYV9jb250YW50X2J1c2luZXNzX2luZm9fX2Fjb3VudF9pbmZvIHNwYW4ge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH1cblxuLmttYV9jb250YW50X2J1c2luZXNzX2luZm9fX2FkZHJlc3Mge1xuICBmb250LXdlaWdodDogMzAwOyB9XG4gIC5rbWFfY29udGFudF9idXNpbmVzc19pbmZvX19hZGRyZXNzIHA6bnRoLWNoaWxkKG4gKyAzKSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDsgfVxuXG4ua21hX2NvbnRhbnRfYnVzaW5lc3NfaW5mb19fY29tcGFueV9uYW1lIHtcbiAgZm9udC13ZWlnaHQ6IDYwMDsgfVxuXG4ua21hX2NvbnRhbnRfYnVzaW5lc3NfaW5mb19fYnV0dG9uIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBib3JkZXI6IDFweCBzb2xpZCAjYzEyNzJmO1xuICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICBwYWRkaW5nOiAxMnB4IDI0cHggMTJweCA2MHB4O1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBsaW5lLWhlaWdodDogMjRweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW4tdG9wOiAzMHB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGN1cnNvcjogcG9pbnRlcjsgfVxuICBhLmttYV9jb250YW50X2J1c2luZXNzX2luZm9fX2J1dHRvbiB7XG4gICAgY29sb3I6ICNjMTI3MmY7IH1cbiAgICBhLmttYV9jb250YW50X2J1c2luZXNzX2luZm9fX2J1dHRvbjpob3ZlciB7XG4gICAgICBjb2xvcjogI2MxMjcyZjsgfVxuICAua21hX2NvbnRhbnRfYnVzaW5lc3NfaW5mb19fYnV0dG9uOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDI1cHg7XG4gICAgd2lkdGg6IDMwcHg7XG4gICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2RvamF6ZC5zdmdcIik7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDIwcHg7IH1cblxuLmttYV9jb250YW50X2RlcGFydG1lbnRfX2hlYWRlcl90aXRsZSB7XG4gIGZvbnQtc2l6ZTogMjZweDtcbiAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIG1hcmdpbi10b3A6IDcwcHg7IH1cblxuLmttYV9jb250YW50X2RlcGFydG1lbnRfX2hlYWRlcl9zdWJ0aXRsZSB7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gIGxpbmUtaGVpZ2h0OiAyOXB4O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7IH1cbiAgLmttYV9jb250YW50X2RlcGFydG1lbnRfX2hlYWRlcl9zdWJ0aXRsZSBhIHtcbiAgICBjb2xvcjogI2MxMjcyZjsgfVxuXG4ua21hX2NvbnRhbnRfZGVwYXJ0bWVudF9fdGl0bGUge1xuICBmb250LXNpemU6IDI0cHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBsaW5lLWhlaWdodDogNDBweDtcbiAgei1pbmRleDogMTtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLXRvcDogMzNweDtcbiAgcGFkZGluZy1ib3R0b206IDE3cHg7IH1cbiAgLmttYV9jb250YW50X2RlcGFydG1lbnRfX3RpdGxlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDI1MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHdpZHRoOiA5OTk5cHg7XG4gICAgbGVmdDogLTkwMHB4O1xuICAgIHRvcDogMDsgfVxuXG4ua21hX2NvbnRhbnRfZGVwYXJ0bWVudF9fbWVtYmVyc193cmFwcGVyIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuICBkaXNwbGF5OiBmbGV4O1xuICBwYWRkaW5nLWJvdHRvbTogMjBweDsgfVxuICBAbWVkaWEgKG1heC13aWR0aDogNjMuOTllbSkge1xuICAgIC5rbWFfY29udGFudF9kZXBhcnRtZW50X19tZW1iZXJzX3dyYXBwZXIge1xuICAgICAgZmxleC13cmFwOiB3cmFwOyB9IH1cblxuLmttYV9jb250YW50X21lbWJlcl9fd3JhcHBlciB7XG4gIHdpZHRoOiAyNSU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7IH1cbiAgQG1lZGlhIChtYXgtd2lkdGg6IDYzLjk5ZW0pIHtcbiAgICAua21hX2NvbnRhbnRfbWVtYmVyX193cmFwcGVyIHtcbiAgICAgIHdpZHRoOiA1MCU7IH1cbiAgICAgIC5rbWFfY29udGFudF9tZW1iZXJfX3dyYXBwZXI6bnRoLWNoaWxkKG4gKyAzKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDcuOTllbSkge1xuICAgIC5rbWFfY29udGFudF9tZW1iZXJfX3dyYXBwZXIge1xuICAgICAgd2lkdGg6IDEwMCU7IH1cbiAgICAgIC5rbWFfY29udGFudF9tZW1iZXJfX3dyYXBwZXI6bnRoLWNoaWxkKG4gKyAyKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7IH0gfVxuICAua21hX2NvbnRhbnRfbWVtYmVyX193cmFwcGVyIFtkYXRhLXRvb2x0aXBdLFxuICAua21hX2NvbnRhbnRfbWVtYmVyX193cmFwcGVyIC5rbWFfY29udGFudF9tZW1iZXJfdG9vbHRpcCB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjsgfVxuICAgIC5rbWFfY29udGFudF9tZW1iZXJfX3dyYXBwZXIgW2RhdGEtdG9vbHRpcF0gPiBpbWcsXG4gICAgLmttYV9jb250YW50X21lbWJlcl9fd3JhcHBlciAua21hX2NvbnRhbnRfbWVtYmVyX3Rvb2x0aXAgPiBpbWcge1xuICAgICAgbWF4LXdpZHRoOiB1bnNldDtcbiAgICAgIGxlZnQ6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgei1pbmRleDogMTAwMDE7IH1cbiAgICAua21hX2NvbnRhbnRfbWVtYmVyX193cmFwcGVyIFtkYXRhLXRvb2x0aXBdOmJlZm9yZSwgLmttYV9jb250YW50X21lbWJlcl9fd3JhcHBlciBbZGF0YS10b29sdGlwXTphZnRlcixcbiAgICAua21hX2NvbnRhbnRfbWVtYmVyX193cmFwcGVyIFtkYXRhLXRvb2x0aXBdID4gaW1nLFxuICAgIC5rbWFfY29udGFudF9tZW1iZXJfX3dyYXBwZXIgLmttYV9jb250YW50X21lbWJlcl90b29sdGlwOmJlZm9yZSxcbiAgICAua21hX2NvbnRhbnRfbWVtYmVyX193cmFwcGVyIC5rbWFfY29udGFudF9tZW1iZXJfdG9vbHRpcDphZnRlcixcbiAgICAua21hX2NvbnRhbnRfbWVtYmVyX193cmFwcGVyIC5rbWFfY29udGFudF9tZW1iZXJfdG9vbHRpcCA+IGltZyB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZS1pbi1vdXQsIHZpc2liaWxpdHkgMC4ycyBlYXNlLWluLW91dCwgdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAuNzEsIDEuNywgMC43NywgMS4yNCk7XG4gICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKC01MCUsIDAsIDApO1xuICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICBib3R0b206IDEwMCU7XG4gICAgICBsZWZ0OiA1MCU7IH1cbiAgICAua21hX2NvbnRhbnRfbWVtYmVyX193cmFwcGVyIFtkYXRhLXRvb2x0aXBdOmJlZm9yZSxcbiAgICAua21hX2NvbnRhbnRfbWVtYmVyX193cmFwcGVyIC5rbWFfY29udGFudF9tZW1iZXJfdG9vbHRpcDpiZWZvcmUge1xuICAgICAgei1pbmRleDogMTAwMTtcbiAgICAgIGJvcmRlcjogNnB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgbWFyZ2luLWxlZnQ6IDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiAtMTJweDtcbiAgICAgIGJvcmRlci10b3AtY29sb3I6ICMwMDAwMDA7XG4gICAgICBib3JkZXItdG9wLWNvbG9yOiByZ2JhKDUxLCA1MSwgNTEsIDAuOSk7XG4gICAgICBsZWZ0OiA1MCU7IH1cbiAgICAua21hX2NvbnRhbnRfbWVtYmVyX193cmFwcGVyIFtkYXRhLXRvb2x0aXBdOmFmdGVyLFxuICAgIC5rbWFfY29udGFudF9tZW1iZXJfX3dyYXBwZXIgLmttYV9jb250YW50X21lbWJlcl90b29sdGlwOmFmdGVyIHtcbiAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDAwMDAwO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSg1MSwgNTEsIDUxLCAwLjkpO1xuICAgICAgY29sb3I6ICNmZmZmZmY7XG4gICAgICBjb250ZW50OiBhdHRyKGRhdGEtdG9vbHRpcCk7XG4gICAgICBsaW5lLWhlaWdodDogMS4yO1xuICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgbGVmdDogY2FsYyg1MCUgLSAxMHB4KTsgfVxuICAgIC5rbWFfY29udGFudF9tZW1iZXJfX3dyYXBwZXIgW2RhdGEtdG9vbHRpcF06aG92ZXI6YmVmb3JlLCAua21hX2NvbnRhbnRfbWVtYmVyX193cmFwcGVyIFtkYXRhLXRvb2x0aXBdOmhvdmVyOmFmdGVyLFxuICAgIC5rbWFfY29udGFudF9tZW1iZXJfX3dyYXBwZXIgW2RhdGEtdG9vbHRpcF06aG92ZXIgPiBpbWcsXG4gICAgLmttYV9jb250YW50X21lbWJlcl9fd3JhcHBlciBbZGF0YS10b29sdGlwXTpmb2N1cyA+IGltZywgLmttYV9jb250YW50X21lbWJlcl9fd3JhcHBlciBbZGF0YS10b29sdGlwXTpmb2N1czpiZWZvcmUsIC5rbWFfY29udGFudF9tZW1iZXJfX3dyYXBwZXIgW2RhdGEtdG9vbHRpcF06Zm9jdXM6YWZ0ZXIsXG4gICAgLmttYV9jb250YW50X21lbWJlcl9fd3JhcHBlciAua21hX2NvbnRhbnRfbWVtYmVyX3Rvb2x0aXA6aG92ZXI6YmVmb3JlLFxuICAgIC5rbWFfY29udGFudF9tZW1iZXJfX3dyYXBwZXIgLmttYV9jb250YW50X21lbWJlcl90b29sdGlwOmhvdmVyOmFmdGVyLFxuICAgIC5rbWFfY29udGFudF9tZW1iZXJfX3dyYXBwZXIgLmttYV9jb250YW50X21lbWJlcl90b29sdGlwOmhvdmVyID4gaW1nLFxuICAgIC5rbWFfY29udGFudF9tZW1iZXJfX3dyYXBwZXIgLmttYV9jb250YW50X21lbWJlcl90b29sdGlwOmZvY3VzID4gaW1nLFxuICAgIC5rbWFfY29udGFudF9tZW1iZXJfX3dyYXBwZXIgLmttYV9jb250YW50X21lbWJlcl90b29sdGlwOmZvY3VzOmJlZm9yZSxcbiAgICAua21hX2NvbnRhbnRfbWVtYmVyX193cmFwcGVyIC5rbWFfY29udGFudF9tZW1iZXJfdG9vbHRpcDpmb2N1czphZnRlciB7XG4gICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMTJweCkgdHJhbnNsYXRlWCgtNTAlKTsgfVxuXG4ua21hX2NvbnRhbnRfbWVtYmVyX19jb250YWN0X2RldGFpbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfVxuXG4ua21hX2NvbnRhbnRfbWVtYmVyX19waG9uZSwgLmttYV9jb250YW50X21lbWJlcl9fbWFpbCB7XG4gIGhlaWdodDogMjNweDtcbiAgd2lkdGg6IDIzcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbWFpbF9jb250YWN0LnN2Z1wiKTtcbiAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gIGxpbmUtaGVpZ2h0OiAwO1xuICBmb250LXNpemU6IDA7XG4gIGNvbG9yOiB0cmFuc3BhcmVudDsgfVxuXG4ua21hX2NvbnRhbnRfbWVtYmVyX19waG9uZSB7XG4gIG1hcmdpbi1yaWdodDogNDBweDtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2NhbGwuc3ZnXCIpOyB9XG5cbi5rbWFfY29udGFudF9tZW1iZXJfX2ltYWdlIHtcbiAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG4gIC5rbWFfY29udGFudF9tZW1iZXJfX2ltYWdlOmJlZm9yZSB7XG4gICAgY29udGVudDogXCJcIjtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBoZWlnaHQ6IDI1MHB4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3Zjc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHotaW5kZXg6IC0xO1xuICAgIHdpZHRoOiA5OTk5cHg7XG4gICAgbGVmdDogLTkwMHB4O1xuICAgIHRvcDogMDsgfVxuICAua21hX2NvbnRhbnRfbWVtYmVyX19pbWFnZSBpbWcge1xuICAgIGhlaWdodDogMjUwcHg7XG4gICAgd2lkdGg6IGF1dG87IH1cblxuLmttYV9jb250YW50X21lbWJlcl9fbmFtZSwgLmttYV9jb250YW50X21lbWJlcl9fcG9zaXRpb24ge1xuICBmb250LXNpemU6IDE2cHg7XG4gIGZvbnQtd2VpZ2h0OiAzMDA7XG4gIGxldHRlci1zcGFjaW5nOiAwO1xuICBsaW5lLWhlaWdodDogMjZweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyOyB9XG5cbi5rbWFfY29udGFudF9tZW1iZXJfX25hbWUge1xuICBmb250LXdlaWdodDogNjAwOyB9XG5cbi5rbWFfY29udGFjdC1mb3JtIHtcbiAgcGFkZGluZzogMCAycmVtOyB9XG4gIC5rbWFfY29udGFjdC1mb3JtIC5maWVsZC5lbWFpbCwgLmttYV9jb250YWN0LWZvcm0gLmZpZWxkLnRlbGVwaG9uZSwgLmttYV9jb250YWN0LWZvcm0gLmZpZWxkLmNvbW1lbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDFyZW07IH1cbiAgLmttYV9jb250YWN0LWZvcm0gLmZpZWxkLXJlY2FwdGNoYSB7XG4gICAgbWFyZ2luLXRvcDogMnJlbTsgfVxuICAua21hX2NvbnRhY3QtZm9ybSAuZmllbGQuY29tbWVudCB0ZXh0YXJlYSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMCAhaW1wb3J0YW50OyB9XG4gIC5rbWFfY29udGFjdC1mb3JtIC5maWVsZC5jb21tZW50IGRpdi5tYWdlLWVycm9yIHtcbiAgICBwYWRkaW5nLXRvcDogMDsgfVxuICAua21hX2NvbnRhY3QtZm9ybSAuZy1yZWNhcHRjaGEge1xuICAgIG1hcmdpbi1ib3R0b206IDRweDsgfVxuICAua21hX2NvbnRhY3QtZm9ybSAuZm9ybS5jb250YWN0IHtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBwYWRkaW5nOiA0MHB4IDUwcHg7IH1cbiAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgLmttYV9jb250YWN0LWZvcm0gLmZvcm0uY29udGFjdCB7XG4gICAgICAgIHBhZGRpbmc6IDJyZW07IH0gfVxuICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgIC5rbWFfY29udGFjdC1mb3JtIHtcbiAgICAgIHBhZGRpbmc6IDJyZW0gMDsgfSB9XG4gIC5rbWFfY29udGFjdC1mb3JtIGZpZWxkc2V0IHtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgcGFkZGluZzogMDsgfVxuICAgIC5rbWFfY29udGFjdC1mb3JtIGZpZWxkc2V0IGxlZ2VuZCB7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgZm9udC1zaXplOiAyNnB4OyB9XG4gICAgICBAbWVkaWEgKG1heC13aWR0aDogNDhlbSkge1xuICAgICAgICAua21hX2NvbnRhY3QtZm9ybSBmaWVsZHNldCBsZWdlbmQge1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IC0xcmVtO1xuICAgICAgICAgIGZvbnQtc2l6ZTogMThweDsgfSB9XG4gIC5rbWFfY29udGFjdC1mb3JtIC5hY3Rpb25zLXRvb2xiYXIgYnV0dG9uIHtcbiAgICBjb2xvcjogI2MxMjcyZjtcbiAgICBtaW4td2lkdGg6IDE0MHB4OyB9XG5cbmJvZHkuY21zLWtvbnRha3QgLmttYV9jb250YWN0LWZvcm0gLmFjdGlvbnMtdG9vbGJhciA+IC5wcmltYXJ5IHtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7IH1cblxuYm9keS5jbXMta29udGFrdCAua21hX2NvbnRhY3QtZm9ybSAuYWN0aW9ucy10b29sYmFyIC5rbWFfY29udGFudF9idXNpbmVzc19pbmZvX19idXR0b24ge1xuICBwYWRkaW5nOiAxMnB4IDM1cHggIWltcG9ydGFudDsgfVxuICBib2R5LmNtcy1rb250YWt0IC5rbWFfY29udGFjdC1mb3JtIC5hY3Rpb25zLXRvb2xiYXIgLmttYV9jb250YW50X2J1c2luZXNzX2luZm9fX2J1dHRvbjo6YmVmb3JlIHtcbiAgICBkaXNwbGF5OiBub25lOyB9XG4iLCIvKipcbiAqIEV4dHJhY3RzIG5lc3RlZCBrZXlzIGZyb20gZ2l2ZW4gbWFwLlxuICogRXhhbXBsZTogZGVlcC1nZXQoJHNvbWUtbWFwLCBzb21lLCBuZXN0ZWQsIGtleXMpO1xuICovXG5AZnVuY3Rpb24gZGVlcC1nZXQoJG1hcCwgJGtleXMuLi4pIHtcbiAgICBAZWFjaCAka2V5IGluICRrZXlzIHtcbiAgICAgICAgJG1hcDogbWFwLWdldCgkbWFwLCAka2V5KTtcbiAgICB9XG4gICAgQHJldHVybiAkbWFwO1xufVxuIiwiQGltcG9ydCBcImNvbmZpZy92YXJpYWJsZXNcIjtcbkBpbXBvcnQgXCJ2ZW5kb3JzL2luY2x1ZGUtbWVkaWFcIjtcbkBpbXBvcnQgXCJ1dGlscy9jb21wb25lbnQtc3BhY2luZ1wiO1xuXG4vKipcbiAqIEdhcCBiZXR3ZWVuIGNvbHVtbnMgKGFsbCBDU1MgdW5pdHMgYWxsb3dlZCkgW0V4YW1wbGU6IDEuNXJlbV1cbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL2NvbHVtbi1nYXBcbiAqL1xuJHBhcmFncmFwaF9jb2x1bW4tZ2FwOiA2cmVtICFkZWZhdWx0O1xuLyoqXG4gKiBAc2VlIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0NTUy9jb2x1bW4tcnVsZVxuICovXG4kcGFyYWdyYXBoX2NvbHVtbi1ydWxlOiAxcHggc29saWQgJGNvbG9yX2JvcmRlci01MDAgIWRlZmF1bHQ7XG5cbi5jbXMtby1uYXMsXG4uY21zLXNlcndpcyB7XG4gIC5jcy1jb250YWluZXIuY3MtY29udGFpbmVyLS1wYXJhZ3JhcGgge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3Jfd2hpdGU7XG4gIH1cbn1cblxuLiN7JG5zfXBhcmFncmFwaCB7XG4gIGNvbHVtbi1nYXA6ICRwYXJhZ3JhcGhfY29sdW1uLWdhcDtcbiAgY29sdW1uLXJ1bGU6ICRwYXJhZ3JhcGhfY29sdW1uLXJ1bGU7XG4gIEBpbmNsdWRlIGNvbXBvbmVudC1zcGFjaW5nKCk7XG5cbiAgaW1nIHtcbiAgICBoZWlnaHQ6IGF1dG87XG4gIH1cblxuICBAaW5jbHVkZSBtZWRpYShcIj49dGFibGV0XCIpIHtcbiAgICAmLS1jb2xzLTIsXG4gICAgJi0tY29scy0zLFxuICAgICYtLWNvbHMtNCB7XG4gICAgICBjb2x1bW4tY291bnQ6IDI7XG5cbiAgICAgIGxpIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICB9XG5cbiAgICAgIGltZyB7XG4gICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcFwiKSB7XG4gICAgJi0tY29scy0zLFxuICAgICYtLWNvbHMtNCB7XG4gICAgICBjb2x1bW4tY291bnQ6IDM7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEoXCI+PWxhcHRvcExnXCIpIHtcbiAgICAmLS1jb2xzLTQge1xuICAgICAgY29sdW1uLWNvdW50OiA0O1xuICAgIH1cbiAgfVxuXG4gICYtLW1vZGUtb3B0aW1hbCB7XG4gICAgbWF4LXdpZHRoOiA0MGVtO1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIG1hcmdpbi1yaWdodDogYXV0bztcbiAgICBjb2x1bW4tY291bnQ6IGluaXRpYWw7XG4gIH1cbn1cblxuLy9TdHlsZSBkbGEgc3Ryb255IGttYS1zZXJ3aXNcblxuLmttYV9zZXJ2aWNlX3RleHRfYW5kX2luZm8ge1xuICAmX193cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIG1hcmdpbi1ib3R0b206IDQwcHg7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8bGFwdG9wXCIpIHtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuICB9XG4gICZfX2luZm8td3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgfVxuICAmX19pbmZvLWljb24ge1xuICAgIHdpZHRoOiA2NnB4O1xuICAgIGhlaWdodDogNjZweDtcbiAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gIH1cbiAgJl9fdGV4dCB7XG4gICAgd2lkdGg6IDYwJTtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBsaW5lLWhlaWdodDogMjlweDtcbiAgICBwYWRkaW5nLXRvcDogMzBweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogNDBweDtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjxsYXB0b3BcIikge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgfVxuICAgICYtLWJvbGQge1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB9XG4gIH1cbiAgJl9faW5mbyB7XG4gICAgd2lkdGg6IDQwJTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAka21hX2NvbG9yX2dyZXktMzAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBwYWRkaW5nOiA0MHB4IDIwcHg7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8bGFwdG9wXCIpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICAmLXRleHQtdGl0bGUge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB9XG4gICAgJi10ZXh0LXN1YnRpdGxlIHtcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgIHNwYW4ge1xuICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgICAgfVxuICAgIH1cbiAgICAmLWNvbnRhY3Qge1xuICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgcCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgIH1cbiAgICAgIGEge1xuICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmX2J1dHRvbiB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6ICRrbWFfY29sb3Jfd2hpdGUgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBsaW5lLWhlaWdodDogMjZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMTNweCA0NXB4O1xuICAgIG1heC13aWR0aDogMjg1cHg7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgIGJvcmRlci1yYWRpdXM6IDI3cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICBwYWRkaW5nLWlubGluZTogMTBweDtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICBjb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgICB9XG4gIH1cbn1cblxuLmttYV9zZXJ2aWNlX2NvbnRhY3Qge1xuICAmX193cmFwcGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfZ3JleS00MDA7XG4gICAgLy8gbWF4LWhlaWdodDogMzAzcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICB9XG4gICZfX2ltYWdlIHtcbiAgICB3aWR0aDogMzAlO1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBpbWcge1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgIH1cbiAgfVxuICAmX190ZXh0IHtcbiAgICB3aWR0aDogNzAlO1xuICAgIHBhZGRpbmc6IDQwcHggNjBweCA0MHB4IDQwcHg7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgICAmLWluZm8ge1xuICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICAgIGxpbmUtaGVpZ2h0OiAyOXB4O1xuICAgICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICB9XG4gIH1cbiAgJl9fdGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAzMnB4O1xuICB9XG4gICZfX21haWwtd3JhcHBlcixcbiAgJl9fcGhvbmUtd3JhcHBlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBpbWcge1xuICAgICAgd2lkdGg6IDI0cHg7XG4gICAgICBoZWlnaHQ6IGF1dG87XG4gICAgICBtYXJnaW4tcmlnaHQ6IDE2cHg7XG4gICAgfVxuICB9XG4gICZfX21haWwtd3JhcHBlciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBpbWcge1xuICAgICAgbWFyZ2luLXRvcDogN3B4O1xuICAgIH1cbiAgfVxuICAmX19tYWlsLXRleHQge1xuICAgIGEge1xuICAgICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBsaW5lLWhlaWdodDogMjlweDtcbiAgICB9XG4gIH1cbiAgJl9fcGhvbmUtdGV4dCB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyOXB4O1xuICAgIG1hcmdpbi1ib3R0b206IDZweDtcbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuICB9XG4gICZfX3Bob25lLWluZm8ge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxOHB4O1xuICB9XG4gICZfX2Rpc2NsYWltZXIge1xuICAgIG1heC13aWR0aDogOTcwcHg7XG4gICAgbWFyZ2luOiA0MHB4IGF1dG8gOTBweCBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogMzAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyOXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjw9cGhvbmVMZ1wiKSB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAyMHJlbTtcbiAgICB9XG4gIH1cbn1cblxuLy9zdHJvbmEga21hLW8tbmFzXG4uY21zLW8tbmFzIHtcbiAgLmNzLWNvbnRhaW5lci5jcy1jb250YWluZXItLXBhcmFncmFwaCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgfVxuICAuI3skbnN9cGFyYWdyYXBoIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBsaW5lLWhlaWdodDogMjlweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgbWF4LXdpZHRoOiA5MjBweDtcbiAgICBtYXJnaW46IDAgYXV0byAzNXB4IGF1dG87XG4gIH1cbn1cblxuLy9TdHlsZSBkbGEgc3Ryb255IGttYS1rb250YWt0XG4uY21zLWtvbnRha3Qge1xuICAuY3MtY29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuICB9XG4gIC5jb2x1bW4ubWFpbiB7XG4gICAgLmNzLWNvbnRhaW5lci0tcGFyYWdyYXBoOm50aC1vZi10eXBlKDMpIHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfZ3JleS0xMDA7XG4gICAgICBtYXJnaW4tYm90dG9tOiA4MHB4O1xuICAgICAgbWFyZ2luLXRvcDogLTQwcHg7XG4gICAgICBwYWRkaW5nLXRvcDogNDBweDtcbiAgICAgIHBhZGRpbmctYm90dG9tOiA0MHB4O1xuICAgIH1cbiAgICAmID4gZGl2OmVtcHR5IHtcbiAgICAgIG1hcmdpbi1ib3R0b206IC0xMnJlbTtcbiAgICAgIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuLmttYV9jb250YWN0IHtcbiAgJl9faW5mbyB7XG4gICAgLmNzLWltYWdlLXRlYXNlciB7XG4gICAgICAmX19kZXNjcmlwdGlvbiB7XG4gICAgICAgIHNwYW4ge1xuICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyM3B4O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5rbWFfY29udGFudF9jb21wYW55X2luZm8ge1xuICAmX193cmFwcGVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX2dyZXktNDAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG1hcmdpbi10b3A6IC02MHB4O1xuICAgICY6YWZ0ZXIge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9ncmV5LTQwMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgei1pbmRleDogMDtcbiAgICAgIHdpZHRoOiA5OTlweDtcbiAgICAgIHRvcDogMHB4O1xuICAgICAgcmlnaHQ6IC05OTlweDtcbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9ncmV5LTQwMDtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAxMDAlO1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgei1pbmRleDogMDtcbiAgICAgIHdpZHRoOiA5OTlweDtcbiAgICAgIHRvcDogMHB4O1xuICAgICAgbGVmdDogLTk5OXB4O1xuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYShcIjxsYXB0b3BcIikge1xuICAgICAgJjpiZWZvcmUge1xuICAgICAgICB3aWR0aDogMTVweDtcbiAgICAgICAgbGVmdDogLTE1cHg7XG4gICAgICB9XG4gICAgfVxuICB9XG4gICZfX2ltYWdlX3dyYXBwZXIge1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB3aWR0aDogNDAlO1xuICAgIG1pbi1oZWlnaHQ6IDc1MnB4O1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPGxhcHRvcFwiKSB7XG4gICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBkaXYge1xuICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgd2lkdGg6IDY4NXB4O1xuICAgICAgbGVmdDogLTIxNnB4O1xuICAgIH1cbiAgfVxuICAmX19jb250YWN0X3dyYXBwZXIge1xuICAgIHBhZGRpbmc6IDE2NXB4IDAgMTM1cHggMzBweDtcbiAgICB3aWR0aDogNjAlO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjxsYXB0b3BcIikge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nOiA1MHB4IDA7XG4gICAgfVxuICB9XG4gICZfX3RpdGxlIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICB9XG4gICZfX3N1YnRpdGxlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMjZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAzMnB4O1xuICB9XG4gICZfX2J1dHRvbnMge1xuICAgIG1hcmdpbi1ib3R0b206IDUwcHg7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8dGFibGV0XCIpIHtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIH1cbiAgfVxuICAmX19waG9uZV9mb3JtLFxuICAmX19mb3JtIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgcGFkZGluZzogMTNweCA0NnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICBib3JkZXItcmFkaXVzOiAyN3B4O1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAyNnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBhI3smfSB7XG4gICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgJl9fZm9ybSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgIG1hcmdpbi1yaWdodDogMzBweDtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBhI3smfSB7XG4gICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuICAgICAgICAmOmhvdmVyIHtcbiAgICAgICAgICBjb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBtZWRpYShcIjx0YWJsZXRcIikge1xuICAgICAgbWFyZ2luLXJpZ2h0OiAwO1xuICAgICAgbWFyZ2luLWJvdHRvbTogMzBweDtcbiAgICB9XG4gIH1cbiAgJl9fcGhvbmVzX3N1YnRpdGxlIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMjZweDtcbiAgICBwYWRkaW5nLWxlZnQ6IDM4cHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmctYm90dG9tOiAzOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDM4cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICRrbWFfY29sb3JfZ3JleS0zMDA7XG4gICAgYSB7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgICAgY29sb3I6ICRrbWFfY29sb3JfcmVkLTUwMDtcbiAgICAgICY6aG92ZXIge1xuICAgICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgICAgfVxuICAgIH1cbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL21haWxfYmxhY2suc3ZnXCIpO1xuICAgICAgd2lkdGg6IDIzcHg7XG4gICAgICBoZWlnaHQ6IDE4cHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAycHg7XG4gICAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuICAgICAgdG9wOiA0cHg7XG4gICAgfVxuICB9XG4gICZfX3Bob25lc19pdGVtX3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICB9XG4gICZfX3Bob25lX3BsX3dyYXBwZXIsXG4gICZfX3Bob25lX2VuX3dyYXBwZXIge1xuICAgIHdpZHRoOiA1MCU7XG4gIH1cbiAgJl9fcGhvbmVfcGxfd3JhcHBlciB7XG4gICAgcGFkZGluZy1sZWZ0OiAzOHB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAmOjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwiLi4vaW1hZ2VzL2ljb25zL2hlYWRwaG9uZXNfYmxhY2suc3ZnXCIpO1xuICAgICAgaGVpZ2h0OiAyM3B4O1xuICAgICAgd2lkdGg6IDIzcHg7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAwO1xuICAgICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgIHRvcDogM3B4O1xuICAgIH1cbiAgfVxuICAmX19mbGFncyB7XG4gICAgd2lkdGg6IDkwcHg7XG4gICAgaGVpZ2h0OiAyM3B4O1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9mbGFncy5wbmdcIik7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb250YWluO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgfVxuICAmX19waG9uZV9zdWJ0aXRsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMThweDtcbiAgfVxuICAmX19waG9uZV90ZXh0IHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgc3BhbiB7XG4gICAgICBmb250LXdlaWdodDogNjAwO1xuICAgIH1cbiAgfVxufVxuXG4ua21hX2NvbnRhbnRfYnVzaW5lc3NfaW5mbyB7XG4gICZfX3dyYXBwZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogNzBweDtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjxsYXB0b3BcIikge1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG4gIH1cbiAgJl9fYmFua19pbmZvX3dyYXBwZXIge1xuICAgIHdpZHRoOiA3MCU7XG4gICAgcGFkZGluZy1yaWdodDogMzBweDtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjxsYXB0b3BcIikge1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAwO1xuICAgIH1cbiAgfVxuICAmX19hZGRyZXNzX3dyYXBwZXIge1xuICAgIHdpZHRoOiAzMCU7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8bGFwdG9wXCIpIHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgIH1cbiAgfVxuICAmX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAyNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjVweDtcbiAgfVxuICAmX19hY291bnRfaW5mbyB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDI2cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBzcGFuIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgfVxuICB9XG4gICZfX2FkZHJlc3Mge1xuICAgIGZvbnQtd2VpZ2h0OiAzMDA7XG4gICAgcDpudGgtY2hpbGQobiArIDMpIHtcbiAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgfVxuICB9XG4gICZfX2NvbXBhbnlfbmFtZSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuICAmX19idXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgYm9yZGVyLXJhZGl1czogMjRweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAka21hX2NvbG9yX3doaXRlO1xuICAgIHBhZGRpbmc6IDEycHggMjRweCAxMnB4IDYwcHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDMwcHg7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBAYXQtcm9vdCB7XG4gICAgICBhI3smfSB7XG4gICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgICY6aG92ZXIge1xuICAgICAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAyNXB4O1xuICAgICAgd2lkdGg6IDMwcHg7XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvZG9qYXpkLnN2Z1wiKTtcbiAgICAgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjtcbiAgICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICBsZWZ0OiAyMHB4O1xuICAgIH1cbiAgfVxufVxuXG4ua21hX2NvbnRhbnRfZGVwYXJ0bWVudCB7XG4gICZfX2hlYWRlcl90aXRsZSB7XG4gICAgZm9udC1zaXplOiAyNnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIG1hcmdpbi10b3A6IDcwcHg7XG4gIH1cbiAgJl9faGVhZGVyX3N1YnRpdGxlIHtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMjlweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgYSB7XG4gICAgICBjb2xvcjogJGttYV9jb2xvcl9yZWQtNTAwO1xuICAgIH1cbiAgfVxuICAmX190aXRsZSB7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IDQwcHg7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nLXRvcDogMzNweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMTdweDtcbiAgICAmOmJlZm9yZSB7XG4gICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICBoZWlnaHQ6IDI1MHB4O1xuICAgICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl9ncmV5LTEwMDtcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgIHotaW5kZXg6IC0xO1xuICAgICAgd2lkdGg6IDk5OTlweDtcbiAgICAgIGxlZnQ6IC05MDBweDtcbiAgICAgIHRvcDogMDtcbiAgICB9XG4gIH1cbiAgJl9fbWVtYmVyc193cmFwcGVyIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIHBhZGRpbmctYm90dG9tOiAyMHB4O1xuICAgIEBpbmNsdWRlIG1lZGlhKFwiPGxhcHRvcFwiKSB7XG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgfVxuICB9XG59XG4ua21hX2NvbnRhbnRfbWVtYmVyIHtcbiAgJl9fd3JhcHBlciB7XG4gICAgd2lkdGg6IDI1JTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBAaW5jbHVkZSBtZWRpYShcIjxsYXB0b3BcIikge1xuICAgICAgd2lkdGg6IDUwJTtcbiAgICAgICY6bnRoLWNoaWxkKG4gKyAzKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhKFwiPHRhYmxldFwiKSB7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgICY6bnRoLWNoaWxkKG4gKyAyKSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDIwcHg7XG4gICAgICB9XG4gICAgfVxuICAgIFtkYXRhLXRvb2x0aXBdLFxuICAgIC5rbWFfY29udGFudF9tZW1iZXJfdG9vbHRpcCB7XG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgICAmID4gaW1nIHtcbiAgICAgICAgbWF4LXdpZHRoOiB1bnNldDtcbiAgICAgICAgbGVmdDogNTAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHotaW5kZXg6IDEwMDAxO1xuICAgICAgfVxuICAgICAgJjpiZWZvcmUsXG4gICAgICAmOmFmdGVyLFxuICAgICAgJiA+IGltZyB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdmlzaWJpbGl0eTogaGlkZGVuO1xuICAgICAgICB0cmFuc2l0aW9uOlxuICAgICAgICAgIG9wYWNpdHkgMC4ycyBlYXNlLWluLW91dCxcbiAgICAgICAgICB2aXNpYmlsaXR5IDAuMnMgZWFzZS1pbi1vdXQsXG4gICAgICAgICAgdHJhbnNmb3JtIDAuMnMgY3ViaWMtYmV6aWVyKDAuNzEsIDEuNywgMC43NywgMS4yNCk7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlM2QoLTUwJSwgMCwgMCk7XG4gICAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgICBib3R0b206IDEwMCU7XG4gICAgICAgIGxlZnQ6IDUwJTtcbiAgICAgIH1cbiAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgei1pbmRleDogMTAwMTtcbiAgICAgICAgYm9yZGVyOiA2cHggc29saWQgdHJhbnNwYXJlbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgICAgICBjb250ZW50OiBcIlwiO1xuICAgICAgICBtYXJnaW4tbGVmdDogMDtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTEycHg7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6ICRrbWFfY29sb3JfYmxhY2s7XG4gICAgICAgIGJvcmRlci10b3AtY29sb3I6IGhzbGEoMCwgMCUsIDIwJSwgMC45KTtcbiAgICAgICAgbGVmdDogNTAlO1xuICAgICAgfVxuICAgICAgJjphZnRlciB7XG4gICAgICAgIHotaW5kZXg6IDEwMDA7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfYmxhY2s7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IGhzbGEoMCwgMCUsIDIwJSwgMC45KTtcbiAgICAgICAgY29sb3I6ICRrbWFfY29sb3Jfd2hpdGU7XG4gICAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS10b29sdGlwKTtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDEuMjtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBwYWRkaW5nOiA2cHggMTBweDtcbiAgICAgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICAgICAgbGVmdDogY2FsYyg1MCUgLSAxMHB4KTtcbiAgICAgIH1cbiAgICAgICY6aG92ZXI6YmVmb3JlLFxuICAgICAgJjpob3ZlcjphZnRlcixcbiAgICAgICY6aG92ZXIgPiBpbWcsXG4gICAgICAmOmZvY3VzID4gaW1nLFxuICAgICAgJjpmb2N1czpiZWZvcmUsXG4gICAgICAmOmZvY3VzOmFmdGVyIHtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMnB4KSB0cmFuc2xhdGVYKC01MCUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAmX19jb250YWN0X2RldGFpbHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIH1cbiAgJl9fcGhvbmUsXG4gICZfX21haWwge1xuICAgIGhlaWdodDogMjNweDtcbiAgICB3aWR0aDogMjNweDtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoXCIuLi9pbWFnZXMvaWNvbnMvbWFpbF9jb250YWN0LnN2Z1wiKTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgbGluZS1oZWlnaHQ6IDA7XG4gICAgZm9udC1zaXplOiAwO1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbiAgfVxuICAmX19waG9uZSB7XG4gICAgbWFyZ2luLXJpZ2h0OiA0MHB4O1xuICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChcIi4uL2ltYWdlcy9pY29ucy9jYWxsLnN2Z1wiKTtcbiAgfVxuICAmX19pbWFnZSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgJjpiZWZvcmUge1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgaGVpZ2h0OiAyNTBweDtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICRrbWFfY29sb3JfZ3JleS0xMDA7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB6LWluZGV4OiAtMTtcbiAgICAgIHdpZHRoOiA5OTk5cHg7XG4gICAgICBsZWZ0OiAtOTAwcHg7XG4gICAgICB0b3A6IDA7XG4gICAgfVxuICAgIGltZyB7XG4gICAgICBoZWlnaHQ6IDI1MHB4O1xuICAgICAgd2lkdGg6IGF1dG87XG4gICAgfVxuICB9XG4gICZfX25hbWUsXG4gICZfX3Bvc2l0aW9uIHtcbiAgICBmb250LXNpemU6IDE2cHg7XG4gICAgZm9udC13ZWlnaHQ6IDMwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMDtcbiAgICBsaW5lLWhlaWdodDogMjZweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIH1cbiAgJl9fbmFtZSB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxufVxuXG4vLyBGb3JtdWxhcnoga29udGFrdG93eSAtIHN0cm9uYSBrb250YWt0XG5cbi5rbWFfY29udGFjdC1mb3JtIHtcbiAgLmZpZWxkIHtcbiAgICAmLmVtYWlsLFxuICAgICYudGVsZXBob25lLFxuICAgICYuY29tbWVudCB7XG4gICAgICBtYXJnaW4tYm90dG9tOiAxcmVtO1xuICAgIH1cbiAgICAmLXJlY2FwdGNoYSB7XG4gICAgICBtYXJnaW4tdG9wOiAycmVtO1xuICAgIH1cbiAgICAmLmNvbW1lbnQge1xuICAgICAgdGV4dGFyZWEge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgICBkaXYubWFnZS1lcnJvciB7XG4gICAgICAgIHBhZGRpbmctdG9wOiAwO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICAuZy1yZWNhcHRjaGEge1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgfVxuICAuZm9ybS5jb250YWN0IHtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJGttYV9jb2xvcl93aGl0ZTtcbiAgICBwYWRkaW5nOiA0MHB4IDUwcHg7XG4gICAgQGluY2x1ZGUgbWVkaWEoXCI8PXRhYmxldFwiKSB7XG4gICAgICBwYWRkaW5nOiAycmVtO1xuICAgIH1cbiAgfVxuICBwYWRkaW5nOiAwIDJyZW07XG4gIEBpbmNsdWRlIG1lZGlhKFwiPD10YWJsZXRcIikge1xuICAgIHBhZGRpbmc6IDJyZW0gMDtcbiAgfVxuICBmaWVsZHNldCB7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGVnZW5kIHtcbiAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgICBmb250LXNpemU6IDI2cHg7XG4gICAgICBAaW5jbHVkZSBtZWRpYShcIjw9dGFibGV0XCIpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogLTFyZW07XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgLmFjdGlvbnMtdG9vbGJhciB7XG4gICAgYnV0dG9uIHtcbiAgICAgIGNvbG9yOiAka21hX2NvbG9yX3JlZC01MDA7XG4gICAgICBtaW4td2lkdGg6IDE0MHB4O1xuICAgIH1cbiAgfVxufVxuXG5ib2R5LmNtcy1rb250YWt0IHtcbiAgLmttYV9jb250YWN0LWZvcm0ge1xuICAgIC5hY3Rpb25zLXRvb2xiYXIge1xuICAgICAgJiA+IC5wcmltYXJ5IHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICB9XG4gICAgICAua21hX2NvbnRhbnRfYnVzaW5lc3NfaW5mb19fYnV0dG9uIHtcbiAgICAgICAgcGFkZGluZzogMTJweCAzNXB4ICFpbXBvcnRhbnQ7XG4gICAgICAgICY6OmJlZm9yZSB7XG4gICAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCAnY29uZmlnL3ZhcmlhYmxlcyc7XG5AaW1wb3J0ICdjb25maWcvYnJlYWtwb2ludHMnO1xuQGltcG9ydCAndmVuZG9ycy9pbmNsdWRlLW1lZGlhJztcblxuQG1peGluIGNvbXBvbmVudC1zcGFjaW5nKCRtYXJnaW5zLWNvbmZpZzogJGNvbXBvbmVudC1zcGFjaW5nLWNvbmZpZ3VyYXRpb24pIHtcbiAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcmdpbnMtY29uZmlnLCBkZWZhdWx0KSB7XG4gICAgICAgIG1hcmdpbjogbWFwLWdldCgkbWFyZ2lucy1jb25maWcsIGRlZmF1bHQpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBEZWZhdWx0IGNvbXBvbmVudCBtYXJnaW4gdmFsdWVcbiAgICAgICAgbWFyZ2luOiAwIDAgM3JlbTtcbiAgICB9XG5cbiAgICBAaWYgbWFwLWhhcy1rZXkoJG1hcmdpbnMtY29uZmlnLCByZXNwb25zaXZlKSB7XG4gICAgICAgIC8vIEFkZGluZyBtYXJnaW4gcnVsZXMgZm9yIGVhY2ggcGFzc2VkIGJyZWFrcG9pbnRcbiAgICAgICAgQGVhY2ggJGJyZWFrcG9pbnQsICRtYXJnaW4gaW4gbWFwLWdldCgkbWFyZ2lucy1jb25maWcsIHJlc3BvbnNpdmUpIHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhKCN7JGJyZWFrcG9pbnR9KSB7XG4gICAgICAgICAgICAgICAgbWFyZ2luOiAkbWFyZ2luO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgJi0tc2tpcC1zcGFjaW5nIHtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbn1cbiIsIkBjaGFyc2V0IFwiVVRGLThcIjtcblxuLy8gICAgIF8gICAgICAgICAgICBfICAgICAgICAgICBfICAgICAgICAgICAgICAgICAgICAgICAgICAgXyBfXG4vLyAgICAoXykgICAgICAgICAgfCB8ICAgICAgICAgfCB8ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF8pXG4vLyAgICAgXyBfIF9fICAgX19ffCB8XyAgIF8gIF9ffCB8IF9fXyAgIF8gX18gX19fICAgX19fICBfX3wgfF8gIF9fIF9cbi8vICAgIHwgfCAnXyBcXCAvIF9ffCB8IHwgfCB8LyBfYCB8LyBfIFxcIHwgJ18gYCBfIFxcIC8gXyBcXC8gX2AgfCB8LyBfYCB8XG4vLyAgICB8IHwgfCB8IHwgKF9ffCB8IHxffCB8IChffCB8ICBfXy8gfCB8IHwgfCB8IHwgIF9fLyAoX3wgfCB8IChffCB8XG4vLyAgICB8X3xffCB8X3xcXF9fX3xffFxcX18sX3xcXF9fLF98XFxfX198IHxffCB8X3wgfF98XFxfX198XFxfXyxffF98XFxfXyxffFxuLy9cbi8vICAgICAgU2ltcGxlLCBlbGVnYW50IGFuZCBtYWludGFpbmFibGUgbWVkaWEgcXVlcmllcyBpbiBTYXNzXG4vLyAgICAgICAgICAgICAgICAgICAgICAgIHYxLjQuOVxuLy9cbi8vICAgICAgICBodHRwczovL2VkdWFyZG9ib3VjYXMuZ2l0aHViLmlvL2luY2x1ZGUtbWVkaWFcbi8vXG4vLyAgICAgICAgIEF1dGhvcnM6IEVkdWFyZG8gQm91Y2FzIChAZWR1YXJkb2JvdWNhcylcbi8vICAgICAgICAgICAgICAgICAgS2l0dHkgR2lyYXVkZWwgKEBraXR0eWdpcmF1ZGVsKVxuLy9cbi8vICAgICAgVGhpcyBwcm9qZWN0IGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTUlUIGxpY2Vuc2Vcbi8vLy9cbi8vLyBpbmNsdWRlLW1lZGlhIGxpYnJhcnkgcHVibGljIGNvbmZpZ3VyYXRpb25cbi8vLyBAYXV0aG9yIEVkdWFyZG8gQm91Y2FzXG4vLy8gQGFjY2VzcyBwdWJsaWNcbi8vLy9cblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBnbG9iYWwgYnJlYWtwb2ludHNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIGJyZWFrcG9pbnQgd2l0aCB0aGUgbGFiZWwgYHBob25lYFxuLy8vICAkYnJlYWtwb2ludHM6ICgncGhvbmUnOiAzMjBweCk7XG4vLy9cbiRicmVha3BvaW50czogKFxuICAncGhvbmUnOiAzMjBweCxcbiAgJ3RhYmxldCc6IDc2OHB4LFxuICAnZGVza3RvcCc6IDEwMjRweFxuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBDcmVhdGVzIGEgbGlzdCBvZiBzdGF0aWMgZXhwcmVzc2lvbnMgb3IgbWVkaWEgdHlwZXNcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc2luZ2xlIG1lZGlhIHR5cGUgKHNjcmVlbilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbic6ICdzY3JlZW4nKTtcbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBDcmVhdGVzIGEgc3RhdGljIGV4cHJlc3Npb24gd2l0aCBsb2dpY2FsIGRpc2p1bmN0aW9uIChPUiBvcGVyYXRvcilcbi8vLyAgJG1lZGlhLWV4cHJlc3Npb25zOiAoXG4vLy8gICAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSknXG4vLy8gICk7XG4vLy9cbiRtZWRpYS1leHByZXNzaW9uczogKFxuICAnc2NyZWVuJzogJ3NjcmVlbicsXG4gICdwcmludCc6ICdwcmludCcsXG4gICdoYW5kaGVsZCc6ICdoYW5kaGVsZCcsXG4gICdsYW5kc2NhcGUnOiAnKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpJyxcbiAgJ3BvcnRyYWl0JzogJyhvcmllbnRhdGlvbjogcG9ydHJhaXQpJyxcbiAgJ3JldGluYTJ4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDIpLCAobWluLXJlc29sdXRpb246IDE5MmRwaSksIChtaW4tcmVzb2x1dGlvbjogMmRwcHgpJyxcbiAgJ3JldGluYTN4JzogJygtd2Via2l0LW1pbi1kZXZpY2UtcGl4ZWwtcmF0aW86IDMpLCAobWluLXJlc29sdXRpb246IDM1MGRwaSksIChtaW4tcmVzb2x1dGlvbjogM2RwcHgpJ1xuKSAhZGVmYXVsdDtcblxuXG4vLy9cbi8vLyBEZWZpbmVzIGEgbnVtYmVyIHRvIGJlIGFkZGVkIG9yIHN1YnRyYWN0ZWQgZnJvbSBlYWNoIHVuaXQgd2hlbiBkZWNsYXJpbmcgYnJlYWtwb2ludHMgd2l0aCBleGNsdXNpdmUgaW50ZXJ2YWxzXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHBpeGVscyBpcyBkZWZpbmVkIGFzIGAxYCBieSBkZWZhdWx0XG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+MTI4cHgnKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDEyOXB4KSB7fVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEludGVydmFsIGZvciBlbXMgaXMgZGVmaW5lZCBhcyBgMC4wMWAgYnkgZGVmYXVsdFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIwZW0nKSB7fVxuLy8vXG4vLy8gIC8qIEdlbmVyYXRlczogKi9cbi8vLyAgQG1lZGlhIChtaW4td2lkdGg6IDIwLjAxZW0pIHt9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gSW50ZXJ2YWwgZm9yIHJlbXMgaXMgZGVmaW5lZCBhcyBgMC4xYCBieSBkZWZhdWx0LCB0byBiZSB1c2VkIHdpdGggYGZvbnQtc2l6ZTogNjIuNSU7YFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPjIuMHJlbScpIHt9XG4vLy9cbi8vLyAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICBAbWVkaWEgKG1pbi13aWR0aDogMi4xcmVtKSB7fVxuLy8vXG4kdW5pdC1pbnRlcnZhbHM6IChcbiAgJ3B4JzogMSxcbiAgJ2VtJzogMC4wMSxcbiAgJ3JlbSc6IDAuMSxcbiAgJyc6IDBcbikgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIERlZmluZXMgd2hldGhlciBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzIGlzIGF2YWlsYWJsZSwgdXNlZnVsIGZvciBjcmVhdGluZyBzZXBhcmF0ZSBzdHlsZXNoZWV0c1xuLy8vIGZvciBicm93c2VycyB0aGF0IGRvbid0IHN1cHBvcnQgbWVkaWEgcXVlcmllcy5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBEaXNhYmxlcyBzdXBwb3J0IGZvciBtZWRpYSBxdWVyaWVzXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuJGltLW1lZGlhLXN1cHBvcnQ6IHRydWUgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggYnJlYWtwb2ludCB0byBlbXVsYXRlIHdoZW4gc3VwcG9ydCBmb3IgbWVkaWEgcXVlcmllcyBpcyBkaXNhYmxlZC4gTWVkaWEgcXVlcmllcyB0aGF0IHN0YXJ0IGF0IG9yXG4vLy8gaW50ZXJjZXB0IHRoZSBicmVha3BvaW50IHdpbGwgYmUgZGlzcGxheWVkLCBhbnkgb3RoZXJzIHdpbGwgYmUgaWdub3JlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBHZW5lcmF0ZXM6ICovXG4vLy8gIC5mb28ge1xuLy8vICAgIGNvbG9yOiB0b21hdG87XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgTk9UIHNob3cgYmVjYXVzZSBpdCBkb2VzIG5vdCBpbnRlcmNlcHQgdGhlIGRlc2t0b3AgYnJlYWtwb2ludFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAndGFibGV0Jztcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49ZGVza3RvcCcpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyAgLyogTm8gb3V0cHV0ICovXG4vLy9cbiRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCcgIWRlZmF1bHQ7XG5cbi8vL1xuLy8vIFNlbGVjdHMgd2hpY2ggbWVkaWEgZXhwcmVzc2lvbnMgYXJlIGFsbG93ZWQgaW4gYW4gZXhwcmVzc2lvbiBmb3IgaXQgdG8gYmUgdXNlZCB3aGVuIG1lZGlhIHF1ZXJpZXNcbi8vLyBhcmUgbm90IHN1cHBvcnRlZC5cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBUaGlzIG1lZGlhIHF1ZXJ5IHdpbGwgc2hvdyBiZWNhdXNlIGl0IGludGVyY2VwdHMgdGhlIHN0YXRpYyBicmVha3BvaW50IGFuZCBjb250YWlucyBvbmx5IGFjY2VwdGVkIG1lZGlhIGV4cHJlc3Npb25zXG4vLy8gICRpbS1tZWRpYS1zdXBwb3J0OiBmYWxzZTtcbi8vLyAgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQ6ICdkZXNrdG9wJztcbi8vLyAgJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicpO1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj10YWJsZXQnLCAnc2NyZWVuJykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAgLyogR2VuZXJhdGVzOiAqL1xuLy8vICAgLmZvbyB7XG4vLy8gICAgIGNvbG9yOiB0b21hdG87XG4vLy8gICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gVGhpcyBtZWRpYSBxdWVyeSB3aWxsIE5PVCBzaG93IGJlY2F1c2UgaXQgaW50ZXJjZXB0cyB0aGUgc3RhdGljIGJyZWFrcG9pbnQgYnV0IGNvbnRhaW5zIGEgbWVkaWEgZXhwcmVzc2lvbiB0aGF0IGlzIG5vdCBhY2NlcHRlZFxuLy8vICAkaW0tbWVkaWEtc3VwcG9ydDogZmFsc2U7XG4vLy8gICRpbS1uby1tZWRpYS1icmVha3BvaW50OiAnZGVza3RvcCc7XG4vLy8gICRpbS1uby1tZWRpYS1leHByZXNzaW9uczogKCdzY3JlZW4nKTtcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49dGFibGV0JywgJ3JldGluYTJ4Jykge1xuLy8vICAgIC5mb28ge1xuLy8vICAgICAgY29sb3I6IHRvbWF0bztcbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vICAvKiBObyBvdXRwdXQgKi9cbi8vL1xuJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zOiAoJ3NjcmVlbicsICdwb3J0cmFpdCcsICdsYW5kc2NhcGUnKSAhZGVmYXVsdDtcblxuLy8vL1xuLy8vIENyb3NzLWVuZ2luZSBsb2dnaW5nIGVuZ2luZVxuLy8vIEBhdXRob3IgS2l0dHkgR2lyYXVkZWxcbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vLy9cblxuXG4vLy9cbi8vLyBMb2cgYSBtZXNzYWdlIGVpdGhlciB3aXRoIGBAZXJyb3JgIGlmIHN1cHBvcnRlZFxuLy8vIGVsc2Ugd2l0aCBgQHdhcm5gLCB1c2luZyBgZmVhdHVyZS1leGlzdHMoJ2F0LWVycm9yJylgXG4vLy8gdG8gZGV0ZWN0IHN1cHBvcnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AZnVuY3Rpb24gaW0tbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBmZWF0dXJlLWV4aXN0cygnYXQtZXJyb3InKSB7XG4gICAgQGVycm9yICRtZXNzYWdlO1xuICB9IEBlbHNlIHtcbiAgICBAd2FybiAkbWVzc2FnZTtcbiAgICAkXzogbm9vcCgpO1xuICB9XG5cbiAgQHJldHVybiAkbWVzc2FnZTtcbn1cblxuXG4vLy9cbi8vLyBXcmFwcGVyIG1peGluIGZvciB0aGUgbG9nIGZ1bmN0aW9uIHNvIGl0IGNhbiBiZSB1c2VkIHdpdGggYSBtb3JlIGZyaWVuZGx5XG4vLy8gQVBJIHRoYW4gYEBpZiBpbS1sb2coJy4uJykge31gIG9yIGAkXzogaW0tbG9nKCcuLicpYC4gQmFzaWNhbGx5LCB1c2UgdGhlIGZ1bmN0aW9uXG4vLy8gd2l0aGluIGZ1bmN0aW9ucyBiZWNhdXNlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW4gYSBmdW5jdGlvblxuLy8vIGFuZCB1c2UgdGhlIG1peGluIGV2ZXJ5d2hlcmUgZWxzZSBiZWNhdXNlIGl0J3MgbXVjaCBtb3JlIGVsZWdhbnQuXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG1lc3NhZ2UgLSBNZXNzYWdlIHRvIGxvZ1xuLy8vXG5AbWl4aW4gbG9nKCRtZXNzYWdlKSB7XG4gIEBpZiBpbS1sb2coJG1lc3NhZ2UpIHt9XG59XG5cblxuLy8vXG4vLy8gRnVuY3Rpb24gd2l0aCBubyBgQHJldHVybmAgY2FsbGVkIG5leHQgdG8gYEB3YXJuYCBpbiBTYXNzIDMuM1xuLy8vIHRvIHRyaWdnZXIgYSBjb21waWxpbmcgZXJyb3IgYW5kIHN0b3AgdGhlIHByb2Nlc3MuXG4vLy9cbkBmdW5jdGlvbiBub29wKCkge31cblxuLy8vXG4vLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgbGlzdCBvZiBjb25kaXRpb25zIGlzIGludGVyY2VwdGVkIGJ5IHRoZSBzdGF0aWMgYnJlYWtwb2ludC5cbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAcmV0dXJuIHtCb29sZWFufSAtIFJldHVybnMgdHJ1ZSBpZiB0aGUgY29uZGl0aW9ucyBhcmUgaW50ZXJjZXB0ZWQgYnkgdGhlIHN0YXRpYyBicmVha3BvaW50XG4vLy9cbkBmdW5jdGlvbiBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSB7XG4gICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlOiBtYXAtZ2V0KCRicmVha3BvaW50cywgJGltLW5vLW1lZGlhLWJyZWFrcG9pbnQpO1xuXG4gIEBpZiBub3QgJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUge1xuICAgIEBpZiBpbS1sb2coJ2AjeyRpbS1uby1tZWRpYS1icmVha3BvaW50fWAgaXMgbm90IGEgdmFsaWQgYnJlYWtwb2ludC4nKSB7fVxuICB9XG5cbiAgQGVhY2ggJGNvbmRpdGlvbiBpbiAkY29uZGl0aW9ucyB7XG4gICAgQGlmIG5vdCBtYXAtaGFzLWtleSgkbWVkaWEtZXhwcmVzc2lvbnMsICRjb25kaXRpb24pIHtcbiAgICAgICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGNvbmRpdGlvbik7XG4gICAgICAkcHJlZml4OiBnZXQtZXhwcmVzc2lvbi1wcmVmaXgoJG9wZXJhdG9yKTtcbiAgICAgICR2YWx1ZTogZ2V0LWV4cHJlc3Npb24tdmFsdWUoJGNvbmRpdGlvbiwgJG9wZXJhdG9yKTtcblxuICAgICAgQGlmICgkcHJlZml4ID09ICdtYXgnIGFuZCAkdmFsdWUgPD0gJG5vLW1lZGlhLWJyZWFrcG9pbnQtdmFsdWUpIG9yXG4gICAgICAgICAgKCRwcmVmaXggPT0gJ21pbicgYW5kICR2YWx1ZSA+ICRuby1tZWRpYS1icmVha3BvaW50LXZhbHVlKSB7XG4gICAgICAgIEByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiBub3QgaW5kZXgoJGltLW5vLW1lZGlhLWV4cHJlc3Npb25zLCAkY29uZGl0aW9uKSB7XG4gICAgICBAcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIEByZXR1cm4gdHJ1ZTtcbn1cblxuLy8vL1xuLy8vIFBhcnNpbmcgZW5naW5lXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIEdldCBvcGVyYXRvciBvZiBhbiBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIGV4dHJhY3Qgb3BlcmF0b3IgZnJvbVxuLy8vXG4vLy8gQHJldHVybiB7U3RyaW5nfSAtIEFueSBvZiBgPj1gLCBgPmAsIGA8PWAsIGA8YCwgYOKJpWAsIGDiiaRgXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi1vcGVyYXRvcigkZXhwcmVzc2lvbikge1xuICBAZWFjaCAkb3BlcmF0b3IgaW4gKCc+PScsICc+JywgJzw9JywgJzwnLCAn4omlJywgJ+KJpCcpIHtcbiAgICBAaWYgc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgICAgIEByZXR1cm4gJG9wZXJhdG9yO1xuICAgIH1cbiAgfVxuXG4gIC8vIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBpbmNsdWRlIGEgbWl4aW4gaW5zaWRlIGEgZnVuY3Rpb24sIHNvIHdlIGhhdmUgdG9cbiAgLy8gcmVseSBvbiB0aGUgYGltLWxvZyguLilgIGZ1bmN0aW9uIHJhdGhlciB0aGFuIHRoZSBgbG9nKC4uKWAgbWl4aW4uIEJlY2F1c2VcbiAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gIC8vIGEgZHVtbXkgdmFyaWFibGUsIHN1Y2ggYXMgYCRfYC4gSWYgYW55Ym9keSBldmVyIHJhaXNlIGEgc2NvcGluZyBpc3N1ZSB3aXRoXG4gIC8vIFNhc3MgMy4zLCBjaGFuZ2UgdGhpcyBsaW5lIGluIGBAaWYgaW0tbG9nKC4uKSB7fWAgaW5zdGVhZC5cbiAgJF86IGltLWxvZygnTm8gb3BlcmF0b3IgZm91bmQgaW4gYCN7JGV4cHJlc3Npb259YC4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgZGltZW5zaW9uIG9mIGFuIGV4cHJlc3Npb24sIGJhc2VkIG9uIGEgZm91bmQgb3BlcmF0b3Jcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nfSAkZXhwcmVzc2lvbiAtIEV4cHJlc3Npb24gdG8gZXh0cmFjdCBkaW1lbnNpb24gZnJvbVxuLy8vIEBwYXJhbSB7U3RyaW5nfSAkb3BlcmF0b3IgLSBPcGVyYXRvciBmcm9tIGAkZXhwcmVzc2lvbmBcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgd2lkdGhgIG9yIGBoZWlnaHRgIChvciBwb3RlbnRpYWxseSBhbnl0aGluZyBlbHNlKVxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tZGltZW5zaW9uKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpIHtcbiAgJG9wZXJhdG9yLWluZGV4OiBzdHItaW5kZXgoJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwYXJzZWQtZGltZW5zaW9uOiBzdHItc2xpY2UoJGV4cHJlc3Npb24sIDAsICRvcGVyYXRvci1pbmRleCAtIDEpO1xuICAkZGltZW5zaW9uOiAnd2lkdGgnO1xuXG4gIEBpZiBzdHItbGVuZ3RoKCRwYXJzZWQtZGltZW5zaW9uKSA+IDAge1xuICAgICRkaW1lbnNpb246ICRwYXJzZWQtZGltZW5zaW9uO1xuICB9XG5cbiAgQHJldHVybiAkZGltZW5zaW9uO1xufVxuXG5cbi8vL1xuLy8vIEdldCBkaW1lbnNpb24gcHJlZml4IGJhc2VkIG9uIGFuIG9wZXJhdG9yXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3Jcbi8vL1xuLy8vIEByZXR1cm4ge1N0cmluZ30gLSBgbWluYCBvciBgbWF4YFxuLy8vXG5AZnVuY3Rpb24gZ2V0LWV4cHJlc3Npb24tcHJlZml4KCRvcGVyYXRvcikge1xuICBAcmV0dXJuIGlmKGluZGV4KCgnPCcsICc8PScsICfiiaQnKSwgJG9wZXJhdG9yKSwgJ21heCcsICdtaW4nKTtcbn1cblxuXG4vLy9cbi8vLyBHZXQgdmFsdWUgb2YgYW4gZXhwcmVzc2lvbiwgYmFzZWQgb24gYSBmb3VuZCBvcGVyYXRvclxuLy8vXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICRleHByZXNzaW9uIC0gRXhwcmVzc2lvbiB0byBleHRyYWN0IHZhbHVlIGZyb21cbi8vLyBAcGFyYW0ge1N0cmluZ30gJG9wZXJhdG9yIC0gT3BlcmF0b3IgZnJvbSBgJGV4cHJlc3Npb25gXG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gQSBudW1lcmljIHZhbHVlXG4vLy9cbkBmdW5jdGlvbiBnZXQtZXhwcmVzc2lvbi12YWx1ZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yKSB7XG4gICRvcGVyYXRvci1pbmRleDogc3RyLWluZGV4KCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuICAkdmFsdWU6IHN0ci1zbGljZSgkZXhwcmVzc2lvbiwgJG9wZXJhdG9yLWluZGV4ICsgc3RyLWxlbmd0aCgkb3BlcmF0b3IpKTtcblxuICBAaWYgbWFwLWhhcy1rZXkoJGJyZWFrcG9pbnRzLCAkdmFsdWUpIHtcbiAgICAkdmFsdWU6IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkdmFsdWUpO1xuICB9IEBlbHNlIHtcbiAgICAkdmFsdWU6IHRvLW51bWJlcigkdmFsdWUpO1xuICB9XG5cbiAgJGludGVydmFsOiBtYXAtZ2V0KCR1bml0LWludGVydmFscywgdW5pdCgkdmFsdWUpKTtcblxuICBAaWYgbm90ICRpbnRlcnZhbCB7XG4gICAgLy8gSXQgaXMgbm90IHBvc3NpYmxlIHRvIGluY2x1ZGUgYSBtaXhpbiBpbnNpZGUgYSBmdW5jdGlvbiwgc28gd2UgaGF2ZSB0b1xuICAgIC8vIHJlbHkgb24gdGhlIGBpbS1sb2coLi4pYCBmdW5jdGlvbiByYXRoZXIgdGhhbiB0aGUgYGxvZyguLilgIG1peGluLiBCZWNhdXNlXG4gICAgLy8gZnVuY3Rpb25zIGNhbm5vdCBiZSBjYWxsZWQgYW55d2hlcmUgaW4gU2Fzcywgd2UgbmVlZCB0byBoYWNrIHRoZSBjYWxsIGluXG4gICAgLy8gYSBkdW1teSB2YXJpYWJsZSwgc3VjaCBhcyBgJF9gLiBJZiBhbnlib2R5IGV2ZXIgcmFpc2UgYSBzY29waW5nIGlzc3VlIHdpdGhcbiAgICAvLyBTYXNzIDMuMywgY2hhbmdlIHRoaXMgbGluZSBpbiBgQGlmIGltLWxvZyguLikge31gIGluc3RlYWQuXG4gICAgJF86IGltLWxvZygnVW5rbm93biB1bml0IGAje3VuaXQoJHZhbHVlKX1gLicpO1xuICB9XG5cbiAgQGlmICRvcGVyYXRvciA9PSAnPicge1xuICAgICR2YWx1ZTogJHZhbHVlICsgJGludGVydmFsO1xuICB9IEBlbHNlIGlmICRvcGVyYXRvciA9PSAnPCcge1xuICAgICR2YWx1ZTogJHZhbHVlIC0gJGludGVydmFsO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWU7XG59XG5cblxuLy8vXG4vLy8gUGFyc2UgYW4gZXhwcmVzc2lvbiB0byByZXR1cm4gYSB2YWxpZCBtZWRpYS1xdWVyeSBleHByZXNzaW9uXG4vLy9cbi8vLyBAcGFyYW0ge1N0cmluZ30gJGV4cHJlc3Npb24gLSBFeHByZXNzaW9uIHRvIHBhcnNlXG4vLy9cbi8vLyBAcmV0dXJuIHtTdHJpbmd9IC0gVmFsaWQgbWVkaWEgcXVlcnlcbi8vL1xuQGZ1bmN0aW9uIHBhcnNlLWV4cHJlc3Npb24oJGV4cHJlc3Npb24pIHtcbiAgLy8gSWYgaXQgaXMgcGFydCBvZiAkbWVkaWEtZXhwcmVzc2lvbnMsIGl0IGhhcyBubyBvcGVyYXRvclxuICAvLyB0aGVuIHRoZXJlIGlzIG5vIG5lZWQgdG8gZ28gYW55IGZ1cnRoZXIsIGp1c3QgcmV0dXJuIHRoZSB2YWx1ZVxuICBAaWYgbWFwLWhhcy1rZXkoJG1lZGlhLWV4cHJlc3Npb25zLCAkZXhwcmVzc2lvbikge1xuICAgIEByZXR1cm4gbWFwLWdldCgkbWVkaWEtZXhwcmVzc2lvbnMsICRleHByZXNzaW9uKTtcbiAgfVxuXG4gICRvcGVyYXRvcjogZ2V0LWV4cHJlc3Npb24tb3BlcmF0b3IoJGV4cHJlc3Npb24pO1xuICAkZGltZW5zaW9uOiBnZXQtZXhwcmVzc2lvbi1kaW1lbnNpb24oJGV4cHJlc3Npb24sICRvcGVyYXRvcik7XG4gICRwcmVmaXg6IGdldC1leHByZXNzaW9uLXByZWZpeCgkb3BlcmF0b3IpO1xuICAkdmFsdWU6IGdldC1leHByZXNzaW9uLXZhbHVlKCRleHByZXNzaW9uLCAkb3BlcmF0b3IpO1xuXG4gIEByZXR1cm4gJygjeyRwcmVmaXh9LSN7JGRpbWVuc2lvbn06ICN7JHZhbHVlfSknO1xufVxuXG4vLy9cbi8vLyBTbGljZSBgJGxpc3RgIGJldHdlZW4gYCRzdGFydGAgYW5kIGAkZW5kYCBpbmRleGVzXG4vLy9cbi8vLyBAYWNjZXNzIHByaXZhdGVcbi8vL1xuLy8vIEBwYXJhbSB7TGlzdH0gJGxpc3QgLSBMaXN0IHRvIHNsaWNlXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICRzdGFydCBbMV0gLSBTdGFydCBpbmRleFxuLy8vIEBwYXJhbSB7TnVtYmVyfSAkZW5kIFtsZW5ndGgoJGxpc3QpXSAtIEVuZCBpbmRleFxuLy8vXG4vLy8gQHJldHVybiB7TGlzdH0gU2xpY2VkIGxpc3Rcbi8vL1xuQGZ1bmN0aW9uIHNsaWNlKCRsaXN0LCAkc3RhcnQ6IDEsICRlbmQ6IGxlbmd0aCgkbGlzdCkpIHtcbiAgQGlmIGxlbmd0aCgkbGlzdCkgPCAxIG9yICRzdGFydCA+ICRlbmQge1xuICAgIEByZXR1cm4gKCk7XG4gIH1cblxuICAkcmVzdWx0OiAoKTtcblxuICBAZm9yICRpIGZyb20gJHN0YXJ0IHRocm91Z2ggJGVuZCB7XG4gICAgJHJlc3VsdDogYXBwZW5kKCRyZXN1bHQsIG50aCgkbGlzdCwgJGkpKTtcbiAgfVxuXG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8vL1xuLy8vIFN0cmluZyB0byBudW1iZXIgY29udmVydGVyXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vIEBhY2Nlc3MgcHJpdmF0ZVxuLy8vL1xuXG5cbi8vL1xuLy8vIENhc3RzIGEgc3RyaW5nIGludG8gYSBudW1iZXJcbi8vL1xuLy8vIEBwYXJhbSB7U3RyaW5nIHwgTnVtYmVyfSAkdmFsdWUgLSBWYWx1ZSB0byBiZSBwYXJzZWRcbi8vL1xuLy8vIEByZXR1cm4ge051bWJlcn1cbi8vL1xuQGZ1bmN0aW9uIHRvLW51bWJlcigkdmFsdWUpIHtcbiAgQGlmIHR5cGUtb2YoJHZhbHVlKSA9PSAnbnVtYmVyJyB7XG4gICAgQHJldHVybiAkdmFsdWU7XG4gIH0gQGVsc2UgaWYgdHlwZS1vZigkdmFsdWUpICE9ICdzdHJpbmcnIHtcbiAgICAkXzogaW0tbG9nKCdWYWx1ZSBmb3IgYHRvLW51bWJlcmAgc2hvdWxkIGJlIGEgbnVtYmVyIG9yIGEgc3RyaW5nLicpO1xuICB9XG5cbiAgJGZpcnN0LWNoYXJhY3Rlcjogc3RyLXNsaWNlKCR2YWx1ZSwgMSwgMSk7XG4gICRyZXN1bHQ6IDA7XG4gICRkaWdpdHM6IDA7XG4gICRtaW51czogKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKTtcbiAgJG51bWJlcnM6ICgnMCc6IDAsICcxJzogMSwgJzInOiAyLCAnMyc6IDMsICc0JzogNCwgJzUnOiA1LCAnNic6IDYsICc3JzogNywgJzgnOiA4LCAnOSc6IDkpO1xuXG4gIC8vIFJlbW92ZSArLy0gc2lnbiBpZiBwcmVzZW50IGF0IGZpcnN0IGNoYXJhY3RlclxuICBAaWYgKCRmaXJzdC1jaGFyYWN0ZXIgPT0gJysnIG9yICRmaXJzdC1jaGFyYWN0ZXIgPT0gJy0nKSB7XG4gICAgJHZhbHVlOiBzdHItc2xpY2UoJHZhbHVlLCAyKTtcbiAgfVxuXG4gIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggc3RyLWxlbmd0aCgkdmFsdWUpIHtcbiAgICAkY2hhcmFjdGVyOiBzdHItc2xpY2UoJHZhbHVlLCAkaSwgJGkpO1xuXG4gICAgQGlmIG5vdCAoaW5kZXgobWFwLWtleXMoJG51bWJlcnMpLCAkY2hhcmFjdGVyKSBvciAkY2hhcmFjdGVyID09ICcuJykge1xuICAgICAgQHJldHVybiB0by1sZW5ndGgoaWYoJG1pbnVzLCAtJHJlc3VsdCwgJHJlc3VsdCksIHN0ci1zbGljZSgkdmFsdWUsICRpKSlcbiAgICB9XG5cbiAgICBAaWYgJGNoYXJhY3RlciA9PSAnLicge1xuICAgICAgJGRpZ2l0czogMTtcbiAgICB9IEBlbHNlIGlmICRkaWdpdHMgPT0gMCB7XG4gICAgICAkcmVzdWx0OiAkcmVzdWx0ICogMTAgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICRkaWdpdHM6ICRkaWdpdHMgKiAxMDtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyBtYXAtZ2V0KCRudW1iZXJzLCAkY2hhcmFjdGVyKSAvICRkaWdpdHM7XG4gICAgfVxuICB9XG5cbiAgQHJldHVybiBpZigkbWludXMsIC0kcmVzdWx0LCAkcmVzdWx0KTtcbn1cblxuXG4vLy9cbi8vLyBBZGQgYCR1bml0YCB0byBgJHZhbHVlYFxuLy8vXG4vLy8gQHBhcmFtIHtOdW1iZXJ9ICR2YWx1ZSAtIFZhbHVlIHRvIGFkZCB1bml0IHRvXG4vLy8gQHBhcmFtIHtTdHJpbmd9ICR1bml0IC0gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB1bml0XG4vLy9cbi8vLyBAcmV0dXJuIHtOdW1iZXJ9IC0gYCR2YWx1ZWAgZXhwcmVzc2VkIGluIGAkdW5pdGBcbi8vL1xuQGZ1bmN0aW9uIHRvLWxlbmd0aCgkdmFsdWUsICR1bml0KSB7XG4gICR1bml0czogKCdweCc6IDFweCwgJ2NtJzogMWNtLCAnbW0nOiAxbW0sICclJzogMSUsICdjaCc6IDFjaCwgJ3BjJzogMXBjLCAnaW4nOiAxaW4sICdlbSc6IDFlbSwgJ3JlbSc6IDFyZW0sICdwdCc6IDFwdCwgJ2V4JzogMWV4LCAndncnOiAxdncsICd2aCc6IDF2aCwgJ3ZtaW4nOiAxdm1pbiwgJ3ZtYXgnOiAxdm1heCk7XG5cbiAgQGlmIG5vdCBpbmRleChtYXAta2V5cygkdW5pdHMpLCAkdW5pdCkge1xuICAgICRfOiBpbS1sb2coJ0ludmFsaWQgdW5pdCBgI3skdW5pdH1gLicpO1xuICB9XG5cbiAgQHJldHVybiAkdmFsdWUgKiBtYXAtZ2V0KCR1bml0cywgJHVuaXQpO1xufVxuXG4vLy9cbi8vLyBUaGlzIG1peGluIGFpbXMgYXQgcmVkZWZpbmluZyB0aGUgY29uZmlndXJhdGlvbiBqdXN0IGZvciB0aGUgc2NvcGUgb2Zcbi8vLyB0aGUgY2FsbC4gSXQgaXMgaGVscGZ1bCB3aGVuIGhhdmluZyBhIGNvbXBvbmVudCBuZWVkaW5nIGFuIGV4dGVuZGVkXG4vLy8gY29uZmlndXJhdGlvbiBzdWNoIGFzIGN1c3RvbSBicmVha3BvaW50cyAocmVmZXJyZWQgdG8gYXMgdHdlYWtwb2ludHMpXG4vLy8gZm9yIGluc3RhbmNlLlxuLy8vXG4vLy8gQGF1dGhvciBLaXR0eSBHaXJhdWRlbFxuLy8vXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vha3BvaW50cyBbKCldIC0gTWFwIG9mIHR3ZWFrcG9pbnRzIHRvIGJlIG1lcmdlZCB3aXRoIGAkYnJlYWtwb2ludHNgXG4vLy8gQHBhcmFtIHtNYXB9ICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucyBbKCldIC0gTWFwIG9mIHR3ZWFrZWQgbWVkaWEgZXhwcmVzc2lvbnMgdG8gYmUgbWVyZ2VkIHdpdGggYCRtZWRpYS1leHByZXNzaW9uYFxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIEV4dGVuZCB0aGUgZ2xvYmFsIGJyZWFrcG9pbnRzIHdpdGggYSB0d2Vha3BvaW50XG4vLy8gIEBpbmNsdWRlIG1lZGlhLWNvbnRleHQoKCdjdXN0b20nOiA2NzhweCkpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD1jdXN0b20nKSB7XG4vLy8gICAgICAgLy8gLi4uXG4vLy8gICAgICB9XG4vLy8gICAgfVxuLy8vICB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gRXh0ZW5kIHRoZSBnbG9iYWwgbWVkaWEgZXhwcmVzc2lvbnMgd2l0aCBhIGN1c3RvbSBvbmVcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgnYWxsJzogJ2FsbCcpKSB7XG4vLy8gICAgLmZvbyB7XG4vLy8gICAgICBAaW5jbHVkZSBtZWRpYSgnYWxsJywgJz5waG9uZScpIHtcbi8vLyAgICAgICAvLyAuLi5cbi8vLyAgICAgIH1cbi8vLyAgICB9XG4vLy8gIH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBFeHRlbmQgYm90aCBjb25maWd1cmF0aW9uIG1hcHNcbi8vLyAgQGluY2x1ZGUgbWVkaWEtY29udGV4dCgoJ2N1c3RvbSc6IDY3OHB4KSwgKCdhbGwnOiAnYWxsJykpIHtcbi8vLyAgICAuZm9vIHtcbi8vLyAgICAgIEBpbmNsdWRlIG1lZGlhKCdhbGwnLCAnPnBob25lJywgJzw9Y3VzdG9tJykge1xuLy8vICAgICAgIC8vIC4uLlxuLy8vICAgICAgfVxuLy8vICAgIH1cbi8vLyAgfVxuLy8vXG5AbWl4aW4gbWVkaWEtY29udGV4dCgkdHdlYWtwb2ludHM6ICgpLCAkdHdlYWstbWVkaWEtZXhwcmVzc2lvbnM6ICgpKSB7XG4gIC8vIFNhdmUgZ2xvYmFsIGNvbmZpZ3VyYXRpb25cbiAgJGdsb2JhbC1icmVha3BvaW50czogJGJyZWFrcG9pbnRzO1xuICAkZ2xvYmFsLW1lZGlhLWV4cHJlc3Npb25zOiAkbWVkaWEtZXhwcmVzc2lvbnM7XG5cbiAgLy8gVXBkYXRlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogbWFwLW1lcmdlKCRicmVha3BvaW50cywgJHR3ZWFrcG9pbnRzKSAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6IG1hcC1tZXJnZSgkbWVkaWEtZXhwcmVzc2lvbnMsICR0d2Vhay1tZWRpYS1leHByZXNzaW9ucykgIWdsb2JhbDtcblxuICBAY29udGVudDtcblxuICAvLyBSZXN0b3JlIGdsb2JhbCBjb25maWd1cmF0aW9uXG4gICRicmVha3BvaW50czogJGdsb2JhbC1icmVha3BvaW50cyAhZ2xvYmFsO1xuICAkbWVkaWEtZXhwcmVzc2lvbnM6ICRnbG9iYWwtbWVkaWEtZXhwcmVzc2lvbnMgIWdsb2JhbDtcbn1cblxuLy8vL1xuLy8vIGluY2x1ZGUtbWVkaWEgcHVibGljIGV4cG9zZWQgQVBJXG4vLy8gQGF1dGhvciBFZHVhcmRvIEJvdWNhc1xuLy8vIEBhY2Nlc3MgcHVibGljXG4vLy8vXG5cblxuLy8vXG4vLy8gR2VuZXJhdGVzIGEgbWVkaWEgcXVlcnkgYmFzZWQgb24gYSBsaXN0IG9mIGNvbmRpdGlvbnNcbi8vL1xuLy8vIEBwYXJhbSB7QXJnbGlzdH0gICAkY29uZGl0aW9ucyAgLSBNZWRpYSBxdWVyeSBjb25kaXRpb25zXG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBhIHNpbmdsZSBzZXQgYnJlYWtwb2ludFxuLy8vICBAaW5jbHVkZSBtZWRpYSgnPnBob25lJykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCB0d28gc2V0IGJyZWFrcG9pbnRzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+cGhvbmUnLCAnPD10YWJsZXQnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBXaXRoIGN1c3RvbSB2YWx1ZXNcbi8vLyAgQGluY2x1ZGUgbWVkaWEoJz49MzU4cHgnLCAnPDg1MHB4JykgeyB9XG4vLy9cbi8vLyBAZXhhbXBsZSBzY3NzIC0gV2l0aCBzZXQgYnJlYWtwb2ludHMgd2l0aCBjdXN0b20gdmFsdWVzXG4vLy8gIEBpbmNsdWRlIG1lZGlhKCc+ZGVza3RvcCcsICc8PTEzNTBweCcpIHsgfVxuLy8vXG4vLy8gQGV4YW1wbGUgc2NzcyAtIFdpdGggYSBzdGF0aWMgZXhwcmVzc2lvblxuLy8vICBAaW5jbHVkZSBtZWRpYSgncmV0aW5hMngnKSB7IH1cbi8vL1xuLy8vIEBleGFtcGxlIHNjc3MgLSBNaXhpbmcgZXZlcnl0aGluZ1xuLy8vICBAaW5jbHVkZSBtZWRpYSgnPj0zNTBweCcsICc8dGFibGV0JywgJ3JldGluYTN4JykgeyB9XG4vLy9cbkBtaXhpbiBtZWRpYSgkY29uZGl0aW9ucy4uLikge1xuICBAaWYgKCRpbS1tZWRpYS1zdXBwb3J0IGFuZCBsZW5ndGgoJGNvbmRpdGlvbnMpID09IDApIG9yXG4gICAgICAobm90ICRpbS1tZWRpYS1zdXBwb3J0IGFuZCBpbS1pbnRlcmNlcHRzLXN0YXRpYy1icmVha3BvaW50KCRjb25kaXRpb25zLi4uKSkge1xuICAgIEBjb250ZW50O1xuICB9IEBlbHNlIGlmICgkaW0tbWVkaWEtc3VwcG9ydCBhbmQgbGVuZ3RoKCRjb25kaXRpb25zKSA+IDApIHtcbiAgICBAbWVkaWEgI3t1bnF1b3RlKHBhcnNlLWV4cHJlc3Npb24obnRoKCRjb25kaXRpb25zLCAxKSkpfSB7XG4gICAgICAvLyBSZWN1cnNpdmUgY2FsbFxuICAgICAgQGluY2x1ZGUgbWVkaWEoc2xpY2UoJGNvbmRpdGlvbnMsIDIpLi4uKSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUNFQTtBQ0ZBOzs7QURNQTtBRElBO0FBZ0JBOztBQ2hCQTtBRFZBOztBQ2FBO0FDYkE7OztBRGlCQTtBRFBBO0FBZ0JBOztBQ0xBO0FEckJBOztBQ3dCQTtBQ3hCQTs7O0FENEJBO0FEbEJBO0FBZ0JBOztBQ01BO0FEaENBOztBQ21DQTtBQ25DQTs7O0FEdUNBO0FEN0JBO0FBZ0JBOztBQ2lCQTtBRDNDQTs7QUM4Q0E7QUM5Q0E7OztBRGtEQTtBRHhDQTtBQWdCQTs7QUM0QkE7QUVsREE7OztBRnNEQTtBRWpEQTs7QUZvREE7QUUvQ0E7O0FBR0E7QUFDQTtBQUdBO0FBQ0E7QUFBQTtBQUNBO0FBQUE7QUNqQkE7QUN1aUJBO0FGeGhCQTtBQ0xBO0FBS0E7QUFDQTtBRERBO0FBTUE7QUVraEJBO0FGOWdCQTtBQUdBO0FBQUE7QUFIQTtBQU1BO0FBTkE7QUFVQTtBQUNBO0FFbWdCQTtBRjdmQTtBQUVBO0FBQUE7QUUyZkE7QUZ0ZkE7QUFDQTtBQUFBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQ0E7QUFNQTtBQUNBO0FBQ0E7QUVvZUE7QUZ0ZUE7QUFJQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FFaWRBO0FGdmRBO0FBUUE7QUFFQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FFcWNBO0FGemNBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUtBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFNQTtBQU5BO0FBU0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRW9aQTtBRmxhQTtBQWdCQTtBQWhCQTtBQW1CQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUVrWUE7QUZuWUE7QUFHQTtBQUhBO0FBTUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBRXdYQTtBRjFYQTtBQUlBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUhBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBRUE7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFIQTtBQUtBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUU2VEE7QUZuVUE7QUFRQTtBQUNBO0FBS0E7QUFFQTtBQUNBO0FBSEE7QUFLQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUlBO0FBRUE7QUFDQTtBQUhBO0FBTUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBWEE7QUFhQTtBRXlSQTtBRnRTQTtBQWVBO0FBQ0E7QUFLQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFPQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSkE7QUFNQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQWZBO0FBa0JBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FFdU9BO0FGbFFBO0FBK0JBO0FBQ0E7QUFDQTtBQUdBO0FBQ0E7QUFDQTtBQUNBO0FFMk5BO0FGOU5BO0FBS0E7QUFMQTtBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUU4TUE7QUZqTkE7QUFLQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRXlMQTtBRjFMQTtBQUdBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQURBO0FBR0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFEQTtBQUdBO0FFd0pBO0FGL0pBO0FBWUE7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFUQTtBQVdBO0FBQ0E7QUFaQTtBQWNBO0FBZEE7QUFrQkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBSEE7QUFLQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FFMkRBO0FGN0RBO0FBSUE7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBRW9EQTtBRnREQTtBQUlBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUU2Q0E7QUY5Q0E7QUFHQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFMQTtBQU9BO0FBQ0E7QUFFQTtBQUNBO0FBREE7QUFHQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFEQTtBQUdBO0FBbEJBO0FBdUJBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUxBO0FBT0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBVEE7QUFXQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUVuRUE7QUYrREE7QUFNQTtBQUNBO0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBRTlFQTtBRjBFQTtBQU1BO0FBTkE7QUFRQTtBRWxGQTtBRjBFQTtBQVlBO0FBWkE7QUFjQTtBQWRBOztBQW1CQTtBQUNBO0FBcEJBOztBQXNCQTtBQUNBO0FBQ0E7QUF4QkE7Ozs7O0FBNkJBO0FBQ0E7QUFDQTtBQUlBO0FBQ0E7QUFDQTtBQUNBO0FBdENBOztBQXlDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFqREE7O0FBb0RBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBN0RBOzs7Ozs7Ozs7QUFxRUE7QUFDQTtBQUNBO0FBQ0E7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRkE7QUFJQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFaQTtBQWVBO0FBQ0E7QUFDQTtBQUVBO0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBS0E7QUE4QkE7QUE5QkE7QUFLQTtBQUxBO0FBUUE7QUFSQTtBQVlBO0FBWkE7QUFlQTtBQWZBO0FBb0JBO0FBcEJBO0FBdUJBO0FBQ0E7QUFDQTtBRXJPQTtBRjRNQTtBQTJCQTtBRXZPQTtBRjRNQTtBQWdDQTtBQWhDQTtBQW1DQTtBQUNBO0FBcENBO0FBc0NBO0FBQ0E7QUVuUEE7QUY0TUE7QUF5Q0E7QUFDQTtBQTFDQTtBQWdEQTtBQUNBO0FBQ0E7QUFJQTtBQUlBO0FBQ0E7QUFDQTtBQU5BO0FBUUE7QUFSQTtBQVVBOzsiLCJzb3VyY2VSb290IjoiIn0=*/