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

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


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


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


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


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


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

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

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

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

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

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

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

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

@keyframes form-label-filled {
  0% {
    left: 1rem;
    font-size: 0.9rem;
    background: transparent;
    transform: none; }
  25% {
    left: 1rem;
    font-size: 0.9rem;
    background: transparent;
    transform: rotateY(90deg) translateY(0); }
  75% {
    left: 1rem;
    font-size: 0.7rem;
    background: #fff;
    transform: rotateY(90deg) translateY(-1.2rem); }
  100% {
    left: 1rem;
    font-size: 0.7rem;
    background: #fff;
    transform: rotateY(0) translateY(-1.2rem); } }

@keyframes form-label {
  0% {
    left: 1rem;
    font-size: 0.7rem;
    background: #fff;
    transform: rotateY(0) translateY(-1.2rem); }
  25% {
    left: 1rem;
    font-size: 0.7rem;
    background: #fff;
    transform: rotateY(90deg) translateY(-1.2rem); }
  75% {
    left: 1rem;
    font-size: 0.9rem;
    background: transparent;
    transform: rotateY(90deg) translateY(0); }
  100% {
    left: 1rem;
    font-size: 0.9rem;
    background: transparent;
    transform: none; } }

input:-webkit-autofill,
select:-webkit-autofill,
textarea:-webkit-autofill {
  box-shadow: 0 0 0 100px #fff inset;
  -webkit-text-fill-color: #4b5055; }
  input:-webkit-autofill:hover, input:-webkit-autofill:focus,
  select:-webkit-autofill:hover,
  select:-webkit-autofill:focus,
  textarea:-webkit-autofill:hover,
  textarea:-webkit-autofill:focus {
    -webkit-text-fill-color: #4b5055;
    background: none !important; }

.grecaptcha-badge {
  visibility: collapse; }

.wpcf7 {
  font-size: 16px; }
  .wpcf7 .wpcf7-form {
    color: #4b5055;
    margin-top: 16px;
    margin-top: 1rem;
    display: flex;
    flex-direction: column; }
    .wpcf7 .wpcf7-form .form-field {
      position: relative;
      margin-bottom: 24px;
      margin-bottom: 1.5rem;
      transition: all ease .5s; }
      .wpcf7 .wpcf7-form .form-field p:not([class]) {
        display: contents; }
      .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]) {
        float: none;
        width: 100%;
        padding-left: 8px;
        padding-left: 0.5rem;
        margin: 0;
        border: 1px solid #4b5055;
        border-radius: 0.25rem;
        transition: border-color ease .4s;
        background: #fff; }
        .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]).wpcf7-text, .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]).wpcf7-number {
          height: 40px;
          height: 2.5rem;
          color: #4b5055; }
        .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]).wpcf7-not-valid {
          margin: 0;
          border-color: red; }
        .wpcf7 .wpcf7-form .form-field input:not([type="submit"]):not([type="file"]):not([type="checkbox"]):focus {
          outline: none; }
      .wpcf7 .wpcf7-form .form-field input[type="date"] {
        position: relative; }
        .wpcf7 .wpcf7-form .form-field input[type="date"]::-webkit-calendar-picker-indicator {
          position: absolute;
          padding-left: calc(100% - 2.5em); }
      .wpcf7 .wpcf7-form .form-field textarea {
        width: 100%;
        padding-left: 8px;
        padding-left: 0.5rem;
        padding-top: 8px;
        padding-top: 0.5rem;
        margin: 0;
        overflow: hidden;
        color: #4b5055;
        resize: none;
        border: 1px solid #4b5055;
        border-radius: 0.25rem;
        transition: border-color ease .4s;
        background: #fff;
        height: initial; }
        .wpcf7 .wpcf7-form .form-field textarea:focus {
          outline: none; }
        .wpcf7 .wpcf7-form .form-field textarea.wpcf7-not-valid {
          margin: 0;
          border-color: red; }
      .wpcf7 .wpcf7-form .form-field select.wpcf7-select,
      .wpcf7 .wpcf7-form .form-field select.wpcf7-form-control {
        padding-left: 8px;
        padding-left: 0.5rem;
        float: none;
        color: #4b5055;
        border: 1px solid #4b5055;
        border-radius: 0.25rem;
        width: 100%;
        height: 40px;
        height: 2.5rem;
        background: #fff; }
        .wpcf7 .wpcf7-form .form-field select.wpcf7-select.wpcf7-not-valid,
        .wpcf7 .wpcf7-form .form-field select.wpcf7-form-control.wpcf7-not-valid {
          border-color: red; }
      .wpcf7 .wpcf7-form .form-field > label {
        position: absolute;
        top: 12px;
        top: 0.75rem;
        left: 16px;
        left: 1rem;
        z-index: 1;
        padding: 0;
        margin: 0;
        color: #4b5055;
        pointer-events: none;
        cursor: text;
        background: transparent;
        transition: font-size ease .5s, transform ease-in-out .5s, background-color ease .5s, padding ease .5s;
        font-size: 14.4px;
        font-size: 0.9rem;
        line-height: 16px;
        line-height: 1rem; }
      .wpcf7 .wpcf7-form .form-field.style-dark label {
        color: #fff; }
      .wpcf7 .wpcf7-form .form-field.empty label {
        animation: .5s ease-in 0s 1 form-label;
        animation-fill-mode: forwards; }
      .wpcf7 .wpcf7-form .form-field.filled label, .wpcf7 .wpcf7-form .form-field.active label {
        padding: 0 8px;
        padding: 0 0.5rem; }
      .wpcf7 .wpcf7-form .form-field.filled label {
        animation: .5s ease-in 0s 1 form-label-filled;
        animation-direction: normal;
        animation-fill-mode: forwards; }
      .wpcf7 .wpcf7-form .form-field.active label {
        color: #BD1922 !important; }
      .wpcf7 .wpcf7-form .form-field.active input,
      .wpcf7 .wpcf7-form .form-field.active textarea {
        border-color: #BD1922 !important; }
      .wpcf7 .wpcf7-form .form-field.no-anim label, .wpcf7 .wpcf7-form .form-field.form-field-noanim label {
        animation: none !important;
        position: relative !important;
        top: 0 !important;
        left: 0 !important;
        padding: 0;
        margin-top: 16px;
        margin-top: 1rem;
        transform: translateY(-1.2rem); }
      .wpcf7 .wpcf7-form .form-field.form-field-select label {
        position: relative; }
      .wpcf7 .wpcf7-form .form-field.form-field-acceptance input {
        width: auto; }
      .wpcf7 .wpcf7-form .form-field.form-field-rgpd, .wpcf7 .wpcf7-form .form-field.form-legal-notice {
        margin: 16px auto;
        margin: 1rem auto;
        font-size: 11.2px;
        font-size: .7rem;
        text-align: center;
        padding: 0; }
      .wpcf7 .wpcf7-form .form-field.form-field-double {
        display: flex; }
        .wpcf7 .wpcf7-form .form-field.form-field-double span:first-child {
          flex: 2 1; }
          .wpcf7 .wpcf7-form .form-field.form-field-double span:first-child input.wpcf7-text {
            border-right-width: 1px;
            border-radius: 10px 0 0 10px; }
        .wpcf7 .wpcf7-form .form-field.form-field-double span:last-child {
          flex: 1 1; }
          .wpcf7 .wpcf7-form .form-field.form-field-double span:last-child input.wpcf7-text {
            border-left-width: 1px;
            border-radius: 0 10px 10px 0; }
      .wpcf7 .wpcf7-form .form-field.form-field-checkbox .wpcf7-checkbox {
        display: flex;
        flex-direction: column;
        margin-right: -.25em;
        margin-left: -.25em; }
        .wpcf7 .wpcf7-form .form-field.form-field-checkbox .wpcf7-checkbox .wpcf7-list-item {
          display: flex;
          align-items: center;
          padding: 0 .25em; }
          .wpcf7 .wpcf7-form .form-field.form-field-checkbox .wpcf7-checkbox .wpcf7-list-item label {
            cursor: pointer;
            display: flex;
            align-items: center; }
            .wpcf7 .wpcf7-form .form-field.form-field-checkbox .wpcf7-checkbox .wpcf7-list-item label .wpcf7-list-item-label {
              padding-left: 8px;
              padding-left: .5rem; }
      .wpcf7 .wpcf7-form .form-field.form-field-checkbox.checkbox-inline label {
        margin-bottom: .25em; }
      .wpcf7 .wpcf7-form .form-field.form-field-checkbox.checkbox-inline .wpcf7-checkbox {
        flex-direction: row;
        flex-wrap: wrap; }
        .wpcf7 .wpcf7-form .form-field.form-field-checkbox.checkbox-inline .wpcf7-checkbox .wpcf7-list-item {
          flex: 0 0 200px; }
      .wpcf7 .wpcf7-form .form-field.form-field-date input {
        height: 40px;
        height: 2.5rem; }
      .wpcf7 .wpcf7-form .form-field.inline {
        display: flex;
        flex-direction: column; }
        .wpcf7 .wpcf7-form .form-field.inline label {
          position: static;
          line-height: 25px; }
        .wpcf7 .wpcf7-form .form-field.inline .wpcf7-radio {
          display: flex; }
          .wpcf7 .wpcf7-form .form-field.inline .wpcf7-radio .wpcf7-list-item {
            display: flex;
            align-items: center; }
            .wpcf7 .wpcf7-form .form-field.inline .wpcf7-radio .wpcf7-list-item input {
              width: auto;
              margin-right: .25em;
              margin-left: .25em; }
        .wpcf7 .wpcf7-form .form-field.inline .wpcf7-checkbox {
          flex-direction: row; }
    .wpcf7 .wpcf7-form .form-field-submit {
      text-align: center;
      display: flex;
      align-items: center; }
      .wpcf7 .wpcf7-form .form-field-submit .ajax-loader, .wpcf7 .wpcf7-form .form-field-submit .wpcf7-spinner {
        background-repeat: no-repeat;
        background-position: center;
        min-height: unset;
        position: absolute; }
    .wpcf7 .wpcf7-form span.wpcf7-list-item {
      margin: 0; }
    .wpcf7 .wpcf7-form .form-field-required {
      color: red; }
    .wpcf7 .wpcf7-form .form-field-wrap {
      display: flex;
      align-items: flex-end;
      margin-right: -15px;
      margin-left: -15px; }
      .wpcf7 .wpcf7-form .form-field-wrap .form-field-date {
        flex: 1 1;
        margin-right: 15px;
        margin-left: 15px; }
        .wpcf7 .wpcf7-form .form-field-wrap .form-field-date input {
          margin-top: 0; }
    .wpcf7 .wpcf7-form .wpcf7-form-control-wrap {
      display: block; }
      .wpcf7 .wpcf7-form .wpcf7-form-control-wrap .wpcf7-not-valid-tip {
        color: red !important;
        font-size: 14.4px;
        font-size: 0.9rem;
        font-weight: normal;
        position: absolute;
        bottom: -32px;
        bottom: -2rem;
        left: 8px;
        left: 0.5rem;
        right: 0;
        height: 30px;
        z-index: 2; }
    .wpcf7 .wpcf7-form .form-field-desc {
      font-size: 12.8px;
      font-size: 0.8rem;
      font-style: italic;
      color: #696969; }
    .wpcf7 .wpcf7-form .wpcf7-response-output {
      text-align: center;
      border: none !important;
      font-size: 14.4px;
      font-size: .9rem;
      margin-top: 16px;
      margin-top: 1rem; }
    .wpcf7 .wpcf7-form:not(.submitting) .ajax-loader, .wpcf7 .wpcf7-form:not(.submitting) .wpcf7-spinner {
      display: none !important; }
    .wpcf7 .wpcf7-form.sent .wpcf7-response-output {
      color: #87d37c !important; }
    .wpcf7 .wpcf7-form.invalid .wpcf7-response-output {
      color: red !important; }
  .wpcf7 .form-row {
    display: flex;
    flex-direction: column;
    margin-right: -8px;
    margin-right: -0.5rem;
    margin-left: -8px;
    margin-left: -0.5rem; }
    .wpcf7 .form-row:before, .wpcf7 .form-row:after {
      display: none !important; }
    .wpcf7 .form-row > .form-col, .wpcf7 .form-row > .form-col-6, .wpcf7 .form-row > .form-col-4, .wpcf7 .form-row > .form-col-3 {
      position: relative;
      width: 100%;
      padding-right: 8px !important;
      padding-right: 0.5rem !important;
      padding-left: 8px !important;
      padding-left: 0.5rem !important; }
    @media (min-width: 480px) {
          .wpcf7 .wpcf7-form .form-field.inline {
            flex-direction: row; }
      .wpcf7 .form-row {
        flex-direction: row;
        flex-wrap: wrap; }
      .wpcf7 .form-row > .form-col-6 {
        flex: 0 0 50%;
        max-width: 50%; }
      .wpcf7 .form-row > .form-col-4 {
        flex: 0 0 33.33%;
        max-width: 33.33%; }
      .wpcf7 .form-row > .form-col-3 {
        flex: 0 0 25%;
        max-width: 25%; } }
    @media (min-width: 768px) {
    .breadcrumbs .breadcrumb:before, .breadcrumbs .breadcrumb:after {
      display: none; }
      .wpcf7 .wpcf7-form {
        margin-top: 2rem; } }
    @media (max-width: 959px) {
  .form-field-submit {
    order: 1; }
  .form-legal-notice,
  .form-field-rgpd {
    order: 2; }
        .wpcf7 .wpcf7-form .wpcf7-response-output {
          margin-top: 0;
          margin-bottom: 1rem; } }
    @media (max-width: 768px) {
          .wpcf7 .wpcf7-form .form-field select.wpcf7-select,
          .wpcf7 .wpcf7-form .form-field select.wpcf7-form-control {
            width: 100%; } }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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a0JEN1ZtQjtNQzhWbkIsY0QvVm9CO0lDQzFCO01Ba1dNLGtCQUFrQjtNQUNsQix1QkFBdUI7TUFDdkIsaUJBQWdCO01BQWhCLGdCQUFnQjtNQUNoQixnQkFBZ0I7TUFBaEIsZ0JBQWdCO0lBcld0QjtNQStXUSx3QkFBd0I7SUEvV2hDO01BcVhRLHlCQUF1QztJQXJYL0M7TUEyWFEscUJBQW9DO0VBM1g1QztJQWtZSSxhQUFhO0lBQ2Isc0JBQXNCO0lBQ3RCLGtCSjRNZTtJSTVNZixxQko0TWU7SUkzTWYsaUJKMk1lO0lJM01mLG9CSjJNZTtJSWhsQm5CO01BeVlNLHdCQUF3QjtJQXpZOUI7TUFrWk0sa0JBQWtCO01BQ2xCLFdBQVc7TUFDWCw2QkFBc0M7TUFBdEMsZ0NBQXNDO01BQ3RDLDRCQUFxQztNQUFyQywrQkFBcUM7SUE5SW5DO1VBdlFSO1lBd1FVLG1CQUFtQjtNQXhRN0I7UUE2WU0sbUJBQW1CO1FBQ25CLGVBQWU7TUE5WXJCO1FBNFpRLGFBQWE7UUFDYixjQUFjO01BN1p0QjtRQXFhUSxnQkFBZ0I7UUFDaEIsaUJBQWlCO01BdGF6QjtRQThhUSxhQUFhO1FBQ2IsY0FBYyxJQTdJZjtJRWxRSDtJUDdESjtNQXVDUSxhQUFhO01LVnJCO1FBVU0sZ0JEMUJtRCxJSjJCbEQ7SUt2QlA7RUFFRTtJQUNFLFFBQVE7RUFHVjs7SUFFRSxRQUFRO1FBSVo7VUF3V1EsYUFBYTtVQUNiLG1CQUFtQixJQTVXeEI7SUFvR0s7VUFqR1I7O1lBa0dVLFdBQVcsSUFFZCIsInNvdXJjZXMiOlsid2VicGFjazovL2phcm9kY2FwZWxsby10aGVtZS8uL25vZGVfbW9kdWxlcy9AbmVtYXRpcy93cC1hbHBoYS9hc3NldHMvc2Fzcy92ZW5kb3JzL2ZvbnRhd2Vzb21lL2Fic3RyYWN0cy9fbWl4aW5zLnNjc3MiLCJ3ZWJwYWNrOi8vamFyb2RjYXBlbGxvLXRoZW1lLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL19icmVhZGNydW1iLnNjc3MiLCJ3ZWJwYWNrOi8vamFyb2RjYXBlbGxvLXRoZW1lLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL3ZlbmRvci9fcmZzLnNjc3MiLCJ3ZWJwYWNrOi8vamFyb2RjYXBlbGxvLXRoZW1lLy4vbm9kZV9tb2R1bGVzL2Jvb3RzdHJhcC9zY3NzL21peGlucy9fYm9yZGVyLXJhZGl1cy5zY3NzIiwid2VicGFjazovL2phcm9kY2FwZWxsby10aGVtZS8uL25vZGVfbW9kdWxlcy9AbmVtYXRpcy93cC1hbHBoYS9hc3NldHMvc2Fzcy9jb21wb25lbnRzL19icmVhZGNydW1iLnNjc3MiLCJ3ZWJwYWNrOi8vamFyb2RjYXBlbGxvLXRoZW1lLy4vbm9kZV9tb2R1bGVzL0BuZW1hdGlzL3dwLWFscGhhL2Fzc2V0cy9zYXNzL2Fic3RyYWN0cy9fdmFyaWFibGVzLnNjc3MiLCJ3ZWJwYWNrOi8vamFyb2RjYXBlbGxvLXRoZW1lLy4vbm9kZV9tb2R1bGVzL0Bmb3J0YXdlc29tZS9mb250YXdlc29tZS1wcm8vc2Nzcy9fZnVuY3Rpb25zLnNjc3MiLCJ3ZWJwYWNrOi8vamFyb2RjYXBlbGxvLXRoZW1lLy4vbm9kZV9tb2R1bGVzL0BuZW1hdGlzL2NmNy1lZmZlY3QvYXNzZXRzL3Nhc3MvY29yZS9fYW5pbWF0aW9ucy5zY3NzIiwid2VicGFjazovL2phcm9kY2FwZWxsby10aGVtZS8uL25vZGVfbW9kdWxlcy9AbmVtYXRpcy9jZjctZWZmZWN0L2Fzc2V0cy9zYXNzL2Fic3RyYWN0L192YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly9qYXJvZGNhcGVsbG8tdGhlbWUvLi9ub2RlX21vZHVsZXMvQG5lbWF0aXMvY2Y3LWVmZmVjdC9hc3NldHMvc2Fzcy9jb3JlL19mb3Jtcy5zY3NzIiwid2VicGFjazovL2phcm9kY2FwZWxsby10aGVtZS8uL2Fzc2V0cy9zYXNzL2Fic3RyYWN0cy92YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly9qYXJvZGNhcGVsbG8tdGhlbWUvLi9ub2RlX21vZHVsZXMvYm9vdHN0cmFwL3Njc3MvbWl4aW5zL19icmVha3BvaW50cy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIiR1c2UtZmEtcHJvOiB0cnVlICFkZWZhdWx0O1xuXG5AbWl4aW4gZmEtaWNvbi1zdGFuZGFsb25lIHtcbiAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICBmb250LXN0eWxlOiBub3JtYWw7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIGZvbnQtdmFyaWFudDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMTtcbiAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG4gIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7XG59XG5cbiVmYSxcbiVmYXMsXG4lZmFyLFxuJWZhbCxcbiVmYWQsXG4lZmF0LFxuJWZhYiB7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1zdHlsZTogbm9ybWFsO1xuICBmb250LXdlaWdodDogNDAwO1xuICBmb250LXZhcmlhbnQ6IG5vcm1hbDtcbiAgbGluZS1oZWlnaHQ6IDE7XG4gIC13ZWJraXQtZm9udC1zbW9vdGhpbmc6IGFudGlhbGlhc2VkO1xuICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlO1xufVxuXG4lZmEtaWNvbi1zdGFuZGFsb25lIHtcbiAgQGluY2x1ZGUgZmEtaWNvbi1zdGFuZGFsb25lICgpO1xufVxuXG4lZmEsXG4lZmFzIHtcbiAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDYgUHJvXCI7XG4gIGZvbnQtd2VpZ2h0OiA5MDA7XG59XG5cbiVmYXIge1xuICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNiBQcm9cIjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuJWZhbCB7XG4gIGZvbnQtZmFtaWx5OiBcIkZvbnQgQXdlc29tZSA2IFByb1wiO1xuICBmb250LXdlaWdodDogMzAwO1xufVxuXG4lZmF0IHtcbiAgZm9udC1mYW1pbHk6IFwiRm9udCBBd2Vzb21lIDYgUHJvXCI7XG4gIGZvbnQtd2VpZ2h0OiAxMDA7XG59XG5cbiVmYWIge1xuICBmb250LWZhbWlseTogXCJGb250IEF3ZXNvbWUgNiBCcmFuZHNcIjtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuQG1peGluIGZvbnQtYXdlc29tZSgkY29kZSkge1xuICBAZXh0ZW5kICVmYS1pY29uLXN0YW5kYWxvbmU7XG5cbiAgQGlmICR1c2UtZmEtcHJvIHtcbiAgICBAaW5jbHVkZSBmb250LWF3ZXNvbWUtcHJvKCRjb2RlKTtcbiAgfSBAZWxzZSB7XG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGZvbnQtZmFtaWx5LW5vLW1pc3NpbmctZ2VuZXJpYy1mYW1pbHkta2V5d29yZFxuICAgIEBleHRlbmQgJWZhO1xuXG4gICAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGRlY2xhcmF0aW9uLW5vLWltcG9ydGFudFxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbnRlbnQ6ICRjb2RlO1xuICB9XG5cbiAgQGNvbnRlbnQ7XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtcHJvKCRjb2RlKSB7XG4gIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tc29saWQoJGNvZGUpO1xufVxuXG5AbWl4aW4gZm9udC1hd2Vzb21lLXByby1zb2xpZCgkY29kZSkge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZm9udC1mYW1pbHktbm8tbWlzc2luZy1nZW5lcmljLWZhbWlseS1rZXl3b3JkXG4gIEBleHRlbmQgJWZhcztcbiAgY29udGVudDogZmEtY29udGVudCgkY29kZSk7XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtcHJvLXJlZ3VsYXIoJGNvZGUpIHtcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGZvbnQtZmFtaWx5LW5vLW1pc3NpbmctZ2VuZXJpYy1mYW1pbHkta2V5d29yZFxuICBAZXh0ZW5kICVmYXI7XG4gIGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGNvZGUpO1xufVxuXG5AbWl4aW4gZm9udC1hd2Vzb21lLXByby1saWdodCgkY29kZSkge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZm9udC1mYW1pbHktbm8tbWlzc2luZy1nZW5lcmljLWZhbWlseS1rZXl3b3JkXG4gIEBleHRlbmQgJWZhbDtcbiAgY29udGVudDogZmEtY29udGVudCgkY29kZSk7XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtcHJvLXRoaW4oJGNvZGUpIHtcbiAgLy8gc3R5bGVsaW50LWRpc2FibGUtbmV4dC1saW5lIGZvbnQtZmFtaWx5LW5vLW1pc3NpbmctZ2VuZXJpYy1mYW1pbHkta2V5d29yZFxuICBAZXh0ZW5kICVmYXQ7XG4gIGNvbnRlbnQ6IGZhLWNvbnRlbnQoJGNvZGUpO1xufVxuXG5AbWl4aW4gZm9udC1hd2Vzb21lLXByby1icmFuZCgkY29kZSkge1xuICAvLyBzdHlsZWxpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZm9udC1mYW1pbHktbm8tbWlzc2luZy1nZW5lcmljLWZhbWlseS1rZXl3b3JkXG4gIEBleHRlbmQgJWZhYjtcbiAgY29udGVudDogZmEtY29udGVudCgkY29kZSk7XG59XG5cbkBtaXhpbiBmb250LWF3ZXNvbWUtYmVmb3JlKCRjb2RlLCAkZmxvYXRpbmc6IGZhbHNlLCAkZmEtc3R5bGU6IFwic29saWRcIiwgJG1hcmdpbjogLjI1ZW0pIHtcbiAgJjo6YmVmb3JlIHtcbiAgICBAaWYgJGZhLXN0eWxlID09IFwicmVndWxhclwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tcmVndWxhcigkY29kZSk7XG4gICAgfSBAZWxzZSBpZiAkZmEtc3R5bGUgPT0gXCJsaWdodFwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tbGlnaHQoJGNvZGUpO1xuICAgIH0gQGVsc2UgaWYgJGZhLXN0eWxlID09IFwidGhpblwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tdGhpbigkY29kZSk7XG4gICAgfSBAZWxzZSBpZiAkZmEtc3R5bGUgPT0gXCJicmFuZFwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tYnJhbmQoJGNvZGUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lKCRjb2RlKTtcbiAgICB9XG5cbiAgICBAaWYgJGZsb2F0aW5nIHtcbiAgICAgIGZsb2F0OiBsZWZ0O1xuICAgICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgfVxuXG4gICAgbWFyZ2luLXJpZ2h0OiAkbWFyZ2luO1xuXG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuQG1peGluIGZvbnQtYXdlc29tZS1hZnRlcigkY29kZSwgJGZsb2F0aW5nOiBmYWxzZSwgJGZhLXN0eWxlOiBcInNvbGlkXCIsICRtYXJnaW46IC4yNWVtKSB7XG4gICY6OmFmdGVyIHtcbiAgICBAaWYgJGZhLXN0eWxlID09IFwicmVndWxhclwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tcmVndWxhcigkY29kZSk7XG4gICAgfSBAZWxzZSBpZiAkZmEtc3R5bGUgPT0gXCJsaWdodFwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tbGlnaHQoJGNvZGUpO1xuICAgIH0gQGVsc2UgaWYgJGZhLXN0eWxlID09IFwidGhpblwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tdGhpbigkY29kZSk7XG4gICAgfSBAZWxzZSBpZiAkZmEtc3R5bGUgPT0gXCJicmFuZFwiIHtcbiAgICAgIEBpbmNsdWRlIGZvbnQtYXdlc29tZS1wcm8tYnJhbmQoJGNvZGUpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgQGluY2x1ZGUgZm9udC1hd2Vzb21lKCRjb2RlKTtcbiAgICB9XG5cbiAgICBAaWYgJGZsb2F0aW5nIHtcbiAgICAgIGZsb2F0OiByaWdodDtcbiAgICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIH1cblxuICAgIG1hcmdpbi1sZWZ0OiAkbWFyZ2luO1xuXG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cbiIsIi5icmVhZGNydW1iIHtcbiAgLy8gc2Nzcy1kb2NzLXN0YXJ0IGJyZWFkY3J1bWItY3NzLXZhcnNcbiAgLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1wYWRkaW5nLXg6ICN7JGJyZWFkY3J1bWItcGFkZGluZy14fTtcbiAgLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1wYWRkaW5nLXk6ICN7JGJyZWFkY3J1bWItcGFkZGluZy15fTtcbiAgLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1tYXJnaW4tYm90dG9tOiAjeyRicmVhZGNydW1iLW1hcmdpbi1ib3R0b219O1xuICBAaW5jbHVkZSByZnMoJGJyZWFkY3J1bWItZm9udC1zaXplLCAtLSN7JHByZWZpeH1icmVhZGNydW1iLWZvbnQtc2l6ZSk7XG4gIC0tI3skcHJlZml4fWJyZWFkY3J1bWItYmc6ICN7JGJyZWFkY3J1bWItYmd9O1xuICAtLSN7JHByZWZpeH1icmVhZGNydW1iLWJvcmRlci1yYWRpdXM6ICN7JGJyZWFkY3J1bWItYm9yZGVyLXJhZGl1c307XG4gIC0tI3skcHJlZml4fWJyZWFkY3J1bWItZGl2aWRlci1jb2xvcjogI3skYnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yfTtcbiAgLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1pdGVtLXBhZGRpbmcteDogI3skYnJlYWRjcnVtYi1pdGVtLXBhZGRpbmcteH07XG4gIC0tI3skcHJlZml4fWJyZWFkY3J1bWItaXRlbS1hY3RpdmUtY29sb3I6ICN7JGJyZWFkY3J1bWItYWN0aXZlLWNvbG9yfTtcbiAgLy8gc2Nzcy1kb2NzLWVuZCBicmVhZGNydW1iLWNzcy12YXJzXG5cbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC13cmFwOiB3cmFwO1xuICBwYWRkaW5nOiB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1wYWRkaW5nLXkpIHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLXBhZGRpbmcteCk7XG4gIG1hcmdpbi1ib3R0b206IHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLW1hcmdpbi1ib3R0b20pO1xuICBAaW5jbHVkZSBmb250LXNpemUodmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItZm9udC1zaXplKSk7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG4gIGJhY2tncm91bmQtY29sb3I6IHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWJnKTtcbiAgQGluY2x1ZGUgYm9yZGVyLXJhZGl1cyh2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1ib3JkZXItcmFkaXVzKSk7XG59XG5cbi5icmVhZGNydW1iLWl0ZW0ge1xuICAvLyBUaGUgc2VwYXJhdG9yIGJldHdlZW4gYnJlYWRjcnVtYnMgKGJ5IGRlZmF1bHQsIGEgZm9yd2FyZC1zbGFzaDogXCIvXCIpXG4gICsgLmJyZWFkY3J1bWItaXRlbSB7XG4gICAgcGFkZGluZy1sZWZ0OiB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1pdGVtLXBhZGRpbmcteCk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgZmxvYXQ6IGxlZnQ7IC8vIFN1cHByZXNzIGlubGluZSBzcGFjaW5ncyBhbmQgdW5kZXJsaW5pbmcgb2YgdGhlIHNlcGFyYXRvclxuICAgICAgcGFkZGluZy1yaWdodDogdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItaXRlbS1wYWRkaW5nLXgpO1xuICAgICAgY29sb3I6IHZhcigtLSN7JHByZWZpeH1icmVhZGNydW1iLWRpdmlkZXItY29sb3IpO1xuICAgICAgY29udGVudDogdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItZGl2aWRlciwgZXNjYXBlLXN2ZygkYnJlYWRjcnVtYi1kaXZpZGVyKSkgI3tcIi8qIHJ0bDpcIn0gdmFyKC0tI3skcHJlZml4fWJyZWFkY3J1bWItZGl2aWRlciwgZXNjYXBlLXN2ZygkYnJlYWRjcnVtYi1kaXZpZGVyLWZsaXBwZWQpKSAje1wiKi9cIn07XG4gICAgfVxuICB9XG5cbiAgJi5hY3RpdmUge1xuICAgIGNvbG9yOiB2YXIoLS0jeyRwcmVmaXh9YnJlYWRjcnVtYi1pdGVtLWFjdGl2ZS1jb2xvcik7XG4gIH1cbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIHNjc3MvZGltZW5zaW9uLW5vLW5vbi1udW1lcmljLXZhbHVlc1xuXG4vLyBTQ1NTIFJGUyBtaXhpblxuLy9cbi8vIEF1dG9tYXRlZCByZXNwb25zaXZlIHZhbHVlcyBmb3IgZm9udCBzaXplcywgcGFkZGluZ3MsIG1hcmdpbnMgYW5kIG11Y2ggbW9yZVxuLy9cbi8vIExpY2Vuc2VkIHVuZGVyIE1JVCAoaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvcmZzL2Jsb2IvbWFpbi9MSUNFTlNFKVxuXG4vLyBDb25maWd1cmF0aW9uXG5cbi8vIEJhc2UgdmFsdWVcbiRyZnMtYmFzZS12YWx1ZTogMS4yNXJlbSAhZGVmYXVsdDtcbiRyZnMtdW5pdDogcmVtICFkZWZhdWx0O1xuXG5AaWYgJHJmcy11bml0ICE9IHJlbSBhbmQgJHJmcy11bml0ICE9IHB4IHtcbiAgQGVycm9yIFwiYCN7JHJmcy11bml0fWAgaXMgbm90IGEgdmFsaWQgdW5pdCBmb3IgJHJmcy11bml0LiBVc2UgYHB4YCBvciBgcmVtYC5cIjtcbn1cblxuLy8gQnJlYWtwb2ludCBhdCB3aGVyZSB2YWx1ZXMgc3RhcnQgZGVjcmVhc2luZyBpZiBzY3JlZW4gd2lkdGggaXMgc21hbGxlclxuJHJmcy1icmVha3BvaW50OiAxMjAwcHggIWRlZmF1bHQ7XG4kcmZzLWJyZWFrcG9pbnQtdW5pdDogcHggIWRlZmF1bHQ7XG5cbkBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdCAhPSBweCBhbmQgJHJmcy1icmVha3BvaW50LXVuaXQgIT0gZW0gYW5kICRyZnMtYnJlYWtwb2ludC11bml0ICE9IHJlbSB7XG4gIEBlcnJvciBcImAjeyRyZnMtYnJlYWtwb2ludC11bml0fWAgaXMgbm90IGEgdmFsaWQgdW5pdCBmb3IgJHJmcy1icmVha3BvaW50LXVuaXQuIFVzZSBgcHhgLCBgZW1gIG9yIGByZW1gLlwiO1xufVxuXG4vLyBSZXNpemUgdmFsdWVzIGJhc2VkIG9uIHNjcmVlbiBoZWlnaHQgYW5kIHdpZHRoXG4kcmZzLXR3by1kaW1lbnNpb25hbDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIEZhY3RvciBvZiBkZWNyZWFzZVxuJHJmcy1mYWN0b3I6IDEwICFkZWZhdWx0O1xuXG5AaWYgdHlwZS1vZigkcmZzLWZhY3RvcikgIT0gbnVtYmVyIG9yICRyZnMtZmFjdG9yIDw9IDEge1xuICBAZXJyb3IgXCJgI3skcmZzLWZhY3Rvcn1gIGlzIG5vdCBhIHZhbGlkICAkcmZzLWZhY3RvciwgaXQgbXVzdCBiZSBncmVhdGVyIHRoYW4gMS5cIjtcbn1cblxuLy8gTW9kZS4gUG9zc2liaWxpdGllczogXCJtaW4tbWVkaWEtcXVlcnlcIiwgXCJtYXgtbWVkaWEtcXVlcnlcIlxuJHJmcy1tb2RlOiBtaW4tbWVkaWEtcXVlcnkgIWRlZmF1bHQ7XG5cbi8vIEdlbmVyYXRlIGVuYWJsZSBvciBkaXNhYmxlIGNsYXNzZXMuIFBvc3NpYmlsaXRpZXM6IGZhbHNlLCBcImVuYWJsZVwiIG9yIFwiZGlzYWJsZVwiXG4kcmZzLWNsYXNzOiBmYWxzZSAhZGVmYXVsdDtcblxuLy8gMSByZW0gPSAkcmZzLXJlbS12YWx1ZSBweFxuJHJmcy1yZW0tdmFsdWU6IDE2ICFkZWZhdWx0O1xuXG4vLyBTYWZhcmkgaWZyYW1lIHJlc2l6ZSBidWc6IGh0dHBzOi8vZ2l0aHViLmNvbS90d2JzL3Jmcy9pc3N1ZXMvMTRcbiRyZnMtc2FmYXJpLWlmcmFtZS1yZXNpemUtYnVnLWZpeDogZmFsc2UgIWRlZmF1bHQ7XG5cbi8vIERpc2FibGUgUkZTIGJ5IHNldHRpbmcgJGVuYWJsZS1yZnMgdG8gZmFsc2VcbiRlbmFibGUtcmZzOiB0cnVlICFkZWZhdWx0O1xuXG4vLyBDYWNoZSAkcmZzLWJhc2UtdmFsdWUgdW5pdFxuJHJmcy1iYXNlLXZhbHVlLXVuaXQ6IHVuaXQoJHJmcy1iYXNlLXZhbHVlKTtcblxuQGZ1bmN0aW9uIGRpdmlkZSgkZGl2aWRlbmQsICRkaXZpc29yLCAkcHJlY2lzaW9uOiAxMCkge1xuICAkc2lnbjogaWYoJGRpdmlkZW5kID4gMCBhbmQgJGRpdmlzb3IgPiAwIG9yICRkaXZpZGVuZCA8IDAgYW5kICRkaXZpc29yIDwgMCwgMSwgLTEpO1xuICAkZGl2aWRlbmQ6IGFicygkZGl2aWRlbmQpO1xuICAkZGl2aXNvcjogYWJzKCRkaXZpc29yKTtcbiAgQGlmICRkaXZpZGVuZCA9PSAwIHtcbiAgICBAcmV0dXJuIDA7XG4gIH1cbiAgQGlmICRkaXZpc29yID09IDAge1xuICAgIEBlcnJvciBcIkNhbm5vdCBkaXZpZGUgYnkgMFwiO1xuICB9XG4gICRyZW1haW5kZXI6ICRkaXZpZGVuZDtcbiAgJHJlc3VsdDogMDtcbiAgJGZhY3RvcjogMTA7XG4gIEB3aGlsZSAoJHJlbWFpbmRlciA+IDAgYW5kICRwcmVjaXNpb24gPj0gMCkge1xuICAgICRxdW90aWVudDogMDtcbiAgICBAd2hpbGUgKCRyZW1haW5kZXIgPj0gJGRpdmlzb3IpIHtcbiAgICAgICRyZW1haW5kZXI6ICRyZW1haW5kZXIgLSAkZGl2aXNvcjtcbiAgICAgICRxdW90aWVudDogJHF1b3RpZW50ICsgMTtcbiAgICB9XG4gICAgJHJlc3VsdDogJHJlc3VsdCAqIDEwICsgJHF1b3RpZW50O1xuICAgICRmYWN0b3I6ICRmYWN0b3IgKiAuMTtcbiAgICAkcmVtYWluZGVyOiAkcmVtYWluZGVyICogMTA7XG4gICAgJHByZWNpc2lvbjogJHByZWNpc2lvbiAtIDE7XG4gICAgQGlmICgkcHJlY2lzaW9uIDwgMCBhbmQgJHJlbWFpbmRlciA+PSAkZGl2aXNvciAqIDUpIHtcbiAgICAgICRyZXN1bHQ6ICRyZXN1bHQgKyAxO1xuICAgIH1cbiAgfVxuICAkcmVzdWx0OiAkcmVzdWx0ICogJGZhY3RvciAqICRzaWduO1xuICAkZGl2aWRlbmQtdW5pdDogdW5pdCgkZGl2aWRlbmQpO1xuICAkZGl2aXNvci11bml0OiB1bml0KCRkaXZpc29yKTtcbiAgJHVuaXQtbWFwOiAoXG4gICAgXCJweFwiOiAxcHgsXG4gICAgXCJyZW1cIjogMXJlbSxcbiAgICBcImVtXCI6IDFlbSxcbiAgICBcIiVcIjogMSVcbiAgKTtcbiAgQGlmICgkZGl2aWRlbmQtdW5pdCAhPSAkZGl2aXNvci11bml0IGFuZCBtYXAtaGFzLWtleSgkdW5pdC1tYXAsICRkaXZpZGVuZC11bml0KSkge1xuICAgICRyZXN1bHQ6ICRyZXN1bHQgKiBtYXAtZ2V0KCR1bml0LW1hcCwgJGRpdmlkZW5kLXVuaXQpO1xuICB9XG4gIEByZXR1cm4gJHJlc3VsdDtcbn1cblxuLy8gUmVtb3ZlIHB4LXVuaXQgZnJvbSAkcmZzLWJhc2UtdmFsdWUgZm9yIGNhbGN1bGF0aW9uc1xuQGlmICRyZnMtYmFzZS12YWx1ZS11bml0ID09IHB4IHtcbiAgJHJmcy1iYXNlLXZhbHVlOiBkaXZpZGUoJHJmcy1iYXNlLXZhbHVlLCAkcmZzLWJhc2UtdmFsdWUgKiAwICsgMSk7XG59XG5AZWxzZSBpZiAkcmZzLWJhc2UtdmFsdWUtdW5pdCA9PSByZW0ge1xuICAkcmZzLWJhc2UtdmFsdWU6IGRpdmlkZSgkcmZzLWJhc2UtdmFsdWUsIGRpdmlkZSgkcmZzLWJhc2UtdmFsdWUgKiAwICsgMSwgJHJmcy1yZW0tdmFsdWUpKTtcbn1cblxuLy8gQ2FjaGUgJHJmcy1icmVha3BvaW50IHVuaXQgdG8gcHJldmVudCBtdWx0aXBsZSBjYWxsc1xuJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGU6IHVuaXQoJHJmcy1icmVha3BvaW50KTtcblxuLy8gUmVtb3ZlIHVuaXQgZnJvbSAkcmZzLWJyZWFrcG9pbnQgZm9yIGNhbGN1bGF0aW9uc1xuQGlmICRyZnMtYnJlYWtwb2ludC11bml0LWNhY2hlID09IHB4IHtcbiAgJHJmcy1icmVha3BvaW50OiBkaXZpZGUoJHJmcy1icmVha3BvaW50LCAkcmZzLWJyZWFrcG9pbnQgKiAwICsgMSk7XG59XG5AZWxzZSBpZiAkcmZzLWJyZWFrcG9pbnQtdW5pdC1jYWNoZSA9PSByZW0gb3IgJHJmcy1icmVha3BvaW50LXVuaXQtY2FjaGUgPT0gXCJlbVwiIHtcbiAgJHJmcy1icmVha3BvaW50OiBkaXZpZGUoJHJmcy1icmVha3BvaW50LCBkaXZpZGUoJHJmcy1icmVha3BvaW50ICogMCArIDEsICRyZnMtcmVtLXZhbHVlKSk7XG59XG5cbi8vIENhbGN1bGF0ZSB0aGUgbWVkaWEgcXVlcnkgdmFsdWVcbiRyZnMtbXEtdmFsdWU6IGlmKCRyZnMtYnJlYWtwb2ludC11bml0ID09IHB4LCAjeyRyZnMtYnJlYWtwb2ludH1weCwgI3tkaXZpZGUoJHJmcy1icmVha3BvaW50LCAkcmZzLXJlbS12YWx1ZSl9I3skcmZzLWJyZWFrcG9pbnQtdW5pdH0pO1xuJHJmcy1tcS1wcm9wZXJ0eS13aWR0aDogaWYoJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSwgbWF4LXdpZHRoLCBtaW4td2lkdGgpO1xuJHJmcy1tcS1wcm9wZXJ0eS1oZWlnaHQ6IGlmKCRyZnMtbW9kZSA9PSBtYXgtbWVkaWEtcXVlcnksIG1heC1oZWlnaHQsIG1pbi1oZWlnaHQpO1xuXG4vLyBJbnRlcm5hbCBtaXhpbiB1c2VkIHRvIGRldGVybWluZSB3aGljaCBtZWRpYSBxdWVyeSBuZWVkcyB0byBiZSB1c2VkXG5AbWl4aW4gX3Jmcy1tZWRpYS1xdWVyeSB7XG4gIEBpZiAkcmZzLXR3by1kaW1lbnNpb25hbCB7XG4gICAgQGlmICRyZnMtbW9kZSA9PSBtYXgtbWVkaWEtcXVlcnkge1xuICAgICAgQG1lZGlhICgjeyRyZnMtbXEtcHJvcGVydHktd2lkdGh9OiAjeyRyZnMtbXEtdmFsdWV9KSwgKCN7JHJmcy1tcS1wcm9wZXJ0eS1oZWlnaHR9OiAjeyRyZnMtbXEtdmFsdWV9KSB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgICBAZWxzZSB7XG4gICAgICBAbWVkaWEgKCN7JHJmcy1tcS1wcm9wZXJ0eS13aWR0aH06ICN7JHJmcy1tcS12YWx1ZX0pIGFuZCAoI3skcmZzLW1xLXByb3BlcnR5LWhlaWdodH06ICN7JHJmcy1tcS12YWx1ZX0pIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIEBlbHNlIHtcbiAgICBAbWVkaWEgKCN7JHJmcy1tcS1wcm9wZXJ0eS13aWR0aH06ICN7JHJmcy1tcS12YWx1ZX0pIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBJbnRlcm5hbCBtaXhpbiB0aGF0IGFkZHMgZGlzYWJsZSBjbGFzc2VzIHRvIHRoZSBzZWxlY3RvciBpZiBuZWVkZWQuXG5AbWl4aW4gX3Jmcy1ydWxlIHtcbiAgQGlmICRyZnMtY2xhc3MgPT0gZGlzYWJsZSBhbmQgJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSB7XG4gICAgLy8gQWRkaW5nIGFuIGV4dHJhIGNsYXNzIGluY3JlYXNlcyBzcGVjaWZpY2l0eSwgd2hpY2ggcHJldmVudHMgdGhlIG1lZGlhIHF1ZXJ5IHRvIG92ZXJyaWRlIHRoZSBwcm9wZXJ0eVxuICAgICYsXG4gICAgLmRpc2FibGUtcmZzICYsXG4gICAgJi5kaXNhYmxlLXJmcyB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbiAgQGVsc2UgaWYgJHJmcy1jbGFzcyA9PSBlbmFibGUgYW5kICRyZnMtbW9kZSA9PSBtaW4tbWVkaWEtcXVlcnkge1xuICAgIC5lbmFibGUtcmZzICYsXG4gICAgJi5lbmFibGUtcmZzIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSB7XG4gICAgQGNvbnRlbnQ7XG4gIH1cbn1cblxuLy8gSW50ZXJuYWwgbWl4aW4gdGhhdCBhZGRzIGVuYWJsZSBjbGFzc2VzIHRvIHRoZSBzZWxlY3RvciBpZiBuZWVkZWQuXG5AbWl4aW4gX3Jmcy1tZWRpYS1xdWVyeS1ydWxlIHtcblxuICBAaWYgJHJmcy1jbGFzcyA9PSBlbmFibGUge1xuICAgIEBpZiAkcmZzLW1vZGUgPT0gbWluLW1lZGlhLXF1ZXJ5IHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cblxuICAgIEBpbmNsdWRlIF9yZnMtbWVkaWEtcXVlcnkgKCkge1xuICAgICAgLmVuYWJsZS1yZnMgJixcbiAgICAgICYuZW5hYmxlLXJmcyB7XG4gICAgICAgIEBjb250ZW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBAZWxzZSB7XG4gICAgQGlmICRyZnMtY2xhc3MgPT0gZGlzYWJsZSBhbmQgJHJmcy1tb2RlID09IG1pbi1tZWRpYS1xdWVyeSB7XG4gICAgICAuZGlzYWJsZS1yZnMgJixcbiAgICAgICYuZGlzYWJsZS1yZnMge1xuICAgICAgICBAY29udGVudDtcbiAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgX3Jmcy1tZWRpYS1xdWVyeSAoKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH1cbn1cblxuLy8gSGVscGVyIGZ1bmN0aW9uIHRvIGdldCB0aGUgZm9ybWF0dGVkIG5vbi1yZXNwb25zaXZlIHZhbHVlXG5AZnVuY3Rpb24gcmZzLXZhbHVlKCR2YWx1ZXMpIHtcbiAgLy8gQ29udmVydCB0byBsaXN0XG4gICR2YWx1ZXM6IGlmKHR5cGUtb2YoJHZhbHVlcykgIT0gbGlzdCwgKCR2YWx1ZXMsKSwgJHZhbHVlcyk7XG5cbiAgJHZhbDogXCJcIjtcblxuICAvLyBMb29wIG92ZXIgZWFjaCB2YWx1ZSBhbmQgY2FsY3VsYXRlIHZhbHVlXG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcbiAgICBAaWYgJHZhbHVlID09IDAge1xuICAgICAgJHZhbDogJHZhbCArIFwiIDBcIjtcbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgLy8gQ2FjaGUgJHZhbHVlIHVuaXRcbiAgICAgICR1bml0OiBpZih0eXBlLW9mKCR2YWx1ZSkgPT0gXCJudW1iZXJcIiwgdW5pdCgkdmFsdWUpLCBmYWxzZSk7XG5cbiAgICAgIEBpZiAkdW5pdCA9PSBweCB7XG4gICAgICAgIC8vIENvbnZlcnQgdG8gcmVtIGlmIG5lZWRlZFxuICAgICAgICAkdmFsOiAkdmFsICsgXCIgXCIgKyBpZigkcmZzLXVuaXQgPT0gcmVtLCAje2RpdmlkZSgkdmFsdWUsICR2YWx1ZSAqIDAgKyAkcmZzLXJlbS12YWx1ZSl9cmVtLCAkdmFsdWUpO1xuICAgICAgfVxuICAgICAgQGVsc2UgaWYgJHVuaXQgPT0gcmVtIHtcbiAgICAgICAgLy8gQ29udmVydCB0byBweCBpZiBuZWVkZWRcbiAgICAgICAgJHZhbDogJHZhbCArIFwiIFwiICsgaWYoJHJmcy11bml0ID09IHB4LCAje2RpdmlkZSgkdmFsdWUsICR2YWx1ZSAqIDAgKyAxKSAqICRyZnMtcmVtLXZhbHVlfXB4LCAkdmFsdWUpO1xuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIC8vIElmICR2YWx1ZSBpc24ndCBhIG51bWJlciAobGlrZSBpbmhlcml0KSBvciAkdmFsdWUgaGFzIGEgdW5pdCAobm90IHB4IG9yIHJlbSwgbGlrZSAxLjVlbSkgb3IgJCBpcyAwLCBqdXN0IHByaW50IHRoZSB2YWx1ZVxuICAgICAgICAkdmFsOiAkdmFsICsgXCIgXCIgKyAkdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUmVtb3ZlIGZpcnN0IHNwYWNlXG4gIEByZXR1cm4gdW5xdW90ZShzdHItc2xpY2UoJHZhbCwgMikpO1xufVxuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSByZXNwb25zaXZlIHZhbHVlIGNhbGN1bGF0ZWQgYnkgUkZTXG5AZnVuY3Rpb24gcmZzLWZsdWlkLXZhbHVlKCR2YWx1ZXMpIHtcbiAgLy8gQ29udmVydCB0byBsaXN0XG4gICR2YWx1ZXM6IGlmKHR5cGUtb2YoJHZhbHVlcykgIT0gbGlzdCwgKCR2YWx1ZXMsKSwgJHZhbHVlcyk7XG5cbiAgJHZhbDogXCJcIjtcblxuICAvLyBMb29wIG92ZXIgZWFjaCB2YWx1ZSBhbmQgY2FsY3VsYXRlIHZhbHVlXG4gIEBlYWNoICR2YWx1ZSBpbiAkdmFsdWVzIHtcbiAgICBAaWYgJHZhbHVlID09IDAge1xuICAgICAgJHZhbDogJHZhbCArIFwiIDBcIjtcbiAgICB9IEBlbHNlIHtcbiAgICAgIC8vIENhY2hlICR2YWx1ZSB1bml0XG4gICAgICAkdW5pdDogaWYodHlwZS1vZigkdmFsdWUpID09IFwibnVtYmVyXCIsIHVuaXQoJHZhbHVlKSwgZmFsc2UpO1xuXG4gICAgICAvLyBJZiAkdmFsdWUgaXNuJ3QgYSBudW1iZXIgKGxpa2UgaW5oZXJpdCkgb3IgJHZhbHVlIGhhcyBhIHVuaXQgKG5vdCBweCBvciByZW0sIGxpa2UgMS41ZW0pIG9yICQgaXMgMCwganVzdCBwcmludCB0aGUgdmFsdWVcbiAgICAgIEBpZiBub3QgJHVuaXQgb3IgJHVuaXQgIT0gcHggYW5kICR1bml0ICE9IHJlbSB7XG4gICAgICAgICR2YWw6ICR2YWwgKyBcIiBcIiArICR2YWx1ZTtcbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICAvLyBSZW1vdmUgdW5pdCBmcm9tICR2YWx1ZSBmb3IgY2FsY3VsYXRpb25zXG4gICAgICAgICR2YWx1ZTogZGl2aWRlKCR2YWx1ZSwgJHZhbHVlICogMCArIGlmKCR1bml0ID09IHB4LCAxLCBkaXZpZGUoMSwgJHJmcy1yZW0tdmFsdWUpKSk7XG5cbiAgICAgICAgLy8gT25seSBhZGQgdGhlIG1lZGlhIHF1ZXJ5IGlmIHRoZSB2YWx1ZSBpcyBncmVhdGVyIHRoYW4gdGhlIG1pbmltdW0gdmFsdWVcbiAgICAgICAgQGlmIGFicygkdmFsdWUpIDw9ICRyZnMtYmFzZS12YWx1ZSBvciBub3QgJGVuYWJsZS1yZnMge1xuICAgICAgICAgICR2YWw6ICR2YWwgKyBcIiBcIiArIGlmKCRyZnMtdW5pdCA9PSByZW0sICN7ZGl2aWRlKCR2YWx1ZSwgJHJmcy1yZW0tdmFsdWUpfXJlbSwgI3skdmFsdWV9cHgpO1xuICAgICAgICB9XG4gICAgICAgIEBlbHNlIHtcbiAgICAgICAgICAvLyBDYWxjdWxhdGUgdGhlIG1pbmltdW0gdmFsdWVcbiAgICAgICAgICAkdmFsdWUtbWluOiAkcmZzLWJhc2UtdmFsdWUgKyBkaXZpZGUoYWJzKCR2YWx1ZSkgLSAkcmZzLWJhc2UtdmFsdWUsICRyZnMtZmFjdG9yKTtcblxuICAgICAgICAgIC8vIENhbGN1bGF0ZSBkaWZmZXJlbmNlIGJldHdlZW4gJHZhbHVlIGFuZCB0aGUgbWluaW11bSB2YWx1ZVxuICAgICAgICAgICR2YWx1ZS1kaWZmOiBhYnMoJHZhbHVlKSAtICR2YWx1ZS1taW47XG5cbiAgICAgICAgICAvLyBCYXNlIHZhbHVlIGZvcm1hdHRpbmdcbiAgICAgICAgICAkbWluLXdpZHRoOiBpZigkcmZzLXVuaXQgPT0gcmVtLCAje2RpdmlkZSgkdmFsdWUtbWluLCAkcmZzLXJlbS12YWx1ZSl9cmVtLCAjeyR2YWx1ZS1taW59cHgpO1xuXG4gICAgICAgICAgLy8gVXNlIG5lZ2F0aXZlIHZhbHVlIGlmIG5lZWRlZFxuICAgICAgICAgICRtaW4td2lkdGg6IGlmKCR2YWx1ZSA8IDAsIC0kbWluLXdpZHRoLCAkbWluLXdpZHRoKTtcblxuICAgICAgICAgIC8vIFVzZSBgdm1pbmAgaWYgdHdvLWRpbWVuc2lvbmFsIGlzIGVuYWJsZWRcbiAgICAgICAgICAkdmFyaWFibGUtdW5pdDogaWYoJHJmcy10d28tZGltZW5zaW9uYWwsIHZtaW4sIHZ3KTtcblxuICAgICAgICAgIC8vIENhbGN1bGF0ZSB0aGUgdmFyaWFibGUgd2lkdGggYmV0d2VlbiAwIGFuZCAkcmZzLWJyZWFrcG9pbnRcbiAgICAgICAgICAkdmFyaWFibGUtd2lkdGg6ICN7ZGl2aWRlKCR2YWx1ZS1kaWZmICogMTAwLCAkcmZzLWJyZWFrcG9pbnQpfSN7JHZhcmlhYmxlLXVuaXR9O1xuXG4gICAgICAgICAgLy8gUmV0dXJuIHRoZSBjYWxjdWxhdGVkIHZhbHVlXG4gICAgICAgICAgJHZhbDogJHZhbCArIFwiIGNhbGMoXCIgKyAkbWluLXdpZHRoICsgaWYoJHZhbHVlIDwgMCwgXCIgLSBcIiwgXCIgKyBcIikgKyAkdmFyaWFibGUtd2lkdGggKyBcIilcIjtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFJlbW92ZSBmaXJzdCBzcGFjZVxuICBAcmV0dXJuIHVucXVvdGUoc3RyLXNsaWNlKCR2YWwsIDIpKTtcbn1cblxuLy8gUkZTIG1peGluXG5AbWl4aW4gcmZzKCR2YWx1ZXMsICRwcm9wZXJ0eTogZm9udC1zaXplKSB7XG4gIEBpZiAkdmFsdWVzICE9IG51bGwge1xuICAgICR2YWw6IHJmcy12YWx1ZSgkdmFsdWVzKTtcbiAgICAkZmx1aWQtdmFsOiByZnMtZmx1aWQtdmFsdWUoJHZhbHVlcyk7XG5cbiAgICAvLyBEbyBub3QgcHJpbnQgdGhlIG1lZGlhIHF1ZXJ5IGlmIHJlc3BvbnNpdmUgJiBub24tcmVzcG9uc2l2ZSB2YWx1ZXMgYXJlIHRoZSBzYW1lXG4gICAgQGlmICR2YWwgPT0gJGZsdWlkLXZhbCB7XG4gICAgICAjeyRwcm9wZXJ0eX06ICR2YWw7XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgIEBpbmNsdWRlIF9yZnMtcnVsZSAoKSB7XG4gICAgICAgICN7JHByb3BlcnR5fTogaWYoJHJmcy1tb2RlID09IG1heC1tZWRpYS1xdWVyeSwgJHZhbCwgJGZsdWlkLXZhbCk7XG5cbiAgICAgICAgLy8gSW5jbHVkZSBzYWZhcmkgaWZyYW1lIHJlc2l6ZSBmaXggaWYgbmVlZGVkXG4gICAgICAgIG1pbi13aWR0aDogaWYoJHJmcy1zYWZhcmktaWZyYW1lLXJlc2l6ZS1idWctZml4LCAoMCAqIDF2dyksIG51bGwpO1xuICAgICAgfVxuXG4gICAgICBAaW5jbHVkZSBfcmZzLW1lZGlhLXF1ZXJ5LXJ1bGUgKCkge1xuICAgICAgICAjeyRwcm9wZXJ0eX06IGlmKCRyZnMtbW9kZSA9PSBtYXgtbWVkaWEtcXVlcnksICRmbHVpZC12YWwsICR2YWwpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vLyBTaG9ydGhhbmQgaGVscGVyIG1peGluc1xuQG1peGluIGZvbnQtc2l6ZSgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSk7XG59XG5cbkBtaXhpbiBwYWRkaW5nKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nKTtcbn1cblxuQG1peGluIHBhZGRpbmctdG9wKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nLXRvcCk7XG59XG5cbkBtaXhpbiBwYWRkaW5nLXJpZ2h0KCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nLXJpZ2h0KTtcbn1cblxuQG1peGluIHBhZGRpbmctYm90dG9tKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBwYWRkaW5nLWJvdHRvbSk7XG59XG5cbkBtaXhpbiBwYWRkaW5nLWxlZnQoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIHBhZGRpbmctbGVmdCk7XG59XG5cbkBtaXhpbiBtYXJnaW4oJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbik7XG59XG5cbkBtaXhpbiBtYXJnaW4tdG9wKCR2YWx1ZSkge1xuICBAaW5jbHVkZSByZnMoJHZhbHVlLCBtYXJnaW4tdG9wKTtcbn1cblxuQG1peGluIG1hcmdpbi1yaWdodCgkdmFsdWUpIHtcbiAgQGluY2x1ZGUgcmZzKCR2YWx1ZSwgbWFyZ2luLXJpZ2h0KTtcbn1cblxuQG1peGluIG1hcmdpbi1ib3R0b20oJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbi1ib3R0b20pO1xufVxuXG5AbWl4aW4gbWFyZ2luLWxlZnQoJHZhbHVlKSB7XG4gIEBpbmNsdWRlIHJmcygkdmFsdWUsIG1hcmdpbi1sZWZ0KTtcbn1cbiIsIi8vIHN0eWxlbGludC1kaXNhYmxlIHByb3BlcnR5LWRpc2FsbG93ZWQtbGlzdFxuLy8gU2luZ2xlIHNpZGUgYm9yZGVyLXJhZGl1c1xuXG4vLyBIZWxwZXIgZnVuY3Rpb24gdG8gcmVwbGFjZSBuZWdhdGl2ZSB2YWx1ZXMgd2l0aCAwXG5AZnVuY3Rpb24gdmFsaWQtcmFkaXVzKCRyYWRpdXMpIHtcbiAgJHJldHVybjogKCk7XG4gIEBlYWNoICR2YWx1ZSBpbiAkcmFkaXVzIHtcbiAgICBAaWYgdHlwZS1vZigkdmFsdWUpID09IG51bWJlciB7XG4gICAgICAkcmV0dXJuOiBhcHBlbmQoJHJldHVybiwgbWF4KCR2YWx1ZSwgMCkpO1xuICAgIH0gQGVsc2Uge1xuICAgICAgJHJldHVybjogYXBwZW5kKCRyZXR1cm4sICR2YWx1ZSk7XG4gICAgfVxuICB9XG4gIEByZXR1cm4gJHJldHVybjtcbn1cblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGJvcmRlci1yYWRpdXMtbWl4aW5zXG5AbWl4aW4gYm9yZGVyLXJhZGl1cygkcmFkaXVzOiAkYm9yZGVyLXJhZGl1cywgJGZhbGxiYWNrLWJvcmRlci1yYWRpdXM6IGZhbHNlKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxuICBAZWxzZSBpZiAkZmFsbGJhY2stYm9yZGVyLXJhZGl1cyAhPSBmYWxzZSB7XG4gICAgYm9yZGVyLXJhZGl1czogJGZhbGxiYWNrLWJvcmRlci1yYWRpdXM7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci10b3AtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItZW5kLXJhZGl1cygkcmFkaXVzOiAkYm9yZGVyLXJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItdG9wLXJpZ2h0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItc3RhcnQtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci10b3Atc3RhcnQtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IHZhbGlkLXJhZGl1cygkcmFkaXVzKTtcbiAgfVxufVxuXG5AbWl4aW4gYm9yZGVyLXRvcC1lbmQtcmFkaXVzKCRyYWRpdXM6ICRib3JkZXItcmFkaXVzKSB7XG4gIEBpZiAkZW5hYmxlLXJvdW5kZWQge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cblxuQG1peGluIGJvcmRlci1ib3R0b20tZW5kLXJhZGl1cygkcmFkaXVzOiAkYm9yZGVyLXJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogdmFsaWQtcmFkaXVzKCRyYWRpdXMpO1xuICB9XG59XG5cbkBtaXhpbiBib3JkZXItYm90dG9tLXN0YXJ0LXJhZGl1cygkcmFkaXVzOiAkYm9yZGVyLXJhZGl1cykge1xuICBAaWYgJGVuYWJsZS1yb3VuZGVkIHtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiB2YWxpZC1yYWRpdXMoJHJhZGl1cyk7XG4gIH1cbn1cbi8vIHNjc3MtZG9jcy1lbmQgYm9yZGVyLXJhZGl1cy1taXhpbnNcbiIsIkBpbXBvcnQgXCJ+Ym9vdHN0cmFwL3Njc3MvYnJlYWRjcnVtYlwiO1xuXG4uYnJlYWRjcnVtYnMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIG1heC13aWR0aDogMTAwdnc7XG4gIG1hcmdpbi1yaWdodDogY2FsYygjeyRjb250YWluZXItcGFkZGluZy14fSAqIC0xKTtcbiAgbWFyZ2luLWxlZnQ6IGNhbGMoI3skY29udGFpbmVyLXBhZGRpbmcteH0gKiAtMSk7XG5cbiAgLmJyZWFkY3J1bWIge1xuICAgIGZsZXgtd3JhcDogbm93cmFwO1xuICAgIHBhZGRpbmc6ICRjb250YWluZXItcGFkZGluZy14O1xuICAgIG1hcmdpbjogdW5zZXQ7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICB0b3A6IDA7XG4gICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgIGhlaWdodDogMTAwJTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgICAgY29udGVudDogXCJcIjtcbiAgICB9XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgbGVmdDogMDtcbiAgICAgIHdpZHRoOiAxcmVtO1xuICAgICAgYmFja2dyb3VuZC1pbWFnZTogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB2YXIoLS1hbHBoYS1icmVhZGNydW1icy1tb2JpbGUtc2hhZG93LWNvbG9yKSAwLCB2YXIoLS1hbHBoYS1icmVhZGNydW1icy1tb2JpbGUtc2hhZG93LWNvbG9yLWVuZCkpO1xuICAgIH1cblxuICAgICY6OmFmdGVyIHtcbiAgICAgIHJpZ2h0OiAwO1xuICAgICAgd2lkdGg6IDJyZW07XG4gICAgICBiYWNrZ3JvdW5kLWltYWdlOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHZhcigtLWFscGhhLWJyZWFkY3J1bWJzLW1vYmlsZS1zaGFkb3ctY29sb3ItZW5kKSAwLCB2YXIoLS1hbHBoYS1icmVhZGNydW1icy1tb2JpbGUtc2hhZG93LWNvbG9yKSk7XG4gICAgfVxuICB9XG5cbiAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cChtZCkge1xuICAgIC5icmVhZGNydW1iIHtcbiAgICAgICY6OmJlZm9yZSxcbiAgICAgICY6OmFmdGVyIHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAmLm9uLWZlYXR1cmVkIHtcbiAgICAtLWFscGhhLWJyZWFkY3J1bWJzLW1vYmlsZS1zaGFkb3ctY29sb3I6ICN7JGJyZWFkY3J1bWItb24tZmVhdHVyZWQtbW9iaWxlLXNoYWRvdy1jb2xvcn07XG4gICAgLS1hbHBoYS1icmVhZGNydW1icy1tb2JpbGUtc2hhZG93LWNvbG9yLWVuZDogI3tyZ2JhKCRicmVhZGNydW1iLW9uLWZlYXR1cmVkLW1vYmlsZS1zaGFkb3ctY29sb3IsIDApfTtcbiAgICB0b3A6IHZhcigtLWZlYXR1cmVkLWltYWdlLWhlaWdodCk7XG4gICAgei1pbmRleDogMTA7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xMDAlKTtcblxuICAgIC5icmVhZGNydW1iIHtcbiAgICAgIC0tYnMtYnJlYWRjcnVtYi1kaXZpZGVyLWNvbG9yOiBjdXJyZW50Y29sb3I7XG4gICAgICAtLWJzLWJyZWFkY3J1bWItaXRlbS1hY3RpdmUtY29sb3I6IGN1cnJlbnRjb2xvcjtcblxuICAgICAgJjo6YmVmb3JlLFxuICAgICAgJjo6YWZ0ZXIge1xuICAgICAgICBvcGFjaXR5OiAuNzU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbi5icmVhZGNydW1icy1vbi1mZWF0dXJlZCB7XG4gICY6bm90KC5oYXMtdHJhbnNwYXJlbnQtaGVhZGVyKSB7XG4gICAgLmJyZWFkY3J1bWJzIHtcbiAgICAgIHRvcDogY2FsYyh2YXIoLS1oZWFkZXItaGVpZ2h0KSArIHZhcigtLWZlYXR1cmVkLWltYWdlLWhlaWdodCkpO1xuICAgICAgdHJhbnNpdGlvbjogdG9wIC4zcyBlYXNlO1xuICAgIH1cbiAgfVxuXG4gICYuc2VhcmNoIHtcbiAgICAuY29udGVudC13cmFwcGVyIHtcbiAgICAgIHBhZGRpbmctdG9wOiBtYXAtZ2V0KCRzcGFjZXJzLCA4KTtcbiAgICB9XG4gIH1cbn1cblxuLmJyZWFkY3J1bWItaXRlbSB7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgKyAuYnJlYWRjcnVtYi1pdGVtIHtcbiAgICBAaW5jbHVkZSBmb250LWF3ZXNvbWUtYmVmb3JlKCRmYS12YXItYW5nbGUtcmlnaHQsIGZhbHNlLCBcImxpZ2h0XCIsIDApO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGZsb2F0OiB1bnNldDtcbiAgICAgIHBhZGRpbmctcmlnaHQ6IC4yNXJlbTtcbiAgICB9XG4gIH1cblxuICAmLmFjdGl2ZSB7XG4gICAgc3BhbiB7XG4gICAgICBmb250LXdlaWdodDogNzAwO1xuICAgIH1cbiAgfVxufVxuIiwiQGltcG9ydCBcIn5ib290c3RyYXAvc2Nzcy9mdW5jdGlvbnNcIjtcbkBpbXBvcnQgXCJ+QGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXByby9zY3NzL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIn5AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtcHJvL3Njc3MvdmFyaWFibGVzXCI7XG5cbiR0aGVtZS1hc3NldC1wYXRoOiBcIi4uL2ltYWdlc1wiICFkZWZhdWx0O1xuJGZvbnRzLXBhdGg6IFwiZm9udHNcIiAhZGVmYXVsdDtcblxuLy8tLS0tLS0gQ29sb3Igc3lzdGVtXG4kd2hpdGU6ICNmZmYgIWRlZmF1bHQ7XG4kZ3JheS0xMDA6ICNmN2Y3ZjcgIWRlZmF1bHQ7XG4kZ3JheS0yMDA6ICNlOWVjZWYgIWRlZmF1bHQ7XG4kZ3JheS01MDA6ICM5ZDlkOWQgIWRlZmF1bHQ7XG4kZ3JheS02MDA6ICM2Yzc1N2QgIWRlZmF1bHQ7XG4kZ3JheS03MDA6ICM0OTUwNTcgIWRlZmF1bHQ7XG4kZ3JheS05MDA6ICMwYTBhMGEgIWRlZmF1bHQ7XG4kYmxhY2s6ICMwMDAgIWRlZmF1bHQ7XG4kbmVtYXRpcy12aW9sZXQ6ICM3MTE5NmYgIWRlZmF1bHQ7XG5cbi8vIHNjc3MtZG9jcy1zdGFydCBjb2xvci12YXJpYWJsZXNcbiRibHVlOiAjMDA1ZGFhICFkZWZhdWx0O1xuJHB1cnBsZTogIzcwMWU2ZSAhZGVmYXVsdDtcbiRncmVlbjogIzAxYWUzYyAhZGVmYXVsdDtcbiRyZWQ6ICNkYzM1NDUgIWRlZmF1bHQ7XG4keWVsbG93OiAjZmZjMTA3ICFkZWZhdWx0O1xuJGN5YW46ICMwZGNhZjAgIWRlZmF1bHQ7XG5cbi8vIHNjc3MtZG9jcy1zdGFydCBjb2xvcnMtbWFwXG4kY29sb3JzOiAoXG4gIFwiYmx1ZVwiOiAkYmx1ZSxcbiAgXCJwdXJwbGVcIjogJHB1cnBsZSxcbiAgXCJncmVlblwiOiAkZ3JlZW4sXG4gIFwid2hpdGVcIjogJHdoaXRlLFxuICBcImdyYXktMTAwXCI6ICRncmF5LTEwMCxcbiAgXCJncmF5LTUwMFwiOiAkZ3JheS01MDAsXG4gIFwiZ3JheS05MDBcIjogJGdyYXktOTAwXG4pICFkZWZhdWx0O1xuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgdGhlbWUtY29sb3ItdmFyaWFibGVzXG4kc3VjY2VzczogJGdyZWVuICFkZWZhdWx0O1xuJGluZm86ICRjeWFuICFkZWZhdWx0O1xuJHdhcm5pbmc6ICR5ZWxsb3cgIWRlZmF1bHQ7XG4kZGFuZ2VyOiAkcmVkICFkZWZhdWx0O1xuJGxpZ2h0OiAkZ3JheS0xMDAgIWRlZmF1bHQ7XG4kZGFyazogJGdyYXktOTAwICFkZWZhdWx0O1xuXG4vLyBzY3NzLWRvY3Mtc3RhcnQgdGhlbWUtY29sb3JzLW1hcFxuJGRlZmF1bHQtdGhlbWUtY29sb3JzOiAoXG4gIFwicHJpbWFyeVwiOiAkcHJpbWFyeSxcbiAgXCJzZWNvbmRhcnlcIjogJHNlY29uZGFyeSxcbiAgXCJzdWNjZXNzXCI6ICRzdWNjZXNzLFxuICBcImluZm9cIjogJGluZm8sXG4gIFwid2FybmluZ1wiOiAkd2FybmluZyxcbiAgXCJkYW5nZXJcIjogJGRhbmdlcixcbiAgXCJsaWdodFwiOiAkbGlnaHQsXG4gIFwiZGFya1wiOiAkZGFya1xuKSAhZGVmYXVsdDtcbiR0aGVtZS1jb2xvcnM6ICgpICFkZWZhdWx0O1xuJHRoZW1lLWNvbG9yczogbWFwLW1lcmdlKCRkZWZhdWx0LXRoZW1lLWNvbG9ycywgJHRoZW1lLWNvbG9ycyk7XG5cbi8vIFRoZSBjb250cmFzdCByYXRpbyB0byByZWFjaCBhZ2FpbnN0IHdoaXRlLCB0byBkZXRlcm1pbmUgaWYgY29sb3IgY2hhbmdlcyBmcm9tIFwibGlnaHRcIiB0byBcImRhcmtcIi4gQWNjZXB0YWJsZSB2YWx1ZXMgZm9yIFdDQUcgMi4wIGFyZSAzLCA0LjUgYW5kIDcuXG4kbWluLWNvbnRyYXN0LXJhdGlvOiA0LjUgIWRlZmF1bHQ7XG5cbi8vIEN1c3RvbWl6ZSB0aGUgbGlnaHQgYW5kIGRhcmsgdGV4dCBjb2xvcnMgZm9yIHVzZSBpbiBvdXIgY29sb3IgY29udHJhc3QgZnVuY3Rpb24uXG4kY29sb3ItY29udHJhc3QtZGFyazogJGdyYXktOTAwICFkZWZhdWx0O1xuJGNvbG9yLWNvbnRyYXN0LWxpZ2h0OiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIE9wdGlvbnNcbiRlbmFibGUtbmVnYXRpdmUtbWFyZ2luczogdHJ1ZSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gU3BhY2luZ1xuJHNwYWNlcjogMXJlbSAhZGVmYXVsdDtcbiRzcGFjZXJzOiAoXG4gIDA6IDAsXG4gIDE6ICRzcGFjZXIgKiAuMjUsIC8vIDRweFxuICAyOiAkc3BhY2VyICogLjUsIC8vIDhweFxuICAzOiAkc3BhY2VyICogLjc1LCAvLyAxMnB4XG4gIDQ6ICRzcGFjZXIsIC8vIDE2cHhcbiAgNTogJHNwYWNlciAqIDEuMjUsIC8vIDIwcHhcbiAgNjogJHNwYWNlciAqIDEuNSwgLy8gMjRweFxuICA3OiAkc3BhY2VyICogMS43NSwgLy8gMjhweFxuICA4OiAkc3BhY2VyICogMiwgLy8gMzJweFxuICA5OiAkc3BhY2VyICogMywgLy8gNDhweFxuICAxMDogJHNwYWNlciAqIDQsIC8vIDY0cHhcbiAgMTE6ICRzcGFjZXIgKiA1IC8vIDgwcHhcbikgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIERhcmsgU3R5bGVcbiRkYXJrLWJnLWNvbG9yOiAkYm9keS1jb2xvciAhZGVmYXVsdDtcbiRkYXJrLXR4dC1jb2xvcjogJGJvZHktYmcgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIExpZ2h0IFN0eWxlXG4kbGlnaHQtYmctY29sb3I6ICRkYXJrLXR4dC1jb2xvciAhZGVmYXVsdDtcbiRsaWdodC10eHQtY29sb3I6ICRkYXJrLWJnLWNvbG9yICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBIZWFkZXJcbiRoZWFkZXItYmc6ICRib2R5LWJnICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBGb290ZXJcbiRmb290ZXItYmc6IHJnYmEoJHByaW1hcnksIC4xKSAhZGVmYXVsdDtcbiRjb3B5cmlnaHQtYmc6ICRmb290ZXItYmcgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIExpbmtzXG4kbGluay1jb2xvcjogJHByaW1hcnkgIWRlZmF1bHQ7XG4kbGluay1zaGFkZS1wZXJjZW50YWdlOiAyMCUgIWRlZmF1bHQ7XG4kbGluay1ob3Zlci1jb2xvcjogc2hpZnQtY29sb3IoJGxpbmstY29sb3IsICRsaW5rLXNoYWRlLXBlcmNlbnRhZ2UpICFkZWZhdWx0O1xuXG4vLyBHcmlkIGNvbHVtbnNcbiRncmlkLWd1dHRlci13aWR0aDogMS41cmVtICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBDb250YWluZXIgcGFkZGluZ1xuJGNvbnRhaW5lci1wYWRkaW5nLXg6ICRncmlkLWd1dHRlci13aWR0aCAvIDIgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIENvbXBvbmVudHNcbi8vIHNjc3MtZG9jcy1zdGFydCBib3JkZXItdmFyaWFibGVzXG4kYm9yZGVyLXdpZHRoOiAxcHggIWRlZmF1bHQ7XG4kYm9yZGVyLWNvbG9yOiByZ2JhKCRncmF5LTkwMCwgLjE1KSAhZGVmYXVsdDtcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGFzcGVjdC1yYXRpb3NcblxuLy8gc2Nzcy1kb2NzLXN0YXJ0IGhlYWRpbmdzLXZhcmlhYmxlc1xuJGhlYWRpbmdzLW1hcmdpbi1ib3R0b206ICRzcGFjZXIgKiAyICFkZWZhdWx0O1xuXG4vLy0tLS0tLSBCdXR0b25zICsgRm9ybXNcbiRidG4tY29sb3JzOiAoXG4gIFwicHJpbWFyeVwiOiBudWxsLFxuICBcInNlY29uZGFyeVwiIDogbnVsbFxuKSAhZGVmYXVsdDtcblxuJGlucHV0LWZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuJGlucHV0LWJ0bi1mb2N1cy13aWR0aDogLjEyNXJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gTmF2c1xuLy8tLS0tLSBTaGFyZWQgdmFyaWFibGVzXG4kbmF2LWNvbG9yLWFjY2VudDogJHByaW1hcnkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gQm9vdHN0cmFwIHZhcmlhYmxlc1xuJG5hdi1saW5rLWZvbnQtc2l6ZTogbnVsbCAhZGVmYXVsdDtcbiRuYXYtbGluay1jb2xvcjogJGJvZHktY29sb3IgIWRlZmF1bHQ7XG4kbmF2LWxpbmstaG92ZXItY29sb3I6IHRpbnQtY29sb3IoJHByaW1hcnksIDMwJSkgIWRlZmF1bHQ7XG4kbmF2LWxpbmstZGlzYWJsZWQtY29sb3I6ICRncmF5LTYwMCAhZGVmYXVsdDtcblxuLy8tLS0tLSBBbHBoYSB2YXJpYWJsZXNcbiRuYXYtY29sb3ItaG92ZXItZmlyc3QtbGV2ZWw6ICRuYXYtbGluay1ob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRuYXYtY29sb3ItY3VycmVudDogJG5hdi1jb2xvci1hY2NlbnQgIWRlZmF1bHQ7XG4kbmF2LWNvbG9yLWN1cnJlbnQtZmlyc3QtbGV2ZWw6ICRuYXYtY29sb3ItY3VycmVudCAhZGVmYXVsdDtcbiRuYXYtY29sb3ItYW5jZXN0b3I6IHNoYWRlLWNvbG9yKCRuYXYtY29sb3ItYWNjZW50LCAyMCUpICFkZWZhdWx0O1xuJG5hdi1jb2xvci1hbmNlc3Rvci1maXJzdC1sZXZlbDogJG5hdi1jb2xvci1hbmNlc3RvciAhZGVmYXVsdDtcblxuLy8tLS0tLS0gTmF2YmFyXG4kc3VibWVudS1iZy1jb2xvcjogd2hpdGUgIWRlZmF1bHQ7XG4kbmF2YmFyLXBhZGRpbmcteTogMyAqICRzcGFjZXIgLyA0ICFkZWZhdWx0O1xuJG5hdmJhci1pdGVtLW1hcmdpbi14OiBudWxsICFkZWZhdWx0O1xuJG5hdmJhci1pdGVtLW1hcmdpbi15OiBudWxsICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC1jb2xvcjogJG5hdi1saW5rLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC1ob3Zlci1jb2xvcjogJG5hdi1saW5rLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJG5hdmJhci1saWdodC1hY3RpdmUtY29sb3I6ICRuYXYtbGluay1ob3Zlci1jb2xvciAhZGVmYXVsdDtcbiRuYXZiYXItbGlnaHQtZGlzYWJsZWQtY29sb3I6ICRuYXYtbGluay1kaXNhYmxlZC1jb2xvciAhZGVmYXVsdDtcblxuLy8tLS0tLS0gRHJvcGRvd25zXG5cbi8vLS0tLS0tIFBhZ2luYXRpb25cbiRwYWdpbmF0aW9uLWhvdmVyLWJnOiByZ2JhKCRwcmltYXJ5LCAuMSkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIE1vZGFsc1xuJG1vZGFsLWJhY2tkcm9wLWJnOiBibGFjayAhZGVmYXVsdDtcbiRtb2RhbC1iYWNrZHJvcC1vcGFjaXR5OiAuNSAhZGVmYXVsdDtcbiRtb2RhbC1jb250ZW50LWJvcmRlci13aWR0aDogMCAhZGVmYXVsdDtcblxuLy8gTW9kYWwgVmlkZW9cbiRtb2RhbC12aWRlby1idG4tY2xvc2UtYmctY29sb3I6ICRwcmltYXJ5ICFkZWZhdWx0O1xuJG1vZGFsLXZpZGVvLWJ0bi1jbG9zZS1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcblxuLy8tLS0tLS0gSW1hZ2UgdGh1bWJuYWlscyAmIFBpY3R1cmVcblxuLy8tLS0tLS0gQnJlYWRjcnVtYnNcbiRicmVhZGNydW1iLWZvbnQtc2l6ZTogLjc1cmVtICFkZWZhdWx0O1xuJGJyZWFkY3J1bWItYWN0aXZlLWNvbG9yOiAkYm9keS1jb2xvciAhZGVmYXVsdDtcblxuLy8tLS0tLS0gT2ZmY2FudmFzXG4kb2ZmY2FudmFzLWJvZHktYmFja2Ryb3AtY29sb3I6IHJnYmEoJG1vZGFsLWJhY2tkcm9wLWJnLCAkbW9kYWwtYmFja2Ryb3Atb3BhY2l0eSkgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLXdpZGUtc2NyZWVuLWJyZWFrcG9pbnQ6IHh4bCAhZGVmYXVsdDtcblxuLy8tLS0tLS0gT2ZmY2FudmFzIGRlc2t0b3BcbiRvZmZjYW52YXMtZGFyay1tb2RlLWxvZ28tY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZGVza3RvcC13aWR0aDogNDAwcHggIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWxvZ28td2lkdGg6IDY2LjY2JSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtaGVhZGVyLWFsaWduZW1lbnQ6IGNlbnRlciAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1ib3JkZXItY29sb3IgOiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLWJvcmRlci1vcGFjaXR5IDogLjUgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtYm9yZGVyLWJnOiByZ2JhKCRvZmZjYW52YXMtZ3JpZC1ib3JkZXItY29sb3IsICRvZmZjYW52YXMtZ3JpZC1ib3JkZXItb3BhY2l0eSkgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci1zaXplIDogMXB4ICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItdHlwZSA6IHNvbGlkICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItb3BhY2l0eSA6IC4xICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci1jb2xvci1iZyA6IHJnYmEoJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItY29sb3IsICRvZmZjYW52YXMtZ3JpZC1maXJzdC1sdmwtYm9yZGVyLW9wYWNpdHkpO1xuJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItc3R5bGU6ICRvZmZjYW52YXMtZ3JpZC1maXJzdC1sdmwtYm9yZGVyLXNpemUgJG9mZmNhbnZhcy1ncmlkLWZpcnN0LWx2bC1ib3JkZXItdHlwZSAkb2ZmY2FudmFzLWdyaWQtZmlyc3QtbHZsLWJvcmRlci1jb2xvci1iZyAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1maXJzdC1sdmwtZm9udC1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtZmlyc3QtdGh1bWItd2lkdGg6IDc1JSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1zdWJtZW51LWZvbnQtc2l6ZTogMS4xMjVyZW0gIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtc3VibWVudS1pdGVtLXBhZGRpbmcteTogMCAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1zdWJtZW51LWl0ZW0tbGluZS1oZWlnaHQ6IDEuMjUgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtc3VibWVudS1pdGVtLWljb24tc2l6ZTogLjhyZW0gIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWdyaWQtc3VibWVudS1pdGVtLWltYWdlLWJveC1zaGFkb3c6IDAgMCAxLjVyZW0gLjc1cmVtIHJnYmEoJHNlY29uZGFyeSwgLjI1KSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZ3JpZC1zdWJtZW51LWl0ZW0taG92ZXItaW1hZ2UtYm94LXNoYWRvdzogdmFyKC0tYnMtYm94LXNoYWRvdyk7XG4kb2ZmY2FudmFzLWZpcnN0LWx2bC1tZW51LWl0ZW0tYm9yZGVyLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kb2ZmY2FudmFzLWZpcnN0LWx2bC1tZW51LWl0ZW0tYm9yZGVyLW9wYWNpdHk6IC4xNSAhZGVmYXVsdDtcbiRvZmZjYW52YXMtZmlyc3QtbHZsLW1lbnUtaXRlbS1ib3JkZXItc3R5bGU6IDFweCBzb2xpZCByZ2JhKCRvZmZjYW52YXMtZmlyc3QtbHZsLW1lbnUtaXRlbS1ib3JkZXItY29sb3IsICRvZmZjYW52YXMtZmlyc3QtbHZsLW1lbnUtaXRlbS1ib3JkZXItb3BhY2l0eSk7XG5cbi8vLS0tLS0tLSBPZmZjYW52YXMgZGVza3RvcCBNZWdhIFN1Ym1lbnVcbiRvZmZjYW52YXMtc3VibWVudS1pdGVtLWZvbnQtc2l6ZTogMS41cmVtICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1zdWJtZW51LWl0ZW0tYm9yZGVyLWNvbG9yOiB2YXIoLS10aGVtZS1za2luLXRleHQtY29sb3IpICFkZWZhdWx0O1xuJG9mZmNhbnZhcy1zdWJtZW51LWl0ZW0tYm9yZGVyLXN0eWxlOiAxcHggc29saWQgJG9mZmNhbnZhcy1zdWJtZW51LWl0ZW0tYm9yZGVyLWNvbG9yO1xuXG5cbi8vLS0tLS0tIE1lZ2EgTWVudVxuJG1lZ2FtZW51LWJnLWNvbG9yOiB2YXIoLS10aGVtZS1za2luLWJnLWNvbG9yKTtcbiRtZWdhbWVudS1wYWRkaW5nLXk6IDFyZW0gIWRlZmF1bHQ7XG4kbWVnYW1lbnUtcGFkZGluZy14OiAxcmVtICFkZWZhdWx0O1xuJG1lZ2FtZW51LXRpdGxlLXBhZGRpbmcteTogLjVyZW0gIWRlZmF1bHQ7XG4kbWVnYW1lbnUtdGl0bGUtcGFkZGluZy14OiAxcmVtICFkZWZhdWx0O1xuJG1lZ2FtZW51LXRpdGxlLWNvbG9yOiB2YXIoLS10aGVtZS1za2luLXRleHQtY29sb3IpICFkZWZhdWx0O1xuJG1lZ2FtZW51LXRpdGxlLXRleHQtZGVjb3JhdGlvbjogbm9uZSAhZGVmYXVsdDtcbiRtZWdhbWVudS10aXRsZS1ob3Zlci1jb2xvcjogJG5hdi1saW5rLWhvdmVyLWNvbG9yICFkZWZhdWx0O1xuJG1lZ2FtZW51LXRpdGxlLWhvdmVyLXRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lICFkZWZhdWx0O1xuJG1lZ2FtZW51LXBpY3R1cmUtaGFzLW92ZXJsYXk6IHRydWUgIWRlZmF1bHQ7XG4kbWVnYW1lbnUtb3ZlcmxheS1iZy1jb2xvcjogJHByaW1hcnkgIWRlZmF1bHQ7XG4kbWVnYW1lbnUtb3ZlcmxheS1iZy1vcGFjaXR5OiAuNSAhZGVmYXVsdDtcbiRtZWdhbWVudS1vdmVybGF5LWJnLWNvbG9yLXJiZzogcmdiYSgkbWVnYW1lbnUtb3ZlcmxheS1iZy1jb2xvciwgJG1lZ2FtZW51LW92ZXJsYXktYmctb3BhY2l0eSkgIWRlZmF1bHQ7XG4kbWVnYW1lbnUtcGljdHVyZS1ib3JkZXItcmFkaXVzOiAuNXJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gQW5jaG9yIG9mZnNldFxuJGFuY2hvci1vZmZzZXQ6IDFyZW0gIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIFdwIEFscGhhXG4vLyBsb2dvXG4kbG9nby1wYWRkaW5nLXk6ICRuYXZiYXItcGFkZGluZy15ICFkZWZhdWx0O1xuXG4vLy0tLS0tIEJvb3RzdHJhcCBjb2xvcnMgY2xlYW51cFxuJGJzLWdyYXlzLXRvLWtlZXA6ICgpICFkZWZhdWx0O1xuJGJzLWdyYXlzLXRvLXJlbW92ZTogKFwiMjAwXCIsIFwiMzAwXCIsIFwiNDAwXCIsIFwiNTAwXCIsIFwiNzAwXCIpICFkZWZhdWx0O1xuJGJzLWNvbG9ycy10by1rZWVwOiAoKSAhZGVmYXVsdDtcbiRicy1jb2xvcnMtdG8tcmVtb3ZlOiAoXCJpbmRpZ29cIiwgXCJwaW5rXCIsIFwicmVkXCIsIFwieWVsbG93XCIsIFwiZ3JlZW5cIiwgXCJ0ZWFsXCIsIFwiY3lhblwiLCBcImxpZ2h0XCIsIFwiZGFya1wiKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBCb290c3RyYXAgdXRpbGl0aWVzIGNsZWFudXBcbiRicy11dGlsaXRpZXMtdG8tcmVtb3ZlOiAoXCJiZy1vcGFjaXR5XCIpICFkZWZhdWx0O1xuXG4vLy0tLS0tIEhlbHBlcnNcbi8vLS0tLSBTZXBhcmF0ZSB0aXRsZVxuJHNlcGFyYXRlLXRpdGxlLXdpZHRoOiA4MHB4ICFkZWZhdWx0O1xuJHNlcGFyYXRlLXRpdGxlLWJnOiAkcHJpbWFyeSAhZGVmYXVsdDtcblxuLy8tLS0tIFRyYW5zcGFyZW50IGJhY2tncm91bmRzXG4kdHJhbnNwYXJlbnQtYmctb3BhY2l0aWVzLW92ZXJyaWRlczogKCkgIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtYmctb3BhY2l0aWVzOiAoXG4gIDEwOiAuMSxcbiAgMjU6IC4yNSxcbiAgbGlnaHQ6IC4yNSxcbiAgMzU6IC4zNSxcbiAgNTA6IC41LFxuICBtZWRpdW06IC41LFxuICA2NTogLjY1LFxuICA3NTogLjc1LFxuICBzdHJvbmc6IC43NSxcbiAgOTA6IC45XG4pICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWJnLW9wYWNpdGllczogbWFwLW1lcmdlKCR0cmFuc3BhcmVudC1iZy1vcGFjaXRpZXMsICR0cmFuc3BhcmVudC1iZy1vcGFjaXRpZXMtb3ZlcnJpZGVzKTtcbiR0cmFuc3BhcmVudC1iZy1jb2xvcnM6IChwcmltYXJ5OiAkdHJhbnNwYXJlbnQtYmctb3BhY2l0aWVzLCBzZWNvbmRhcnk6ICR0cmFuc3BhcmVudC1iZy1vcGFjaXRpZXMpICFkZWZhdWx0O1xuXG4vLy0tLS0tIFRvb2xzXG4vLyBDb25maWd1cmF0aW9uIChhY3RpdmF0ZSBvbmx5IHRob3NlIG5lZWRlZClcbiR0ZWFzZXM6IChcImdyaWRcIiwgXCJsaXN0XCIsIFwic2ltcGxlXCIsIFwic2ltcGxlLXJlYWxpc2F0aW9uc1wiKSAhZGVmYXVsdDtcbiRmb3JtczogKCkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gVG9wIEJhclxuJHRvcC1iYXItaGlkZS1vbi1tb2JpbGU6IHRydWUgIWRlZmF1bHQ7XG4kdG9wLWJhci1oaWRlLW9uLXNjcm9sbC1tb2JpbGU6IHRydWUgIWRlZmF1bHQ7XG4kdG9wLWJhci1oaWRlLW9uLXNjcm9sbC1kZXNrdG9wOiAkdG9wLWJhci1oaWRlLW9uLXNjcm9sbC1tb2JpbGUgIWRlZmF1bHQ7XG4kdG9wLWJhci1wYWRkaW5nLXg6ICRjb250YWluZXItcGFkZGluZy14ICFkZWZhdWx0O1xuJHRvcC1iYXItcGFkZGluZy15OiAuNXJlbSAhZGVmYXVsdDtcbiR0b3AtYmFyLWhlaWdodDogaWYobnVsbCAhPSBpbmRleCgkbWVudXMsIFwic2Vjb25kYXJ5XCIpLCAyLjVyZW0sIDEuNXJlbSkgIWRlZmF1bHQ7XG4kdG9wLWJhci1vcGFjaXR5OiAxICFkZWZhdWx0O1xuJHRvcC1iYXItc29jaWFsLWxpbmtzLW1hcmdpbjogbWFwLWdldCgkc3BhY2VycywgNCkgIWRlZmF1bHQ7XG4kdG9wLWJhci1kZWZhdWx0LWJnLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdG9wLWJhci10cmFuc3BhcmVudC1oZWFkZXItYmctY29sb3I6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuXG4vLy0tLS0tIEhlYWRlclxuJGhlYWRlci1idG4taWNvbjogJGZhLXZhci1waG9uZS1hbHQgIWRlZmF1bHQ7XG4kaGVhZGVyLWJ0bi1mYS1zdHlsZTogXCJzb2xpZFwiICFkZWZhdWx0O1xuJGhlYWRlci1idG4tc2hvdy10ZXh0LWJyZWFrcG9pbnQ6ICRkZXNrdG9wLWJyZWFrcG9pbnQgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gRmVhdHVyZWQgaW1hZ2VcbiRmZWF0dXJlZC1pbWFnZS1oZWlnaHQ6IDUwdmggIWRlZmF1bHQ7XG4kaG9tZS1mZWF0dXJlZC1pbWFnZS1oZWlnaHQ6IDUwdmggIWRlZmF1bHQ7XG4kZmVhdHVyZWQtaW1hZ2Utb3ZlcmxheS1jb2xvcjogYmxhY2sgIWRlZmF1bHQ7XG4kZmVhdHVyZWQtaW1hZ2Utb3ZlcmxheS1vcGFjaXR5OiAuMyAhZGVmYXVsdDtcblxuLy8tLS0tLSBDb250ZW50IEFib3ZlXG4kY29udGVudC1hYm92ZS10ZXh0LWNvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcblxuLy8tLS0tLSBTaGFwZXNcbi8vIHBvc3NpYmxlIHNoYXBlcyBhcmU6IChzcXVhcmUsIGNpcmNsZSwgdHJpYW5nbGUsIGxvemVuZ2UpXG4vLyBwb3NzaWJsZSB1bml0cyBhcmU6IChyZW06IDFyZW0sIGVtOiAxZW0sIHZ3OiAyLjV2dylcbiRzaGFwZXM6ICgpICFkZWZhdWx0O1xuJHNoYXBlcy11bml0czogKHJlbTogMXJlbSkgIWRlZmF1bHQ7XG4kc2hhcGVzLWRlZmF1bHQtdW5pdDogbnRoKG50aCgkc2hhcGVzLXVuaXRzLCAxKSwgMikgIWRlZmF1bHQ7XG4kc2hhcGVzLW1heC1tdWx0aXBsaWVyOiAxMCAhZGVmYXVsdDtcblxuLy8tLS0tLSBUZXh0IGNvbnRyYXN0XG4kYWxwaGEtZW5hYmxlLWJ0bi1jbG9zZS10ZXh0LWNvbnRyYXN0LWNvbG9yczogZmFsc2UgIWRlZmF1bHQ7XG4kYWxwaGEtYnRuLWNsb3NlLXRleHQtY29udHJhc3QtY29sb3JzOiAkdGhlbWUtY29sb3JzICFkZWZhdWx0O1xuXG4vLy0tLS0tIFRleHQgc2hhZG93XG4kYWxwaGEtdGV4dC1zaGFkb3ctY29sb3I6IGNvbG9yLWNvbnRyYXN0KHdoaXRlKSAhZGVmYXVsdDtcbiRhbHBoYS10ZXh0LXNoYWRvdy1yYWRpdXM6IC41cmVtICFkZWZhdWx0O1xuJGFscGhhLXRleHQtc2hhZG93LXJhZGl1cy1zbTogLjI1cmVtICFkZWZhdWx0O1xuJGFscGhhLXRleHQtc2hhZG93LXJhZGl1cy1sZzogMXJlbSAhZGVmYXVsdDtcbiRhbHBoYS10ZXh0LXNoYWRvdy1jb2xvcnM6ICgpICFkZWZhdWx0O1xuXG4vLy0tLS0tIE92ZXJsYXlcbiRhbHBoYS1vdmVybGF5LWNvbG9yOiAkbW9kYWwtYmFja2Ryb3AtYmcgIWRlZmF1bHQ7XG4kYWxwaGEtb3ZlcmxheS1vcGFjaXR5OiAkbW9kYWwtYmFja2Ryb3Atb3BhY2l0eSAhZGVmYXVsdDtcbiRhbHBoYS1vdmVybGF5LWNvbG9yczogKCkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gWiBpbmRleFxuJGFscGhhLXotaW5kZXhlczogKDEpICFkZWZhdWx0O1xuXG4vLy0tLS0tIFNpZGViYXJcbiRzaWRlYmFyOiBmYWxzZSAhZGVmYXVsdDtcbiRzaWRlYmFyLWJnLWNvbG9yOiByZ2JhKCRwcmltYXJ5LCAuMSkgIWRlZmF1bHQ7XG4kc2lkZWJhci1wYWRkaW5nOiBtYXAtZ2V0KCRzcGFjZXJzLCAzKSAhZGVmYXVsdDtcbiRzaWRlYmFyLWJvcmRlci1yYWRpdXM6IC4zNzVyZW0gIWRlZmF1bHQ7XG4kc2lkZWJhci13aWRnZXRzLXNwYWNlcjogbWFwLWdldCgkc3BhY2VycywgNikgIWRlZmF1bHQ7XG4kc2lkZWJhci13aWRnZXQtY29udGVudC1zcGFjZXI6IG1hcC1nZXQoJHNwYWNlcnMsIDIpICFkZWZhdWx0O1xuJHNpZGViYXItd2lkZ2V0LXRpdGxlLXNwYWNlcjogbWFwLWdldCgkc3BhY2VycywgMykgIWRlZmF1bHQ7XG4kc2lkZWJhci13aWRnZXQtdGl0bGUtZm9udC1zaXplOiAkaDMtZm9udC1zaXplICFkZWZhdWx0O1xuJHNpZGViYXItd2lkZ2V0LWxpc3QtZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuXG4vLy0tLS0tIFN1cnRpdGxlXG4kYWxwaGEtc3VydGl0bGUtZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1zYW5zLXNlcmlmICFkZWZhdWx0O1xuJGFscGhhLXN1cnRpdGxlLWZvbnQtc2l6ZTogJGZvbnQtc2l6ZS1iYXNlICFkZWZhdWx0O1xuJGFscGhhLXN1cnRpdGxlLWZvbnQtc2l6ZS1kZXNrdG9wOiAkYWxwaGEtc3VydGl0bGUtZm9udC1zaXplICFkZWZhdWx0O1xuJGFscGhhLXN1cnRpdGxlLWZvbnQtd2VpZ2h0OiBub3JtYWwgIWRlZmF1bHQ7XG4kYWxwaGEtc3VydGl0bGUtY29sb3I6ICRwcmltYXJ5ICFkZWZhdWx0O1xuJGFscGhhLXN1cnRpdGxlLW1hcmdpbi1ib3R0b206IG1hcC1nZXQoJHNwYWNlcnMsIDQpICFkZWZhdWx0O1xuJGFscGhhLXN1cnRpdGxlLXRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2UgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gQ29weXJpZ2h0XG4kYWxwaGEtY29weXJpZ2h0LWZvbnQtc2l6ZTogLjgyNXJlbSAhZGVmYXVsdDtcbiRhbHBoYS1jb3B5cmlnaHQtbGluay1ob3Zlci1jb2xvcjogdmFyKC0tdGhlbWUtc2tpbi10ZXh0LWNvbG9yKSAhZGVmYXVsdDtcbiRhbHBoYS1jb3B5cmlnaHQtbGluay10ZXh0LWRlY29yYXRpb246IG5vbmUgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gTmF2aWdhdGlvbnNcbi8vLS0tLSBDb21tb25cbiRuYXYtbGluay1hZnRlci1oZWlnaHQ6IDJweCAhZGVmYXVsdDtcblxuLy8tLS0tIENlbnRlclxuJG5hdi1jZW50ZXItbG9nby1wYWRkaW5nLXg6IDFyZW0gIWRlZmF1bHQ7XG4kbmF2LWNlbnRlci1sb2dvLXBhZGRpbmcteTogMCAhZGVmYXVsdDtcblxuLy8tLS0tLSBCcmVhZGNydW1ic1xuJGJyZWFkY3J1bWItbW9iaWxlLXNoYWRvdy1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kYnJlYWRjcnVtYi1tb2JpbGUtc2hhZG93LWNvbG9yOiAkYm9keS1iZyAhZGVmYXVsdDtcbiRicmVhZGNydW1iLW9uLWZlYXR1cmVkLW1vYmlsZS1zaGFkb3ctY29sb3I6ICRibGFjayAhZGVmYXVsdDtcblxuLy8tLS0tLSBUZWFzZVxuJHRlYXNlLWJhZGdlLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdGVhc2UtYmFkZ2UtYmc6ICRwcmltYXJ5ICFkZWZhdWx0O1xuXG4kdGVhc2Utb3ZlcmxheS10ZXh0LWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kdGVhc2Utb3ZlcmxheS10ZXh0LXNoYWRvdzogMCAwIC4yNXJlbSAjMDAwO1xuJHRlYXNlLW92ZXJsYXktYmctY29sb3I6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kdGVhc2Utb3ZlcmxheS1iZy1vcGFjaXR5OiAuNSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gV29vQ29tbWVyY2Vcbi8vIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgZm9yIG9sZCAkd29vY29tbWVyY2UgJiAkd29vY29tbWVyY2VTaWRlYmFyIHZhcmlhYmxlc1xuQGlmIHR5cGUtb2YoJHdvb2NvbW1lcmNlKSA9PSBcImJvb2xcIiB7XG4gIEB3YXJuIFwiVXNhZ2Ugb2YgJHdvb2NvbW1lcmNlIHZhcmlhYmxlIGFzIGJvb2wgaXMgZGVwcmVjYXRlZCwgdXNlIHdvb2NvbW1lcmNlLmVuYWJsZWQgaW4gd29vY29tbWVyY2UueWFtbCBpbnN0ZWFkLlwiO1xuICAkd29vY29tbWVyY2U6IG1hcC1leHRlbmQobWFwLWdldCgkY29uZmlnLWRlZmF1bHRzLCBcIndvb2NvbW1lcmNlXCIpLCAoZW5hYmxlZDogJHdvb2NvbW1lcmNlKSk7XG4gICR3b29jb21tZXJjZS1lbmFibGVkOiBtYXAtZ2V0LWRlZXAoJHdvb2NvbW1lcmNlLCBcImVuYWJsZWRcIik7XG59XG5cbkBpZiB2YXJpYWJsZS1leGlzdHMod29vY29tbWVyY2VTaWRlYmFyKSB7XG4gIEB3YXJuIFwiVXNhZ2Ugb2YgJHdvb2NvbW1lcmNlU2lkZWJhciB2YXJpYWJsZSBkZXByZWNhdGVkLCB1c2UgJHdvb2NvbW1lcmNlLXNpZGViYXIgaW5zdGVhZC5cIjtcbiAgJHdvb2NvbW1lcmNlLXNpZGViYXI6ICR3b29jb21tZXJjZVNpZGViYXI7XG59XG5cbi8vIEF0dHJpYnV0ZXNcbiR3Yy1wcm9kdWN0LWF0dHJpYnV0ZS1mb250LXNpemU6IC45cmVtICFkZWZhdWx0O1xuJHdjLXByb2R1Y3QtYXR0cmlidXRlLWV2ZW4tYmc6IHJnYmEoJHByaW1hcnksIC4xKSAhZGVmYXVsdDtcbiR3Yy1wcm9kdWN0LWF0dHJpYnV0ZS1sYWJlbC1jb2xvcjogJGdyYXktNzAwICFkZWZhdWx0O1xuXG4vLyBBdmFpbGFiaWxpdHlcbiR3Yy1zdG9jay1pY29uLXdpZHRoOiAkZmEtZnctd2lkdGggIWRlZmF1bHQ7XG4kd2Mtc3RvY2staWNvbi1mb250LXNpemU6ICRmYS1zaXplLXNjYWxlLWJhc2UgIWRlZmF1bHQ7XG4kd2Mtc3RvY2staW5mbzogKFxuICBhdmFpbGFibGUtb24tYmFja29yZGVyOiAoY29sb3I6IG9yYW5nZSwgaWNvbjogJGZhLXZhci1jbG9jay1yb3RhdGUtbGVmdCksXG4gIG91dC1vZi1zdG9jazogKGNvbG9yOiByZWQsIGljb246ICRmYS12YXItY2lyY2xlLXhtYXJrKVxuKSAhZGVmYXVsdDtcblxuLy8tLS0tLSBBZGQgdG8gQ2FydCBidXR0b25cbiRidG4tYWRkdG9jYXJ0LWJnOiB0cmFuc3BhcmVudCAhZGVmYXVsdDtcbiRidG4tYWRkdG9jYXJ0LWNvbG9yOiAkc2Vjb25kYXJ5ICFkZWZhdWx0O1xuJGJ0bi1hZGR0b2NhcnQtaG92ZXItYmc6IHRyYW5zcGFyZW50ICFkZWZhdWx0O1xuJGJ0bi1hZGR0b2NhcnQtaG92ZXItY29sb3I6ICRwcmltYXJ5ICFkZWZhdWx0O1xuJGJ0bi1hZGR0b2NhcnQtaWNvbnM6IChcbiAgc2ltcGxlOiAkZmEtdmFyLXNob3BwaW5nLWJhc2tldCxcbiAgZ3JvdXBlZDogJGZhLXZhci1leWUsXG4gIHZhcmlhYmxlOiAkZmEtdmFyLWNvZ3MsXG4gIGJvb2tpbmc6ICRmYS12YXItY2FsZW5kYXItZGF5cyxcbikgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gQm9va2luZ1xuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci11aS1iZzogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiR3Yy1ib29raW5nLWRhdGVwaWNrZXItdWktY29sb3I6IGNvbG9yLWNvbnRyYXN0KCR3Yy1ib29raW5nLWRhdGVwaWNrZXItdWktYmcpICFkZWZhdWx0O1xuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1vZGQtYmc6ICRncmF5LTEwMCAhZGVmYXVsdDtcbiR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stb2RkLWhvdmVyLWJnOiBzaGFkZS1jb2xvcigkd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLW9kZC1iZywgMjAlKSAhZGVmYXVsdDtcbiR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stb2RkLWNvbG9yOiBjb2xvci1jb250cmFzdCgkd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLW9kZC1iZykgIWRlZmF1bHQ7XG4kd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLWV2ZW4tYmc6ICRncmF5LTIwMCAhZGVmYXVsdDtcbiR3Yy1ib29raW5nLWRhdGVwaWNrZXItYmxvY2stZXZlbi1ob3Zlci1iZzogc2hhZGUtY29sb3IoJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1ldmVuLWJnLCAyMCUpICFkZWZhdWx0O1xuJHdjLWJvb2tpbmctZGF0ZXBpY2tlci1ibG9jay1ldmVuLWNvbG9yOiBjb2xvci1jb250cmFzdCgkd2MtYm9va2luZy1kYXRlcGlja2VyLWJsb2NrLWV2ZW4tYmcpICFkZWZhdWx0O1xuJHdjLWJvb2tpbmctY29zdC1iZzogJGdyYXktMTAwICFkZWZhdWx0O1xuJHdjLWJvb2tpbmctY29zdC1jb2xvcjogY29sb3ItY29udHJhc3QoJHdjLWJvb2tpbmctY29zdC1iZykgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gUHJpY2UgQ29sb3JcbiR3Yy1wcmljZS1jb2xvcjogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiR3Yy1kZWwtcHJpY2UtY29sb3I6IHJnYmEoJGdyYXktNTAwLCAuNikgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gRGlzY291bnQgYmFkZ2VcbiRiYWRnZS1vbnNhbGUtYmc6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kYmFkZ2Utb25zYWxlLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gTWluaSBDYXJ0XG4kbWluaWNhcnQtY291bnRlci1iZzogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiRtaW5pY2FydC1jb3VudGVyLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kbWluaWNhcnQtdG90YWwtYmc6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kbWluaWNhcnQtdG90YWwtY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiRtaW5pY2FydC1pdGVtLWNvbG9yOiAkcHJpbWFyeSAhZGVmYXVsdDtcbiRtaW5pY2FydC1xdHktY29sb3I6ICRib2R5LWNvbG9yICFkZWZhdWx0O1xuXG4vLy0tLS0tIENhcnRcbiRjYXJ0LWJ0bi1hY3Rpb25zLWJnOiAkcHJpbWFyeSAhZGVmYXVsdDtcbiRjYXJ0LWJ0bi1jaGVja291dC1iZzogJHNlY29uZGFyeSAhZGVmYXVsdDtcblxuLy8tLS0tLSBNZXNzYWdlXG4kd2MtbWVzc2FnZS1iZy1jb2xvcjogJGdyYXktMTAwICFkZWZhdWx0O1xuJHdjLW1lc3NhZ2UtY29sb3I6ICRib2R5LWNvbG9yICFkZWZhdWx0O1xuJHdjLW1lc3NhZ2UtaWNvbi1jb2xvcjogJGdyZWVuICFkZWZhdWx0O1xuXG4kd2MtaW5mby1iZy1jb2xvcjogJGdyYXktMTAwICFkZWZhdWx0O1xuJHdjLWluZm8tY29sb3I6ICRib2R5LWNvbG9yICFkZWZhdWx0O1xuJHdjLWluZm8taWNvbi1jb2xvcjogJGJsdWUgIWRlZmF1bHQ7XG5cbiR3Yy1lcnJvci1iZy1jb2xvcjogJGdyYXktMTAwICFkZWZhdWx0O1xuJHdjLWVycm9yLWNvbG9yOiAkYm9keS1jb2xvciAhZGVmYXVsdDtcbiR3Yy1lcnJvci1pY29uLWNvbG9yOiByZWQgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gU2lkZWJhclxuJHdjLXNpZGViYXItbW9iaWxlLWNvbG9yOiB3aGl0ZSAhZGVmYXVsdDtcbiR3Yy1zaWRlYmFyLW1vYmlsZS1iYWNrLXRvcC1vZmZzZXQteTogM3JlbSAhZGVmYXVsdDtcbiR3Yy1zaWRlYmFyLWNvbG9yOiByZ2JhKCRwcmltYXJ5LCAuMSkgIWRlZmF1bHQ7XG4kd2MtZmlsdGVyLXRvZ2dsZXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR3Yy1maWx0ZXItdG9nZ2xlci1iZzogJHByaW1hcnkgIWRlZmF1bHQ7XG4kd2MtY2F0LWxpbmstYmc6ICRncmF5LTEwMCAhZGVmYXVsdDtcbiR3Yy1jYXQtbGluay1ob3Zlci1iZzogJHByaW1hcnkgIWRlZmF1bHQ7XG4kd2MtY2F0LWxpbmstaG92ZXItY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR3Yy1zaWRlYmFyLWN1cnJlbnQtdGVybS1saW5rLWNvbG9yOiAkbmF2LWNvbG9yLWN1cnJlbnQgIWRlZmF1bHQ7XG4kd2Mtc2lkZWJhci1jdXJyZW50LXRlcm0tbGluay1ob3Zlci1jb2xvcjogdGludC1jb2xvcigkd2Mtc2lkZWJhci1jdXJyZW50LXRlcm0tbGluay1jb2xvciwgMTAlKSAhZGVmYXVsdDtcbiR3Yy1zaWRlYmFyLWN1cnJlbnQtdGVybS1wYXJlbnQtbGluay1jb2xvcjogJG5hdi1jb2xvci1hbmNlc3RvciAhZGVmYXVsdDtcbiR3Yy1zaWRlYmFyLWN1cnJlbnQtdGVybS1wYXJlbnQtbGluay1ob3Zlci1jb2xvcjogdGludC1jb2xvcigkd2Mtc2lkZWJhci1jdXJyZW50LXRlcm0tcGFyZW50LWxpbmstY29sb3IsIDEwJSkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gVG9wIGJhciBpY29uc1xuLy8tLS0tLSBUb3AgYmFyIGljb25zXG4kdG9wLWJhci1pY29uczogKGNvbnRhY3Q6ICRmYS12YXItZW52ZWxvcGUsIHBob25lOiAkZmEtdmFyLXBob25lLWFsdCkgIWRlZmF1bHQ7XG4kdG9wLWJhci1pY29ucy1tYXJnaW46IC4yNXJlbSAhZGVmYXVsdDtcbiR0b3AtYmFyLWljb25zLWZhLXZhcmlhbnQ6IFwic29saWRcIiAhZGVmYXVsdDtcbiR3Yy10b3AtYmFyLWljb25zOiAkdG9wLWJhci1pY29ucyAhZGVmYXVsdDtcbiR3Yy10b3AtYmFyLWljb25zLW1hcmdpbjogJHRvcC1iYXItaWNvbnMtbWFyZ2luICFkZWZhdWx0O1xuJHdjLXRvcC1iYXItaWNvbnMtZmEtdmFyaWFudDogJHRvcC1iYXItaWNvbnMtZmEtdmFyaWFudCAhZGVmYXVsdDtcblxuLy8tLS0tLSBUZWFzZVxuJHdjLXRlYXNlLXByb2R1Y3QtYmctY29sb3I6ICR3aGl0ZSAhZGVmYXVsdDtcbiR3Yy10ZWFzZS1wcm9kdWN0LWJvcmRlci1yYWRpdXM6IG1hcC1nZXQoJHNwYWNlcnMsIDIpICFkZWZhdWx0O1xuJHdjLXRlYXNlLXByb2R1Y3QtbGluay1wYWRkaW5nOiBtYXAtZ2V0KCRzcGFjZXJzLCAyKSAhZGVmYXVsdDtcbiR3Yy10ZWFzZS1wcm9kdWN0LWxpbmstaW1hZ2UtcGFkZGluZzogJHdjLXRlYXNlLXByb2R1Y3QtbGluay1wYWRkaW5nICogLTEgIWRlZmF1bHQ7XG4kd2MtdGVhc2UtcHJvZHVjdC1ob3Zlci1ib3JkZXItY29sb3I6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIFNvY2lhbCBzaGFyZSBpY29uc1xuJHNvY2lhbC1zaGFyZS1ob3Zlci1ib3JkZXItY29sb3I6IHJnYmEoJHByaW1hcnksIC41KSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gV1BNTFxuJHdwbWwtZGV2OiBmYWxzZSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gQWxwaGEgYmxvY2tzXG4vLy0tLS0tIEZhY2Vib29rIHZpZGVvXG4kYWxwaGEtZmItdmlkZW8tbG9hZGVyLWJnLWNvbG9yOiAkcHJpbWFyeSAhZGVmYXVsdDtcbiRhbHBoYS1mYi12aWRlby1sb2FkZXItY29sb3I6IGNvbG9yLWNvbnRyYXN0KCRhbHBoYS1mYi12aWRlby1sb2FkZXItYmctY29sb3IpICFkZWZhdWx0O1xuXG4vLy0tLS0tIE1hcFxuJGFscGhhLW1hcC1kZWZhdWx0LWhlaWdodDogMjUwcHggIWRlZmF1bHQ7XG4kYWxwaGEtbWFwLWRlZmF1bHQtaGVpZ2h0LWxnOiAkYWxwaGEtbWFwLWRlZmF1bHQtaGVpZ2h0ICogMiAhZGVmYXVsdDtcblxuLy8tLS0tLSBSYXRpbmdcbiRhbHBoYS1yYXRpbmctc3Rhci1vbi1jb2xvcjogJHllbGxvdyAhZGVmYXVsdDtcbiRhbHBoYS1yYXRpbmctc3Rhci1vZmYtY29sb3I6ICRncmF5LTEwMCAhZGVmYXVsdDtcblxuLy8tLS0tLSBJY29uXG4kaWNvbi1ibG9jay1pY29uLWNvbG9yOiAkcHJpbWFyeSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gQWxwaGEgbW9kdWxlc1xuLy8tLS0tLSBDb21tb25cbiRsb2FkaW5nLW1vZHVsZXMtYmctY29sb3I6IHJnYmEoJHdoaXRlLCAuNzUpICFkZWZhdWx0O1xuJGxvYWRpbmctbW9kdWxlcy1sb2FkZXItY29sb3I6ICRwcmltYXJ5ICFkZWZhdWx0O1xuJGxvYWRpbmctbW9kdWxlcy1sb2FkZXItZm9udC1zaXplOiAycmVtICFkZWZhdWx0O1xuJGxvYWRpbmctbW9kdWxlcy16LWluZGV4OiAxMCAhZGVmYXVsdDtcblxuLy8tLS0tLSBEZWZhdWx0XG4vLy0tLS0gUGFnZSBzY3JvbGxcbiRob21lLXBhZ2Utc2Nyb2xsLWxpc3RlbmVyLWhlaWdodDogMTV2aCAhZGVmYXVsdDtcbiRwYWdlLXNjcm9sbC1saXN0ZW5lci1oZWlnaHQ6ICRob21lLXBhZ2Utc2Nyb2xsLWxpc3RlbmVyLWhlaWdodCAvIDIgIWRlZmF1bHQ7XG4kcGFnZS1zY3JvbGwtbGlzdGVuZXItaGVpZ2h0LWRlc2t0b3A6ICRob21lLXBhZ2Utc2Nyb2xsLWxpc3RlbmVyLWhlaWdodCAvIDMgIWRlZmF1bHQ7XG5cbi8vLS0tLS0gT3B0aW9uYWxcbi8vLS0tLSBCYWNrIHRvIHRvcFxuJGJhY2stdG8tdG9wLW9mZnNldC14OiAxcmVtICFkZWZhdWx0O1xuJGJhY2stdG8tdG9wLW9mZnNldC15OiAxcmVtICFkZWZhdWx0O1xuJGJhY2stdG8tdG9wLWRlZmF1bHQtYnV0dG9uLXRyYW5zbGF0ZS15OiAkYmFjay10by10b3Atb2Zmc2V0LXkgKiAtMiAhZGVmYXVsdDtcblxuLy8tLS0tIEhlYWRlciBzdGF0ZXNcbi8vLS0tIFNocnVuayBsb2dvXG4kc2hydW5rLWxvZ28taGVpZ2h0LXJhdGlvOiAuOCAhZGVmYXVsdDtcblxuLy8tLS0tIFJhbmdlIHNsaWRlclxuJHJhbmdlLXNsaWRlci13cmFwcGVyLWhlaWdodDogM3JlbSAhZGVmYXVsdDtcblxuLy8tLS0tIFJvdXNxdWlsbGVcbiRyb3VzcXVpbGxlLWJhbm5lci1sb2dvLW1hcmdpbjogMCBhdXRvICFkZWZhdWx0O1xuJHJvdXNxdWlsbGUtYmFubmVyLWxvZ28tbWFyZ2luLXRhYmxldDogMCBhdXRvIG1hcC1nZXQoJHNwYWNlcnMsIDgpICFkZWZhdWx0O1xuJHJvdXNxdWlsbGUtYmFubmVyLWxvZ28tbWFyZ2luLW1vYmlsZTogMCBhdXRvIG1hcC1nZXQoJHNwYWNlcnMsIDQpICFkZWZhdWx0O1xuJHJvdXNxdWlsbGUtYmFubmVyLWxvZ28taGVpZ2h0OiAkbG9nby1oZWlnaHQgIWRlZmF1bHQ7XG4kcm91c3F1aWxsZS1iYW5uZXItbG9nby1tYXgtaGVpZ2h0OiA1cmVtICFkZWZhdWx0O1xuXG4vLy0tLSBUcmFuc3BhcmVudCBIZWFkZXJcbiR0cmFuc3BhcmVudC1oZWFkZXItYmctY29sb3I6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICRncmF5LTcwMCwgdHJhbnNwYXJlbnQpICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWhlYWRlci10ZXh0LWNvbG9yOiAjZmZmICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWhlYWRlci1zaGFkb3ctY29sb3I6ICMwMDAgIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtaGVhZGVyLXNoYWRvdy1yYWRpdXM6IC4xMjVyZW0gIWRlZmF1bHQ7XG4kdHJhbnNwYXJlbnQtaGVhZGVyLWxvZ28tY29sb3I6ICR0cmFuc3BhcmVudC1oZWFkZXItdGV4dC1jb2xvciAhZGVmYXVsdDtcbiR0cmFuc3BhcmVudC1oZWFkZXItbG9nby1zaGFkb3ctY29sb3I6ICR0cmFuc3BhcmVudC1oZWFkZXItc2hhZG93LWNvbG9yICFkZWZhdWx0O1xuJHRyYW5zcGFyZW50LWhlYWRlci1sb2dvLXNoYWRvdy1yYWRpdXM6ICR0cmFuc3BhcmVudC1oZWFkZXItc2hhZG93LXJhZGl1cyAhZGVmYXVsdDtcblxuLy8tLS0tIEltYWdlIEdhbGxlcnlcbi8vIFwib3ZlcmxheVwiLCBcImRlZmF1bHQtb3BhY2l0eVwiLCBcImhvdmVyLW9wYWNpdHlcIiwgXCJjdXN0b21cIlxuJGltYWdlLWdhbGxlcnktYW5pbWF0aW9uLXR5cGU6IFwib3ZlcmxheVwiICFkZWZhdWx0O1xuXG4vLy0tLSBPcGFjaXR5XG4kaW1hZ2UtZ2FsbGVyeS1pbWFnZS1vcGFjaXR5OiAuNyAhZGVmYXVsdDtcblxuLy8tLS0gT3ZlcmxheVxuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktb3BhY2l0eTogLjE1ICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1iYWNrZHJvcC1maWx0ZXI6IHNhdHVyYXRlKDEyNSUpIGNvbnRyYXN0KDEyNSUpICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS10cmFuc2Zvcm06IHJvdGF0ZSg0NWRlZykgc2NhbGUoLjUpICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pY29uOiAkZmEtdmFyLXNlYXJjaC1wbHVzICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pY29uLXN0eWxlOiBcInJlZ3VsYXJcIiAhZGVmYXVsdDtcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaWNvbi1jb2xvcjogI2ZmZiAhZGVmYXVsdDtcbiRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaWNvbi1vcGFjaXR5OiAuODUgIWRlZmF1bHQ7XG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWljb24tZm9udC1zaXplOiAxLjVyZW0gIWRlZmF1bHQ7XG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWljb24tdGV4dC1zaGFkb3c6IDAgMCAuMTI1cmVtIHJnYmEoYmxhY2ssIC43NSkgIWRlZmF1bHQ7XG4kaW1hZ2UtZ2FsbGVyeS1vdmVybGF5LWljb24tdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xLjVyZW0pICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pbWFnZS1vZmZzZXQ6IC4xICFkZWZhdWx0O1xuJGltYWdlLWdhbGxlcnktb3ZlcmxheS1pbWFnZS1zY2FsZTogMSArICRpbWFnZS1nYWxsZXJ5LW92ZXJsYXktaW1hZ2Utb2Zmc2V0ICFkZWZhdWx0O1xuXG4vLy0tLS0gTGVhZmxldCBNYXBcbiRtYXAtbWFya2VyLWNvbG9yLWRlZmF1bHQ6ICRzZWNvbmRhcnkgIWRlZmF1bHQ7XG4kbWFwLW1hcmtlci1jb2xvci1sb2FkaW5nOiBncmF5ICFkZWZhdWx0O1xuJG1hcC1tYXJrZXItY29sb3ItYWN0aXZlOiAkcHJpbWFyeSAhZGVmYXVsdDtcblxuLy8tLS0tIFdvb0NvbW1lcmNlIFNlYXJjaCBPdmVybGF5XG4kc2VhcmNoLW92ZXJsYXktYmctY29sb3I6IGJsYWNrICFkZWZhdWx0O1xuJHNlYXJjaC1vdmVybGF5LWJnLW9wYWNpdHk6IC4yNSAhZGVmYXVsdDtcbiRzZWFyY2gtb3ZlcmxheS1iYWNrZHJvcC1maWx0ZXI6IGJsdXIoLjEyNXJlbSkgIWRlZmF1bHQ7XG4kc2VhcmNoLW92ZXJsYXktZm9ybS1mb250LXNpemU6IC45cmVtICFkZWZhdWx0O1xuJHNlYXJjaC1vdmVybGF5LWZvcm0tYm9yZGVyLXJhZGl1czogLjI1cmVtICFkZWZhdWx0O1xuXG4vLy0tLS0gV29vQ29tbWVyY2UgUmV2aWV3IGZvcm1cbiR3b29jb21tZXJjZS1yZXZpZXctZm9ybS1zdGFycy1mb250c2l6ZTogMnJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gR3V0ZW5iZXJnIGJsb2Nrc1xuLy8tLS0tLSBSYW5rIE1hdGhcbi8vLS0tLSBGQVFcbiRyYW5rLW1hdGgtZmFxLWJnLWNvbG9yOiAkd2hpdGUgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1ib3gtc2hhZG93OiAwIC41cmVtIC41cmVtIC0uMjVyZW0gcmdiYSgkYmxhY2ssIC4xKSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLWJvcmRlci1yYWRpdXM6IG1hcC1nZXQoJHNwYWNlcnMsIDEpICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtYm9yZGVyLWNvbG9yOiAkZ3JheS0yMDAgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1ib3JkZXI6IDFweCBzb2xpZCAkcmFuay1tYXRoLWZhcS1ib3JkZXItY29sb3IgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1pdGVtLXBhZGRpbmc6IG1hcC1nZXQoJHNwYWNlcnMsIDMpICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24tZm9udC1zaXplOiAxLjI1cmVtICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24tZ2FwOiBtYXAtZ2V0KCRzcGFjZXJzLCAyKSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLXBhZGRpbmctYm90dG9tOiAkcmFuay1tYXRoLWZhcS1xdWVzdGlvbi1nYXAgIWRlZmF1bHQ7XG4kcmFuay1tYXRoLWZhcS1xdWVzdGlvbi1ib3JkZXItY29sb3I6ICRyYW5rLW1hdGgtZmFxLWJvcmRlci1jb2xvciAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWJvcmRlci1ib3R0b206ICRyYW5rLW1hdGgtZmFxLWJvcmRlciAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWljb246ICRmYS12YXItcXVlc3Rpb24tY2lyY2xlICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24taWNvbi1jb2xvcjogJHNlY29uZGFyeSAhZGVmYXVsdDtcbiRyYW5rLW1hdGgtZmFxLXF1ZXN0aW9uLWljb24tZm9udC1zaXplOiAxcmVtICFkZWZhdWx0O1xuJHJhbmstbWF0aC1mYXEtcXVlc3Rpb24taWNvbi1vZmZzZXQtdG9wOiAuMnJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gRm9udHMgb3B0aW1pemF0aW9uXG4vLy0tLS0tIEZvbnRBd2Vzb21lIGljb25zXG4kZm9udC1mYS1wcm86IFwiRm9udCBBd2Vzb21lIDYgUHJvXCI7XG4kZm9udC1mYS1icmFuZHM6IFwiRm9udCBBd2Vzb21lIDYgQnJhbmRzXCI7XG4vLyBzZWUgLi4vdmVuZG9ycy9fZm9udGF3ZXNvbWUuc2NzcyBmb3IgaWNvbnMgcHJvY2Vzc2luZ1xuLy8gc2VlIC4uL3ZlbmRvcnMvX2ZvbnRhd2Vzb21lLWljb25zLnNjc3MgZm9yIGF2YWlsYWJsZSBpY29ucyAmIGljb25zIGdyb3Vwc1xuLy8gJGN1c3RvbS11c2VkLWZhLWljb25zOiAoZm9udC1hd2Vzb21lLWZsYWc6ICRmYS12YXItZm9udC1hd2Vzb21lLWZsYWcsIHBsdXM6ICRmYS12YXItcGx1cyk7XG4kY3VzdG9tLXVzZWQtZmEtaWNvbnM6ICgpICFkZWZhdWx0O1xuLy8gJHVzZWQtZmEtaWNvbnMtZ3JvdXBzOiAoYWNjb21tb2RhdGlvbnMsIHdvb2NvbW1lcmNlKTtcbiR1c2VkLWZhLWljb25zLWdyb3VwczogKCkgIWRlZmF1bHQ7XG5cbi8vLS0tLS0tIFNsaWNrXG4kc2xpY2stZm9udC1wYXRoOiBcIn5zbGljay1jYXJvdXNlbC9zbGljay9mb250cy9cIjtcbiRzbGljay1mb250LWZhbWlseTogJGZvbnQtZmEtcHJvO1xuXG4vLy0tLS0tLSBDRjcgRWZmZWN0XG4kY29sb3ItZm9ybS1maWxsZWQ6ICRwcmltYXJ5ICFkZWZhdWx0O1xuJGZvcm0tZ3V0dGVyOiAuNXJlbSAhZGVmYXVsdDtcblxuLy8tLS0tLS0gQm9vdHN0cmFwIFJlc3BvbnNpdmUgSW1hZ2UgUmF0aW9cbi8vIG11c3QgYmUgYSBsaXN0IG9mIHJhdGlvcyBmb3JtYXR0ZWQgbGlrZSB0aGlzOiAoMSAxKSwgKDQgMyksICgzIDIpLCAoMTYgOSksICgyMSA5KVxuJG1lZGlhLXJhdGlvczogKCkgIWRlZmF1bHQ7XG4iLCIvLyBmdW5jdGlvbnNcbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cbi8vIGZhLWNvbnRlbnQ6IGNvbnZlbmllbmNlIGZ1bmN0aW9uIHVzZWQgdG8gc2V0IGNvbnRlbnQgcHJvcGVydHlcbkBmdW5jdGlvbiBmYS1jb250ZW50KCRmYS12YXIpIHtcbiAgQHJldHVybiB1bnF1b3RlKFwiXFxcIiN7ICRmYS12YXIgfVxcXCJcIik7XG59XG5cbi8vIGZhLWRpdmlkZTogT3JpZ2luYWxseSBvYnRhaW5lZCBmcm9tIHRoZSBCb290c3RyYXAgaHR0cHM6Ly9naXRodWIuY29tL3R3YnMvYm9vdHN0cmFwXG4vL1xuLy8gTGljZW5zZWQgdW5kZXI6IFRoZSBNSVQgTGljZW5zZSAoTUlUKVxuLy9cbi8vIENvcHlyaWdodCAoYykgMjAxMS0yMDIxIFR3aXR0ZXIsIEluYy5cbi8vIENvcHlyaWdodCAoYykgMjAxMS0yMDIxIFRoZSBCb290c3RyYXAgQXV0aG9yc1xuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbkBmdW5jdGlvbiBmYS1kaXZpZGUoJGRpdmlkZW5kLCAkZGl2aXNvciwgJHByZWNpc2lvbjogMTApIHtcbiAgJHNpZ246IGlmKCRkaXZpZGVuZCA+IDAgYW5kICRkaXZpc29yID4gMCwgMSwgLTEpO1xuICAkZGl2aWRlbmQ6IGFicygkZGl2aWRlbmQpO1xuICAkZGl2aXNvcjogYWJzKCRkaXZpc29yKTtcbiAgJHF1b3RpZW50OiAwO1xuICAkcmVtYWluZGVyOiAkZGl2aWRlbmQ7XG4gIEBpZiAkZGl2aWRlbmQgPT0gMCB7XG4gICAgQHJldHVybiAwO1xuICB9XG4gIEBpZiAkZGl2aXNvciA9PSAwIHtcbiAgICBAZXJyb3IgXCJDYW5ub3QgZGl2aWRlIGJ5IDBcIjtcbiAgfVxuICBAaWYgJGRpdmlzb3IgPT0gMSB7XG4gICAgQHJldHVybiAkZGl2aWRlbmQ7XG4gIH1cbiAgQHdoaWxlICRyZW1haW5kZXIgPj0gJGRpdmlzb3Ige1xuICAgICRxdW90aWVudDogJHF1b3RpZW50ICsgMTtcbiAgICAkcmVtYWluZGVyOiAkcmVtYWluZGVyIC0gJGRpdmlzb3I7XG4gIH1cbiAgQGlmICRyZW1haW5kZXIgPiAwIGFuZCAkcHJlY2lzaW9uID4gMCB7XG4gICAgJHJlbWFpbmRlcjogZmEtZGl2aWRlKCRyZW1haW5kZXIgKiAxMCwgJGRpdmlzb3IsICRwcmVjaXNpb24gLSAxKSAqIC4xO1xuICB9XG4gIEByZXR1cm4gKCRxdW90aWVudCArICRyZW1haW5kZXIpICogJHNpZ247XG59XG4iLCJAa2V5ZnJhbWVzIGZvcm0tbGFiZWwtZmlsbGVkIHtcbiAgMCUge1xuICAgIGxlZnQ6ICRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0O1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgfVxuICAyNSUge1xuICAgIGxlZnQ6ICRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0O1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIHRyYW5zZm9ybTogcm90YXRlWSg5MGRlZykgdHJhbnNsYXRlWSgwKTtcbiAgfVxuICA3NSUge1xuICAgIGxlZnQ6ICRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0LWZpbGxlZDtcbiAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZS1maWxsZWQ7XG4gICAgYmFja2dyb3VuZDogJGNvbG9yLWZvcm0tZmllbGQtYmFja2dyb3VuZDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoOTBkZWcpIHRyYW5zbGF0ZVkoJGZvcm0tbGFiZWwtdHJhbnNsYXRlKTtcbiAgfVxuICAxMDAlIHtcbiAgICBsZWZ0OiAkZm9ybS1sYWJlbC1ndXR0ZXItbGVmdC1maWxsZWQ7XG4gICAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemUtZmlsbGVkO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci1mb3JtLWZpZWxkLWJhY2tncm91bmQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDApIHRyYW5zbGF0ZVkoJGZvcm0tbGFiZWwtdHJhbnNsYXRlKTtcbiAgfVxufVxuXG5Aa2V5ZnJhbWVzIGZvcm0tbGFiZWwge1xuICAwJSB7XG4gICAgbGVmdDogJGZvcm0tbGFiZWwtZ3V0dGVyLWxlZnQtZmlsbGVkO1xuICAgIGZvbnQtc2l6ZTogJGZvcm0tbGFiZWwtZm9udC1zaXplLWZpbGxlZDtcbiAgICBiYWNrZ3JvdW5kOiAkY29sb3ItZm9ybS1maWVsZC1iYWNrZ3JvdW5kO1xuICAgIHRyYW5zZm9ybTogcm90YXRlWSgwKSB0cmFuc2xhdGVZKCRmb3JtLWxhYmVsLXRyYW5zbGF0ZSk7XG4gIH1cbiAgMjUlIHtcbiAgICBsZWZ0OiAkZm9ybS1sYWJlbC1ndXR0ZXItbGVmdC1maWxsZWQ7XG4gICAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemUtZmlsbGVkO1xuICAgIGJhY2tncm91bmQ6ICRjb2xvci1mb3JtLWZpZWxkLWJhY2tncm91bmQ7XG4gICAgdHJhbnNmb3JtOiByb3RhdGVZKDkwZGVnKSB0cmFuc2xhdGVZKCRmb3JtLWxhYmVsLXRyYW5zbGF0ZSk7XG4gIH1cbiAgNzUlIHtcbiAgICBsZWZ0OiAkZm9ybS1sYWJlbC1ndXR0ZXItbGVmdDtcbiAgICBmb250LXNpemU6ICRmb3JtLWxhYmVsLWZvbnQtc2l6ZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZVkoOTBkZWcpIHRyYW5zbGF0ZVkoMCk7XG4gIH1cbiAgMTAwJSB7XG4gICAgbGVmdDogJGZvcm0tbGFiZWwtZ3V0dGVyLWxlZnQ7XG4gICAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgdHJhbnNmb3JtOiBub25lO1xuICB9XG59XG4iLCIkZm9ybS1kZWZhdWx0LWZvbnQtc2l6ZTogMTZweCAhZGVmYXVsdDtcbiRmb3JtLWd1dHRlcjogLjVyZW0gIWRlZmF1bHQ7XG4kZm9ybS1pbnB1dC10ZXh0LWhlaWdodDogMi41cmVtICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtbGluZS1oZWlnaHQ6IDFyZW07XG4kZm9ybS1sYWJlbC1ndXR0ZXItdG9wOiBjYWxjKCgjeyRmb3JtLWlucHV0LXRleHQtaGVpZ2h0fSAtICN7JGZvcm0tbGFiZWwtbGluZS1oZWlnaHR9KSAvIDIpICAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0OiAkZm9ybS1ndXR0ZXIgKiAyICAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWd1dHRlci1sZWZ0LWZpbGxlZDogJGZvcm0tbGFiZWwtZ3V0dGVyLWxlZnQgIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC10cmFuc2xhdGU6IC0xLjJyZW0gIWRlZmF1bHQ7XG4kZm9ybS1sYWJlbC1uby1hbmltLXRyYW5zbGF0ZTogJGZvcm0tbGFiZWwtdHJhbnNsYXRlICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtbm8tYW5pbS1tYXJnaW4tdG9wOiAxcmVtICFkZWZhdWx0O1xuJGZvcm0tbGFiZWwtZm9udC1zaXplOiAuOXJlbSAhZGVmYXVsdDtcbiRmb3JtLWxhYmVsLWZvbnQtc2l6ZS1maWxsZWQ6IC43cmVtICFkZWZhdWx0O1xuJGZvcm0tZXJyb3ItZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemUgIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1ib3JkZXItcmFkaXVzOiAuMjVyZW0gIWRlZmF1bHQ7XG4kZm9ybS1maWVsZC1tYXJnaW4tdG9wOiAxcmVtICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbWFyZ2luLXRvcC10YWJsZXQ6ICRmb3JtLWZpZWxkLW1hcmdpbi10b3AgKiAyICFkZWZhdWx0O1xuJGZvcm0tZmllbGQtbWFyZ2luLWJvdHRvbTogMS41cmVtICFkZWZhdWx0O1xuXG4kZm9ybS1maWVsZC1pbnB1dC1iYWNrZ3JvdW5kOiAjZmZmICFkZWZhdWx0O1xuJGNvbG9yLWZvcm0tdGV4dDogIzRiNTA1NSAhZGVmYXVsdDtcbiRjb2xvci1mb3JtLXRleHQtc3R5bGUtZGFyazogICNmZmYgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS1maWxsZWQ6ICNhYTE2MzYgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS1zdWJtaXQ6ICRjb2xvci1mb3JtLWZpbGxlZCAhZGVmYXVsdDtcbiRjb2xvci1jaGVja2JveC1jaGVja2VkOiAkY29sb3ItZm9ybS1maWxsZWQgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS1tYWlsLXNlbnQ6ICM4N2QzN2MgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS1lcnJvcnM6IHJlZCAhZGVmYXVsdDtcbiRjb2xvci1mb3JtLWZpZWxkLWJhY2tncm91bmQ6ICNmZmYgIWRlZmF1bHQ7XG4kY29sb3ItZm9ybS1maWVsZC1ib3JkZXI6ICRjb2xvci1mb3JtLXRleHQgIWRlZmF1bHQ7XG5cbiRmaWVsZC1kZXNjLXNpemU6IC44cmVtICFkZWZhdWx0O1xuJGZpZWxkLWRlc2MtY29sb3I6ICM2OTY5NjkgIWRlZmF1bHQ7XG4kZmllbGQtZGVzYy1zdHlsZTogaXRhbGljICFkZWZhdWx0O1xuIiwiaW5wdXQsXG5zZWxlY3QsXG50ZXh0YXJlYSB7XG4gICY6LXdlYmtpdC1hdXRvZmlsbCB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMTAwcHggJGNvbG9yLWZvcm0tZmllbGQtYmFja2dyb3VuZCBpbnNldDtcbiAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogJGNvbG9yLWZvcm0tdGV4dDtcblxuICAgICY6aG92ZXIsXG4gICAgJjpmb2N1cyB7XG4gICAgICAtd2Via2l0LXRleHQtZmlsbC1jb2xvcjogJGNvbG9yLWZvcm0tdGV4dDtcbiAgICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG4gIH1cbn1cblxuLmdyZWNhcHRjaGEtYmFkZ2Uge1xuICB2aXNpYmlsaXR5OiBjb2xsYXBzZTtcbn1cblxuQG1lZGlhIChtYXgtd2lkdGg6IDk1OXB4KSB7XG4gIC8vIGRpc3BsYXkgZm9ybSByZXNwb25zZSBvdXRwdXQgYWJvdmUgc3VibWl0IGJ1dHRvbiAmIGxlZ2FsIG5vdGljZSBvbiBtb2JpbGUgJiB0YWJsZXRcbiAgLmZvcm0tZmllbGQtc3VibWl0IHtcbiAgICBvcmRlcjogMTtcbiAgfVxuXG4gIC5mb3JtLWxlZ2FsLW5vdGljZSxcbiAgLmZvcm0tZmllbGQtcmdwZCB7XG4gICAgb3JkZXI6IDI7XG4gIH1cbn1cblxuLndwY2Y3IHtcbiAgZm9udC1zaXplOiAkZm9ybS1kZWZhdWx0LWZvbnQtc2l6ZTtcblxuICAud3BjZjctZm9ybSB7XG4gICAgY29sb3I6ICRjb2xvci1mb3JtLXRleHQ7XG4gICAgbWFyZ2luLXRvcDogJGZvcm0tZmllbGQtbWFyZ2luLXRvcDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgICBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcbiAgICAgIG1hcmdpbi10b3A6ICRmb3JtLWZpZWxkLW1hcmdpbi10b3AtdGFibGV0O1xuICAgIH1cblxuICAgIC5mb3JtLWZpZWxkIHtcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgIG1hcmdpbi1ib3R0b206ICRmb3JtLWZpZWxkLW1hcmdpbi1ib3R0b207XG4gICAgICB0cmFuc2l0aW9uOiBhbGwgZWFzZSAuNXM7XG5cbiAgICAgIHA6bm90KFtjbGFzc10pIHtcbiAgICAgICAgZGlzcGxheTogY29udGVudHM7XG4gICAgICB9XG5cbiAgICAgIGlucHV0IHtcbiAgICAgICAgJjpub3QoW3R5cGU9XCJzdWJtaXRcIl0pOm5vdChbdHlwZT1cImZpbGVcIl0pOm5vdChbdHlwZT1cImNoZWNrYm94XCJdKSB7XG4gICAgICAgICAgZmxvYXQ6IG5vbmU7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgICAgcGFkZGluZy1sZWZ0OiAkZm9ybS1ndXR0ZXI7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGJvcmRlcjogMXB4IHNvbGlkICRjb2xvci1mb3JtLWZpZWxkLWJvcmRlcjtcbiAgICAgICAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1maWVsZC1ib3JkZXItcmFkaXVzO1xuICAgICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlIC40cztcbiAgICAgICAgICBiYWNrZ3JvdW5kOiAkZm9ybS1maWVsZC1pbnB1dC1iYWNrZ3JvdW5kO1xuXG4gICAgICAgICAgJi53cGNmNy10ZXh0LCAmLndwY2Y3LW51bWJlciB7XG4gICAgICAgICAgICBoZWlnaHQ6ICRmb3JtLWlucHV0LXRleHQtaGVpZ2h0O1xuICAgICAgICAgICAgY29sb3I6ICRjb2xvci1mb3JtLXRleHQ7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJi53cGNmNy1ub3QtdmFsaWQge1xuICAgICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItZm9ybS1lcnJvcnM7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpmb2N1cyB7XG4gICAgICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICAgICAgJlt0eXBlPVwiZGF0ZVwiXSB7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gICAgICAgICAgJjo6LXdlYmtpdC1jYWxlbmRhci1waWNrZXItaW5kaWNhdG9yIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgICAgIHBhZGRpbmctbGVmdDogY2FsYygxMDAlIC0gMi41ZW0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICB0ZXh0YXJlYSB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nLWxlZnQ6ICRmb3JtLWd1dHRlcjtcbiAgICAgICAgcGFkZGluZy10b3A6ICRmb3JtLWd1dHRlcjtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tdGV4dDtcbiAgICAgICAgcmVzaXplOiBub25lO1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCAkY29sb3ItZm9ybS1maWVsZC1ib3JkZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6ICRmb3JtLWZpZWxkLWJvcmRlci1yYWRpdXM7XG4gICAgICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciBlYXNlIC40cztcbiAgICAgICAgYmFja2dyb3VuZDogJGZvcm0tZmllbGQtaW5wdXQtYmFja2dyb3VuZDtcbiAgICAgICAgaGVpZ2h0OiBpbml0aWFsO1xuXG4gICAgICAgICY6Zm9jdXMge1xuICAgICAgICAgIG91dGxpbmU6IG5vbmU7XG4gICAgICAgIH1cblxuICAgICAgICAmLndwY2Y3LW5vdC12YWxpZCB7XG4gICAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICAgIGJvcmRlci1jb2xvcjogJGNvbG9yLWZvcm0tZXJyb3JzO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHNlbGVjdC53cGNmNy1zZWxlY3QsXG4gICAgICBzZWxlY3Qud3BjZjctZm9ybS1jb250cm9sIHtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAkZm9ybS1ndXR0ZXI7XG4gICAgICAgIGZsb2F0OiBub25lO1xuICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tdGV4dDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgJGNvbG9yLWZvcm0tZmllbGQtYm9yZGVyO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAkZm9ybS1maWVsZC1ib3JkZXItcmFkaXVzO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgaGVpZ2h0OiAkZm9ybS1pbnB1dC10ZXh0LWhlaWdodDtcbiAgICAgICAgYmFja2dyb3VuZDogJGZvcm0tZmllbGQtaW5wdXQtYmFja2dyb3VuZDtcblxuICAgICAgICAmLndwY2Y3LW5vdC12YWxpZCB7XG4gICAgICAgICAgYm9yZGVyLWNvbG9yOiAkY29sb3ItZm9ybS1lcnJvcnM7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgPiBsYWJlbCB7XG4gICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICAgICAgdG9wOiAkZm9ybS1sYWJlbC1ndXR0ZXItdG9wO1xuICAgICAgICBsZWZ0OiAkZm9ybS1sYWJlbC1ndXR0ZXItbGVmdDtcbiAgICAgICAgei1pbmRleDogMTtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgbWFyZ2luOiAwO1xuICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tdGV4dDtcbiAgICAgICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG4gICAgICAgIGN1cnNvcjogdGV4dDtcbiAgICAgICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgICAgIHRyYW5zaXRpb246IGZvbnQtc2l6ZSBlYXNlIC41cywgdHJhbnNmb3JtIGVhc2UtaW4tb3V0IC41cywgYmFja2dyb3VuZC1jb2xvciBlYXNlIC41cywgcGFkZGluZyBlYXNlIC41cztcbiAgICAgICAgZm9udC1zaXplOiAkZm9ybS1sYWJlbC1mb250LXNpemU7XG4gICAgICAgIGxpbmUtaGVpZ2h0OiAkZm9ybS1sYWJlbC1saW5lLWhlaWdodDtcbiAgICAgIH1cblxuICAgICAgJi5zdHlsZS1kYXJrIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGNvbG9yOiAkY29sb3ItZm9ybS10ZXh0LXN0eWxlLWRhcms7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5lbXB0eSB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBhbmltYXRpb246IC41cyBlYXNlLWluIDBzIDEgZm9ybS1sYWJlbDtcbiAgICAgICAgICBhbmltYXRpb24tZmlsbC1tb2RlOiBmb3J3YXJkcztcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmZpbGxlZCxcbiAgICAgICYuYWN0aXZlIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIHBhZGRpbmc6IDAgJGZvcm0tZ3V0dGVyO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuZmlsbGVkIHtcbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIGFuaW1hdGlvbjogLjVzIGVhc2UtaW4gMHMgMSBmb3JtLWxhYmVsLWZpbGxlZDtcbiAgICAgICAgICBhbmltYXRpb24tZGlyZWN0aW9uOiBub3JtYWw7XG4gICAgICAgICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5hY3RpdmUge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgY29sb3I6ICRjb2xvci1mb3JtLWZpbGxlZCAhaW1wb3J0YW50O1xuICAgICAgICB9XG5cbiAgICAgICAgaW5wdXQsXG4gICAgICAgIHRleHRhcmVhIHtcbiAgICAgICAgICBib3JkZXItY29sb3I6ICRjb2xvci1mb3JtLWZpbGxlZCAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYubm8tYW5pbSxcbiAgICAgICYuZm9ybS1maWVsZC1ub2FuaW0ge1xuICAgICAgICBsYWJlbCB7XG4gICAgICAgICAgYW5pbWF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgICAgICAgdG9wOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgICAgICAgIHBhZGRpbmc6IDA7XG4gICAgICAgICAgbWFyZ2luLXRvcDogJGZvcm0tbGFiZWwtbm8tYW5pbS1tYXJnaW4tdG9wO1xuICAgICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgkZm9ybS1sYWJlbC1uby1hbmltLXRyYW5zbGF0ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5mb3JtLWZpZWxkLXNlbGVjdCB7XG4gICAgICAgIGxhYmVsIHtcbiAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5mb3JtLWZpZWxkLWFjY2VwdGFuY2Uge1xuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgd2lkdGg6IGF1dG87XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgJi5mb3JtLWZpZWxkLXJncGQsXG4gICAgICAmLmZvcm0tbGVnYWwtbm90aWNlIHtcbiAgICAgICAgbWFyZ2luOiAxcmVtIGF1dG87XG4gICAgICAgIGZvbnQtc2l6ZTogLjdyZW07XG4gICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgIH1cblxuICAgICAgJi5mb3JtLWZpZWxkLWRvdWJsZSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgc3BhbiB7XG4gICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICBmbGV4OiAyO1xuXG4gICAgICAgICAgICBpbnB1dC53cGNmNy10ZXh0IHtcbiAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0LXdpZHRoOiAxcHg7XG4gICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHggMCAwIDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgIGZsZXg6IDE7XG5cbiAgICAgICAgICAgIGlucHV0LndwY2Y3LXRleHQge1xuICAgICAgICAgICAgICBib3JkZXItbGVmdC13aWR0aDogMXB4O1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDEwcHggMTBweCAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmZvcm0tZmllbGQtY2hlY2tib3gge1xuICAgICAgICAud3BjZjctY2hlY2tib3gge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC0uMjVlbTtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogLS4yNWVtO1xuXG4gICAgICAgICAgLndwY2Y3LWxpc3QtaXRlbSB7XG4gICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgIHBhZGRpbmc6IDAgLjI1ZW07XG5cbiAgICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgICAgY3Vyc29yOiBwb2ludGVyO1xuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgICAgICAgICAgICAud3BjZjctbGlzdC1pdGVtLWxhYmVsIHtcbiAgICAgICAgICAgICAgICBwYWRkaW5nLWxlZnQ6IC41cmVtO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgJi5jaGVja2JveC1pbmxpbmUge1xuICAgICAgICAgIGxhYmVsIHtcbiAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IC4yNWVtO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC53cGNmNy1jaGVja2JveCB7XG4gICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICAgICAgZmxleC13cmFwOiB3cmFwO1xuXG4gICAgICAgICAgICAud3BjZjctbGlzdC1pdGVtIHtcbiAgICAgICAgICAgICAgZmxleDogMCAwIDIwMHB4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLmZvcm0tZmllbGQtZGF0ZSB7XG4gICAgICAgIGlucHV0IHtcbiAgICAgICAgICBoZWlnaHQ6ICRmb3JtLWlucHV0LXRleHQtaGVpZ2h0O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYuaW5saW5lIHtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICB9XG5cbiAgICAgICAgbGFiZWwge1xuICAgICAgICAgIHBvc2l0aW9uOiBzdGF0aWM7XG4gICAgICAgICAgbGluZS1oZWlnaHQ6IDI1cHg7XG4gICAgICAgIH1cblxuICAgICAgICAud3BjZjctcmFkaW8ge1xuICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG5cbiAgICAgICAgICAud3BjZjctbGlzdC1pdGVtIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IC4yNWVtO1xuICAgICAgICAgICAgICBtYXJnaW4tbGVmdDogLjI1ZW07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLndwY2Y3LWNoZWNrYm94IHtcbiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLmZvcm0tZmllbGQtc3VibWl0IHtcbiAgICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuXG4gICAgICAuYWpheC1sb2FkZXIsIC53cGNmNy1zcGlubmVyIHtcbiAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgICAgICBtaW4taGVpZ2h0OiB1bnNldDtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHNwYW4ud3BjZjctbGlzdC1pdGVtIHtcbiAgICAgIG1hcmdpbjogMDtcbiAgICB9XG5cbiAgICAuZm9ybS1maWVsZC1yZXF1aXJlZCB7XG4gICAgICBjb2xvcjogJGNvbG9yLWZvcm0tZXJyb3JzO1xuICAgIH1cblxuICAgIC5mb3JtLWZpZWxkLXdyYXAge1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICAgIG1hcmdpbi1yaWdodDogLTE1cHg7XG4gICAgICBtYXJnaW4tbGVmdDogLTE1cHg7XG5cbiAgICAgIC5mb3JtLWZpZWxkLWRhdGUge1xuICAgICAgICBmbGV4OiAxIDEgMDtcbiAgICAgICAgbWFyZ2luLXJpZ2h0OiAxNXB4O1xuICAgICAgICBtYXJnaW4tbGVmdDogMTVweDtcblxuICAgICAgICBpbnB1dCB7XG4gICAgICAgICAgbWFyZ2luLXRvcDogMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC53cGNmNy1mb3JtLWNvbnRyb2wtd3JhcCB7XG4gICAgICBkaXNwbGF5OiBibG9jaztcblxuICAgICAgLndwY2Y3LW5vdC12YWxpZC10aXAge1xuICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tZXJyb3JzICFpbXBvcnRhbnQ7XG4gICAgICAgIGZvbnQtc2l6ZTogJGZvcm0tZXJyb3ItZm9udC1zaXplO1xuICAgICAgICBmb250LXdlaWdodDogbm9ybWFsO1xuICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgICAgIGJvdHRvbTogLTJyZW07XG4gICAgICAgIGxlZnQ6ICRmb3JtLWd1dHRlcjtcbiAgICAgICAgcmlnaHQ6IDA7XG4gICAgICAgIGhlaWdodDogMzBweDtcbiAgICAgICAgei1pbmRleDogMjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAuZm9ybS1maWVsZC1kZXNjIHtcbiAgICAgIGZvbnQtc2l6ZTogJGZpZWxkLWRlc2Mtc2l6ZTtcbiAgICAgIGZvbnQtc3R5bGU6ICRmaWVsZC1kZXNjLXN0eWxlO1xuICAgICAgY29sb3I6ICRmaWVsZC1kZXNjLWNvbG9yO1xuICAgIH1cblxuICAgIC53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuICAgICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgICBmb250LXNpemU6IC45cmVtO1xuICAgICAgbWFyZ2luLXRvcDogMXJlbTtcblxuICAgICAgQG1lZGlhIChtYXgtd2lkdGg6IDk1OXB4KSB7XG4gICAgICAgIG1hcmdpbi10b3A6IDA7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDFyZW07XG4gICAgICB9XG4gICAgfVxuXG4gICAgJjpub3QoLnN1Ym1pdHRpbmcpIHtcbiAgICAgIC5hamF4LWxvYWRlciwgLndwY2Y3LXNwaW5uZXIge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5zZW50IHtcbiAgICAgIC53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tbWFpbC1zZW50ICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJi5pbnZhbGlkIHtcbiAgICAgIC53cGNmNy1yZXNwb25zZS1vdXRwdXQge1xuICAgICAgICBjb2xvcjogJGNvbG9yLWZvcm0tZXJyb3JzICFpbXBvcnRhbnQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gRm9ybSBncmlkXG4gIC5mb3JtLXJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG1hcmdpbi1yaWdodDogLSRmb3JtLWd1dHRlcjtcbiAgICBtYXJnaW4tbGVmdDogLSRmb3JtLWd1dHRlcjtcblxuICAgICY6OmJlZm9yZSxcbiAgICAmOjphZnRlciB7XG4gICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgQG1lZGlhIChtaW4td2lkdGg6IDQ4MHB4KSB7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAgZmxleC13cmFwOiB3cmFwO1xuICAgIH1cblxuICAgICYgPiAuZm9ybS1jb2wge1xuICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICBwYWRkaW5nLXJpZ2h0OiAkZm9ybS1ndXR0ZXIgIWltcG9ydGFudDtcbiAgICAgIHBhZGRpbmctbGVmdDogJGZvcm0tZ3V0dGVyICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgJiA+IC5mb3JtLWNvbC02IHtcbiAgICAgIEBleHRlbmQgLmZvcm0tY29sO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgZmxleDogMCAwIDUwJTtcbiAgICAgICAgbWF4LXdpZHRoOiA1MCU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiA+IC5mb3JtLWNvbC00IHtcbiAgICAgIEBleHRlbmQgLmZvcm0tY29sO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgZmxleDogMCAwIDMzLjMzJTtcbiAgICAgICAgbWF4LXdpZHRoOiAzMy4zMyU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgJiA+IC5mb3JtLWNvbC0zIHtcbiAgICAgIEBleHRlbmQgLmZvcm0tY29sO1xuXG4gICAgICBAbWVkaWEgKG1pbi13aWR0aDogNDgwcHgpIHtcbiAgICAgICAgZmxleDogMCAwIDI1JTtcbiAgICAgICAgbWF4LXdpZHRoOiAyNSU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cbiIsIkBpbXBvcnQgXCJ+QGZvcnRhd2Vzb21lL2ZvbnRhd2Vzb21lLXByby9zY3NzL2Z1bmN0aW9uc1wiO1xuQGltcG9ydCBcIn5AZm9ydGF3ZXNvbWUvZm9udGF3ZXNvbWUtcHJvL3Njc3MvdmFyaWFibGVzXCI7XG5cbi8vLS0tLS0tIEJvb3RzdHJhcFxuLy8tLS0tLSBDb2xvciBzeXN0ZW1cbi8vIHNjc3MtZG9jcy1zdGFydCBjb2xvci12YXJpYWJsZXNcbiR3aGl0ZTogI2ZmZjtcblxuLy8tLS0tIEJ1dHRvbnMgU3R5bGVcbiRpbnB1dC1idG4tcGFkZGluZy14OiAxLjI1cmVtO1xuJGlucHV0LWJ0bi1wYWRkaW5nLXk6IC43NXJlbTtcbiRpbnB1dC1idG4tZm9udC1mYW1pbHk6IG9zd2FsZDtcblxuLy8tLS0tLSBCdXR0b25zICsgRm9ybXNcbiRidG4tY29sb3JzOiAoXG4gIFwic2Vjb25kYXJ5XCI6ICNhNmMxNDdcbik7XG5cbi8vLS0tLS0gTmF2c1xuLy8gJG5hdi1saW5rLWZvbnQtc2l6ZTogbnVsbDtcbi8vICRuYXYtbGluay1jb2xvcjogJGJvZHktY29sb3I7XG4vLyAkbmF2LWxpbmstaG92ZXItY29sb3I6ICRwcmltYXJ5O1xuXG4vLy0tLS0tLSBXcCBBbHBoYVxuLy8tLS0tLSBUb29sc1xuLy8gJHRlYXNlczogKFwiZ3JpZFwiLCBcImxpc3RcIik7XG5cbi8vLS0tLS0gQ29udHJhc3RcbiRtaW4tY29udHJhc3QtcmF0aW86IDM7XG5cbi8vLS0tLS0gSGVhZGVyXG4kaGVhZGVyLWJnOiAkd2hpdGU7XG5cbi8vLS0tLS0gRm9vdGVyXG4kZm9vdGVyLWJnOiB0cmFuc3BhcmVudDtcblxuLy8tLS0tLSBUb3AgYmFyXG4kdG9wLWJhci10cmFuc3BhcmVudC1oZWFkZXItYmctY29sb3I6ICRwcmltYXJ5O1xuXG4vLy0tLS0tIExvZ29cbiR0cmFuc3BhcmVudC1oZWFkZXItbG9nby1jb2xvcjogZmFsc2U7XG4kdHJhbnNwYXJlbnQtaGVhZGVyLWxvZ28tc2hhZG93LWNvbG9yOiBmYWxzZTtcblxuLy8tLS0tIFBhcmFsYXhcbiRhc3Atb3ZlcmxheS1iZy1jb2xvcjogJHNlY29uZGFyeTtcbiRhc3Atb3ZlcmxheS1iZy1vcGFjaXR5OiAuNjM7XG5cbi8vLS0tLS0gQ0Y3XG4kZm9ybS1maWVsZC1pbnB1dC1iYWNrZ3JvdW5kOiAkd2hpdGU7XG5cbi8vLS0tLS0tIEZvbnRzIG9wdGltaXphdGlvblxuLy8tLS0tLSBGb250QXdlc29tZSBJY29uc1xuLy8gaGVyZSB5b3UgY2FuIGFkZCBhbGwgdGhlIGljb25zIHlvdSBuZWVkIHRvIHVzZSBpbnNpZGUgeW91ciB0aGVtZVxuXG4kY3VzdG9tLXVzZWQtZmEtaWNvbnM6XG4gIChcbiAgICBoZWxtZXQtc2FmZXR5OiAkZmEtdmFyLWhlbG1ldC1zYWZldHksXG4gICAgZm9ydC1hd2Vzb21lOiAkZmEtdmFyLWZvcnQtYXdlc29tZSxcbiAgICBibG9jay1icmljazogJGZhLXZhci1ibG9jay1icmljayxcbiAgICB1c2VyLWhlYWRzZXQ6ICRmYS12YXItdXNlci1oZWFkc2V0LFxuICAgIGhhbmQtaG9sZGluZy1oZWFydDogJGZhLXZhci1oYW5kLWhvbGRpbmctaGVhcnQsXG4gICAgYmFsbG90LWNoZWNrOiAkZmEtdmFyLWJhbGxvdC1jaGVjayxcbiAgICBib2x0LWxpZ2h0bmluZzogJGZhLXZhci1ib2x0LWxpZ2h0bmluZyxcbiAgICBsaXN0LWNoZWNrOiAkZmEtdmFyLWxpc3QtY2hlY2ssXG4gICAgY2VydGlmaWNhdGU6ICRmYS12YXItY2VydGlmaWNhdGUsXG4gICk7XG4iLCIvLyBCcmVha3BvaW50IHZpZXdwb3J0IHNpemVzIGFuZCBtZWRpYSBxdWVyaWVzLlxuLy9cbi8vIEJyZWFrcG9pbnRzIGFyZSBkZWZpbmVkIGFzIGEgbWFwIG9mIChuYW1lOiBtaW5pbXVtIHdpZHRoKSwgb3JkZXIgZnJvbSBzbWFsbCB0byBsYXJnZTpcbi8vXG4vLyAgICAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KVxuLy9cbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cblxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCwgeHhsOiAxNDAwcHgpKVxuLy8gICAgbWRcbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSwgJGJyZWFrcG9pbnQtbmFtZXM6ICh4cyBzbSBtZCBsZyB4bCB4eGwpKVxuLy8gICAgbWRcbkBmdW5jdGlvbiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsICRicmVha3BvaW50LW5hbWVzOiBtYXAta2V5cygkYnJlYWtwb2ludHMpKSB7XG4gICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICBAaWYgbm90ICRuIHtcbiAgICBAZXJyb3IgXCJicmVha3BvaW50IGAjeyRuYW1lfWAgbm90IGZvdW5kIGluIGAjeyRicmVha3BvaW50c31gXCI7XG4gIH1cbiAgQHJldHVybiBpZigkbiA8IGxlbmd0aCgkYnJlYWtwb2ludC1uYW1lcyksIG50aCgkYnJlYWtwb2ludC1uYW1lcywgJG4gKyAxKSwgbnVsbCk7XG59XG5cbi8vIE1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTnVsbCBmb3IgdGhlIHNtYWxsZXN0IChmaXJzdCkgYnJlYWtwb2ludC5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LW1pbihzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICA1NzZweFxuQGZ1bmN0aW9uIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gIEByZXR1cm4gaWYoJG1pbiAhPSAwLCAkbWluLCBudWxsKTtcbn1cblxuLy8gTWF4aW11bSBicmVha3BvaW50IHdpZHRoLlxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgcmVkdWNlZCBieSAwLjAycHggdG8gd29yayBhcm91bmQgdGhlIGxpbWl0YXRpb25zIG9mXG4vLyBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KG1kLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIDc2Ny45OHB4XG5AZnVuY3Rpb24gYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogbWFwLWdldCgkYnJlYWtwb2ludHMsICRuYW1lKTtcbiAgQHJldHVybiBpZigkbWF4IGFuZCAkbWF4ID4gMCwgJG1heCAtIC4wMiwgbnVsbCk7XG59XG5cbi8vIFJldHVybnMgYSBibGFuayBzdHJpbmcgaWYgc21hbGxlc3QgYnJlYWtwb2ludCwgb3RoZXJ3aXNlIHJldHVybnMgdGhlIG5hbWUgd2l0aCBhIGRhc2ggaW4gZnJvbnQuXG4vLyBVc2VmdWwgZm9yIG1ha2luZyByZXNwb25zaXZlIHV0aWxpdGllcy5cbi8vXG4vLyAgICA+PiBicmVha3BvaW50LWluZml4KHhzLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgsIHh4bDogMTQwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4LCB4eGw6IDE0MDBweCkpXG4vLyAgICBcIi1zbVwiXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1pbmZpeCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICBAcmV0dXJuIGlmKGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpID09IG51bGwsIFwiXCIsIFwiLSN7JG5hbWV9XCIpO1xufVxuXG4vLyBNZWRpYSBvZiBhdCBsZWFzdCB0aGUgbWluaW11bSBicmVha3BvaW50IHdpZHRoLiBObyBxdWVyeSBmb3IgdGhlIHNtYWxsZXN0IGJyZWFrcG9pbnQuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQgYW5kIHdpZGVyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWluIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJG5hbWUsICRicmVha3BvaW50cyk7XG4gIEBpZiAkbWF4IHtcbiAgICBAbWVkaWEgKG1heC13aWR0aDogJG1heCkge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIHtcbiAgICBAY29udGVudDtcbiAgfVxufVxuXG4vLyBNZWRpYSB0aGF0IHNwYW5zIG11bHRpcGxlIGJyZWFrcG9pbnQgd2lkdGhzLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IGJldHdlZW4gdGhlIG1pbiBhbmQgbWF4IGJyZWFrcG9pbnRzXG5AbWl4aW4gbWVkaWEtYnJlYWtwb2ludC1iZXR3ZWVuKCRsb3dlciwgJHVwcGVyLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICRtaW46IGJyZWFrcG9pbnQtbWluKCRsb3dlciwgJGJyZWFrcG9pbnRzKTtcbiAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gIEBpZiAkbWluICE9IG51bGwgYW5kICRtYXggIT0gbnVsbCB7XG4gICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRsb3dlciwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICBAY29udGVudDtcbiAgICB9XG4gIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oJHVwcGVyLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuXG4vLyBNZWRpYSBiZXR3ZWVuIHRoZSBicmVha3BvaW50J3MgbWluaW11bSBhbmQgbWF4aW11bSB3aWR0aHMuXG4vLyBObyBtaW5pbXVtIGZvciB0aGUgc21hbGxlc3QgYnJlYWtwb2ludCwgYW5kIG5vIG1heGltdW0gZm9yIHRoZSBsYXJnZXN0IG9uZS5cbi8vIE1ha2VzIHRoZSBAY29udGVudCBhcHBseSBvbmx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50LCBub3Qgdmlld3BvcnRzIGFueSB3aWRlciBvciBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LW9ubHkoJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgJG1pbjogIGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbmV4dDogYnJlYWtwb2ludC1uZXh0KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAkbWF4OiAgYnJlYWtwb2ludC1tYXgoJG5leHQsICRicmVha3BvaW50cyk7XG5cbiAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikgYW5kIChtYXgtd2lkdGg6ICRtYXgpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfSBAZWxzZSBpZiAkbWF4ID09IG51bGwge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtdXAoJG5hbWUsICRicmVha3BvaW50cykge1xuICAgICAgQGNvbnRlbnQ7XG4gICAgfVxuICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuZXh0LCAkYnJlYWtwb2ludHMpIHtcbiAgICAgIEBjb250ZW50O1xuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9*/