/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./node_modules/sass-loader/dist/cjs.js??ruleSet[1].rules[0].use[3]!./platform-resources/platform-resources-core-user/src/main/scss/components/product-banner.scss ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************/
/* boostrap */
/* custom */
/* stylelint-disable color-no-hex */
/* stylelint-enable color-no-hex */
/* stylelint-disable font-weight-notation */
/* stylelint-enable font-weight-notation */
.productBanner__image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover; }

/* TODO: BOX-2496 Synchronizacja z admin: cms-admin/src/main/ckeditor/contents.css */
@keyframes carousel-indicator-decorator {
  from {
    stroke-dashoffset: 75px; }
  to {
    stroke-dashoffset: 0; } }

.layout_column .productBanner:focus-visible {
  position: relative; }
  .layout_column .productBanner:focus-visible .focus {
    top: -10px;
    right: -10px;
    bottom: -10px;
    left: -10px;
    position: absolute;
    border-radius: 10px;
    z-index: 1;
    outline: none !important;
    box-shadow: 0 0 0 2px var(--color-black) inset, 0 0 0 1px var(--color-black) !important;
    border-color: var(--color-black) !important; }
    @media (forced-colors: active) {
      .layout_column .productBanner:focus-visible .focus {
        outline: none !important;
        box-shadow: 0 0 0 2px var(--color-yellow) inset, 0 0 0 1px var(--color-yellow) !important;
        border-color: var(--color-yellow) !important;
        forced-color-adjust: none; } }
  @media (forced-colors: active) {
    .layout_column .productBanner:focus-visible * {
      forced-color-adjust: initial; } }

.productBanner__componentHeader {
  margin: 0 0 30px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  text-align: center; }
  @media (max-width: 768.98px) {
    .productBanner__componentHeader {
      text-align: left;
      margin: 0 0 20px;
      position: relative; }
      .productBanner__componentHeader:before {
        content: "";
        display: block;
        width: 60px;
        height: 5px;
        background: var(--color-brand-secondary);
        border-radius: 5px; } }

.productBanner__componentHeaderHeadline {
  font-size: 32px;
  line-height: 42px;
  font-weight: 400;
  color: var(--color-title-color); }
  @media (max-width: 768.98px) {
    .productBanner__componentHeaderHeadline {
      font-size: 30px;
      line-height: 38px; } }
  @media print {
    .productBanner__componentHeaderHeadline {
      color: var(--color-title-color); } }

.productBanner__componentHeaderTagline {
  font-size: 18px; }
  @media (max-width: 768.98px) {
    .productBanner__componentHeaderTagline {
      font-size: 14px; } }

.productBanner__container {
  min-height: 430px;
  position: relative;
  border-radius: 24px;
  background-color: var(--color-gray);
  display: flex;
  overflow: hidden; }

.productBanner__data {
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  z-index: 1;
  background: var(--color-white-transparent-high);
  padding: 50px; }
  @media (max-width: 768.98px) {
    .productBanner__data {
      padding: 30px; } }

.productBanner__image {
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  position: absolute; }

.productBanner__text {
  max-width: 450px; }

.productBanner__title {
  font-size: 40px;
  line-height: 48px;
  font-weight: 400;
  color: var(--color-title-color);
  margin: 0 0 10px; }
  @media (max-width: 768.98px) {
    .productBanner__title {
      font-size: 34px;
      line-height: 40px; } }
  @media print {
    .productBanner__title {
      color: var(--color-title-color); } }

@media (max-width: 768.98px) {
  .productBanner__description {
    font-size: 16px;
    line-height: 24px; } }

.productBanner__description:after {
  content: "";
  display: block;
  clear: both; }

.productBanner__description ol {
  list-style: decimal;
  padding-left: 15px; }
  .productBanner__description ol li:before {
    display: none; }

.productBanner__description ul {
  list-style: disc;
  padding-left: 15px; }
  .productBanner__description ul li:before {
    display: none; }

.productBanner__description p:not(:last-child) {
  margin-bottom: 10px; }

.productBanner__description blockquote {
  margin: 0 0 20px 0;
  padding: 5px 0 5px 20px;
  border-left: 3px solid var(--color-gray);
  font-style: italic; }
  .productBanner__description blockquote p {
    margin: 0; }

.productBanner__description h1 {
  font-size: 40px;
  line-height: 48px;
  font-weight: 400;
  color: var(--color-title-color); }
  @media (max-width: 768.98px) {
    .productBanner__description h1 {
      font-size: 34px;
      line-height: 40px; } }
  @media print {
    .productBanner__description h1 {
      color: var(--color-title-color); } }

.productBanner__description h2 {
  font-size: 32px;
  line-height: 42px;
  font-weight: 400;
  color: var(--color-title-color); }
  @media (max-width: 768.98px) {
    .productBanner__description h2 {
      font-size: 30px;
      line-height: 38px; } }
  @media print {
    .productBanner__description h2 {
      color: var(--color-title-color); } }

.productBanner__description h3 {
  font-size: 26px;
  line-height: 32px;
  font-weight: 400;
  color: var(--color-title-color); }
  @media (max-width: 768.98px) {
    .productBanner__description h3 {
      font-size: 26px;
      line-height: 32px; } }
  @media print {
    .productBanner__description h3 {
      color: var(--color-title-color); } }

.productBanner__description h4 {
  font-size: 20px;
  line-height: 28px;
  font-weight: 400;
  color: var(--color-title-color); }
  @media (max-width: 768.98px) {
    .productBanner__description h4 {
      font-size: 20px;
      line-height: 28px; } }
  @media print {
    .productBanner__description h4 {
      color: var(--color-title-color); } }

.productBanner__description a {
  color: var(--color-brand-primary);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.1em;
  padding: 5px;
  margin: -5px;
  border-radius: 3px;
  transition: all 0.2s ease-out; }
  .productBanner__description a:hover {
    background: var(--color-gray-light-3);
    color: var(--color-black);
    box-shadow: 0 0 0 1px var(--color-black-transparent); }
  @media (forced-colors: active) {
    .productBanner__description a:focus {
      forced-color-adjust: none;
      color: var(--color-black) !important;
      background: var(--color-yellow) !important; }
      .productBanner__description a:focus .icon:before {
        color: var(--color-black) !important; }
      .productBanner__description a:focus .icon:after {
        color: var(--color-black) !important; } }

.productBanner__description b,
.productBanner__description strong {
  font-weight: 700; }

.productBanner__description em {
  font-style: italic; }

.productBanner__description sup {
  font-size: 10px;
  padding-left: 2px;
  position: relative;
  top: -7px; }

.productBanner__description sub {
  font-size: 10px;
  padding-left: 2px;
  position: relative;
  bottom: -3px; }

.productBanner__description .button {
  position: relative;
  display: inline-block;
  min-height: 40px;
  min-width: 150px;
  padding: 11px 15px;
  border-radius: 100px;
  font-size: 16px;
  line-height: 1;
  text-align: center;
  transition: 0.2s all ease;
  cursor: pointer;
  background: var(--color-brand-primary);
  color: var(--color-white) !important;
  border: 0 none;
  border: 1px solid var(--color-transparent); }
  .productBanner__description .button:link, .productBanner__description .button:hover {
    text-decoration: none; }
  @media (forced-colors: active) {
    .productBanner__description .button:focus {
      forced-color-adjust: none;
      color: var(--color-black) !important;
      background: var(--color-yellow) !important; }
      .productBanner__description .button:focus .icon:before {
        color: var(--color-black) !important; }
      .productBanner__description .button:focus .icon:after {
        color: var(--color-black) !important; } }
  .productBanner__description .button:hover {
    background-color: var(--color-white);
    color: var(--color-brand-primary) !important;
    border-color: var(--color-brand-primary); }
  @media (forced-colors: active) {
    .productBanner__description .button:focus {
      forced-color-adjust: none;
      color: var(--color-black) !important;
      background: var(--color-yellow) !important; }
      .productBanner__description .button:focus .icon:before {
        color: var(--color-black) !important; }
      .productBanner__description .button:focus .icon:after {
        color: var(--color-black) !important; } }
  @media print {
    .productBanner__description .button {
      border: 1pt solid var(--color-transparent); } }
  .productBanner__description .button.secondary {
    position: relative;
    display: inline-block;
    min-height: 40px;
    min-width: 150px;
    padding: 11px 15px;
    border-radius: 100px;
    font-size: 16px;
    line-height: 1;
    text-align: center;
    transition: 0.2s all ease;
    cursor: pointer;
    background: var(--color-white-transparent-mid);
    color: var(--color-brand-primary) !important;
    border: 0 none;
    border: 1px solid var(--color-brand-primary); }
    .productBanner__description .button.secondary:link, .productBanner__description .button.secondary:hover {
      text-decoration: none; }
    @media (forced-colors: active) {
      .productBanner__description .button.secondary:focus {
        forced-color-adjust: none;
        color: var(--color-black) !important;
        background: var(--color-yellow) !important; }
        .productBanner__description .button.secondary:focus .icon:before {
          color: var(--color-black) !important; }
        .productBanner__description .button.secondary:focus .icon:after {
          color: var(--color-black) !important; } }
    .productBanner__description .button.secondary:hover {
      background-color: var(--color-brand-primary);
      color: var(--color-white) !important;
      border-color: var(--color-brand-primary); }
    @media (forced-colors: active) {
      .productBanner__description .button.secondary:focus {
        forced-color-adjust: none;
        color: var(--color-black) !important;
        background: var(--color-yellow) !important; }
        .productBanner__description .button.secondary:focus .icon:before {
          color: var(--color-black) !important; }
        .productBanner__description .button.secondary:focus .icon:after {
          color: var(--color-black) !important; } }
    @media print {
      .productBanner__description .button.secondary {
        border: 1pt solid var(--color-brand-primary); } }

.productBanner__description .text-center {
  text-align: center; }

.productBanner__description .text-right {
  text-align: right; }

.productBanner__description .text-justify {
  text-align: justify; }

.productBanner__description .lead {
  margin-bottom: 10px;
  font-size: 20px;
  font-weight: 700;
  line-height: 24px; }
  @media (max-width: 768.98px) {
    .productBanner__description .lead {
      font-size: 24px;
      line-height: 32px; } }

.productBanner__description .decor {
  color: var(--color-brand-primary); }

.productBanner__description .note {
  color: var(--color-gray);
  font-size: 14px;
  line-height: 18px; }

.productBanner__description .note-small {
  color: var(--color-gray);
  font-size: 12px;
  line-height: 15px; }

.productBanner__description .quote {
  font-size: 22px;
  line-height: 30px;
  font-style: italic; }

.productBanner__description img {
  display: initial; }

.productBanner__description hr {
  display: block;
  margin: 20px auto;
  border: 1px solid var(--color-gray-mid-2);
  border-bottom: 0; }

.productBanner__description table.primary-table th {
  background-color: var(--color-brand-primary);
  color: var(--color-white);
  font-weight: 700; }

.productBanner__description table.primary-table th,
.productBanner__description table.primary-table td {
  border: 1px solid var(--color-border-gray);
  padding: 10px; }

.productBanner__description table.rounded-table {
  border-collapse: separate;
  border-spacing: 0 10px; }
  .productBanner__description table.rounded-table th {
    padding: 0 20px;
    font-size: 14px;
    text-align: left;
    vertical-align: bottom; }
  .productBanner__description table.rounded-table td {
    padding: 20px;
    background-color: var(--color-gray-light-3);
    border-top: 1px solid var(--color-border-gray);
    border-bottom: 1px solid var(--color-border-gray); }
    .productBanner__description table.rounded-table td:first-child {
      border-left: 1px solid var(--color-border-gray);
      border-radius: 6px 0 0 6px; }
    .productBanner__description table.rounded-table td:last-child {
      border-right: 1px solid var(--color-border-gray);
      border-radius: 0 6px 6px 0; }
    .productBanner__description table.rounded-table td p {
      font-weight: 700; }

.productBanner__buttons {
  margin: 5px 0 0; }

.productBanner__button {
  position: relative;
  display: inline-block;
  min-height: 40px;
  min-width: 150px;
  padding: 11px 15px;
  border-radius: 100px;
  font-size: 16px;
  line-height: 1;
  text-align: center;
  transition: 0.2s all ease;
  cursor: pointer;
  background: var(--color-brand-primary);
  color: var(--color-white) !important;
  border: 0 none;
  border: 1px solid var(--color-transparent);
  margin: 15px 15px 0 0; }
  .productBanner__button:link, .productBanner__button:hover {
    text-decoration: none; }
  @media (forced-colors: active) {
    .productBanner__button:focus {
      forced-color-adjust: none;
      color: var(--color-black) !important;
      background: var(--color-yellow) !important; }
      .productBanner__button:focus .icon:before {
        color: var(--color-black) !important; }
      .productBanner__button:focus .icon:after {
        color: var(--color-black) !important; } }
  .productBanner__button:hover {
    background-color: var(--color-white);
    color: var(--color-brand-primary) !important;
    border-color: var(--color-brand-primary); }
  @media (forced-colors: active) {
    .productBanner__button:focus {
      forced-color-adjust: none;
      color: var(--color-black) !important;
      background: var(--color-yellow) !important; }
      .productBanner__button:focus .icon:before {
        color: var(--color-black) !important; }
      .productBanner__button:focus .icon:after {
        color: var(--color-black) !important; } }
  @media print {
    .productBanner__button {
      border: 1pt solid var(--color-transparent); } }
  .productBanner__button.secondary {
    position: relative;
    display: inline-block;
    min-height: 40px;
    min-width: 150px;
    padding: 11px 15px;
    border-radius: 100px;
    font-size: 16px;
    line-height: 1;
    text-align: center;
    transition: 0.2s all ease;
    cursor: pointer;
    background: var(--color-white-transparent-mid);
    color: var(--color-brand-primary) !important;
    border: 0 none;
    border: 1px solid var(--color-brand-primary); }
    .productBanner__button.secondary:link, .productBanner__button.secondary:hover {
      text-decoration: none; }
    @media (forced-colors: active) {
      .productBanner__button.secondary:focus {
        forced-color-adjust: none;
        color: var(--color-black) !important;
        background: var(--color-yellow) !important; }
        .productBanner__button.secondary:focus .icon:before {
          color: var(--color-black) !important; }
        .productBanner__button.secondary:focus .icon:after {
          color: var(--color-black) !important; } }
    .productBanner__button.secondary:hover {
      background-color: var(--color-brand-primary);
      color: var(--color-white) !important;
      border-color: var(--color-brand-primary); }
    @media (forced-colors: active) {
      .productBanner__button.secondary:focus {
        forced-color-adjust: none;
        color: var(--color-black) !important;
        background: var(--color-yellow) !important; }
        .productBanner__button.secondary:focus .icon:before {
          color: var(--color-black) !important; }
        .productBanner__button.secondary:focus .icon:after {
          color: var(--color-black) !important; } }
    @media print {
      .productBanner__button.secondary {
        border: 1pt solid var(--color-brand-primary); } }


/*# sourceMappingURL=data:application/json;charset=utf-8;base64,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QXlCO01BQ3pCLG9DQUFvQztNQUNwQywwQ0FBMEM7TURyQ2pEO1FDdUNXLG9DQUFvQztNRHZDL0M7UUMwQ1csb0NBQW9DLElGWjNDO0VXbkNMO0lWS0E7TVVKSSwwQ0F1QzRCLElWaEMvQjtFQUhBO0lVekNELGtCQUFrQjtJQUNsQixxQkFBcUI7SUFDckIsZ0JBQWdCO0lBQ2hCLGdCQUFnQjtJQUNoQixrQkFBa0I7SUFDbEIsb0JBQW9CO0lBQ3BCLGVBQWU7SUFDZixjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLHlCQUF5QjtJQUN6QixlQUFlO0lBZ0JmLDhDQXNFMEM7SUFyRTFDLDRDQUE2QjtJQUM3QixjQUFjO0lBQ2QsNENBcUVrQztJVnpEakM7TVU1QkcscUJBQXFCO0lUOERyQjtNRGxDSDtRQ21DTyx5QkFBeUI7UUFDekIsb0NBQW9DO1FBQ3BDLDBDQUEwQztRRHJDakQ7VUN1Q1csb0NBQW9DO1FEdkMvQztVQzBDVyxvQ0FBb0MsSUZaM0M7SUM5Qko7TVVWRyw0Q0FrRThCO01BakU5QixvQ0FBbUM7TUFDbkMsd0NBa0U4QjtJVHhCOUI7TURsQ0g7UUNtQ08seUJBQXlCO1FBQ3pCLG9DQUFvQztRQUNwQywwQ0FBMEM7UURyQ2pEO1VDdUNXLG9DQUFvQztRRHZDL0M7VUMwQ1csb0NBQW9DLElGWjNDO0lXbkNMO01WS0M7UVVKRyw0Q0E2RDhCLElBVWpDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZXBvaW50Y21zLWJzb3RyLy4vY3VzdG9taXphdGlvbi11c2VyL3NyYy9tYWluL3Njc3MvY29yZS92YXJpYWJsZXMuc2NzcyIsIndlYnBhY2s6Ly9lcG9pbnRjbXMtYnNvdHIvLi9jdXN0b21pemF0aW9uLXVzZXIvc3JjL21haW4vc2Nzcy9jb3JlL2NvbG9ycy5zY3NzIiwid2VicGFjazovL2Vwb2ludGNtcy1ic290ci8uL2N1c3RvbWl6YXRpb24tdXNlci9zcmMvbWFpbi9zY3NzL2NvcmUvdXRpbHMuc2NzcyIsIndlYnBhY2s6Ly9lcG9pbnRjbXMtYnNvdHIvLi9wbGF0Zm9ybS1yZXNvdXJjZXMvcGxhdGZvcm0tcmVzb3VyY2VzLWNvcmUtdXNlci9zcmMvbWFpbi9zY3NzL2NvbXBvbmVudHMvcHJvZHVjdC1iYW5uZXIuc2NzcyIsIndlYnBhY2s6Ly9lcG9pbnRjbXMtYnNvdHIvLi9jdXN0b21pemF0aW9uLXVzZXIvc3JjL21haW4vc2Nzcy9jb3JlL21peGlucy5zY3NzIiwid2VicGFjazovL2Vwb2ludGNtcy1ic290ci8uL2N1c3RvbWl6YXRpb24tdXNlci9zcmMvbWFpbi9zY3NzL2NvcmUvd3lzaXd5Zy5zY3NzIiwid2VicGFjazovL2Vwb2ludGNtcy1ic290ci8uL3BsYXRmb3JtLXJlc291cmNlcy9wbGF0Zm9ybS1yZXNvdXJjZXMtY29yZS11c2VyL3NyYy9tYWluL3Njc3MvY29tcG9uZW50cy1jb21tb24vY2Fyb3VzZWwuc2NzcyIsIndlYnBhY2s6Ly9lcG9pbnRjbXMtYnNvdHIvLi9jdXN0b21pemF0aW9uLXVzZXIvc3JjL21haW4vc2Nzcy9jb3JlL2NvbXBvbmVudC5zY3NzIiwid2VicGFjazovL2Vwb2ludGNtcy1ic290ci8uL2N1c3RvbWl6YXRpb24tdXNlci9zcmMvbWFpbi9zY3NzL2NvcmUvYm9vdHN0cmFwLnNjc3MiLCJ3ZWJwYWNrOi8vZXBvaW50Y21zLWJzb3RyLy4vY3VzdG9taXphdGlvbi11c2VyL3NyYy9tYWluL3Njc3MvY29yZS9oZWFkaW5ncy5zY3NzIiwid2VicGFjazovL2Vwb2ludGNtcy1ic290ci8uL2N1c3RvbWl6YXRpb24tdXNlci9zcmMvbWFpbi9zY3NzL2NvcmUvbGlzdHMuc2NzcyIsIndlYnBhY2s6Ly9lcG9pbnRjbXMtYnNvdHIvLi9jdXN0b21pemF0aW9uLXVzZXIvc3JjL21haW4vc2Nzcy9jb3JlL3R5cG9ncmFwaHkuc2NzcyIsIndlYnBhY2s6Ly9lcG9pbnRjbXMtYnNvdHIvLi9jdXN0b21pemF0aW9uLXVzZXIvc3JjL21haW4vc2Nzcy9jb3JlL2xpbmtzLnNjc3MiLCJ3ZWJwYWNrOi8vZXBvaW50Y21zLWJzb3RyLy4vY3VzdG9taXphdGlvbi11c2VyL3NyYy9tYWluL3Njc3MvY29yZS9idXR0b25zLnNjc3MiXSwic291cmNlc0NvbnRlbnQiOlsiLyogYm9vc3RyYXAgKi9cblxuJGdyaWQtYnJlYWtwb2ludHM6IChcbiAgICB4czogMCxcbiAgICBzbTogNDgwcHggKyAxcHgsXG4gICAgbWQ6IDc2OHB4ICsgMXB4LFxuICAgIGxnOiA5OTFweCArIDFweCxcbiAgICB4bDogMTE5OXB4ICsgMXB4LFxuICAgIHh4bDogMTYwMHB4LFxuKTtcblxuJGNvbnRhaW5lci1tYXgtd2lkdGhzOiAoXG4gICAgc206IDU0MHB4LFxuICAgIG1kOiA3MjBweCxcbiAgICBsZzogOTYwcHgsXG4gICAgeGw6IDExNDBweCxcbikgIWRlZmF1bHQ7XG5cbiRncmlkLWNvbHVtbnM6IDEyICFkZWZhdWx0O1xuJGdyaWQtZ3V0dGVyLXdpZHRoOiAzMHB4ICFkZWZhdWx0O1xuXG4vKiBjdXN0b20gKi9cblxuJHNlY3Rpb24td2lkdGg6IDE2MDBweDtcbiRjb250YWluZXItd2lkdGg6IDExNzBweDtcbiRuYXJyb3ctd2lkdGg6IDg1MHB4O1xuJGdhcDogMTVweDtcblxuJGltZzogXCIvX2UtcG9pbnQtY21zLWltZ1wiO1xuJGZvbnQ6IFwiL19lLXBvaW50LWNtcy1mb250c1wiO1xuXG4kaWNvbnMtZm9udC1uYW1lOiBcImUtcG9pbnQgQ01TIDo6IGljb25zXCI7XG4kbWFpbi1mb250LW5hbWU6IFwiZS1wb2ludCBDTVMgOjogbWFpblwiO1xuJGZvbnQtZmFtaWx5LWJhc2U6ICRtYWluLWZvbnQtbmFtZSwgQXJpYWwsIHNhbnMtc2VyaWY7XG4kZm9udC1zaXplLWJhc2U6IDE2cHg7XG4kZm9udC1zaXplLXNtOiAxNXB4O1xuJGxpbmUtaGVpZ2h0LWJhc2U6IDI0cHg7XG4iLCJAY2hhcnNldCBcIlVURi04XCI7XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIGNvbG9yLW5vLWhleCAqL1xuJGNvbG9yLXBhbGV0dGU6IChcbiAgICBcImJyYW5kXCI6IChcbiAgICAgICAgXCJicmFuZC1wcmltYXJ5XCI6ICMwMDgzNjMsXG4gICAgICAgIFwiYnJhbmQtc2Vjb25kYXJ5XCI6ICM4MzAwMjAsXG4gICAgKSxcbiAgICBcInRleHRcIjogKFxuICAgICAgICBcInRpdGxlLWNvbG9yXCI6ICMyNzI3MjcsXG4gICAgICAgIFwidGV4dC1jb2xvclwiOiAjNDg0ODQ4LFxuICAgICAgICBcImZvb3Rlci10ZXh0LWNvbG9yXCI6ICNhZWIyYjIsXG4gICAgKSxcbiAgICBcImdyZXlzXCI6IChcbiAgICAgICAgXCJibGFja1wiOiAjMTYxYTFhLFxuICAgICAgICBcImdyYXktZGFya1wiOiAjMjMyMzIzLFxuICAgICAgICBcImdyYXlcIjogIzczNzM3MyxcbiAgICAgICAgXCJncmF5LW1pZFwiOiAjY2FjYWNhLFxuICAgICAgICBcImdyYXktbWlkLTJcIjogI2U3ZTdlNyxcbiAgICAgICAgXCJncmF5LW1pZC0zXCI6ICNlZWUsXG4gICAgICAgIFwiZ3JheS1saWdodFwiOiAjZjBmMGYwLFxuICAgICAgICBcImdyYXktbGlnaHQtMlwiOiAjZjhmOGY4LFxuICAgICAgICBcImdyYXktbGlnaHQtM1wiOiAjZjlmOWZhLFxuICAgICAgICBcImdyYXktbGlnaHQtNFwiOiAjZjlmNmYzLFxuICAgICAgICBcIndoaXRlXCI6ICNmZmZmZmYsXG4gICAgKSxcbiAgICBcInByaW1hcnlcIjogKFxuICAgICAgICBcInJlZFwiOiAjZTAzZTNlLFxuICAgICAgICBcInJlZC1saWdodFwiOiAjZWQ5MDg3LFxuICAgICAgICBcIm9yYW5nZVwiOiAjZTQ4NTE2LFxuICAgICAgICBcIm9yYW5nZS1saWdodFwiOiAjZmZjODgwLFxuICAgICAgICBcInllbGxvd1wiOiAjZmZmZjAwLFxuICAgICAgICBcIml2b3J5XCI6ICNmZmZiZTgsXG4gICAgICAgIFwiYmVpZ2VcIjogI2YwZTdkMyxcbiAgICAgICAgXCJncmVlblwiOiAjNDc5YzcyLFxuICAgICAgICBcImdyZWVuLWxpZ2h0XCI6ICM4YTllOTQsXG4gICAgICAgIFwiYmx1ZS1kYXJrXCI6ICMwODM4NGIsXG4gICAgICAgIFwiYmx1ZS1kYXJrLTJcIjogIzBlNDE5NCxcbiAgICAgICAgXCJibHVlXCI6ICMwMzRlYTIsXG4gICAgICAgIFwiYmx1ZS0yXCI6ICMyNDQ2YTcsXG4gICAgICAgIFwiYmx1ZS1saWdodFwiOiAjNTU3OWEzLFxuICAgICAgICBcImJsdWUtbGlnaHQtMlwiOiAjNGM4MGMzLFxuICAgICAgICBcImJsdWUtbGlnaHQtM1wiOiAjYWNjNGUzLFxuICAgICAgICBcImJsdWUtbGlnaHQtNFwiOiAjZWFlZGY3LFxuICAgICAgICBcInB1cnBsZVwiOiAjOGMyYjk5LFxuICAgICAgICBcInB1cnBsZS1saWdodFwiOiAjOTU3Nzk5LFxuICAgICksXG4gICAgXCJib3JkZXJzXCI6IChcbiAgICAgICAgXCJib3JkZXItdW5kZXJsaW5lLWRhcmtcIjogIzdjN2M3YyxcbiAgICAgICAgXCJib3JkZXItdW5kZXJsaW5lXCI6ICM3MzczNzMsXG4gICAgICAgIFwiYm9yZGVyLWdyYXlcIjogI2UwZGRkYixcbiAgICApLFxuICAgIFwidHJhbnNwYXJlbnRzXCI6IChcbiAgICAgICAgXCJ0cmFuc3BhcmVudFwiOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDApLFxuICAgICAgICBcImJsYWNrLXRyYW5zcGFyZW50XCI6IHJnYmEoMCwgMCwgMCwgMC4xKSxcbiAgICAgICAgXCJibGFjay10cmFuc3BhcmVudC1sYXllclwiOiByZ2JhKDAsIDAsIDAsIDAuNCksXG4gICAgICAgIFwiYmxhY2stdHJhbnNwYXJlbnQtbGlnaHRcIjogcmdiYSgwLCAwLCAwLCAwLjA1KSxcbiAgICAgICAgXCJ3aGl0ZS10cmFuc3BhcmVudFwiOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpLFxuICAgICAgICBcIndoaXRlLXRyYW5zcGFyZW50LWxheWVyXCI6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC40KSxcbiAgICAgICAgXCJ3aGl0ZS10cmFuc3BhcmVudC1taWRcIjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjUpLFxuICAgICAgICBcIndoaXRlLXRyYW5zcGFyZW50LWhpZ2hcIjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjc1KSxcbiAgICApLFxuICAgIFwic3RhdGljLXBhZ2VzXCI6IChcbiAgICAgICAgXCJlcnJvci1ibGFja1wiOiAjMDAwLFxuICAgICAgICBcImVycm9yLWdyYXlcIjogI2VkZWRlZCxcbiAgICApLFxuICAgIFwicHJldmlldy1zZWdtZW50c1wiOiAoXG4gICAgICAgIFwicHJldmlldy1zZWdtZW50cy1iYWNrZ3JvdW5kXCI6ICMwMDUxYTEsXG4gICAgKSxcbiAgICBcInJpc2stbGV2ZWxcIjogKFxuICAgICAgICBcInJpc2stbGV2ZWwtMVwiOiAjNDhhYzhmLFxuICAgICAgICBcInJpc2stbGV2ZWwtMlwiOiAjNDg5ZDczLFxuICAgICAgICBcInJpc2stbGV2ZWwtM1wiOiAjN2ZjOTYzLFxuICAgICAgICBcInJpc2stbGV2ZWwtNFwiOiAjZmZiZjAwLFxuICAgICAgICBcInJpc2stbGV2ZWwtNVwiOiAjZmY5MTAwLFxuICAgICAgICBcInJpc2stbGV2ZWwtNlwiOiAjZWUzNTI0LFxuICAgICAgICBcInJpc2stbGV2ZWwtN1wiOiAjZWQxYjA3LFxuICAgICksXG4gICAgXCJtYXAtc3R5bGVyc1wiOiAoXG4gICAgICAgIFwibWFwLWNvbG9yLTFcIjogIzllOWU5ZSxcbiAgICAgICAgXCJtYXAtY29sb3ItMlwiOiAjMzAzMDMwLFxuICAgICAgICBcIm1hcC1jb2xvci0zXCI6ICM0NzQ3NDcsXG4gICAgICAgIFwibWFwLWNvbG9yLTRcIjogI2UwZTdlMCxcbiAgICAgICAgXCJtYXAtY29sb3ItNVwiOiAjZmZhYTAwLFxuICAgICAgICBcIm1hcC1jb2xvci02XCI6ICNkMWRhZGQsXG4gICAgKSxcbik7XG4vKiBzdHlsZWxpbnQtZW5hYmxlIGNvbG9yLW5vLWhleCAqL1xuXG5AZnVuY3Rpb24gZ2V0LWNvbG9ycygpIHtcbiAgICAkY29sb3JzOiAoKTtcbiAgICBAZWFjaCAkZ3JvdXAgaW4gbWFwLWtleXMoJGNvbG9yLXBhbGV0dGUpIHtcbiAgICAgICAgJGNvbG9yczogbWFwLW1lcmdlKCRjb2xvcnMsIG1hcC1nZXQoJGNvbG9yLXBhbGV0dGUsICRncm91cCkpO1xuICAgIH1cbiAgICBAcmV0dXJuICRjb2xvcnM7XG59XG5cbkBmdW5jdGlvbiBnZXQtY29sb3JzLWdyYXlzY2FsZSgpIHtcbiAgICAkY29sb3JzOiBnZXQtY29sb3JzKCk7XG4gICAgJGNvbG9ycy1ncmF5c2NhbGU6ICgpO1xuICAgIEBlYWNoICRjb2xvciBpbiBtYXAta2V5cygkY29sb3JzKSB7XG4gICAgICAgICRjb2xvcnMtZ3JheXNjYWxlOiBtYXAtbWVyZ2UoXG4gICAgICAgICAgICAkY29sb3JzLWdyYXlzY2FsZSxcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICAkY29sb3I6IGdyYXlzY2FsZShtYXAtZ2V0KCRjb2xvcnMsICRjb2xvcikpLFxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cbiAgICBAcmV0dXJuICRjb2xvcnMtZ3JheXNjYWxlO1xufVxuXG5AbWl4aW4gY29sb3JzLXZhcmlhYmxlcygkZ3JheXNjYWxlOiBmYWxzZSkge1xuICAgICRjb2xvcnM6ICgpO1xuICAgIEBpZiAkZ3JheXNjYWxlIHtcbiAgICAgICAgJGNvbG9yczogZ2V0LWNvbG9ycy1ncmF5c2NhbGUoKTtcbiAgICB9IEBlbHNlIHtcbiAgICAgICAgJGNvbG9yczogZ2V0LWNvbG9ycygpO1xuICAgIH1cbiAgICBAZWFjaCAkY29sb3IgaW4gbWFwLWtleXMoJGNvbG9ycykge1xuICAgICAgICBAaWYgJGdyYXlzY2FsZSB7XG4gICAgICAgICAgICAtLWNvbG9yLSN7JGNvbG9yfTogI3ttYXAtZ2V0KCRjb2xvcnMsICRjb2xvcil9ICFpbXBvcnRhbnQ7XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgLS1jb2xvci0jeyRjb2xvcn06ICN7bWFwLWdldCgkY29sb3JzLCAkY29sb3IpfTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpbXBvcnQgXCIuLi8uZml4dHVyZXMvaWNvbnNcIjtcblxuQG1peGluIGZvbnQtZmFjZSgkZm9udE5hbWUsICRmaWxlTmFtZSwgJGZvbnRTdHlsZSwgJGZvbnRXZWlnaHQpIHtcbiAgICBAZm9udC1mYWNlIHtcbiAgICAgICAgZm9udC1mYW1pbHk6IFwiI3skZm9udE5hbWV9XCI7XG4gICAgICAgIGZvbnQtc3R5bGU6ICRmb250U3R5bGU7XG4gICAgICAgIGZvbnQtd2VpZ2h0OiAkZm9udFdlaWdodDtcbiAgICAgICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAgICAgICBzcmM6IHVybChcIiN7JGZpbGVOYW1lfS53b2ZmMlwiKSBmb3JtYXQoXCJ3b2ZmMlwiKSxcbiAgICAgICAgICAgIHVybChcIiN7JGZpbGVOYW1lfS53b2ZmXCIpIGZvcm1hdChcIndvZmZcIik7XG4gICAgfVxufVxuXG5AbWl4aW4gaWNvbi1uYW1lKCRmaWxlbmFtZSkge1xuICAgIGNvbnRlbnQ6IGljb24tY2hhcigkZmlsZW5hbWUpO1xufVxuXG5AbWl4aW4gaWNvbi1zaXplKCRzaXplKSB7XG4gICAgc2l6ZTogJHNpemU7XG4gICAgbGluZS1oZWlnaHQ6ICRzaXplO1xuICAgIGZvbnQtc2l6ZTogJHNpemU7XG59XG5cbi8qIHN0eWxlbGludC1kaXNhYmxlIGZvbnQtd2VpZ2h0LW5vdGF0aW9uICovXG5AbWl4aW4gaWNvbigkZmlsZW5hbWUsICRzaXplKSB7XG4gICAgQGluY2x1ZGUgaWNvbi1uYW1lKCRmaWxlbmFtZSk7XG4gICAgQGluY2x1ZGUgaWNvbi1zaXplKCRzaXplKTtcbiAgICBmb250LWZhbWlseTogJGljb25zLWZvbnQtbmFtZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zdHlsZTogbm9ybWFsICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IG5vcm1hbCAhaW1wb3J0YW50O1xufVxuLyogc3R5bGVsaW50LWVuYWJsZSBmb250LXdlaWdodC1ub3RhdGlvbiAqL1xuXG5AbWl4aW4gaWNvbi1jb250ZW50IHtcbiAgICAuaWNvbiB7XG4gICAgICAgIEBjb250ZW50O1xuICAgIH1cbn1cblxuQG1peGluIGljb24tYmVmb3JlLWNvbnRlbnQge1xuICAgIC5pY29uIHtcbiAgICAgICAgJjpiZWZvcmUge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBpY29uLWJlZm9yZSgkZmlsZW5hbWUsICRzaXplKSB7XG4gICAgQGluY2x1ZGUgaWNvbi1iZWZvcmUtY29udGVudCgpIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkZmlsZW5hbWUsICRzaXplKTtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gaWNvbi1iZWZvcmUtbmFtZSgkZmlsZW5hbWUpIHtcbiAgICBAaW5jbHVkZSBpY29uLWJlZm9yZS1jb250ZW50KCkge1xuICAgICAgICBjb250ZW50OiBpY29uLWNoYXIoJGZpbGVuYW1lKTtcbiAgICB9XG59XG5cbkBtaXhpbiBpY29uLWJlZm9yZS1zaXplKCRzaXplKSB7XG4gICAgQGluY2x1ZGUgaWNvbi1iZWZvcmUtY29udGVudCgpIHtcbiAgICAgICAgY29udGVudDogaWNvbi1zaXplKCRzaXplKTtcbiAgICB9XG59XG5cbkBtaXhpbiBpY29uLWFmdGVyLWNvbnRlbnQge1xuICAgIC5pY29uIHtcbiAgICAgICAgJjphZnRlciB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGljb24tYWZ0ZXIoJGZpbGVuYW1lLCAkc2l6ZSkge1xuICAgIEBpbmNsdWRlIGljb24tYWZ0ZXItY29udGVudCgpIHtcbiAgICAgICAgQGluY2x1ZGUgaWNvbigkZmlsZW5hbWUsICRzaXplKTtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG5AbWl4aW4gaWNvbi1hZnRlci1uYW1lKCRmaWxlbmFtZSkge1xuICAgIEBpbmNsdWRlIGljb24tYWZ0ZXItY29udGVudCgpIHtcbiAgICAgICAgY29udGVudDogaWNvbi1jaGFyKCRmaWxlbmFtZSk7XG4gICAgfVxufVxuXG5AbWl4aW4gaWNvbi1hZnRlci1zaXplKCRzaXplKSB7XG4gICAgQGluY2x1ZGUgaWNvbi1hZnRlci1jb250ZW50KCkge1xuICAgICAgICBjb250ZW50OiBpY29uLXNpemUoJHNpemUpO1xuICAgIH1cbn1cblxuQG1peGluIHN0YXRlKCRzdGF0ZSkge1xuICAgICYuI3ttYXAtZ2V0KCRzdGF0ZXMsICRzdGF0ZSl9IHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuIiwiXG4gICAgICAgICAgICAgICAgICAgIEBpbXBvcnQgXCJAc2Nzcy9jb3JlXCI7XG4gICAgICAgICAgICAgICAgICAgIC5wcm9kdWN0QmFubmVyIHtcbiAgICBAaW5jbHVkZSBjb21wb25lbnQtZm9jdXNhYmxlKCk7XG4gICAgQGluY2x1ZGUgY29tcG9uZW50LWhlYWRlcnMoKTtcbiAgICAmX19jb250YWluZXIge1xuICAgICAgICBtaW4taGVpZ2h0OiA0MzBweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyNHB4O1xuICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1jb2xvci1ncmF5KTtcbiAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB9XG4gICAgJl9fZGF0YSB7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXdoaXRlLXRyYW5zcGFyZW50LWhpZ2gpO1xuICAgICAgICBwYWRkaW5nOiA1MHB4O1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oc20pIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDMwcHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgJl9faW1hZ2Uge1xuICAgICAgICBAZXh0ZW5kICVpbWFnZS1jb3ZlcjtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlIDA7XG4gICAgfVxuICAgICZfX3RleHQge1xuICAgICAgICBtYXgtd2lkdGg6IDQ1MHB4O1xuICAgIH1cbiAgICAmX190aXRsZSB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmcoXCJoMVwiKTtcbiAgICAgICAgbWFyZ2luOiAwIDAgMTBweDtcbiAgICB9XG4gICAgJl9fZGVzY3JpcHRpb24ge1xuICAgICAgICBAaW5jbHVkZSB3eXNpd3lnKCk7XG4gICAgfVxuICAgICZfX2J1dHRvbnMge1xuICAgICAgICBtYXJnaW46IDVweCAwIDA7XG4gICAgfVxuICAgICZfX2J1dHRvbiB7XG4gICAgICAgIEBpbmNsdWRlIGJ1dHRvbi1hbGwoKTtcbiAgICAgICAgbWFyZ2luOiAxNXB4IDE1cHggMCAwO1xuICAgIH1cbn1cblxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAiLCJAbWl4aW4gYmFzZSB7XG4gICAgZm9udC1mYW1pbHk6ICRmb250LWZhbWlseS1iYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XG4gICAgZm9udC1zaXplOiAkZm9udC1zaXplLWJhc2U7XG4gICAgbGluZS1oZWlnaHQ6ICRsaW5lLWhlaWdodC1iYXNlO1xuICAgIGNvbG9yOiB2YXIoLS1jb2xvci10ZXh0LWNvbG9yKTtcbn1cblxuJWltYWdlLWNvdmVyIHtcbiAgICBzaXplOiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xufVxuXG4laW1hZ2Utd3JhcHBlciB7XG4gICAgaGVpZ2h0OiA1NTBweDtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oeHMpIHtcbiAgICAgICAgaGVpZ2h0OiAyNTBweDtcbiAgICB9XG59XG5cbkBtaXhpbiBzbGlkZSB7XG4gICAgbWF4LWhlaWdodDogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC40cztcbiAgICBAaW5jbHVkZSBzdGF0ZShGT1JDRUQpIHtcbiAgICAgICAgbWF4LWhlaWdodDogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBzci1vbmx5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgc2l6ZTogMXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGJvcmRlcjogMDtcbn1cblxuQG1peGluIGZvY3VzLWZhY3RvcnkoJGNvbG9yKSB7XG4gICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDJweCB2YXIoJGNvbG9yKSBpbnNldCwgMCAwIDAgMXB4IHZhcigkY29sb3IpICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoJGNvbG9yKSAhaW1wb3J0YW50O1xufVxuXG5AbWl4aW4gZm9jdXMoJGNvbG9yOiAtLWNvbG9yLWJsYWNrKSB7XG4gICAgQGluY2x1ZGUgZm9jdXMtZmFjdG9yeSgkY29sb3IpO1xuICAgIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgICAgIEBpbmNsdWRlIGZvY3VzLWZhY3RvcnkoLS1jb2xvci15ZWxsb3cpO1xuICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lO1xuICAgIH1cbn1cblxuQG1peGluIGZvY3VzLWludmVydGVkKCRjb2xvcjogLS1jb2xvci13aGl0ZSkge1xuICAgIEBpbmNsdWRlIGZvY3VzLWZhY3RvcnkoJGNvbG9yKTtcbiAgICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgICAgICBAaW5jbHVkZSBmb2N1cy1mYWN0b3J5KC0tY29sb3IteWVsbG93KTtcbiAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTtcbiAgICB9XG59XG5cbkBtaXhpbiBmb2N1cy1nZW9tZXRyeSB7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIG1hcmdpbjogLTVweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG59XG5cbkBtaXhpbiBub3QtaW4tbW9kYWwge1xuICAgIC5sYXlvdXRfY29sdW1uICYge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbkBtaXhpbiBmb2N1cy1jbGlja2FibGUge1xuICAgICY6Zm9jdXMge1xuICAgICAgICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgICAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjaykgIWltcG9ydGFudDtcbiAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXllbGxvdykgIWltcG9ydGFudDtcbiAgICAgICAgICAgIEBpbmNsdWRlIGljb24tYmVmb3JlLWNvbnRlbnQoKSB7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWJsYWNrKSAhaW1wb3J0YW50O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGluY2x1ZGUgaWNvbi1hZnRlci1jb250ZW50KCkge1xuICAgICAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjaykgIWltcG9ydGFudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIG1lZGlhLXNtLWFuZC1sYW5kc2NhcGUge1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSkge1xuICAgICAgICBAbWVkaWEgKG9yaWVudGF0aW9uOiBsYW5kc2NhcGUpIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gbWVkaWEteHMtYW5kLWxhbmRzY2FwZSB7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHhzKSB7XG4gICAgICAgIEBtZWRpYSAob3JpZW50YXRpb246IGxhbmRzY2FwZSkge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvKiBUT0RPOiBCT1gtMjQ5NiBTeW5jaHJvbml6YWNqYSB6IGFkbWluOiBjbXMtYWRtaW4vc3JjL21haW4vY2tlZGl0b3IvY29udGVudHMuY3NzICovXG5cbkBtaXhpbiB3eXNpd3lnKCRvbi1kYXJrLWJhY2tncm91bmQ6IGZhbHNlLCAkYWRtaW4td3lzaXd5ZzogZmFsc2UpIHtcbiAgICBAaWYgJGFkbWluLXd5c2l3eWcge1xuICAgICAgICBib2R5IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSkge1xuICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgICAgICBsaW5lLWhlaWdodDogMjRweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24oc20pIHtcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xuICAgICAgICB9XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgICAgICAgICAgY2xlYXI6IGJvdGg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgc3R5bGUtbGlzdHM7XG4gICAgQGluY2x1ZGUgdHlwb2dyYXBoeTtcbiAgICBAaW5jbHVkZSBjb250ZW50LWhlYWRpbmdzKCRvbi1kYXJrLWJhY2tncm91bmQpO1xuICAgIEBpZiAkb24tZGFyay1iYWNrZ3JvdW5kIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgICB9XG4gICAgYSB7XG4gICAgICAgIEBpbmNsdWRlIGxpbms7XG4gICAgICAgIEBpbmNsdWRlIGxpbmstZm9jdXM7XG4gICAgICAgIEBpZiAkb24tZGFyay1iYWNrZ3JvdW5kIHtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgYixcbiAgICBzdHJvbmcge1xuICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgIH1cbiAgICBlbSB7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG4gICAgc3VwIHtcbiAgICAgICAgZm9udC1zaXplOiAxMHB4O1xuICAgICAgICBwYWRkaW5nLWxlZnQ6IDJweDtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB0b3A6IC03cHg7XG4gICAgfVxuICAgIHN1YiB7XG4gICAgICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAycHg7XG4gICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICAgICAgYm90dG9tOiAtM3B4O1xuICAgIH1cbiAgICAuYnV0dG9uIHtcbiAgICAgICAgQGluY2x1ZGUgYnV0dG9uLWFsbCgpO1xuICAgIH1cbiAgICAudGV4dC1jZW50ZXIge1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgfVxuICAgIC50ZXh0LXJpZ2h0IHtcbiAgICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7XG4gICAgfVxuICAgIC50ZXh0LWp1c3RpZnkge1xuICAgICAgICB0ZXh0LWFsaWduOiBqdXN0aWZ5O1xuICAgIH1cbiAgICAubGVhZCB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICAgICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDI0cHg7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSkge1xuICAgICAgICAgICAgZm9udC1zaXplOiAyNHB4O1xuICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDMycHg7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLmRlY29yIHtcbiAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLWJyYW5kLXByaW1hcnkpO1xuICAgIH1cbiAgICAubm90ZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ncmF5KTtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMThweDtcbiAgICB9XG4gICAgLm5vdGUtc21hbGwge1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItZ3JheSk7XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE1cHg7XG4gICAgfVxuICAgIC5xdW90ZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMjJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDMwcHg7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICB9XG4gICAgaW1nIHtcbiAgICAgICAgZGlzcGxheTogaW5pdGlhbDtcbiAgICB9XG4gICAgaHIge1xuICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgbWFyZ2luOiAyMHB4IGF1dG87XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktbWlkLTIpO1xuICAgICAgICBib3JkZXItYm90dG9tOiAwO1xuICAgIH1cbiAgICB0YWJsZSB7XG4gICAgICAgICYucHJpbWFyeS10YWJsZSB7XG4gICAgICAgICAgICB0aCB7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItYnJhbmQtcHJpbWFyeSk7XG4gICAgICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgICAgICAgICAgICAgICBmb250LXdlaWdodDogNzAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGgsXG4gICAgICAgICAgICB0ZCB7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLWdyYXkpO1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgJi5yb3VuZGVkLXRhYmxlIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xsYXBzZTogc2VwYXJhdGU7XG4gICAgICAgICAgICBib3JkZXItc3BhY2luZzogMCAxMHB4O1xuICAgICAgICAgICAgdGgge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDAgMjBweDtcbiAgICAgICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbC1hbGlnbjogYm90dG9tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGQge1xuICAgICAgICAgICAgICAgIHBhZGRpbmc6IDIwcHg7XG4gICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3ItZ3JheS1saWdodC0zKTtcbiAgICAgICAgICAgICAgICBib3JkZXItdG9wOiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLWdyYXkpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCB2YXIoLS1jb2xvci1ib3JkZXItZ3JheSk7XG4gICAgICAgICAgICAgICAgJjpmaXJzdC1jaGlsZCB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLWdyYXkpO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiA2cHggMCAwIDZweDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgJjpsYXN0LWNoaWxkIHtcbiAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgdmFyKC0tY29sb3ItYm9yZGVyLWdyYXkpO1xuICAgICAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAwIDZweCA2cHggMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcCB7XG4gICAgICAgICAgICAgICAgICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuIiwiJGNhcm91c2VsLXNlY29uZHMtbGltaXQ6IDEwO1xuXG5AbWl4aW4gY2Fyb3VzZWwtd3JhcHBlcigkY29tcG9uZW50KSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIEBpbmNsdWRlIHN0YXRlKFNUT1ApIHtcbiAgICAgICAgLiN7JGNvbXBvbmVudH1fX3BhZ2luYXRpb25JbmRpY2F0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICAgIC4jeyRjb21wb25lbnR9X19jb250cm9sc1BsYXkge1xuICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgfVxuICAgICAgICAuI3skY29tcG9uZW50fV9fY29udHJvbHNTdG9wIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgQGluY2x1ZGUgc3RhdGUoU1RBVElDKSB7XG4gICAgICAgIC4jeyRjb21wb25lbnR9X19wYWdpbmF0aW9uLFxuICAgICAgICAuI3skY29tcG9uZW50fV9fY29udHJvbHMsXG4gICAgICAgIC4jeyRjb21wb25lbnR9X19wcmV2LFxuICAgICAgICAuI3skY29tcG9uZW50fV9fbmV4dCB7XG4gICAgICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4lY2Fyb3VzZWwtY29udGFpbmVyIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgcGFkZGluZzogMDtcbiAgICB6LWluZGV4OiAxO1xuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbiAgICBAaW5jbHVkZSBzdGF0ZShBQ1RJVkUpIHtcbiAgICAgICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICB9XG59XG5cbiVjYXJvdXNlbC1zbGlkZXMge1xuICAgIEBpbmNsdWRlIGRlbGV0ZS1saXN0LXN0eWxlcztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgei1pbmRleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgICBAbWVkaWEgcHJpbnQge1xuICAgICAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbiVjYXJvdXNlbC1zbGlkZSB7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHRyYW5zaXRpb24tcHJvcGVydHk6IHRyYW5zZm9ybTtcbiAgICAmOmJlZm9yZSB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgfVxuICAgIGEge1xuICAgICAgICB2aXNpYmlsaXR5OiBoaWRkZW47XG4gICAgfVxuICAgIEBpbmNsdWRlIHN0YXRlKFZJU0lCTEUpIHtcbiAgICAgICAgYSB7XG4gICAgICAgICAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgICAgICB9XG4gICAgfVxufVxuXG4lY2Fyb3VzZWwtdGh1bWItc2xpZGUge1xuICAgIEBleHRlbmQgJWNhcm91c2VsLXNsaWRlO1xuICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1vdXQ7XG4gICAgdHJhbnNpdGlvbi1wcm9wZXJ0eTogb3BhY2l0eTtcbiAgICAmOmFmdGVyIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlIDA7XG4gICAgICAgIGJvcmRlcjogM3B4IHNvbGlkIHZhcigtLWNvbG9yLWJsYWNrKTtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgICB9XG4gICAgQGluY2x1ZGUgc3RhdGUoQUNUSVZFKSB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICY6YWZ0ZXIge1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBjYXJvdXNlbC1uYXYoJHNpemUpIHtcbiAgICB0cmFuc2l0aW9uOiAwLjJzIGVhc2UgYWxsO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgJjpob3ZlcixcbiAgICAmOmZvY3VzIHtcbiAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3ItZ3JheS1saWdodCk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGZvY3VzLWNsaWNrYWJsZTtcbiAgICBAaW5jbHVkZSBzdGF0ZShESVNBQkxFRCkge1xuICAgICAgICBkaXNwbGF5OiBub25lO1xuICAgIH1cbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgY2FsYyg1MCUgLSA0MHB4KSBub25lIG5vbmU7XG4gICAgc2l6ZTogJHNpemU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tY29sb3Itd2hpdGUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHZhcigtLWNvbG9yLWdyYXktbWlkLTIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICB6LWluZGV4OiAyO1xuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xuICAgICAgICB0b3A6IGNhbGMoMTAwJSAtIDc1cHgpO1xuICAgIH1cbn1cblxuQG1peGluIGNhcm91c2VsLWJ1dHRvbigkZGlyZWN0aW9uLCAkc2l6ZTogNDBweCkge1xuICAgIEBpbmNsdWRlIGNhcm91c2VsLW5hdigkc2l6ZSk7XG4gICAgI3skZGlyZWN0aW9ufTogLTUwcHg7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKGxnKSB7XG4gICAgICAgICN7JGRpcmVjdGlvbn06IDIwcHg7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xuICAgICAgICAjeyRkaXJlY3Rpb259OiAwO1xuICAgIH1cbiAgICBAaW5jbHVkZSBpY29uLWJlZm9yZShcImFycm93LSN7JGRpcmVjdGlvbn1cIiwgMTZweCkge1xuICAgICAgICBjb2xvcjogdmFyKC0tY29sb3ItYnJhbmQtcHJpbWFyeSk7XG4gICAgfVxufVxuXG5AbWl4aW4gY2Fyb3VzZWwtcHJldigkc2l6ZTogNDBweCkge1xuICAgIEBpbmNsdWRlIGNhcm91c2VsLWJ1dHRvbihsZWZ0LCAkc2l6ZSk7XG59XG5cbkBtaXhpbiBjYXJvdXNlbC1uZXh0KCRzaXplOiA0MHB4KSB7XG4gICAgQGluY2x1ZGUgY2Fyb3VzZWwtYnV0dG9uKHJpZ2h0LCAkc2l6ZSk7XG59XG5cbiVjYXJvdXNlbC1wYWdpbmF0aW9uIHtcbiAgICBAaW5jbHVkZSBkZWxldGUtbGlzdC1zdHlsZXM7XG4gICAgbWFyZ2luOiAxMHB4IDAgMDtcbiAgICBoZWlnaHQ6IDMwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1jb250ZW50OiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XG4gICAgICAgIG1hcmdpbjogMjBweCAwIDA7XG4gICAgfVxufVxuXG4lY2Fyb3VzZWwtcGFnaW5hdGlvbi1idXR0b24ge1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBzaXplOiAzMHB4O1xuICAgIHBhZGRpbmc6IDEwcHg7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2Utb3V0O1xuICAgICY6YmVmb3JlIHtcbiAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIHNpemU6IDEwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgdmFyKC0tY29sb3ItYnJhbmQtcHJpbWFyeSk7XG4gICAgICAgIHRyYW5zaXRpb246IDAuMnMgZWFzZSBhbGw7XG4gICAgICAgIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBub25lO1xuICAgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sb3IteWVsbG93KTtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogdmFyKC0tY29sb3IteWVsbG93KTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuJWNhcm91c2VsLXBhZ2luYXRpb24tYnV0dG9uLXZhbHVlIHtcbiAgICBAaW5jbHVkZSBzci1vbmx5O1xufVxuXG4lY2Fyb3VzZWwtcGFnaW5hdGlvbi1pbmRpY2F0b3Ige1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAwO1xuICAgIHNpemU6IDMwcHg7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cbkBtaXhpbiBjYXJvdXNlbC1wYWdpbmF0aW9uLWluZGljYXRvci1kZWNvcmF0b3IoKSB7XG4gICAgc3Ryb2tlOiB2YXIoLS1jb2xvci1icmFuZC1wcmltYXJ5KTtcbiAgICBhbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOiBsaW5lYXI7XG4gICAgYW5pbWF0aW9uLWZpbGwtbW9kZTogZm9yd2FyZHM7XG4gICAgYW5pbWF0aW9uLW5hbWU6IGNhcm91c2VsLWluZGljYXRvci1kZWNvcmF0b3I7XG4gICAgQG1lZGlhIChmb3JjZWQtY29sb3JzOiBhY3RpdmUpIHtcbiAgICAgICAgZm9yY2VkLWNvbG9yLWFkanVzdDogbm9uZTtcbiAgICAgICAgc3Ryb2tlOiB2YXIoLS1jb2xvci15ZWxsb3cpO1xuICAgIH1cbiAgICBAZm9yICRzZWNvbmRzIGZyb20gMSB0aHJvdWdoICRjYXJvdXNlbC1zZWNvbmRzLWxpbWl0IHtcbiAgICAgICAgJi0tI3skc2Vjb25kc30ge1xuICAgICAgICAgICAgYW5pbWF0aW9uLWR1cmF0aW9uOiAjeyRzZWNvbmRzfXM7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBjYXJvdXNlbC1jb250cm9scy1jZW50ZXIoKSB7XG4gICAgcG9zaXRpb246IHN0YXRpYztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIG1hcmdpbjogMTBweCAwIDAgMDtcbn1cblxuJWNhcm91c2VsLWNvbnRyb2xzIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGUgbm9uZSBub25lIDAgMDtcbiAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LWRvd24obWQpIHtcbiAgICAgICAgQGluY2x1ZGUgY2Fyb3VzZWwtY29udHJvbHMtY2VudGVyKCk7XG4gICAgfVxufVxuXG4lY2Fyb3VzZWwtY29udHJvbHMtcGxheSB7XG4gICAgQGluY2x1ZGUgYWN0aW9uLWJ1dHRvbihcInBsYXlcIik7XG4gICAgZGlzcGxheTogbm9uZTtcbn1cblxuJWNhcm91c2VsLWNvbnRyb2xzLXN0b3Age1xuICAgIEBpbmNsdWRlIGFjdGlvbi1idXR0b24oXCJwYXVzZVwiKTtcbn1cblxuQG1peGluIGNhcm91c2VsLXBhZ2luYXRpb24taXRlbSgkY29tcG9uZW50KSB7XG4gICAgc2l6ZTogMzBweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgQGluY2x1ZGUgc3RhdGUoQUNUSVZFKSB7XG4gICAgICAgIC4jeyRjb21wb25lbnR9X19wYWdpbmF0aW9uQnV0dG9uIHtcbiAgICAgICAgICAgIHBhZGRpbmc6IDdweDtcbiAgICAgICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgICAgICBzaXplOiAxNnB4O1xuICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWJyYW5kLXByaW1hcnkpO1xuICAgICAgICAgICAgICAgIEBtZWRpYSAoZm9yY2VkLWNvbG9yczogYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLXllbGxvdyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIEBpbmNsdWRlIHN0YXRlKFBST0NFU1NJTkcpIHtcbiAgICAgICAgLiN7JGNvbXBvbmVudH1fX3BhZ2luYXRpb25JbmRpY2F0b3Ige1xuICAgICAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIH1cbiAgICB9XG59XG5Aa2V5ZnJhbWVzIGNhcm91c2VsLWluZGljYXRvci1kZWNvcmF0b3Ige1xuICAgIGZyb20ge1xuICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogNzVweDtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBzdHJva2UtZGFzaG9mZnNldDogMDtcbiAgICB9XG59XG5cbkBtaXhpbiBjYXJvdXNlbC1nYWxsZXJ5LWZhY3RvcnkoJGNvbXBvbmVudCkge1xuICAgICZfX2ltYWdlc1dyYXBwZXIge1xuICAgICAgICBAaW5jbHVkZSBjYXJvdXNlbC13cmFwcGVyKCRjb21wb25lbnQpO1xuICAgICAgICBtYXgtd2lkdGg6ICRuYXJyb3ctd2lkdGg7XG4gICAgICAgIG1hcmdpbjogMCBhdXRvO1xuICAgIH1cbiAgICAmX19pbWFnZXNDb250YWluZXIge1xuICAgICAgICBAZXh0ZW5kICVjYXJvdXNlbC1jb250YWluZXI7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDI0cHg7XG4gICAgfVxuICAgICZfX2ltYWdlc1NsaWRlcyB7XG4gICAgICAgIEBleHRlbmQgJWNhcm91c2VsLXNsaWRlcztcbiAgICB9XG4gICAgJl9faW1hZ2VzU2xpZGUge1xuICAgICAgICBAZXh0ZW5kICVjYXJvdXNlbC1zbGlkZTtcbiAgICAgICAgQGV4dGVuZCAlaW1hZ2Utd3JhcHBlcjtcbiAgICB9XG4gICAgJl9faW1hZ2VzSW1hZ2Uge1xuICAgICAgICBAZXh0ZW5kICVpbWFnZS1jb3ZlcjtcbiAgICB9XG4gICAgJl9faW1hZ2VzUHJldiB7XG4gICAgICAgIEBpbmNsdWRlIGNhcm91c2VsLXByZXYoODBweCk7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihtZCkge1xuICAgICAgICAgICAgdG9wOiBjYWxjKDUwJSAtIDQwcHgpO1xuICAgICAgICAgICAgbGVmdDogMjBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19pbWFnZXNOZXh0IHtcbiAgICAgICAgQGluY2x1ZGUgY2Fyb3VzZWwtbmV4dCg4MHB4KTtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKG1kKSB7XG4gICAgICAgICAgICB0b3A6IGNhbGMoNTAlIC0gNDBweCk7XG4gICAgICAgICAgICByaWdodDogMjBweDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX190aHVtYnNXcmFwcGVyIHtcbiAgICAgICAgQGluY2x1ZGUgY2Fyb3VzZWwtd3JhcHBlcigkY29tcG9uZW50KTtcbiAgICAgICAgbWF4LXdpZHRoOiA4NTBweDtcbiAgICAgICAgbWFyZ2luOiAyMHB4IGF1dG8gMDtcbiAgICB9XG4gICAgJl9fdGh1bWJzQ29udGFpbmVyIHtcbiAgICAgICAgQGV4dGVuZCAlY2Fyb3VzZWwtY29udGFpbmVyO1xuICAgIH1cbiAgICAmX190aHVtYnNTbGlkZXMge1xuICAgICAgICBAZXh0ZW5kICVjYXJvdXNlbC1zbGlkZXM7XG4gICAgfVxuICAgICZfX3RodW1ic1NsaWRlIHtcbiAgICAgICAgQGV4dGVuZCAlY2Fyb3VzZWwtdGh1bWItc2xpZGU7XG4gICAgICAgIGhlaWdodDogMTI1cHg7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bih4cykge1xuICAgICAgICAgICAgaGVpZ2h0OiA4MHB4O1xuICAgICAgICB9XG4gICAgICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiBjYWxjKDI1JSAtIDcuNXB0KTtcbiAgICAgICAgICAgIG1hcmdpbi1yaWdodDogNy41cHQgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgIH1cbiAgICAmX190aHVtYnNJbWFnZSB7XG4gICAgICAgIEBleHRlbmQgJWltYWdlLWNvdmVyO1xuICAgIH1cbn1cbiIsIkBtaXhpbiBjb21wb25lbnQtZm9jdXNhYmxlKCRpbnZlcnRlZDogZmFsc2UpIHtcbiAgICBAaW5jbHVkZSBub3QtaW4tbW9kYWwge1xuICAgICAgICAmOmZvY3VzLXZpc2libGUge1xuICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgICAgICAuZm9jdXMge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAtMTBweDtcbiAgICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgICAgICAgICAgICAgIHotaW5kZXg6IDE7XG4gICAgICAgICAgICAgICAgQGlmICRpbnZlcnRlZCB7XG4gICAgICAgICAgICAgICAgICAgIEBpbmNsdWRlIGZvY3VzLWludmVydGVkO1xuICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBmb2N1cztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAbWVkaWEgKGZvcmNlZC1jb2xvcnM6IGFjdGl2ZSkge1xuICAgICAgICAgICAgICAgICoge1xuICAgICAgICAgICAgICAgICAgICBmb3JjZWQtY29sb3ItYWRqdXN0OiBpbml0aWFsO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuQG1peGluIGNvbXBvbmVudC1oZWFkZXJzKCkge1xuICAgICZfX2NvbXBvbmVudEhlYWRlciB7XG4gICAgICAgIG1hcmdpbjogMCAwIDMwcHg7XG4gICAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgICAgIGdhcDogNXB4O1xuICAgICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSkge1xuICAgICAgICAgICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICAgICAgICAgIG1hcmdpbjogMCAwIDIwcHg7XG4gICAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgICAgICAgICAmOmJlZm9yZSB7XG4gICAgICAgICAgICAgICAgY29udGVudDogXCJcIjtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jaztcbiAgICAgICAgICAgICAgICB3aWR0aDogNjBweDtcbiAgICAgICAgICAgICAgICBoZWlnaHQ6IDVweDtcbiAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xvci1icmFuZC1zZWNvbmRhcnkpO1xuICAgICAgICAgICAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICAmX19jb21wb25lbnRIZWFkZXJIZWFkbGluZSB7XG4gICAgICAgIEBpbmNsdWRlIGhlYWRpbmcoXCJoMlwiKTtcbiAgICB9XG4gICAgJl9fY29tcG9uZW50SGVhZGVyVGFnbGluZSB7XG4gICAgICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKHNtKSB7XG4gICAgICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCIvLyA9PT0gWyBib290c3RyYXAtYnJlYWtwb2ludHMuc2NzcyBdID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gQnJlYWtwb2ludCB2aWV3cG9ydCBzaXplcyBhbmQgbWVkaWEgcXVlcmllcy5cbi8vXG4vLyBCcmVha3BvaW50cyBhcmUgZGVmaW5lZCBhcyBhIG1hcCBvZiAobmFtZTogbWluaW11bSB3aWR0aCksIG9yZGVyIGZyb20gc21hbGwgdG8gbGFyZ2U6XG4vL1xuLy8gICAgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KVxuLy9cbi8vIFRoZSBtYXAgZGVmaW5lZCBpbiB0aGUgYCRncmlkLWJyZWFrcG9pbnRzYCBnbG9iYWwgdmFyaWFibGUgaXMgdXNlZCBhcyB0aGUgYCRicmVha3BvaW50c2AgYXJndW1lbnQgYnkgZGVmYXVsdC5cblxuLy8gTmFtZSBvZiB0aGUgbmV4dCBicmVha3BvaW50LCBvciBudWxsIGZvciB0aGUgbGFzdCBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbmV4dChzbSlcbi8vICAgIG1kXG4vLyAgICA+PiBicmVha3BvaW50LW5leHQoc20sICh4czogMCwgc206IDU3NnB4LCBtZDogNzY4cHgsIGxnOiA5OTJweCwgeGw6IDEyMDBweCkpXG4vLyAgICBtZFxuLy8gICAgPj4gYnJlYWtwb2ludC1uZXh0KHNtLCAkYnJlYWtwb2ludC1uYW1lczogKHhzIHNtIG1kIGxnIHhsKSlcbi8vICAgIG1kXG5AZnVuY3Rpb24gYnJlYWtwb2ludC1uZXh0KFxuICAgICRuYW1lLFxuICAgICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMsXG4gICAgJGJyZWFrcG9pbnQtbmFtZXM6IG1hcC1rZXlzKCRicmVha3BvaW50cylcbikge1xuICAgICRuOiBpbmRleCgkYnJlYWtwb2ludC1uYW1lcywgJG5hbWUpO1xuICAgIEByZXR1cm4gaWYoXG4gICAgICAgICRuIDwgbGVuZ3RoKCRicmVha3BvaW50LW5hbWVzKSxcbiAgICAgICAgbnRoKCRicmVha3BvaW50LW5hbWVzLCAkbiArIDEpLFxuICAgICAgICBudWxsXG4gICAgKTtcbn1cblxuLy8gTWluaW11bSBicmVha3BvaW50IHdpZHRoLiBOdWxsIGZvciB0aGUgc21hbGxlc3QgKGZpcnN0KSBicmVha3BvaW50LlxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWluKHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNTc2cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAgICRtaW46IG1hcC1nZXQoJGJyZWFrcG9pbnRzLCAkbmFtZSk7XG4gICAgQHJldHVybiBpZigkbWluICE9IDAsICRtaW4sIG51bGwpO1xufVxuXG4vLyBNYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE51bGwgZm9yIHRoZSBsYXJnZXN0IChsYXN0KSBicmVha3BvaW50LlxuLy8gVGhlIG1heGltdW0gdmFsdWUgaXMgY2FsY3VsYXRlZCBhcyB0aGUgbWluaW11bSBvZiB0aGUgbmV4dCBvbmUgbGVzcyAwLjAycHhcbi8vIHRvIHdvcmsgYXJvdW5kIHRoZSBsaW1pdGF0aW9ucyBvZiBgbWluLWAgYW5kIGBtYXgtYCBwcmVmaXhlcyBhbmQgdmlld3BvcnRzIHdpdGggZnJhY3Rpb25hbCB3aWR0aHMuXG4vLyBTZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL21lZGlhcXVlcmllcy00LyNtcS1taW4tbWF4XG4vLyBVc2VzIDAuMDJweCByYXRoZXIgdGhhbiAwLjAxcHggdG8gd29yayBhcm91bmQgYSBjdXJyZW50IHJvdW5kaW5nIGJ1ZyBpbiBTYWZhcmkuXG4vLyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3ODI2MVxuLy9cbi8vICAgID4+IGJyZWFrcG9pbnQtbWF4KHNtLCAoeHM6IDAsIHNtOiA1NzZweCwgbWQ6IDc2OHB4LCBsZzogOTkycHgsIHhsOiAxMjAwcHgpKVxuLy8gICAgNzY3Ljk4cHhcbkBmdW5jdGlvbiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAgICRuZXh0OiBicmVha3BvaW50LW5leHQoJG5hbWUsICRicmVha3BvaW50cyk7XG4gICAgQHJldHVybiBpZigkbmV4dCwgYnJlYWtwb2ludC1taW4oJG5leHQsICRicmVha3BvaW50cykgLSAwLjAycHgsIG51bGwpO1xufVxuXG4vLyBSZXR1cm5zIGEgYmxhbmsgc3RyaW5nIGlmIHNtYWxsZXN0IGJyZWFrcG9pbnQsIG90aGVyd2lzZSByZXR1cm5zIHRoZSBuYW1lIHdpdGggYSBkYXNoIGluIGZyb250LlxuLy8gVXNlZnVsIGZvciBtYWtpbmcgcmVzcG9uc2l2ZSB1dGlsaXRpZXMuXG4vL1xuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeCh4cywgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiXCIgIChSZXR1cm5zIGEgYmxhbmsgc3RyaW5nKVxuLy8gICAgPj4gYnJlYWtwb2ludC1pbmZpeChzbSwgKHhzOiAwLCBzbTogNTc2cHgsIG1kOiA3NjhweCwgbGc6IDk5MnB4LCB4bDogMTIwMHB4KSlcbi8vICAgIFwiLXNtXCJcbkBmdW5jdGlvbiBicmVha3BvaW50LWluZml4KCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICAgQHJldHVybiBpZihicmVha3BvaW50LW1pbigkbmFtZSwgJGJyZWFrcG9pbnRzKSA9PSBudWxsLCBcIlwiLCBcIi0jeyRuYW1lfVwiKTtcbn1cblxuLy8gTWVkaWEgb2YgYXQgbGVhc3QgdGhlIG1pbmltdW0gYnJlYWtwb2ludCB3aWR0aC4gTm8gcXVlcnkgZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCB3aWRlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LXVwKCRuYW1lLCAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzKSB7XG4gICAgJG1pbjogYnJlYWtwb2ludC1taW4oJG5hbWUsICRicmVha3BvaW50cyk7XG4gICAgQGlmICRtaW4ge1xuICAgICAgICBAbWVkaWEgKG1pbi13aWR0aDogJG1pbikge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgQGNvbnRlbnQ7XG4gICAgfVxufVxuXG4vLyBNZWRpYSBvZiBhdCBtb3N0IHRoZSBtYXhpbXVtIGJyZWFrcG9pbnQgd2lkdGguIE5vIHF1ZXJ5IGZvciB0aGUgbGFyZ2VzdCBicmVha3BvaW50LlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IHRvIHRoZSBnaXZlbiBicmVha3BvaW50IGFuZCBuYXJyb3dlci5cbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWRvd24oJG5hbWUsICRicmVha3BvaW50czogJGdyaWQtYnJlYWtwb2ludHMpIHtcbiAgICAkbWF4OiBicmVha3BvaW50LW1heCgkbmFtZSwgJGJyZWFrcG9pbnRzKTtcbiAgICBAaWYgJG1heCB7XG4gICAgICAgIEBtZWRpYSAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH0gQGVsc2Uge1xuICAgICAgICBAY29udGVudDtcbiAgICB9XG59XG5cbi8vIE1lZGlhIHRoYXQgc3BhbnMgbXVsdGlwbGUgYnJlYWtwb2ludCB3aWR0aHMuXG4vLyBNYWtlcyB0aGUgQGNvbnRlbnQgYXBwbHkgYmV0d2VlbiB0aGUgbWluIGFuZCBtYXggYnJlYWtwb2ludHNcbkBtaXhpbiBtZWRpYS1icmVha3BvaW50LWJldHdlZW4oXG4gICAgJGxvd2VyLFxuICAgICR1cHBlcixcbiAgICAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzXG4pIHtcbiAgICAkbWluOiBicmVha3BvaW50LW1pbigkbG93ZXIsICRicmVha3BvaW50cyk7XG4gICAgJG1heDogYnJlYWtwb2ludC1tYXgoJHVwcGVyLCAkYnJlYWtwb2ludHMpO1xuXG4gICAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbG93ZXIsICRicmVha3BvaW50cykge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9IEBlbHNlIGlmICRtaW4gPT0gbnVsbCB7XG4gICAgICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bigkdXBwZXIsICRicmVha3BvaW50cykge1xuICAgICAgICAgICAgQGNvbnRlbnQ7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8vIE1lZGlhIGJldHdlZW4gdGhlIGJyZWFrcG9pbnQncyBtaW5pbXVtIGFuZCBtYXhpbXVtIHdpZHRocy5cbi8vIE5vIG1pbmltdW0gZm9yIHRoZSBzbWFsbGVzdCBicmVha3BvaW50LCBhbmQgbm8gbWF4aW11bSBmb3IgdGhlIGxhcmdlc3Qgb25lLlxuLy8gTWFrZXMgdGhlIEBjb250ZW50IGFwcGx5IG9ubHkgdG8gdGhlIGdpdmVuIGJyZWFrcG9pbnQsIG5vdCB2aWV3cG9ydHMgYW55IHdpZGVyIG9yIG5hcnJvd2VyLlxuQG1peGluIG1lZGlhLWJyZWFrcG9pbnQtb25seSgkbmFtZSwgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50cykge1xuICAgICRtaW46IGJyZWFrcG9pbnQtbWluKCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuICAgICRtYXg6IGJyZWFrcG9pbnQtbWF4KCRuYW1lLCAkYnJlYWtwb2ludHMpO1xuXG4gICAgQGlmICRtaW4gIT0gbnVsbCBhbmQgJG1heCAhPSBudWxsIHtcbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6ICRtaW4pIGFuZCAobWF4LXdpZHRoOiAkbWF4KSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJG1heCA9PSBudWxsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkbmFtZSwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICBAY29udGVudDtcbiAgICAgICAgfVxuICAgIH0gQGVsc2UgaWYgJG1pbiA9PSBudWxsIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC1kb3duKCRuYW1lLCAkYnJlYWtwb2ludHMpIHtcbiAgICAgICAgICAgIEBjb250ZW50O1xuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyA9PT0gWyBib290c3RyYXAtZ3JpZC1mcmFtZXdvcmsuc2NzcyBdID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cblxuLy8gRnJhbWV3b3JrIGdyaWQgZ2VuZXJhdGlvblxuLy9cbi8vIFVzZWQgb25seSBieSBCb290c3RyYXAgdG8gZ2VuZXJhdGUgdGhlIGNvcnJlY3QgbnVtYmVyIG9mIGdyaWQgY2xhc3NlcyBnaXZlblxuLy8gYW55IHZhbHVlIG9mIGAkZ3JpZC1jb2x1bW5zYC5cblxuQG1peGluIG1ha2UtZ3JpZC1jb2x1bW5zKFxuICAgICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zLFxuICAgICRndXR0ZXI6ICRncmlkLWd1dHRlci13aWR0aCxcbiAgICAkYnJlYWtwb2ludHM6ICRncmlkLWJyZWFrcG9pbnRzXG4pIHtcbiAgICAvLyBDb21tb24gcHJvcGVydGllcyBmb3IgYWxsIGJyZWFrcG9pbnRzXG4gICAgJWdyaWQtY29sdW1uIHtcbiAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgbWluLWhlaWdodDogMXB4OyAvLyBQcmV2ZW50IGNvbHVtbnMgZnJvbSBjb2xsYXBzaW5nIHdoZW4gZW1wdHlcbiAgICAgICAgcGFkZGluZy1yaWdodDogKCRndXR0ZXIgLyAyKTtcbiAgICAgICAgcGFkZGluZy1sZWZ0OiAoJGd1dHRlciAvIDIpO1xuICAgIH1cblxuICAgIEBlYWNoICRicmVha3BvaW50IGluIG1hcC1rZXlzKCRicmVha3BvaW50cykge1xuICAgICAgICAkaW5maXg6IGJyZWFrcG9pbnQtaW5maXgoJGJyZWFrcG9pbnQsICRicmVha3BvaW50cyk7XG5cbiAgICAgICAgLy8gQWxsb3cgY29sdW1ucyB0byBzdHJldGNoIGZ1bGwgd2lkdGggYmVsb3cgdGhlaXIgYnJlYWtwb2ludHNcbiAgICAgICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCAkY29sdW1ucyB7XG4gICAgICAgICAgICAuY29sI3skaW5maXh9LSN7JGl9IHtcbiAgICAgICAgICAgICAgICBAZXh0ZW5kICVncmlkLWNvbHVtbjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICAuY29sI3skaW5maXh9LFxuICAgICAgICAuY29sI3skaW5maXh9LWF1dG8ge1xuICAgICAgICAgICAgQGV4dGVuZCAlZ3JpZC1jb2x1bW47XG4gICAgICAgIH1cblxuICAgICAgICBAaW5jbHVkZSBtZWRpYS1icmVha3BvaW50LXVwKCRicmVha3BvaW50LCAkYnJlYWtwb2ludHMpIHtcbiAgICAgICAgICAgIC8vIFByb3ZpZGUgYmFzaWMgYC5jb2wte2JwfWAgY2xhc3NlcyBmb3IgZXF1YWwtd2lkdGggZmxleGJveCBjb2x1bW5zXG4gICAgICAgICAgICAuY29sI3skaW5maXh9IHtcbiAgICAgICAgICAgICAgICBmbGV4LWJhc2lzOiAwO1xuICAgICAgICAgICAgICAgIGZsZXgtZ3JvdzogMTtcbiAgICAgICAgICAgICAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAuY29sI3skaW5maXh9LWF1dG8ge1xuICAgICAgICAgICAgICAgIGZsZXg6IDAgMCBhdXRvO1xuICAgICAgICAgICAgICAgIHdpZHRoOiBhdXRvO1xuICAgICAgICAgICAgICAgIG1heC13aWR0aDogbm9uZTsgLy8gUmVzZXQgZWFybGllciBncmlkIHRpZXJzXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAxIHRocm91Z2ggJGNvbHVtbnMge1xuICAgICAgICAgICAgICAgIC5jb2wjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbCgkaSwgJGNvbHVtbnMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLm9yZGVyI3skaW5maXh9LWZpcnN0IHtcbiAgICAgICAgICAgICAgICBvcmRlcjogLTE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC5vcmRlciN7JGluZml4fS1sYXN0IHtcbiAgICAgICAgICAgICAgICBvcmRlcjogJGNvbHVtbnMgKyAxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAZm9yICRpIGZyb20gMCB0aHJvdWdoICRjb2x1bW5zIHtcbiAgICAgICAgICAgICAgICAub3JkZXIjeyRpbmZpeH0tI3skaX0ge1xuICAgICAgICAgICAgICAgICAgICBvcmRlcjogJGk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBgJGNvbHVtbnMgLSAxYCBiZWNhdXNlIG9mZnNldHRpbmcgYnkgdGhlIHdpZHRoIG9mIGFuIGVudGlyZSByb3cgaXNuJ3QgcG9zc2libGVcbiAgICAgICAgICAgIEBmb3IgJGkgZnJvbSAwIHRocm91Z2ggKCRjb2x1bW5zIC0gMSkge1xuICAgICAgICAgICAgICAgIEBpZiBub3QoJGluZml4ID09IFwiXCIgYW5kICRpID09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQXZvaWQgZW1pdHRpbmcgdXNlbGVzcyAub2Zmc2V0LTBcbiAgICAgICAgICAgICAgICAgICAgLm9mZnNldCN7JGluZml4fS0jeyRpfSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAaW5jbHVkZSBtYWtlLWNvbC1vZmZzZXQoJGksICRjb2x1bW5zKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8gPT09IFsgYm9vdHN0cmFwLWdyaWQuc2NzcyBdID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbi8vLyBHcmlkIHN5c3RlbVxuLy9cbi8vIEdlbmVyYXRlIHNlbWFudGljIGdyaWQgY29sdW1ucyB3aXRoIHRoZXNlIG1peGlucy5cblxuQG1peGluIG1ha2UtY29udGFpbmVyKCkge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmctcmlnaHQ6ICgkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKTtcbiAgICBwYWRkaW5nLWxlZnQ6ICgkZ3JpZC1ndXR0ZXItd2lkdGggLyAyKTtcbiAgICBtYXJnaW4tcmlnaHQ6IGF1dG87XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG59XG5cbi8vIEZvciBlYWNoIGJyZWFrcG9pbnQsIGRlZmluZSB0aGUgbWF4aW11bSB3aWR0aCBvZiB0aGUgY29udGFpbmVyIGluIGEgbWVkaWEgcXVlcnlcbkBtaXhpbiBtYWtlLWNvbnRhaW5lci1tYXgtd2lkdGhzKFxuICAgICRtYXgtd2lkdGhzOiAkY29udGFpbmVyLW1heC13aWR0aHMsXG4gICAgJGJyZWFrcG9pbnRzOiAkZ3JpZC1icmVha3BvaW50c1xuKSB7XG4gICAgQGVhY2ggJGJyZWFrcG9pbnQsICRjb250YWluZXItbWF4LXdpZHRoIGluICRtYXgtd2lkdGhzIHtcbiAgICAgICAgQGluY2x1ZGUgbWVkaWEtYnJlYWtwb2ludC11cCgkYnJlYWtwb2ludCwgJGJyZWFrcG9pbnRzKSB7XG4gICAgICAgICAgICBtYXgtd2lkdGg6ICRjb250YWluZXItbWF4LXdpZHRoO1xuICAgICAgICB9XG4gICAgfVxufVxuXG5AbWl4aW4gbWFrZS1yb3coKSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgbWFyZ2luLXJpZ2h0OiAoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gLTIpO1xuICAgIG1hcmdpbi1sZWZ0OiAoJGdyaWQtZ3V0dGVyLXdpZHRoIC8gLTIpO1xufVxuXG5AbWl4aW4gbWFrZS1jb2wtcmVhZHkoKSB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIC8vIFByZXZlbnQgY29sdW1ucyBmcm9tIGJlY29taW5nIHRvbyBuYXJyb3cgd2hlbiBhdCBzbWFsbGVyIGdyaWQgdGllcnMgYnlcbiAgICAvLyBhbHdheXMgc2V0dGluZyBgd2lkdGg6IDEwMCU7YC4gVGhpcyB3b3JrcyBiZWNhdXNlIHdlIHVzZSBgZmxleGAgdmFsdWVzXG4gICAgLy8gbGF0ZXIgb24gdG8gb3ZlcnJpZGUgdGhpcyBpbml0aWFsIHdpZHRoLlxuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDFweDsgLy8gUHJldmVudCBjb2xsYXBzaW5nXG4gICAgcGFkZGluZy1yaWdodDogKCRncmlkLWd1dHRlci13aWR0aCAvIDIpO1xuICAgIHBhZGRpbmctbGVmdDogKCRncmlkLWd1dHRlci13aWR0aCAvIDIpO1xufVxuXG5AbWl4aW4gbWFrZS1jb2woJHNpemUsICRjb2x1bW5zOiAkZ3JpZC1jb2x1bW5zKSB7XG4gICAgZmxleDogMCAwIHBlcmNlbnRhZ2UoJHNpemUgLyAkY29sdW1ucyk7XG4gICAgLy8gQWRkIGEgYG1heC13aWR0aGAgdG8gZW5zdXJlIGNvbnRlbnQgd2l0aGluIGVhY2ggY29sdW1uIGRvZXMgbm90IGJsb3cgb3V0XG4gICAgLy8gdGhlIHdpZHRoIG9mIHRoZSBjb2x1bW4uIEFwcGxpZXMgdG8gSUUxMCsgYW5kIEZpcmVmb3guIENocm9tZSBhbmQgU2FmYXJpXG4gICAgLy8gZG8gbm90IGFwcGVhciB0byByZXF1aXJlIHRoaXMuXG4gICAgbWF4LXdpZHRoOiBwZXJjZW50YWdlKCRzaXplIC8gJGNvbHVtbnMpO1xufVxuXG5AbWl4aW4gbWFrZS1jb2wtb2Zmc2V0KCRzaXplLCAkY29sdW1uczogJGdyaWQtY29sdW1ucykge1xuICAgICRudW06ICRzaXplIC8gJGNvbHVtbnM7XG4gICAgbWFyZ2luLWxlZnQ6IGlmKCRudW0gPT0gMCwgMCwgcGVyY2VudGFnZSgkbnVtKSk7XG59XG4iLCIkaGVhZGluZ3Mtc2l6ZXM6IChcbiAgICBoMTogKFxuICAgICAgICA0MHB4LFxuICAgICAgICA0OHB4LFxuICAgICAgICAzNHB4LFxuICAgICAgICA0MHB4LFxuICAgICksXG4gICAgaDI6IChcbiAgICAgICAgMzJweCxcbiAgICAgICAgNDJweCxcbiAgICAgICAgMzBweCxcbiAgICAgICAgMzhweCxcbiAgICApLFxuICAgIGgzOiAoXG4gICAgICAgIDI2cHgsXG4gICAgICAgIDMycHgsXG4gICAgICAgIDI2cHgsXG4gICAgICAgIDMycHgsXG4gICAgKSxcbiAgICBoNDogKFxuICAgICAgICAyMHB4LFxuICAgICAgICAyOHB4LFxuICAgICAgICAyMHB4LFxuICAgICAgICAyOHB4LFxuICAgICksXG4pO1xuXG5AbWl4aW4gaGVhZGluZygkaGVhZGluZywgJG9uLWRhcmstYmFja2dyb3VuZDogZmFsc2UpIHtcbiAgICAkc2l6ZXM6IG1hcC1nZXQoJGhlYWRpbmdzLXNpemVzLCAkaGVhZGluZyk7XG4gICAgZm9udC1zaXplOiBudGgoJHNpemVzLCAxKTtcbiAgICBsaW5lLWhlaWdodDogbnRoKCRzaXplcywgMik7XG4gICAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgICBAaWYgJG9uLWRhcmstYmFja2dyb3VuZCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci13aGl0ZSk7XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10aXRsZS1jb2xvcik7XG4gICAgfVxuICAgIEBpbmNsdWRlIG1lZGlhLWJyZWFrcG9pbnQtZG93bihzbSkge1xuICAgICAgICBmb250LXNpemU6IG50aCgkc2l6ZXMsIDMpO1xuICAgICAgICBsaW5lLWhlaWdodDogbnRoKCRzaXplcywgNCk7XG4gICAgfVxuICAgIEBtZWRpYSBwcmludCB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci10aXRsZS1jb2xvcik7XG4gICAgfVxuICAgIEBjb250ZW50O1xufVxuXG5AbWl4aW4gY29udGVudC1oZWFkaW5ncygkb24tZGFyay1iYWNrZ3JvdW5kKSB7XG4gICAgQGZvciAkaSBmcm9tIDEgdGhyb3VnaCA0IHtcbiAgICAgICAgaCN7JGl9IHtcbiAgICAgICAgICAgIEBpbmNsdWRlIGhlYWRpbmcoXCJoI3skaX1cIiwgJG9uLWRhcmstYmFja2dyb3VuZCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAbWl4aW4gbGlzdCgkbGlzdC1zdHlsZSkge1xuICAgIGxpc3Qtc3R5bGU6ICRsaXN0LXN0eWxlO1xuICAgIHBhZGRpbmctbGVmdDogMTVweDtcbiAgICAvLyBXQ0FHOiB1a3J5d2FuaWUgc3BhY2ppIG8gemVyb3dlaiBzemVyb2tvxZtjaSwgZ2R5IGplc3QgemRlZmluaW93YW55IGxpc3Qtc3R5bGVcbiAgICBsaSB7XG4gICAgICAgICY6YmVmb3JlIHtcbiAgICAgICAgICAgIGRpc3BsYXk6IG5vbmU7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbkBtaXhpbiBudW1iZXJlZC1saXN0IHtcbiAgICBAaW5jbHVkZSBsaXN0KGRlY2ltYWwpO1xufVxuXG5AbWl4aW4gcG9pbnRlZC1saXN0IHtcbiAgICBAaW5jbHVkZSBsaXN0KGRpc2MpO1xufVxuXG5AbWl4aW4gc3R5bGUtbGlzdHMge1xuICAgIG9sIHtcbiAgICAgICAgQGluY2x1ZGUgbnVtYmVyZWQtbGlzdDtcbiAgICB9XG4gICAgdWwge1xuICAgICAgICBAaW5jbHVkZSBwb2ludGVkLWxpc3Q7XG4gICAgfVxufVxuXG5AbWl4aW4gZGVsZXRlLWxpc3Qtc3R5bGVzKCRwYWRkaW5nOiAwKSB7XG4gICAgbGlzdC1zdHlsZTogbm9uZSAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6ICRwYWRkaW5nICFpbXBvcnRhbnQ7XG59XG4iLCJAbWl4aW4gdHlwb2dyYXBoeSB7XG4gICAgcDpub3QoOmxhc3QtY2hpbGQpIHtcbiAgICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcbiAgICB9XG4gICAgYmxvY2txdW90ZSB7XG4gICAgICAgIG1hcmdpbjogMCAwIDIwcHggMDtcbiAgICAgICAgcGFkZGluZzogNXB4IDAgNXB4IDIwcHg7XG4gICAgICAgIGJvcmRlci1sZWZ0OiAzcHggc29saWQgdmFyKC0tY29sb3ItZ3JheSk7XG4gICAgICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbiAgICAgICAgcCB7XG4gICAgICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAbWl4aW4gbGluayB7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLWJyYW5kLXByaW1hcnkpO1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xuICAgIHRleHQtZGVjb3JhdGlvbi10aGlja25lc3M6IDFweDtcbiAgICB0ZXh0LXVuZGVybGluZS1vZmZzZXQ6IDAuMWVtO1xufVxuXG5AbWl4aW4gbGluay1mb2N1cyB7XG4gICAgQGluY2x1ZGUgZm9jdXMtZ2VvbWV0cnk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZS1vdXQ7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbG9yLWdyYXktbGlnaHQtMyk7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1ibGFjayk7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDFweCB2YXIoLS1jb2xvci1ibGFjay10cmFuc3BhcmVudCk7XG4gICAgfVxuICAgIEBpbmNsdWRlIGZvY3VzLWNsaWNrYWJsZTtcbn1cblxuQG1peGluIGxpbmstaGVhZGVyIHtcbiAgICBAaW5jbHVkZSBsaW5rO1xuICAgIEBpbmNsdWRlIGxpbmstZm9jdXM7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgY29sb3I6IHZhcigtLWNvbG9yLXRpdGxlLWNvbG9yKTtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgbGluZS1oZWlnaHQ6IDI4cHg7XG59XG5cbkBtaXhpbiBsaW5rLWhlYWRlci1zbWFsbCB7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAyNHB4O1xufVxuIiwiQG1peGluIGJ1dHRvbi1iYXNlIHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1pbi1oZWlnaHQ6IDQwcHg7XG4gICAgbWluLXdpZHRoOiAxNTBweDtcbiAgICBwYWRkaW5nOiAxMXB4IDE1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTAwcHg7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICB0cmFuc2l0aW9uOiAwLjJzIGFsbCBlYXNlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICAmOmxpbmssXG4gICAgJjpob3ZlciB7XG4gICAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB9XG4gICAgQGluY2x1ZGUgZm9jdXMtY2xpY2thYmxlO1xufVxuXG5AbWl4aW4gYnV0dG9uLXN0eWxlZChcbiAgICAkZm9udC1jb2xvcixcbiAgICAkZm9udC1jb2xvci1ob3ZlcixcbiAgICAkYmFja2dyb3VuZC1jb2xvcixcbiAgICAkYmFja2dyb3VuZC1jb2xvci1ob3ZlcixcbiAgICAkYm9yZGVyLWNvbG9yLFxuICAgICRib3JkZXItY29sb3ItaG92ZXJcbikge1xuICAgIGJhY2tncm91bmQ6ICRiYWNrZ3JvdW5kLWNvbG9yO1xuICAgIGNvbG9yOiAkZm9udC1jb2xvciAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogMCBub25lO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICRib3JkZXItY29sb3I7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6ICRiYWNrZ3JvdW5kLWNvbG9yLWhvdmVyO1xuICAgICAgICBjb2xvcjogJGZvbnQtY29sb3ItaG92ZXIgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAkYm9yZGVyLWNvbG9yLWhvdmVyO1xuICAgIH1cbiAgICBAaW5jbHVkZSBmb2N1cy1jbGlja2FibGU7XG4gICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgYm9yZGVyOiAxcHQgc29saWQgJGJvcmRlci1jb2xvcjtcbiAgICB9XG59XG5cbkBtaXhpbiBidXR0b24oXG4gICAgJGZvbnQtY29sb3IsXG4gICAgJGZvbnQtY29sb3ItaG92ZXIsXG4gICAgJGJhY2tncm91bmQtY29sb3IsXG4gICAgJGJhY2tncm91bmQtY29sb3ItaG92ZXIsXG4gICAgJGJvcmRlci1jb2xvcixcbiAgICAkYm9yZGVyLWNvbG9yLWhvdmVyXG4pIHtcbiAgICBAaW5jbHVkZSBidXR0b24tYmFzZSgpO1xuICAgIEBpbmNsdWRlIGJ1dHRvbi1zdHlsZWQoXG4gICAgICAgICRmb250LWNvbG9yLFxuICAgICAgICAkZm9udC1jb2xvci1ob3ZlcixcbiAgICAgICAgJGJhY2tncm91bmQtY29sb3IsXG4gICAgICAgICRiYWNrZ3JvdW5kLWNvbG9yLWhvdmVyLFxuICAgICAgICAkYm9yZGVyLWNvbG9yLFxuICAgICAgICAkYm9yZGVyLWNvbG9yLWhvdmVyXG4gICAgKTtcbn1cblxuQG1peGluIGJ1dHRvbi1wcmltYXJ5KCRvbi1kYXJrLWJhY2tncm91bmQ6IGZhbHNlKSB7XG4gICAgQGlmICRvbi1kYXJrLWJhY2tncm91bmQge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICB2YXIoLS1jb2xvci1ibGFjayksXG4gICAgICAgICAgICB2YXIoLS1jb2xvci13aGl0ZSksXG4gICAgICAgICAgICB2YXIoLS1jb2xvci13aGl0ZSksXG4gICAgICAgICAgICB2YXIoLS1jb2xvci1icmFuZC1wcmltYXJ5KSxcbiAgICAgICAgICAgIHZhcigtLWNvbG9yLXdoaXRlKSxcbiAgICAgICAgICAgIHZhcigtLWNvbG9yLXdoaXRlKVxuICAgICAgICApO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICB2YXIoLS1jb2xvci13aGl0ZSksXG4gICAgICAgICAgICB2YXIoLS1jb2xvci1icmFuZC1wcmltYXJ5KSxcbiAgICAgICAgICAgIHZhcigtLWNvbG9yLWJyYW5kLXByaW1hcnkpLFxuICAgICAgICAgICAgdmFyKC0tY29sb3Itd2hpdGUpLFxuICAgICAgICAgICAgdmFyKC0tY29sb3ItdHJhbnNwYXJlbnQpLFxuICAgICAgICAgICAgdmFyKC0tY29sb3ItYnJhbmQtcHJpbWFyeSlcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbkBtaXhpbiBidXR0b24tc2Vjb25kYXJ5KCRvbi1kYXJrLWJhY2tncm91bmQ6IGZhbHNlKSB7XG4gICAgQGlmICRvbi1kYXJrLWJhY2tncm91bmQge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICB2YXIoLS1jb2xvci13aGl0ZSksXG4gICAgICAgICAgICB2YXIoLS1jb2xvci13aGl0ZSksXG4gICAgICAgICAgICB2YXIoLS1jb2xvci1ibGFjay10cmFuc3BhcmVudCksXG4gICAgICAgICAgICB2YXIoLS1jb2xvci1icmFuZC1wcmltYXJ5KSxcbiAgICAgICAgICAgIHZhcigtLWNvbG9yLXdoaXRlKSxcbiAgICAgICAgICAgIHZhcigtLWNvbG9yLXdoaXRlKVxuICAgICAgICApO1xuICAgIH0gQGVsc2Uge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24oXG4gICAgICAgICAgICB2YXIoLS1jb2xvci1icmFuZC1wcmltYXJ5KSxcbiAgICAgICAgICAgIHZhcigtLWNvbG9yLXdoaXRlKSxcbiAgICAgICAgICAgIHZhcigtLWNvbG9yLXdoaXRlLXRyYW5zcGFyZW50LW1pZCksXG4gICAgICAgICAgICB2YXIoLS1jb2xvci1icmFuZC1wcmltYXJ5KSxcbiAgICAgICAgICAgIHZhcigtLWNvbG9yLWJyYW5kLXByaW1hcnkpLFxuICAgICAgICAgICAgdmFyKC0tY29sb3ItYnJhbmQtcHJpbWFyeSlcbiAgICAgICAgKTtcbiAgICB9XG59XG5cbkBtaXhpbiBidXR0b24tYWxsKCRvbi1kYXJrLWJhY2tncm91bmQ6IGZhbHNlKSB7XG4gICAgQGluY2x1ZGUgYnV0dG9uLXByaW1hcnkoJG9uLWRhcmstYmFja2dyb3VuZCk7XG4gICAgJi5zZWNvbmRhcnkge1xuICAgICAgICBAaW5jbHVkZSBidXR0b24tc2Vjb25kYXJ5KCRvbi1kYXJrLWJhY2tncm91bmQpO1xuICAgIH1cbn1cblxuQG1peGluIGFjdGlvbi1idXR0b24oJGljb24pIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsaW5lLWhlaWdodDogMTFweDtcbiAgICBjb2xvcjogdmFyKC0tY29sb3ItYnJhbmQtcHJpbWFyeSk7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICBib3JkZXI6IDA7XG4gICAgcGFkZGluZzogOXB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA1cHg7XG4gICAgYm9yZGVyLXJhZGl1czogM3B4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBAaW5jbHVkZSBpY29uLWJlZm9yZSgkaWNvbiwgMTJweCk7XG4gICAgQGluY2x1ZGUgZm9jdXMtY2xpY2thYmxlO1xufVxuXG5AbWl4aW4gY29tcGFyZS1idXR0b24oKSB7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgJjpob3ZlciB7XG4gICAgICAgIEBpbmNsdWRlIGljb24tYmVmb3JlKFwiY29tcGFyZS1vZmZcIiwgMTRweCkge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBAaW5jbHVkZSBpY29uLWJlZm9yZShcImNvbXBhcmUtb2ZmXCIsIDE0cHgpIHtcbiAgICAgICAgZGlzcGxheTogYmxvY2s7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1icmFuZC1wcmltYXJ5KTtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlIDUwJSA1MCUgbm9uZSBub25lO1xuICAgICAgICBtYXJnaW46IC03cHggMDtcbiAgICB9XG4gICAgQGluY2x1ZGUgc3RhdGUoQUNUSVZFKSB7XG4gICAgICAgIEBpbmNsdWRlIGljb24tYmVmb3JlLW5hbWUoXCJjb21wYXJlLW9uXCIpO1xuICAgIH1cbn1cblxuQG1peGluIGNsb3NlLWJ1dHRvbigpIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgc2l6ZTogNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAwO1xuICAgIGJhY2tncm91bmQ6IG5vbmU7XG4gICAgcGFkZGluZzogMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgQGluY2x1ZGUgaWNvbi1iZWZvcmUoXCJjbG9zZVwiLCAxOHB4KSB7XG4gICAgICAgIGNvbG9yOiB2YXIoLS1jb2xvci1icmFuZC1wcmltYXJ5KTtcbiAgICB9XG4gICAgQG1lZGlhIHByaW50IHtcbiAgICAgICAgZGlzcGxheTogbm9uZTtcbiAgICB9XG4gICAgJjpob3ZlciB7XG4gICAgICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLWNvbG9yLWJyYW5kLXByaW1hcnkpO1xuICAgICAgICBAaW5jbHVkZSBpY29uLWJlZm9yZS1jb250ZW50KCkge1xuICAgICAgICAgICAgY29sb3I6IHZhcigtLWNvbG9yLXdoaXRlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==*/